POI 3.9如何使用ooxml-schemas-1.1修复标头中的xml解析错误?

时间:2019-07-08 12:30:06

标签: java python apache-poi jython

我正在尝试使用Apache POI 3.9 jar在Jython中创建docx文档。 在此docx中,我必须创建一个标头,然后向集合中添加另一个jar:“ ooxml-schemas-1.1.jar”,该版本与POI 3.9兼容。

在执行过程中,一切都正常,但是当我打开docx时,它显示了一个错误: “ xml解析错误”

我已经尝试升级POI,并且他可以工作。 不幸的是,我必须保留3.9版本。

因此,在您的旧版本中,我需要您的帮助。

import sys

sys.path.append("true_poi\\ooxml-schemas-1.1.jar")
sys.path.append("true_poi\\poi-3.9.jar")
sys.path.append("true_poi\\poi-ooxml-3.9.jar")
sys.path.append("true_poi\\poi-ooxml-schemas-3.9.jar")
sys.path.append("true_poi\\xmlbeans-2.3.0.jar")
sys.path.append("true_poi\\dom4j-1.6.1.jar")

from org.apache.poi.xwpf.usermodel import XWPFDocument
from org.apache.poi.xwpf.usermodel import XWPFParagraph
from org.apache.poi.xwpf.usermodel import XWPFRun
from org.apache.poi.xwpf.model import XWPFHeaderFooterPolicy
from org.openxmlformats.schemas.wordprocessingml.x2006.main import CTP
from java.io import File
from java.io import FileOutputStream

doc = XWPFDocument()
sectPr = doc.getDocument().getBody().addNewSectPr()
policy = XWPFHeaderFooterPolicy(doc, sectPr)

ctpHeader = CTP.Factory.newInstance()
ctrHeader = ctpHeader.addNewR()
ctHeader = ctrHeader.addNewT()
ctHeader.setStringValue("HEADER")
headerPara = XWPFParagraph(ctpHeader, doc)
parsHeader = []
parsHeader.append(headerPara)
policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader)

para = doc.createParagraph()
run = para.createRun()
run.setText("BODY")

out = FileOutputStream(File("mypvc.docx"))
doc.write(out)
out.close()

0 个答案:

没有答案