干货!java实现如何把PPT转PDF的两种方法,别再说你不会!(一)

编程入门 行业动态 更新时间:2024-10-11 17:28:22

<a href=https://www.elefans.com/category/jswz/34/1767986.html style=干货!java实现如何把PPT转PDF的两种方法,别再说你不会!(一)"/>

干货!java实现如何把PPT转PDF的两种方法,别再说你不会!(一)

说明

方案一、使用jacob可以将office文件转换成pdf,因为需要依赖Microsoft Office,适用于windows服务器部署的项目。

方案二、如果需要用Linux服务器,请考虑使用OpenOffice方案。

本文详细介绍如何使用jacob完成pdf转换

maven引入jar

<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>19.0</version>
</dependency><dependency><groupId>com.jacob</groupId><artifactId>jacob</artifactId><version>1.19</version><scope>system</scope>//.jar本地目录<systemPath>D:/.m2/repo/jacob-1.19/jacob.jar</systemPath>
</dependency>

PPT转PDF代码

//测试
public class TestJacob {public static void main(String [] args) {IJacob iJacob = new PPTFactory();IJacobPdfService service = iJacob.getJacob();service.toPdf("F:\\蛇口渔港概况 .pptx", "F:\\a .pdf");}
}//ppt转pdf
public class PPTApi implements IJacobPdfService {private static final Integer PPT_TO_PDF_OPERAND = 32;@Overridepublic void toPdf(String sourcePath, String targetPath) {ActiveXComponent app = null;Dispatch ppt = null;try {ComThread.InitSTA();app = new ActiveXComponent("PowerPoint.Application");Dispatch ppts = app.getProperty("Presentations").toDispatch();/** call* param 4: ReadOnly* param 5: Untitled指定文件是否有标题* param 6: WithWindow指定文件是否可见* */ppt = Dispatch.call(ppts, "Open", sourcePath, true, true, false).toDispatch();// ppSaveAsPDF为特定值32Dispatch.call(ppt, "SaveAs", targetPath, PPT_TO_PDF_OPERAND);} catch (Exception e) {e.printStackTrace();throw e;} finally {if (ppt != null) {Dispatch.call(ppt, "Close");}if (app != null) {app.invoke("Quit");}ComThread.Release();}}
}//service
public interface IJacobPdfService {Integer EXCEL_TO_PDF_OPERAND = 0;Integer WORD_TO_PDF_OPERAND = 17;Integer PPT_TO_PDF_OPERAND = 32;/*** to pdf* @param sourcePath* @param targetPath*/void toPdf(String sourcePath, String targetPath);
}//get jacob
public interface IJacob {/*** getJacob* @return*/IJacobPdfService getJacob();
}//ppt factory
public class PPTFactory implements IJacob {@Overridepublic IJacobPdfService getJacob() {return new PPTApi();}
}

测试效果

转换前

转换后

可以看到效果还是不错的。

更多推荐

干货!java实现如何把PPT转PDF的两种方法,别再说你不会!(一)

本文发布于:2024-02-07 09:26:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755282.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:干货   两种   说你   别再   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!