• java 使用documents4j将XML转为pdf文件的方式


     1.背景:

    通过spire.doc.free将word转换成PDF时存在缺陷:只能获取前3页。获取全文另外需支付费用。

    2.解决办法

    使用documents4j,documents4j会保留原word文件中更多的样式,如修订模式下的差异化字体颜色、文档右侧修订记录等。

    3.具体步骤

    1.引入Pom

    1. <dependency>
    2.     <groupId>com.documents4j</groupId>
    3.     <artifactId>documents4j-local</artifactId>
    4.     <version>1.0.3</version>
    5. </dependency>
    6. <dependency>
    7.     <groupId>com.documents4j</groupId>
    8.     <artifactId>documents4j-transformer-msoffice-word</artifactId>
    9.     <version>1.0.3</version>
    10. </dependency>

    2.  xml2pdf方法如下,xmlpath是xml文件地址,pdfPath是生成的pdf地址。

    1. public void xml2pdf(String xmlPath,String pdfPath) throws IOException {
    2. // 参考:https:
    3. //blog.csdn.net/ka3p06/article/details/125476270 通过documents4j实现
    4. InputStream docxInputStream = null;
    5. OutputStream outputStream = null;
    6. try {
    7. // 原word地址
    8. docxInputStream = new FileInputStream(xmlPath);
    9. // 转换后pdf生成地址
    10. outputStream = new FileOutputStream(pdfPath);
    11. IConverter converter = LocalConverter.builder().build();
    12. converter.convert(docxInputStream)
    13. .as(DocumentType.XML)
    14. .to(outputStream)
    15. .as(DocumentType.PDF).execute();
    16. // 关闭
    17. converter.shutDown();
    18. // 关闭
    19. outputStream.close();
    20. // 关闭
    21. docxInputStream.close();
    22. } catch (Exception e) {
    23. System.out.println("[documents4J] word转pdf失败:" + e.toString());
    24. } finally {
    25. if (outputStream != null) {
    26. outputStream.close();
    27. }
    28. if (docxInputStream != null) {
    29. docxInputStream.close();
    30. }
    31. }
    32. }

    4. documents4j也可以把word转为pdf

    只需改如下

    converter.convert(docxInputStream)
                        .as(DocumentType.DOCX)
                        .to(outputStream)
                        .as(DocumentType.PDF).execute();
  • 相关阅读:
    python使用hashlib库运行MD5哈希算法
    Java 并发编程学习总结
    SpringBoot初级开发--服务请求(GET/POST)所有参数的记录管理(8)
    【杂谈】快来看看如何使用LGMT这样的蜜汁缩写来进行CodeReview吧!
    C#开源、功能强大、免费的Windows系统优化工具 - Optimizer
    13、学习MySQL 分组
    视频AI分析定时任务思路解析
    ci-pipeline-demo
    浅谈矩阵 学习笔记
    Jupyter notebook无法显示pyecharts
  • 原文地址:https://blog.csdn.net/zhaolulu916/article/details/136188868