解析PPT文件中的图片

  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import org.apache.poi.hslf.HSLFSlideShow;
  4. import org.apache.poi.hslf.model.Picture;
  5. import org.apache.poi.hslf.usermodel.PictureData;
  6. import org.apache.poi.hslf.usermodel.SlideShow;
  7. public class OutputPicture {
  8. // 图片默认存放路径
  9. public final static String path = "F:\\ppt\";
  10. public static void main(String[] args) throws Exception {
  11. // 加载PPT
  12. HSLFSlideShow _hslf = new HSLFSlideShow("F:\\Downloads\\myPPT.ppt");
  13. SlideShow _slideShow = new SlideShow(_hslf);
  14. // 获取PPT文件中的图片数据
  15. PictureData[] _pictures = _slideShow.getPictureData();
  16. // 循环读取图片数据
  17. for (int i = 0; i < _pictures.length; i++) {
  18. StringBuilder fileName = new StringBuilder(path);
  19. PictureData pic_data = _pictures[i];
  20. fileName.append(i);
  21. // 设置格式
  22. switch (pic_data.getType()) {
  23. case Picture.JPEG:
  24. fileName.append(".jpg");
  25. break;
  26. case Picture.PNG:
  27. fileName.append(".png");
  28. break;
  29. default:
  30. fileName.append(".data");
  31. }
  32. // 输出文件
  33. FileOutputStream fileOut = new FileOutputStream(new File(fileName.toString()));
  34. fileOut.write(pic_data.getData());
  35. fileOut.close();
  36. }
  37. }
  38. }

在PPT文件中加入外部图片

  1. import java.awt.Rectangle;
  2. import java.awt.image.BufferedImage;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import javax.imageio.ImageIO;
  6. import org.apache.poi.hslf.model.Picture;
  7. import org.apache.poi.hslf.model.Slide;
  8. import org.apache.poi.hslf.usermodel.SlideShow;
  9. public class InputPicture {
  10. public static String path = "F:\\images\\myImage.png";
  11. public static String OUTPUT = "F:\\ppt\\myppt.ppt";
  12. public static void main(String[] args) throws Exception {
  13. if(args.length != 0){
  14. path = args[0];
  15. }
  16. // 构建PPT
  17. SlideShow _slideShow = new SlideShow();
  18. // 创建幻灯片
  19. Slide _slide = _slideShow.createSlide();
  20. // 设置图片类型
  21. int pic_type = -1;
  22. if(path.indexOf(".png") != -1){
  23. pic_type = Picture.PNG;
  24. }else{
  25. pic_type = Picture.JPEG;
  26. }
  27. File file = new File(path);
  28. BufferedImage image = ImageIO.read(file);
  29. // 新置入图片索引位置
  30. int newIndex = _slideShow.addPicture(file, pic_type);
  31. // 根据索引位置 , 创建图片对象
  32. Picture _picture = new Picture(newIndex);
  33. // 设置图片显示位置
  34. _picture.setAnchor(new Rectangle(100,100,image.getWidth(),image.getHeight()));
  35. // 将图片放入幻灯片
  36. _slide.addShape(_picture);
  37. // 输出PPT文件
  38. _slideShow.write(new FileOutputStream(new File(OUTPUT)));
  39. }
  40. }

操作文本对象

  1. import java.awt.Color;
  2. import java.awt.Rectangle;
  3. import java.io.FileOutputStream;
  4. import org.apache.poi.hslf.model.AutoShape;
  5. import org.apache.poi.hslf.model.Line;
  6. import org.apache.poi.hslf.model.ShapeTypes;
  7. import org.apache.poi.hslf.model.Slide;
  8. import org.apache.poi.hslf.model.TextBox;
  9. import org.apache.poi.hslf.model.TextRun;
  10. import org.apache.poi.hslf.usermodel.RichTextRun;
  11. import org.apache.poi.hslf.usermodel.SlideShow;
  12. public class InputTextRun {
  13. public static void main(String[] args) throws Exception{
  14. SlideShow _slideShow = new SlideShow();
  15. Slide slide = _slideShow.createSlide();
  16. // 创建并置入简单文本
  17. TextBox _text = new TextBox();
  18. TextRun _textRun = _text.createTextRun();
  19. _textRun.setRawText("杜磊米");
  20. _text.setAnchor(new Rectangle(10,10,100,100));
  21. // 创建并置入带有样式的文本
  22. AutoShape _autoShape = new AutoShape(ShapeTypes.Rectangle); //设置形状
  23. TextRun _autoText = _autoShape.createTextRun();
  24. _autoText.setRawText("杜磊米");
  25. _autoShape.setAnchor(new Rectangle(200,200,100,100));
  26. _autoShape.setFillColor(new Color(170,215,255));
  27. _autoShape.setLineWidth(5.0);
  28. _autoShape.setLineStyle(Line.LINE_DOUBLE);
  29. // AutoShape 对象可以设置多个不同样式文本
  30. TextRun _autoText2 = _autoShape.createTextRun();
  31. RichTextRun _richText = _autoText2.appendText("杜");
  32. _richText.setFontColor(new Color(255,255,255));
  33. RichTextRun _richText2 = _autoText2.appendText("磊米");
  34. _richText2.setFontColor(new Color(255,0,0));
  35. _richText2.setFontSize(12);
  36. // 将文本对象置入幻灯片
  37. slide.addShape(_text);
  38. slide.addShape(_autoShape);
  39. // 输出文件
  40. _slideShow.write(new FileOutputStream("F:\\ppt\\text.ppt"));
  41. }
  42. }

