本文参考记一次文件从Word转为PDF(documents4j和aspose)
之前documents4j做的本地测试转pdf好好得,结果到服务器就是报错,然后百度了下就看到上面说的
两种方法:documents4j和aspose
最开始是用documents4j,在本地使用很方便,但是部署到LINUX上面之后,抛出异常,就看了下官方文档,documents4j是使用本地的MS Office应用做的文件格式转换,Linux没有对应的MS Office应用,所以直接就废除.后来改用aspose,在本地也是测试完成,没有问题,但是服务器上就是各种中文乱码(中文小方格),跟之前使用openoffice的乱码虽然不一样,但是还是乱码.不过最终解决了问题.
1.pom文件的导入
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>14.9.0</version>
<type>pom</type>
</dependency>
2.在之前的工具类升级
// word转pdf
public static void word2Pdf2(String multipartFile, String pdfFilePath) {
FileOutputStream fileOS = null;
try {
Document doc = new Document(multipartFile);
fileOS = new FileOutputStream(new File(pdfFilePath));
// 保存转换的pdf文件
doc.save(fileOS, SaveFormat.PDF);
}
catch (Exception e) {
System.out.println(e);
}
finally {
try {
if (fileOS != null) {
fileOS.close();
}
}
catch (IOException e) {
System.out.println(e);
}
}
}
关于乱码的问题是linux服务器没得对应的字体,需要把本地的字体打包到服务器当中即可,这块后面再记录下。
以上如果安装正常的话,就可以打包到服务器,正常下载附件材料了。