我正在尝试使用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()