设置各类文件属性

  1. import java.awt.Dimension;
  2. import java.io.FileOutputStream;
  3. import org.apache.poi.hpsf.DocumentSummaryInformation;
  4. import org.apache.poi.hpsf.SummaryInformation;
  5. import org.apache.poi.hslf.HSLFSlideShow;
  6. import org.apache.poi.hslf.model.Slide;
  7. import org.apache.poi.hslf.usermodel.SlideShow;
  8. public class PPTProperty {
  9. public static void main(String [] args)throws Exception{
  10. HSLFSlideShow hslf = HSLFSlideShow.create();
  11. SlideShow _slideShow = new SlideShow(hslf);
  12. // 设置页面大小
  13. _slideShow.setPageSize(new Dimension(400,600));
  14. // 设置后创建出相应大小的幻灯片
  15. Slide slide = _slideShow.createSlide();
  16. DocumentSummaryInformation doc = hslf.getDocumentSummaryInformation();
  17. SummaryInformation info = hslf.getSummaryInformation();
  18. doc.setCompany("secret");
  19. info.setAuthor("杜磊米");
  20. info.setTitle("nothing");
  21. // 输出文件
  22. _slideShow.write(new FileOutputStream("F:\\ppt\\demo.ppt"));
  23. // 完成后, 找到文件 , 右键属性查看:)
  24. }
  25. }

Java 利用POI操作PPT的更多相关文章

  1. java利用poi 把ppt转化为图片,

    导入jar包: poi-3.8.jar poi-ooxml-3.9.jar poi-scratchpad-3.8.jar 代码: package test4; import java.awt.Dime ...

  2. java poi 操作ppt

    java poi 操作ppt 可以参考: https://www.w3cschool.cn/apache_poi_ppt/apache_poi_ppt_installation.html http:/ ...

  3. Java利用poi生成word(包含插入图片,动态表格,行合并)

    转(小改): Java利用poi生成word(包含插入图片,动态表格,行合并) 2018年12月20日 09:06:51 wjw_11093010 阅读数:70 Java利用poi生成word(包含插 ...

  4. java 利用POI 读取Execel数据的真实行数

    java 利用poi 读execel文件的操作,读取总的数据行数一般是通过调用 sheet.getLastRowNum() ;可是这样有时候会出现一些问题,例如,当其中一行的数据的确都为空,可是其原本 ...

  5. Java利用POI导入导出Excel中的数据

         首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...

  6. java使用poi读取ppt文件和poi读取excel、word示例

    java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm

  7. java使用POI操作XWPFDocument中的XWPFRun(文本)对象的属性详解

    java使用POI操作XWPFDocument中的XWPFRun(文本)对象的属性详解 我用的是office word 2016版 XWPFRun是XWPFDocument中的一段文本对象(就是一段文 ...

  8. java里poi操作excel的工具类(兼容各版本)

    转: java里poi操作excel的工具类(兼容各版本) 下面是文件内具体内容,文件下载: import java.io.FileNotFoundException; import java.io. ...

  9. poi 操作 PPT,针对 PPTX--图表篇

    poi 操作 PPT,针对 PPTX--图表篇 目录 poi 操作 PPT,针对 PPTX--图表篇 1.读取 PPT 模板 2.替换标题 4.替换图表数据 接下来对 ppt 内的图表进行操作,替换图 ...

随机推荐

  1. 20150117_js_设置时间的显示格式

    /* *设置显示时间格式 *@param: 原始时间 yyyy-MM-dd HH:mm:ss */ function SetDisTime(oldTime) { var nowDate = new D ...

  2. Python(九)之网络编程

    一般的网络通信: Python中利用socket模块实现网络主机间通讯: socket.socket(family,type) family:套接字类型 AF_INET AF_UNIX type: S ...

  3. JavaScript高级 面向对象(11)--对象的动态特性-关联数组用法

    说明(2017.4.2): 1. 对象的动态特性: (1)在js中,一个对象需要属性,就可以利用“对象名.属性 = 值”的方式为其添加,只要赋值成功,对象就新增这个属性. (2)对象属性的访问形式: ...

  4. iOS隐藏状态栏

    1.整个项目隐藏状态栏 在Targets->General->勾选中Hide status bar . 整个项目隐藏状态栏 2.单个界面隐藏状态栏,例如登录注册页面 1.首先在info.p ...

  5. java中的元数据

    java中的Annotation和C#中的Attribute相似. 写法上差别较大 @Target(ElementType.METHOD) @Retention(RetentionPolicy.CLA ...

  6. Windows-DB2 9.7安装图解

    解压后,双击 setup.exe 安装 打开后,选择"安装产品" 在安装产品中,选择"安装新产品" 点击下一步 同意软件许可协议,点击下一步 可以根据需要,选择 ...

  7. Thrift——栗子

    这张经典的图:黄色部分是用户实现的业务逻辑,褐色部分是根据Thrift定义的服务接口描述文件(IDL,接口定义语言)生成的客户端和服务端代码框架,红色部分是根据Thrift文件生成代码实现数据的读写操 ...

  8. STM32f103的数电采集电路的双ADC的设计与使用

    STM32F103C8T6拥有3个ADC,其独立使用已经在本文的3.1.3里面有详细的介绍,这里主要是介绍双ADC的同时使用,即STM32的同步规则模式使用.在此模式在规则通道组上执行时,外部触发来自 ...

  9. GIT——总结.1-

    创建版本库 时光机穿梭 版本回退 工作区和暂存区 管理修改 撤销修改 删除文件 Git Git是目前世界上最先进的分布式版本控制系统(没有之一) Git是分布式版本控制系统 首先,分布式版本控制系统根 ...

  10. MFC中的句柄

    1.引出句柄 CDC问题:1.CDC dc;dc.LineTo(point);无法运行 2.CDC *dc=GetDC();dc->LineTo(point);就可以运行了 MFC中有大量的句柄 ...