首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用XDocReport实现ODT到PDF的转换

用XDocReport实现ODT到PDF的转换
EN

Stack Overflow用户
提问于 2015-07-05 19:29:18
回答 1查看 2.1K关注 0票数 17

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

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

代码语言:javascript
复制
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包),并且我导出了以下包:

代码语言:javascript
复制
  <package name="com.lowagie.text"/>
  <package name="com.lowagie.text.factories"/>
  <package name="com.lowagie.text.pdf"/>
  <package name="com.lowagie.text.pdf.draw"/>

但是,我不能使用下面的代码来获得转换器:

代码语言:javascript
复制
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.

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

代码语言:javascript
复制
org.odftoolkit.odfdom.converter.core-1.0.5.jar
org.odftoolkit.odfdom.converter.pdf-1.0.5.jar

然而,我得到了:

org.osgi.framework.BundleException:捆绑包中未解决的约束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),并导出以下包:

代码语言:javascript
复制
   <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. 获得空转换器的原因是什么?如何修复它?
  2. XDocReport使用什么库来转换?
EN

回答 1

Stack Overflow用户

发布于 2015-07-08 14:38:22

我通常做的就是把这个库包装起来,这不是一个OSGi包。关于如何在eclipse中做到这一点的一个很好的教程是Lars Vogel的教程:How to create Eclipse plugins from jars

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31229868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档