Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1028153
  • 博文数量: 92
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 909
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 10:00
  • 认证徽章:
文章分类

全部博文(92)

文章存档

2019年(38)

2018年(45)

2017年(9)

我的朋友

分类: Java

2019-06-14 15:49:39

本篇文章将介绍如何通过Java编程来添加图片到PPT幻灯片中的指定位置,以及如何提取PPT幻灯片中已有的图片,包括提取所有幻灯片中的图片、提取指定幻灯片中的图片。

使用工具:Free Spire.Presentation for Java (免费版)

Jar文件导入:

导入方法1通过官网下载jar包,并解压。在Java程序中导入Spire.Presentation.jar文件。如下图:


导入方法2通过Maven仓库安装导入,详见导入方法


Java代码示例(供参考)

【示例1】添加图片到PPT幻灯片

  1. import com.spire.presentation.*;
  2. import com.spire.presentation.drawing.FillFormatType;
  3. import java.awt.geom.Rectangle2D;

  4. public class AddImage {
  5.     public static void main(String[]args) throws Exception {
  6.         //加载测试文档
  7.         Presentation ppt = new Presentation();
  8.         ppt.loadFromFile("sample.pptx");

  9.         //获取第一张幻灯片
  10.         ISlide slide = ppt.getSlides().get(0);

  11.         //指定图片在幻灯片中的位置及图片大小
  12.         Rectangle2D rec = new Rectangle2D.Double(ppt.getSlideSize().getSize().getWidth() / 2 - 320, 180, 300, 200);

  13.         //加载图片添加至幻灯片
  14.         IEmbedImage image = slide.getShapes().appendEmbedImage(ShapeType.RECTANGLE, "bg.png", rec);
  15.         image.getLine().setFillType(FillFormatType.NONE);

  16.         //保存文档
  17.         ppt.saveToFile("AddImg.pptx",FileFormat.PPTX_2010);
  18.     }
  19. }

图片添加效果:


【示例2】读取PPT幻灯片中的图片

1. 读取所有幻灯片中的图片

  1. import com.spire.presentation.*;

  2. import javax.imageio.ImageIO;
  3. import java.awt.image.BufferedImage;
  4. import java.io.File;

  5. public class ExtractAllImgs {
  6.     public static void main(String[] args)throws Exception{
  7.         //加载文档
  8.         Presentation ppt = new Presentation();
  9.         ppt.loadFromFile("test.pptx");

  10.         //提取幻灯片中的所有图片
  11.         for (int i = 0; i < ppt.getImages().getCount(); i++) {
  12.             BufferedImage image = ppt.getImages().get(i).getImage();
  13.             ImageIO.write(image, "PNG", new File(String.format("提取所有图片-%1$s.png", i)));
  14.         }
  15.     }
  16. }


2.
读取指定幻灯片中的图片

  1. import com.spire.presentation.*;

  2. import javax.imageio.ImageIO;
  3. import java.awt.image.BufferedImage;
  4. import java.io.File;

  5. public class ExtractSpecifiedImgs{
  6.     public static void main(String[]args)throws Exception{
  7.         //加载测试文档
  8.         Presentation ppt = new Presentation();
  9.         ppt.loadFromFile("test.pptx");

  10.         //获取第一张幻灯片
  11.         ISlide slide = ppt.getSlides().get(0);

  12.         //提取图片
  13.         for(int i = 0; i< slide.getShapes().getCount(); i++)
  14.         {
  15.             IShape shape = slide.getShapes().get(i);
  16.             if(shape instanceof SlidePicture)
  17.             {
  18.                 SlidePicture pic = (SlidePicture) shape;
  19.                 BufferedImage image = pic.getPictureFill().getPicture().getEmbedImage().getImage();
  20.                 ImageIO.write(image, "PNG", new File(String.format("提取指定图片-%1$s.png", i)));
  21.             }
  22.             if(shape instanceof PictureShape)
  23.             {
  24.                 PictureShape ps = (PictureShape) shape;
  25.                 BufferedImage image = ps.getEmbedImage().getImage();
  26.                 ImageIO.write(image, "PNG", new File(String.format("提取指定图片-%1$s.png", i)));
  27.             }
  28.         }
  29.     }

  30. }

(本文完)
阅读(151) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册