PDF box 结合POI 将pdf转为PPT
实现思路
将PDF转为图片,将图片插入每一页PPT上,保持原尺寸和比例。
代码实现
引入的类
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfDocument;
import lombok.extern.java.Log;
import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageTree;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.poi.sl.usermodel.PictureData;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
public static void convertPDF2PPT(String pdfSource, String pptDest) throws IOException {XMLSlideShow ppt = new XMLSlideShow();File source = new File(pdfSource);JAssert.pass(source.exists(), "报告不存在");FileInputStream fis = new FileInputStream(source);PDDocument document = PDDocument.load(source);PDPageTree list = document.getPages();File outputDir = new File(pptDest);if (!outputDir.exists()){outputDir.mkdirs();}String fileName = source.getName().replace(".pdf","");PDFRenderer pdfRenderer = new PDFRenderer(document);List<File> tmpFiles = new ArrayList<>();for (int i = 0; i < list.getCount(); i++) {PDPage page = list.get(i);BufferedImage image = pdfRenderer.renderImageWithDPI(i, 300, ImageType.RGB);File tmpImagFile;if (outputDir.isDirectory()){tmpImagFile = new File(pptDest + fileName + "_" + (i + 1) + ".png");} else {String dir = outputDir.getParent();tmpImagFile = new File(dir+ File.separator + fileName + "_" + (i + 1) + ".png");}tmpFiles.add(tmpImagFile);int width = (int) page.getBBox().getWidth();int height = (int) page.getBBox().getHeight();ImageIO.write(image,"png",tmpImagFile);ppt.setPageSize(new Dimension(width,height));XSLFSlide slide = ppt.createSlide();byte[] pictureData = IOUtils.toByteArray(new FileInputStream(tmpImagFile.getAbsoluteFile()));XSLFPictureData pd = ppt.addPicture(pictureData, PictureData.PictureType.PNG);XSLFPictureShape pic = slide.createPicture(pd);pic.setAnchor(new Rectangle(0,0,width,height));}document.close();//清理临时生成的图片tmpFiles.forEach(File::delete);String pptDestName;if (pptDest.contains(".pptx")){pptDestName = pptDest;} else {pptDestName = pptDest+ File.separator + fileName +".pptx";}FileOutputStream out = new FileOutputStream(pptDestName);ppt.write(out);out.close();ppt.close();}
PDF box 结合POI 将pdf转为PPT相关推荐
- java使用poi、itextpdf将word、ppt转为pdf文件,并对pdf文件加盖签章
1 环境及背景 SpringBoot项目,使用poi.itextpdf将excel.ppt.word文件转为pdf,并对pdf文件进行签章: 对Excel文件加图片水印,并加密设置为只读. 下面的方法 ...
- 一分钟教会你pdf如何转为PPT,简单易上手
前段时间通识课老师让我们围绕"我喜欢的书本"主题去制作一个PPT,然后等到下周上台去演讲,于是我准备上网下载一些好看的模板来使用.然而当我好不容易找到一个喜欢的PPT模板时,却发现 ...
- 利用python将PDF转为PPT(课件专用)
利用python将PDF转为PPT(课件专用) 前言:课程中老师经常会将课件作为PDF发放而非PPT,而现有的PDF阅读器一般不支持添加修改等操作,所以显得十分麻烦,考虑将PDF转换为PPT格式,方便 ...
- 如何将pdf转为ppt?
大家在工作或学习上有没有将pdf转为ppt来使用过,其实这个方法恰恰能改变pdf难以编辑的特点,转换成同为电子文档的演示文稿ppt来使用,再配合作者的编辑讲解,会更加直观,生动的表达给观看者,让一些晦 ...
- java pdf转图片 pdfbox_JAVA基于PDF box将PDF转为图片
在一项目中用到,本身我是.NET的,团队中有用到JAVA,故此我处理这个功能,记录以下备用. 1.引用:fontbox-2.0.16.jar.pdfbox-app-2.0.16.jar 版本一定要正确 ...
- php mpdf html 转pdf,使用 MPDF 将HTML转为PDF,然后将该PDF转为PNG图片的时候,中文报错... ......
第一步: 使用 MPDF(版本6.1) 将 HTML 页面转为PDF文件,可以转成功.代码如下: $html = "对盲人初学者来说,它无需任何额外的修改."; // $html ...
- php mpdf html 转pdf,使用 MPDF 将HTML转为PDF,然后将该PDF转为PNG图片的时候,中文报错... ...汗血宝马...
第一步: 使用 MPDF(版本6.1) 将 HTML 页面转为PDF文件,可以转成功.代码如下: $html = "对盲人初学者来说,它无需任何额外的修改."; // $html ...
- foxit phantom pdf 7.3_Jpeg to Pdf Converter 3000批量将图片转为PDF的方法
Jpeg to Pdf Converter 3000是一款非常优秀的图片转PDF软件,该软件界面清爽美观,用户使用该软件,可以快速的将JPG图片转换为PDF文件,而且转换的质量非常高.我们在日常的办公 ...
- POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)
POI操作word和PDF POI根据模板导出word文件 word转PDF PDF转图片再插入PDF中(防止PDF被修改) POI根据模板导出word文件 一.制作word模版,${xxxx}是一会 ...
最新文章
- 使用AD8302进行检波
- ElasticSearch(一)ElasticSearch的应用场景及为什么要选择ElasticSearch?
- 大道至简第一章阅读笔记
- Linux 配置静态IP
- python3 image_python3 ImageTk 安装方法
- springboot中配置文件使用2
- Struts2之文件上传(单文件/多文件)
- python变量和对象,切片列表元祖
- GRE Tunnel实现企业网中的***
- SQL 错误代码汇总
- github中文版_GitHub 上的 Awesome 系列(资源大全系列)
- ftp服务器默认文件路径,ftp服务器默认文件路径是
- Twincat3 硬件: 台湾DFI工业控制器,CPU1.1GHZ,RAM512
- eureka 缺点
- oracle认证071和061,别只为Oracle Database 18c的发布而兴奋了, 看一看你的Oracle认证考试到期了吗?...
- 程序员转行后都怎么样了,分享我身边的真实经历
- 阿里云OSS对象存储
- c语言零基础自学,c语言零基础入门 该如何学习
- 喷泉设备中的水幕效果
- cmd sqlplus远程连接_sqlplus连接远程数据库
热门文章
- 精灵图与字体图标的使用
- yocto project
- 《操作系统真象还原》第五章 ---- 轻取物理内存容量 启用分页畅游虚拟空间 力斧直斩内核先劈一角 闲庭信步摸谈特权级
- ajax返回报错html,Jquery AJAX POST调用返回200状态确定,但错误
- 分享机器学习入门课件
- 复旦大学邱锡鹏:若优化顺利,MOSS三月底开源;库克或被踢出苹果董事会;华为云联合CSDN发布智能化编程助手Snap|极客头条...
- 多AZ双活容灾部署的云端系统架构设计说明书框架
- 杭州封杀嘀嘀、快的打车的加价功能
- 计算机绘图要什么铅笔,素描初学者需要准备哪些画画工具
- 女生无法拒绝的表白拼图