POI 3.9 Как исправить ошибку синтаксического анализа xml в заголовке с помощью ooxml-schemas-1.1? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь создать документ DOCX в Jython, используя Apache POI 3.9 jars.В этом документе я должен создать заголовок и добавить еще один jar в коллекцию: "ooxml-schemas-1.1.jar", версия, совместимая с POI 3.9.

Everythink отлично работает при выполнении, но когда я открываю 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()

...