Код: Выделить всё
org.docx4j.openpackaging.exceptions.Docx4JException: Exception exporting package
at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:108)
at org.docx4j.Docx4J.toFO(Docx4J.java:711)
at com.he.capdes.reportingService.utility.WordDocUtil.convertToPdf(WordDocUtil.java:522)
............
Caused by: java.lang.RuntimeException: jakarta.xml.bind.JAXBException: JAXB: Can't instantiate JAXB Reference Implementation
- with linked exception:
[java.lang.ClassNotFoundException: org.docx4j.jaxb.ri.NamespacePrefixMapper]
at org.docx4j.XmlUtils.marshaltoString(XmlUtils.java:941)
at org.docx4j.openpackaging.parts.JaxbXmlPart.getXML(JaxbXmlPart.java:254)
at org.docx4j.convert.out.common.Preprocess.process(Preprocess.java:79)
at org.docx4j.convert.out.common.Preprocess.process(Preprocess.java:135)
at org.docx4j.convert.out.common.AbstractWmlExporter.preprocess(AbstractWmlExporter.java:70)
at org.docx4j.convert.out.common.AbstractWmlExporter.preprocess(AbstractWmlExporter.java:32)
at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:63)
... 61 more
Caused by: jakarta.xml.bind.JAXBException: JAXB: Can't instantiate JAXB Reference Implementation
- with linked exception:
[java.lang.ClassNotFoundException: org.docx4j.jaxb.ri.NamespacePrefixMapper]
at org.docx4j.jaxb.NamespacePrefixMapperUtils.tryUsingRI(NamespacePrefixMapperUtils.java:85)
at org.docx4j.jaxb.NamespacePrefixMapperUtils.getPrefixMapper(NamespacePrefixMapperUtils.java:61)
at org.docx4j.XmlUtils.marshaltoString(XmlUtils.java:889)
... 67 more
Caused by: java.lang.ClassNotFoundException: org.docx4j.jaxb.ri.NamespacePrefixMapper
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1374)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1183)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:421)
at java.base/java.lang.Class.forName(Class.java:412)
at org.docx4j.jaxb.NamespacePrefixMapperUtils.tryUsingRI(NamespacePrefixMapperUtils.java:69)
... 69 more
< /code>
Я также попробовал реализацию Glassfish Jaxb и затмение Moxy. Кажется, ничего не исправляет ошибка. Ниже приведен pom.xml < /p>
org.apache.poi
poi-ooxml
4.0.1
org.apache.commons
commons-compress
org.docx4j
docx4j-core
11.5.4
org.apache.commons
commons-compress
org.docx4j
docx4j-export-fo
11.5.4
jakarta.xml.bind
jakarta.xml.bind-api
4.0.2
org.glassfish.jaxb
jaxb-runtime
4.0.2
org.apache.xmlgraphics
fop
2.9
commons-io
commons-io
2.15.1
org.apache.commons
commons-compress
1.26.1
org.docx4j
docx4j-core
11.5.4
org.docx4j
docx4j-export-fo
11.5.4
jakarta.xml.bind
jakarta.xml.bind-api
4.0.2
org.eclipse.persistence
org.eclipse.persistence.moxy
4.0.2
org.eclipse.persistence
org.eclipse.persistence.core
4.0.2
org.eclipse.persistence
org.eclipse.persistence.asm
9.1.0
org.eclipse.persistence
org.eclipse.persistence.antlr
2.7.16
< /code>
ниже мой код Java < /p>
public static byte[] convertToPdf(XWPFDocument document) throws Exception {
// Step 1: Write XWPFDocument to memory
ByteArrayOutputStream docxBaos = new ByteArrayOutputStream();
document.write(docxBaos);
// Step 2: Load into docx4j
ByteArrayInputStream docxInput = new ByteArrayInputStream(docxBaos.toByteArray());
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(docxInput);
// Step 3: Convert to PDF
try (ByteArrayOutputStream pdfBaos = new ByteArrayOutputStream()) {
FOSettings foSettings = Docx4J.createFOSettings();
foSettings.setWmlPackage(wordMLPackage);
Docx4J.toFO(foSettings, pdfBaos, Docx4J.FLAG_EXPORT_PREFER_XSL);
return pdfBaos.toByteArray();
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... 4j-in-java