我正在OSGI捆绑包中使用Docx4j 3.3.6,以便使用 docx4j-export-fo 而不是plutext将一些MS Word docx文档转换为pdf。不幸的是我在依赖方面挣扎。
首先,我不得不克服这里报告的错误:NoClassDefFoundError SerializerTrace ,但遇到了新的问题。
我的feature.xml包含以下依赖项: 不幸的是,这会在调用 Docx4J.toFO(foSettings,os,Docx4J.FLAG_EXPORT_PREFER_XSL); 时引发一个新问题。由于某种原因,似乎无法解析docx4j-export-fo。
<!-- Dependencies of export-fo -->
<bundle>wrap:mvn:org.docx4j/docx4j-export-fo/3.3.6</bundle>
<bundle>wrap:mvn:org.plutext/jaxb-xslfo/1.0.1</bundle>
<bundle>wrap:mvn:org.apache.xmlgraphics/fop/2.2</bundle>
<!-- Dependencies of docx4j -->
<bundle>wrap:mvn:org.docx4j/docx4j/3.3.6</bundle>
<bundle>wrap:mvn:commons-io/commons-io/1.3.1</bundle>
<bundle>wrap:mvn:org.apache.avalon.framework/avalon-framework-api/4.3.1</bundle>
<bundle>wrap:mvn:org.apache.avalon.framework/avalon-framework-impl/4.3.1</bundle>
<bundle>wrap:mvn:org.plutext/jaxb-svg11/1.0.2</bundle>
<!-- Dependencies of xmlgraphics-commons -->
<bundle>wrap:mvn:org.apache.xmlgraphics/xmlgraphics-commons/2.1</bundle>
<bundle>wrap:mvn:commons-logging/commons-logging/1.0.4</bundle>
<!-- Dependencies of xalan -->
<bundle>wrap:mvn:xalan/xalan/2.7.2</bundle>
<bundle>wrap:mvn:xalan/serializer/2.7.2</bundle>
<bundle>wrap:mvn:xerces/xercesImpl/2.9.1</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.fop/2.2_1</bundle>
<bundle>wrap:mvn:org.apache.xmlgraphics/batik-svg-dom/1.9</bundle>
<bundle>wrap:mvn:org.axsl.org.w3c.dom.svg/svg-dom-java/1.1</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/2.7.2_3</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bcel/5.2_4</bundle>
<bundle>wrap:mvn:xml-apis/xml-apis/1.3.04</bundle>
不幸的是,这引发了一个新问题。由于某种原因,似乎无法解析docx4j-export-fo。
找不到org.docx4j.convert.out.fo.FOExporterXslt;如果你想要的话, 将docx4j-export-FO添加到您的路径。 找不到/norg.docx4j.convert.out.fo.FOExporterXslt wrap_file__C__Users_myuser_.m2_repository_org_docx4j_docx4j_3.3.6_docx4j-3.3.6.jar [193]
org.docx4j.openpackaging.exceptions.Docx4JException: 找不到org.docx4j.convert.out.fo.FOExporterXslt wrap_file__C__Users_myuser_.m2_repository_org_docx4j_docx4j_3.3.6_docx4j-3.3.6.jar [193] 在org.docx4j.Docx4J.FOExporterXsltGetInstance(Docx4J.java:684) 在org.docx4j.Docx4J.getFOExporter(Docx4J.java:652) 在org.docx4j.Docx4J.toFO(Docx4J.java:596)
注意:当我在独立的maven项目中使用它时,我可以运行我的代码并转换文档