查看: 849|回复: 1

[Java项目交流] java使用Apache的poi把ppt解析成图片

[复制链接]
  • TA的每日心情
    无聊
    2017-4-17 15:52
  • 签到天数: 107 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2015-5-22 15:51:36 | 显示全部楼层 |阅读模式
    代码功能:把ppt解析成图片
    1. package poippt;

    2. import java.io.File;
    3. import java.io.FileInputStream;
    4. import java.io.IOException;
    5. import java.io.InputStream;

    6. import org.apache.poi.hslf.HSLFSlideShow;
    7. import org.apache.poi.hslf.extractor.PowerPointExtractor;
    8. import org.apache.poi.hslf.model.Slide;
    9. import org.apache.poi.hslf.model.TextRun;
    10. import org.apache.poi.hslf.usermodel.SlideShow;

    11. public class ppt {
    12.         //直接抽取幻灯片的全部内容
    13.     public static String readDoc1(InputStream is) throws IOException{
    14.         PowerPointExtractor extractor=new PowerPointExtractor(is);
    15.         return extractor.getText();
    16.     }

    17.     //一张幻灯片一张幻灯片地读取
    18.     public static void readDoc2(InputStream is) throws IOException{
    19.         SlideShow ss=new SlideShow(new HSLFSlideShow(is));
    20.         Slide[] slides=ss.getSlides();
    21.         for(int i=0;i<slides.length;i++){
    22.             //读取一张幻灯片的标题
    23.             String title=slides[i].getTitle();
    24.             System.out.println("标题:"+title);
    25.             //读取一张幻灯片的内容(包括标题)
    26.             TextRun[] runs=slides[i].getTextRuns();
    27.             for(int j=0;j<runs.length;j++){
    28.                 System.out.println(runs[j].getText());
    29.             }
    30.         }
    31.     }

    32.     public static void main(String[] args){
    33.         File file = new File("E://logs/a.ppt");
    34.         try{
    35.             FileInputStream fin=new FileInputStream(file);
    36.             String cont=readDoc1(fin);
    37.             System.out.println(cont);
    38.             fin.close();
    39.             fin=new FileInputStream(file);
    40.             readDoc2(fin);
    41.             fin.close();
    42.         }catch(IOException e){
    43.             e.printStackTrace();
    44.         }
    45.     }
    46. }
    复制代码
  • TA的每日心情
    郁闷
    昨天 22:34
  • 签到天数: 1167 天

    连续签到: 1 天

    [LV.10]以坛为家III

    查看他的品牌

    发表于 2015-5-26 19:37:39 | 显示全部楼层
    赞个
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    站长推荐上一条 /1 下一条