java - 使用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();
解决方案
您可以通过将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
推荐阅读
- c# - 如何切换力量
- c# - 如何在运行时从用户分配键盘快捷键,WPF MVVM
- javascript - React Native Share 未在 iOS 上显示应用列表
- git - 如何使用 Jenkins 在 Azure 上的 linux 虚拟机中将源代码部署为应用程序?
- javascript - jQuery UI 自动完成不会更新 ngModel
- c++ - 为什么计算每个矩阵列比使用矩阵乘积更快?
- react-native - 如何使用 react-native-router 将数据从一个屏幕传递到另一个屏幕
- c# - 在不同的集合中按顺序运行测试
- python - TypeError:字符串索引必须是整数..有什么问题
- asp.net - ASP.NET MVC5 - 返回部分视图后不执行 RenderPartial()