Java 使用POI API将页脚(带图像)添加到Word文档
我面临以下情况和问题: 我必须检索现有的.doc/.docx文件,并通过为包含图像和一些文本的文档的每一页添加页脚来修改它。我一直试图通过使用ApachePOIAPI来实现这一点,但到目前为止我运气不佳。尽管我已经搜索了很多例子和指南,但我找到的那些只会让我更加失望 由于价格昂贵,我放弃了Aspose,因此我相信POI API将是实现这一目标的唯一途径 我相信使用.doc最接近我的方法就是编写这段代码,但它只创建了没有文本的页脚部分,并使文档中的图像崩溃:Java 使用POI API将页脚(带图像)添加到Word文档,java,ms-word,apache-poi,doc,Java,Ms Word,Apache Poi,Doc,我面临以下情况和问题: 我必须检索现有的.doc/.docx文件,并通过为包含图像和一些文本的文档的每一页添加页脚来修改它。我一直试图通过使用ApachePOIAPI来实现这一点,但到目前为止我运气不佳。尽管我已经搜索了很多例子和指南,但我找到的那些只会让我更加失望 由于价格昂贵,我放弃了Aspose,因此我相信POI API将是实现这一目标的唯一途径 我相信使用.doc最接近我的方法就是编写这段代码,但它只创建了没有文本的页脚部分,并使文档中的图像崩溃: POIFSFileSystem fs
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("C:/testeF.doc"));
HWPFDocument doc = new HWPFDocument(fs);
//WordExtractor we = new WordExtractor(doc);
HeaderStories headerStories = new HeaderStories(doc);
Range rangeO = headerStories.getOddFooterSubrange();
if(rangeO == null)
rangeO = headerStories.getRange();
rangeO.insertAfter("Footer text from POI");
FileOutputStream newdoc = new FileOutputStream("C:/output.doc");
doc.write(newdoc);
newdoc.close();
请你们中的任何一位就如何解决这些问题提供一些建议?关于.docx文件(XWPF,而不是HWPF)的一些更新,我现在可以用一些文本创建一个页脚,或者在现有的页脚中插入一些文本,但是如果页脚已经存在,我只是将新文本附加到现有的页脚中,我找不到覆盖它的方法 例: 现有页脚=“测试” 执行以下代码后的页脚=“TestTest” 想要的结果=“测试”(重写第一个“测试”页脚文本
String text = "Test";
File docxFile = new File("C:/testeXWPF.docx");
FileInputStream finStream = new FileInputStream(docxFile.getAbsolutePath());
XWPFDocument doc = new XWPFDocument(finStream);
XWPFHeaderFooterPolicy policy = doc.getHeaderFooterPolicy();
if (policy == null) {
policy = new XWPFHeaderFooterPolicy(doc);
}
CTP ctP1 = CTP.Factory.newInstance();
CTR ctR1 = ctP1.addNewR();
CTText t = ctR1.addNewT();
t.setStringValue(text);
XWPFParagraph codePara = new XWPFParagraph(ctP1);
XWPFParagraph[] newparagraphs = new XWPFParagraph[1];
newparagraphs[0] = codePara;
policy.createFooter(policy.DEFAULT, newparagraphs);
FileOutputStream fileOut = new FileOutputStream(docxFile);
doc.write(fileOut);
fileOut.close();
目前,这只适用于docx文件(XWPF),但我必须找到一些方法对doc文件(HWPF)执行相同的操作
有什么提示吗?您所说的“使文档中的图像崩溃”是什么意思?你有例外吗?图像没有显示吗?我不好不解释,它们不再显示了。你知道是什么导致了这个问题吗?你尝试了什么版本的POI?如果它不是最新的,你是否尝试过升级,看看它是否是一个固定的问题?我正在使用最新的POI稳定版本(3.8)上面的示例不起作用,当我使用上面的代码修改代码时,得到的错误是xml内容中存在一些问题。