首页 > 解决方案 > 使用Docx4j将.docx逐页转换为.png,将其他格式转换为png

问题描述

我正在使用 docx4j 6.1.2 和 docx4j export fo 8.1.3。实际上,转换后我只有 .docx 文档的第一页。如何逐页进行?

我可以用 docx4j 做同样的事情来转换 .doc 和 .rtf 吗?

WordprocessingMLPackage wordMLP = Docx4J.load(new File(filepath));
    OutputStream os = new FileOutputStream(new File(fileName + ".png"));
    FOSettings settings = Docx4J.createFOSettings();
    settings.setWmlPackage(wordMLP);
    settings.setApacheFopMime(MimeConstants.MIME_PNG);
    Docx4J.toFO(settings, os, Docx4J.FLAG_NONE);
    os.close();

标签: javaconvertersdocx4j

解决方案


您可以通过将docx转换为pdf然后逐页获取png来实现它

您可以为此目的使用 pdfbox。pdfbox 是一个可用于读取/操作 pdf 文件的库。更多关于 pdfbox https://pdfbox.apache.org/

逐页将 pdf 转换为 png 的示例代码 - https://stackoverflow.com/a/23327024/5202960

使用 pdf 框库,您也可以确定图像的质量。

关于 .rtf 和 .doc 转换,我不认为你会使用 docx4j 来实现。http://www.docx4java.org/forums/docx-java-f6/open-rtf-with-docx4j-t2067.html


推荐阅读