gpt4 book ai didi

java - XDocReport 使用 OSGI 将 ODT 转换为 PDF

转载 作者:太空狗 更新时间:2023-10-29 22:41:36 29 4
gpt4 key购买 nike

要开始使用 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

除了在类路径中,我还有 itext-4.2.1.jar(它不是 OSGi 包)并且我导出以下包:

  <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

但是,我得到:

org.osgi.framework.BundleException: Unresolved constraint in bundle org.odftoolkit.odfdom.converter.core [43]: Unable to resolve 43.0: missing requirement [43.0] osgi.wiring.package; (osgi.wiring.package=org.odftoolkit.odfdom.dom)

为了解决 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"/>

但是它没有帮助,我仍然得到 NullPointerException

这些是我的问题:

  1. 我得到 null 转换器的原因是什么以及如何修复它?
  2. XDocReport 使用 itext 或 odfdom 转换什么库?

最佳答案

我通常做的是获取库,它不是 OSGi 包,然后将其打包。关于如何在 eclipse 中执行此操作的一个很好的教程是 Lars Vogel 的教程:How to create Eclipse plugins from jars .

然后按照 Creating a jar File in Eclipse 将项目导出为 jar 文件教程,并在您的项目中使用它。

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

关于java - XDocReport 使用 OSGI 将 ODT 转换为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31229868/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com