本文参考记一次文件从Word转为PDF(documents4j和aspose)
之前documents4j做的本地测试转pdf好好得,结果到服务器就是报错,然后百度了下就看到上面说的
两种方法:documents4j和aspose
最开始是用documents4j,在本地使用很方便,但是部署到LINUX上面之后,抛出异常,就看了下官方文档,documents4j是使用本地的MS Office应用做的文件格式转换,Linux没有对应的MS Office应用,所以直接就废除.后来改用aspose,在本地也是测试完成,没有问题,但是服务器上就是各种中文乱码(中文小方格),跟之前使用openoffice的乱码虽然不一样,但是还是乱码.不过最终解决了问题.
<dependency> <groupId>com.aspose</groupId> <artifactId>aspose-words</artifactId> <version>14.9.0</version> <type>pom</type> </dependency>
// 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服务器没得对应的字体,需要把本地的字体打包到服务器当中即可,这块后面再记录下。
以上如果安装正常的话,就可以打包到服务器,正常下载附件材料了。