XDocReport使用OSGI将ODT转换为PDF?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (208)

要开始使用XDocReport,我需要将ODT转换为PDF。

我所有的应用程序都是OSGi。因此,我安装了以下包:

fr.opensagres.xdocreport.converter-1.0.5.jar
fr.opensagres.xdocreport.core-1.0.5.jar
fr.opensagres.xdocreport.document-1.0.5.jar
fr.opensagres.xdocreport.itext.extension-1.0.5.jar
fr.opensagres.xdocreport.template-1.0.5.jar

另外,我导出了以下软件包:

  <package name="com.lowagie.text"/>
  <package name="com.lowagie.text.factories"/>
  <package name="com.lowagie.text.pdf"/>
  <package name="com.lowagie.text.pdf.draw"/>

但是,我没有使用以下代码获得转换器:

Options options = Options.getFrom(DocumentKind.ODT).to(ConverterTypeTo.PDF);
IConverter converter = ConverterRegistry.getRegistry().getConverter(options);
in = new FileInputStream(new File("/Temp/Test1.odt"));
OutputStream out = new FileOutputStream(new File("/Temp/Test1.pdf"));
converter.convert(in, out, options); //HERE I GET NullPointerException - converter is null.

为了解决这个问题,我添加了以下包:

org.odftoolkit.odfdom.converter.core-1.0.5.jar
org.odftoolkit.odfdom.converter.pdf-1.0.5.jar

然而,我得到:

BundleException:bundle org.odftoolkit.odfdom.Converter.core中未解决的约束四十三无法解决43.0:缺少要求43.0...

解决问题org.odftoolkit.odfdom.dom我加了odfdom-java-0.8.7.jar到类路径(也不是OSGi)并导出以下包:

   <package name="org.odftoolkit.odfdom.doc"/>
   <package name="org.odftoolkit.odfdom.dom"/>
   <package name="org.odftoolkit.odfdom.dom.element.draw"/>
   <package name="org.odftoolkit.odfdom.dom.element.office"/>
   <package name="org.odftoolkit.odfdom.dom.element.style"/>
   <package name="org.odftoolkit.odfdom.dom.element.table"/>
   <package name="org.odftoolkit.odfdom.dom.style"/>
   <package name="org.odftoolkit.odfdom.incubator.doc.office"/>
   <package name="org.odftoolkit.odfdom.incubator.doc.style"/>
   <package name="org.odftoolkit.odfdom.pkg"/>
   <package name="org.odftoolkit.odfdom.dom.attribute.fo"/>
   <package name="org.odftoolkit.odfdom.dom.attribute.style"/>
   <package name="org.odftoolkit.odfdom.dom.attribute.table"/>
   <package name="org.odftoolkit.odfdom.dom.element"/>
   <package name="org.odftoolkit.odfdom.dom.element.svg"/>
   <package name="org.odftoolkit.odfdom.dom.element.text"/>

但是这没有帮助。

以下是我的问题:

  1. 我得到零转换器的原因是什么,以及如何修复它?
  2. XDocReport使用itext或odfdom进行转换的库是什么?
提问于
用户回答回答于

通过在Eclipse教程中创建jar文件,将项目导出为jar文件,然后在项目中使用它。

现在你应该已经解决了所有的依赖关系。如果你也有动态类加载,则需要额外的步骤。

扫码关注云+社区

领取腾讯云代金券