Java Word转PDF

Word转PDF在Java库里面有好几种解决方案,但要么依赖本地环境,要么转换效果不好。

这里介绍一个纯Java兼容性非常好的解决方案:Aspose.Word

Aspose是一整套文档转换解决方案,支持Word、PowerPoint、Excel等等文档相互转换和操作。

我只用过Word转PDF,所以这里只介绍Word转PDF,直接上代码:

//doc路径
Document document = new Document("document.doc");
//pdf路径
File outputFile = new File("document.pdf");
//操作文档保存
document.save(outputFile.getAbsolutePath(), com.aspose.words.SaveFormat.PDF);

是不是好简单?除了Java API,它还提供了云API,各种语言都可以使用,很方便: http://www.aspose.com/cloud/total-api.aspx

不过这套工具是要付费的,所以真的需要使用,请付费吧。

另外,在Linux服务器上转换可能会出现转换乱码,表现为方格。

这个乱码问题是由于Linux服务器的Java环境上没有安装中文字体导致,除了给操作系统安装字体以外,还可以使用Aspose提供的字体API来解决:

//设置一个字体目录
FontSettings.setFontsFolder("/home/server/fonts", false);

//设置多个字体目录
FontSettings.setFontsFolders(new String[] {"/home/server/fonts1", "/home/server/fonts2"}, true);