使用Docx4j时在OSGI软件包中找不到FOExporterXslt

时间:2018-06-25 10:09:55

标签: java pdf-generation osgi apache-karaf docx4j

我正在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项目中使用它时,我可以运行我的代码并转换文档

0 个答案:

没有答案