此文章为2016-09-20 17:19:18,本人于网易博客所写,今日搬迁到此。
今天必须要写篇日志记录此刻的心情,因为在搜集众多资料后,终于实现了这一功能。
最近在做的一个项目需要在网页中播放PPT文件,思考良久并没有想出很好的解决方案,最后决定先将PPT文件转换成PDF文件,再嵌入网页中(具体怎么实现在网页中播放PDF文件,网上有很多解决方案,在这里就不再赘述)。废话不多说,直接进入正题。
1、安装openoffice并启动服务
(吐槽:同样是在网上Ctrl+C,但看到很多文章一点都不负责,少了很多东西也不经过自己亲身实践就Ctrl+V粘贴上来)
亲身使用的openoffice(4.1.2)地址: https://download.csdn.net/download/u010188178/10741813
用命令启动服务:
cd C:\Program Files (x86)\OpenOffice 4\program (根据自己安装目录决定)
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
2、依赖jodconverter包
(吐槽:相信认真读此文章的朋友都技术牛人,因此小弟也不说太多的废话,尽量整得干一点)
用maven依赖:
<dependency>
<groupId>com.github.livesense</groupId>
<artifactId>jodconverter-core</artifactId>
<version>1.0.5</version>
</dependency>
3、编码实现转换方法
package com.server.common.util;
import java.io.File;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.ExternalOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeConnectionProtocol;
import org.artofsolving.jodconverter.office.OfficeManager;
public class PPT_2_PDF_Util {
/**
* ppt转pdf
* @param inputFile 输入文件
* @param outputFile 输出文件
* @author ServerZhang
* @date 2016年9月20日
*/
public static void ppt2PDF(File inputFile, File outputFile) {
// 如果目标路径不存在, 则新建该路径
if (!outputFile.getParentFile().exists()) {
outputFile.getParentFile().mkdirs();
}
// convert
ExternalOfficeManagerConfiguration configuration =
new ExternalOfficeManagerConfiguration();
configuration.setConnectionProtocol(OfficeConnectionProtocol.SOCKET);
configuration.setPortNumber(8100);
OfficeManager officeManager= configuration
.buildOfficeManager();
OfficeDocumentConverter converter =
new OfficeDocumentConverter(officeManager);
converter.convert(inputFile, outputFile);
}
}
4、写个简单的测试代码
File inputFile = new File("D:/PPT_test/欧洲杯球服配色.pptx");
File outputFile = new File("D:/PPT_test/欧洲杯球服配色.pdf");
PPT_2_PDF_Util.ppt2PDF(inputFile, outputFile);