【问题标题】:Insert .pdf doc or .png image content into a .docx file using java使用 java 将 .pdf doc 或 .png 图像内容插入 .docx 文件
【发布时间】: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


【解决方案1】:

使用 POI 应该可以做到,当然也可以使用 docx4j 做到。

Here's sample code 用于使用 docx4j 插入图像。

请注意,要“插入 PDF”,您需要 OLE 嵌入它。这更加困难,因为您需要将 PDF 转换为合适的二进制 OLE 对象。在 docx4j 中,用于执行此操作的帮助代码是商业企业版的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 2011-10-03
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    相关资源
    最近更新 更多