大家好,又见面了,我是你们的朋友全栈君。
文章时间:2020-12-5 16:38:54
解决问题:java实现word转pdf
目前发现可用的实现方式有两种,一种是使用e-iceblue的免费版api,此方法最为简单但存在限制,导出页数不能超过三页。
另一种是使用openoffice,但较上一种方法麻烦一些,需要安装openoffice的软件,但没有导出限制,请根据自身需求自行选用。
方式一 e-iceblue的免费版api
官方文档https://www.e-iceblue.cn/spiredocforjavaconversion/java-convert-word-to-pdf.html
第一步 添加maven依赖及远程仓库
…
e-iceblue
spire.doc.free
3.9.0
…
…
com.e-iceblue
http://repo.e-iceblue.cn/repository/maven-public/
…
第二步 编写后台代码
参考代码如下
// 模板文件路径
String templateUrl = “C:\\Users\\dev\\Desktop\\template.docx”;
// word文件生成路径
String generateUrl =”C:\\Users\\dev\\Desktop\\generate.pdf”;
Document document = new Document();
document.loadFromFile(generateUrl);
//保存生成的pdf
document.saveToFile(generateUrl, FileFormat.PDF);
方式二 openoffice转换
官方文档:http://www.openoffice.org/why/index.html
openoffice安装教程:http://wiki.nooss.cn/archives/405.html
第一步 添加maven依赖
需注意:此处引用的版本为2.2.1版本,不支持.docx文件的转换,若需要转换.docx文件需2.2.2及以上版本,但maven库没有此版本需自行下载导入jar包
com.artofsolving
jodconverter
2.2.1
第二步 编写后台代码
// word文件路径
String sourceFile = “C:\\Users\\dev\\Desktop\\template.docx”;
// 生成的pdf路径
String destFile = “C:\\Users\\dev\\Desktop\\generate.pdf”;
try {
File inputFile = new File(sourceFile);
// 如果目标路径不存在, 则新建该路径
File outputFile = new File(destFile);
if (!outputFile.getParentFile().exists()) {
outputFile.getParentFile().mkdirs();
}
// 连接到运行在端口8100上的OpenOffice
OpenOfficeConnection connection = new SocketOpenOfficeConnection(
“127.0.0.1”, 8100);
connection.connect();
// 文件转换
DocumentConverter converter = new OpenOfficeDocumentConverter(
connection);
converter.convert(inputFile, outputFile);
// 关闭连接
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133424.html原文链接:https://javaforall.cn