2015-01-17 175 views
0

如何将pdf或png内容插入到使用java的docx文件中?使用java将.pdf doc或.png图像内容插入到.docx文件

我以下列方式使用Apache POI API试过,但它不工作(它会产生一些垃圾doc文件):

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"); 
+0

.doc(Word文档)和.docx(Word XML文档)是两种非常不同的格式。看着你的代码,似乎你想生成后者(纠正我,如果我错了),所以我编辑你的问题相应。 – NotGaeL

+0

您能提供输入/输出示例以及您正在使用的库和版本吗?我已经用poi-ooxml 3.11和itextpdf 5.5.4和http://www.energy.umich.edu/sites/default/files/pdf-sample.pdf文件试过了你的代码,它似乎工作得很好(这里是完整的课程:http://pastebin.com/Q9ccH4CN和使用Maven构建具有这些依赖项目的pom文件:http://pastebin.com/6TXUiuQP) – NotGaeL

+0

我正在使用这个jar itextpdf-5.4。 4.jar和poi-ooxml-3.7.jar.My pdf包含d3.js.生成的图表,它生成空doc文件.thanks –

回答

2

你应该能够与POI做到这一点,你可以肯定使用docx4j做它。

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

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

相关问题