plutext / docx4j

JAXB-based Java library for Word docx, Powerpoint pptx, and Excel xlsx files
https://www.docx4java.org/
2.11k stars 1.2k forks source link

Issue loading Word 2013 docx (saved as "Strict Open XML" type) #321

Open passerbya opened 6 years ago

passerbya commented 6 years ago

3.docx This docx saved by Word 2013 as "Strict Open XML" type. When I tried to load up this docx, this exception was throw: org.docx4j.openpackaging.exceptions.Docx4JException: No relationship of type officeDocument at org.docx4j.openpackaging.PackageRelsUtil.getNameOfMainPart(PackageRelsUtil.java:27) ~[docx4j-6.0.1.jar:?] at org.docx4j.openpackaging.io3.Load3.get(Load3.java:159) ~[docx4j-6.0.1.jar:?] at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:523) ~[docx4j-6.0.1.jar:?] at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:379) ~[docx4j-6.0.1.jar:?] at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:270) ~[docx4j-6.0.1.jar:?] at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:250) ~[docx4j-6.0.1.jar:?] at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:172) ~[docx4j-6.0.1.jar:?] at com.ysj.util.Docx4jUtil.getLineByDocx(Docx4jUtil.java:258) [bin/:?] at com.ysj.DocTest.main(DocTest.java:35) [bin/:?]

It seems org.docx4j.openpackaging.PackageRelsUtil trying to find the MainPart relationship type as: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" or "http://schemas.microsoft.com/office/2006/relationships/graphicFrameDoc" but what appears in the relationship specification for this docx is: "http://purl.oclc.org/ooxml/officeDocument/relationships/officeDocument"

plutext commented 6 years ago

Thanks for the report. We don't yet support "Strict", as you've discovered.

Could be added (though its little used in the real world as of now, so far as I'm aware), and we'd accept a pull request which adds it.

passerbya commented 6 years ago

ok, thx for your reply.