通过java实现word转PDF

您所在的位置:网站首页 java代码word转pdf 通过java实现word转PDF

通过java实现word转PDF

2024-07-06 05:17| 来源: 网络整理| 查看: 265

介绍

用于java项目中解决word转pdf的需求,转换的效果跟调用的工具类、字体库、源文件(是wps还是microsoft保存的,格式版本等)、系统环境等多个因素相关,没有百分百完成的方法,只有不断尝试,选择适合的方法。以下介绍三个能实现该功能的方法。

一、通过Aspose实现

说明:毕竟是需要付费买Licnse才能去水印的,还是比较好用的,我这边使用的版本是20.12。感兴趣的同学可以去aspose-words-20.12-jdk17.jar中查看License.class的源码了解验证逻辑。网上也有文章介绍这个逻辑,但大多数都是21年之前的说明了,22年后相同版本的License验证有变动。老版本(18.6版本,当前写文章的时间2022-6-26)的Licene的认证逻辑跟网上的差别不大,但是方法名称是有变动的,不要一味照搬其他文章内容,还是需要多看多思考。

项目实践过程中遇到问题:低于19.11的版本(本人测试过18.6版本的)在保存pdf后,会出现行高自动增加的问题。 用于实现的jar包20.12和18.6的地址:https://download.csdn.net/download/ka3p06/85789859

相关依赖 AsposeJavaAPI Aspose Java API https://repository.aspose.com/repo/ com.aspose aspose-words 20.12 jdk17 核心代码 /** * 通过aspose 将word转pdf * * @param sourcePath 源文件地址 如 /root/example.doc * @param targetPath 目标文件地址 如 /root/example.pdf */ public static void asposeWordToPdf(String sourcePath, String targetPath) { LoadOptions opts = new LoadOptions(); // opts.setMswVersion(MsWordVersion.WORD_2016); opts.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINESE_PRC); Document doc = null; try { doc = new Document(sourcePath, opts); ParagraphFormat pf = doc.getStyles().getDefaultParagraphFormat(); pf.clearFormatting(); PdfSaveOptions options = new PdfSaveOptions(); // 文字和图像压缩 options.setExportDocumentStructure(true); options.setTextCompression(PdfTextCompression.FLATE); options.setImageCompression(PdfImageCompression.AUTO); // 接收修订 doc.acceptAllRevisions(); // 去掉批注 NodeCollection nc = doc.getChildNodes(NodeType.COMMENT,true); if (nc != null && nc.getCount() > 0) { for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3