Xdocreport convertir ODT en PDF avec OSGI

pour commencer à travailler avec XDocReport je veux convertir ODT en PDF.

toute mon application est OSGi. Alors j'ai installer les combinaisons suivantes:

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

en outre dans le chemin de classe j'ai itext-4.2.1.jar (il n'est pas OSGi bundle) et je exporter les paquets suivants:

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

Cependant, je ne reçois pas de convertisseur en utilisant le code suivant:

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.

Essayer de résoudre ce problème, j'ai ajouté les combinaisons suivantes:

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

Cependant, Je obtenir:

org.osgi.Framework.Exception pour les services groupés: contrainte non résolue dans les services groupés org.odftoolkit.odfdom.convertisseur.composante de base [43]: Impossible à régler 43,0: exigence manquante [43.0] osgi.câblage.paquet; (osgi.câblage.package=org.odftoolkit.odfdom.dom)

Pour résoudre le problème avec org.odftoolkit.odfdom.dom j'ai ajouté odfdom-java-0.8.7.jar classpath (il n'est également pas OSGi) et exporter le package suivant:

   <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"/>

cependant cela n'a pas aidé et je reçois toujours NullPointerException.

voici mes questions:

  1. Quelle est la raison pour laquelle j'obtiens le convertisseur null et comment le corriger?
  2. quelle bibliothèque XDocReport utilise itext ou odfdom pour la conversion?
17
demandé sur BartoszKP 2015-07-05 14:29:18

1 réponses

ce que je fais habituellement, c'est de prendre la bibliothèque, qui n'était pas un paquet OSGi, et de l'emballer. Un bon tutoriel sur la façon de faire ceci dans eclipse est le tutoriel de Lars Vogel: comment créer des plugins Eclipse à partir de jars.

exporter le projet en tant que fichier jar en suivant Création d'un Fichier jar dans Eclipse tutoriel, et de l'utiliser dans votre projet.

Maintenant, vous devriez avoir toutes vos dépendances résolues. Des étapes supplémentaires sont nécessaires dans le cas où vous avez dynamiques chargement de classe aussi.

3
répondu László-Róbert Albert 2015-07-08 06:38:21