【发布时间】:2015-03-15 23:17:15
【问题描述】:
如何使用 java 将 pdf 或 png 内容插入 docx 文件?
我尝试通过以下方式使用Apache POI API,但它不起作用(它会生成一些垃圾文档文件):
XWPFDocument doc = new XWPFDocument();
String pdf = "D://capture1.pdf";
PdfReader reader = new PdfReader(pdf);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
TextExtractionStrategy strategy = parser.processContent(i,new SimpleTextExtractionStrategy());
String text = strategy.getResultantText();
XWPFParagraph p = doc.createParagraph();
XWPFRun run = p.createRun();
run.setText(text);
run.addBreak(BreakType.PAGE);
}
FileOutputStream out1 = new FileOutputStream("D://javadomain1.docx");
doc.write(out1);
out1.close();
reader.close();
System.out.println("Document converted successfully");
【问题讨论】:
-
.doc(Word 文档)和 .docx(Word XML 文档)是两种截然不同的格式。查看您的代码,您似乎想要生成后者(如果我错了,请纠正我),所以我相应地编辑了您的问题。
-
您能否提供输入/输出示例以及您正在使用的库和版本?我已经用 poi-ooxml 3.11 和 itextpdf 5.5.4 以及energy.umich.edu/sites/default/files/pdf-sample.pdf 的文件尝试了你的代码,它似乎工作得很好(这是完整的类:pastebin.com/Q9ccH4CN 和用于构建项目的 pom 文件使用 Maven 的依赖项:pastebin.com/6TXUiuQP)
-
我正在使用这个 jars itextpdf-5.4.4.jar 和 poi-ooxml-3.7.jar。我的 pdf 包含在 d3.js 中生成的图表。它会生成空 doc 文件。谢谢
标签: java pdf png apache-poi docx