`
michaeltangbin
  • 浏览: 267800 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

Java---POI--操作PPT

    博客分类:
  • java
阅读更多

一, 解析PPT文件中的图片 

Java代码 
  1. package test.ppt;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileOutputStream;  
  5.   
  6. import org.apache.poi.hslf.HSLFSlideShow;  
  7. import org.apache.poi.hslf.model.Picture;  
  8. import org.apache.poi.hslf.usermodel.PictureData;  
  9. import org.apache.poi.hslf.usermodel.SlideShow;  
  10. /** 
  11.  * 运行程序, 所在工程需要导入 POI3.6 开发包 
  12.  * @author 杜磊米 
  13.  * 
  14.  */  
  15. public class OutputPicture {  
  16.     // 图片默认存放路径  
  17.     public final static String path = "F:\\ppt\\";  
  18.   
  19.     public static void main(String[] args) throws Exception {  
  20.         // 加载PPT  
  21.         HSLFSlideShow _hslf = new HSLFSlideShow("F:\\Downloads\\myPPT.ppt");  
  22.         SlideShow _slideShow = new SlideShow(_hslf);  
  23.           
  24.         // 获取PPT文件中的图片数据  
  25.         PictureData[] _pictures = _slideShow.getPictureData();  
  26.           
  27.         // 循环读取图片数据  
  28.         for (int i = 0; i < _pictures.length; i++) {  
  29.             StringBuilder fileName = new StringBuilder(path);  
  30.             PictureData pic_data = _pictures[i];  
  31.             fileName.append(i);  
  32.             // 设置格式  
  33.             switch (pic_data.getType()) {  
  34.             case Picture.JPEG:  
  35.                 fileName.append(".jpg");  
  36.                 break;  
  37.             case Picture.PNG:  
  38.                 fileName.append(".png");  
  39.                 break;  
  40.             default:  
  41.                 fileName.append(".data");  
  42.             }  
  43.             // 输出文件  
  44.             FileOutputStream fileOut = new FileOutputStream(new File(fileName.toString()));  
  45.             fileOut.write(pic_data.getData());  
  46.             fileOut.close();  
  47.         }  
  48.     }  
  49. }  


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


三 , 操作文本对象 
Java代码 
  1. package test.ppt;  
  2.   
  3. import java.awt.Color;  
  4. import java.awt.Rectangle;  
  5. import java.io.FileOutputStream;  
  6.   
  7. import org.apache.poi.hslf.model.AutoShape;  
  8. import org.apache.poi.hslf.model.Line;  
  9. import org.apache.poi.hslf.model.ShapeTypes;  
  10. import org.apache.poi.hslf.model.Slide;  
  11. import org.apache.poi.hslf.model.TextBox;  
  12. import org.apache.poi.hslf.model.TextRun;  
  13. import org.apache.poi.hslf.usermodel.RichTextRun;  
  14. import org.apache.poi.hslf.usermodel.SlideShow;  
  15.   
  16. /** 
  17.  * 操作 Text 文本 
  18.  * @author 杜磊米 
  19.  */  
  20. public class InputTextRun {  
  21.   
  22.     public static void main(String[] args) throws Exception{  
  23.           
  24.         SlideShow _slideShow = new SlideShow();  
  25.         Slide slide = _slideShow.createSlide();  
  26.           
  27.         // 创建并置入简单文本  
  28.         TextBox _text = new TextBox();  
  29.         TextRun _textRun = _text.createTextRun();  <
    分享到:
    评论
    2 楼 ye_wx 2011-08-26  
    要加哪些jar包呢?麻烦列出来行吗
    1 楼 caizi_java 2010-08-15  
    没完啊,太不负责了嘛

相关推荐

Global site tag (gtag.js) - Google Analytics