2017-09-21 6 views
0

J'ai un projet Java existant dans lequel j'ai besoin de créer un fichier PDF. J'ai besoin de HTMLConvertor pour convertir HTML en PDF, puis utiliser PDFReader et PDFStamper pour ajouter du contenu aux différents champs (getAcroFields). Donc, j'utilise iText 5.5.12 et je suis incapable d'importer HTMLConverter. N'est-il pas compatible avec cette version? Je n'ai pas trouvé de documentation concernant les versions. J'ai essayé ce qui suit, mais cela n'a pas fonctionné. J'ai essayé d'ajouter iText 7 comme une nouvelle bibliothèque de Maven mais les versions jusqu'au 5.5.12 sont disponibles.Impossible d'importer HTMLConverter

Je suis nouveau à Intellij, alors comment puis-je installer iText, la version qui prend en charge HTMLConverter?

Merci d'avance!

Répondre

4

Vous écrivez:

J'ai essayé d'ajouter iText 7 comme une nouvelle bibliothèque de Maven mais les versions jusqu'à 5.5.12 sont disponibles.

C'est faux. Voir les instructions d'installation sur le site iText: https://developers.itextpdf.com/itext7/download-and-install-information/Java

copier-coller dans votre fichier POM:

<dependencies> 

    <!-- always needed --> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>kernel</artifactId> 
     <version>7.0.4</version> 
    </dependency> 

    <!-- always needed --> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>io</artifactId> 
     <version>7.0.4</version> 
    </dependency> 

    <!-- always needed --> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>layout</artifactId> 
     <version>7.0.4</version> 
    </dependency> 

    <!-- only needed for forms --> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>forms</artifactId> 
     <version>7.0.4</version> 
    </dependency> 

    <!-- only needed for PDF/A --> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>pdfa</artifactId> 
     <version>7.0.4</version> 
    </dependency> 

    <!-- only needed for digital signatures --> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>sign</artifactId> 
     <version>7.0.4</version> 
    </dependency> 

    <!-- only needed for barcodes --> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>barcodes</artifactId> 
     <version>7.0.4</version> 
    </dependency> 

    <!-- only needed for Asian fonts --> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>font-asian</artifactId> 
     <version>7.0.4</version> 
    </dependency> 

    <!-- only needed for hyphenation --> 
    <dependency> 
     <groupId>com.itextpdf</groupId> 
     <artifactId>hyph</artifactId> 
     <version>7.0.4</version> 
    </dependency> 

</dependencies> 

Pour pouvoir utiliser le pdfHTML add-on, vous devez ajouter ceci:

<repositories> 
    <repository> 
    <id>itext</id> 
    <name>iText Repository - releases</name> 
    <url>https://repo.itextsupport.com/releases</url> 
    </repository> 
</repositories> 

Ceci est temporaire car pour le moment pdfHTML est en code source fermé et non sur Maven Central, mais il deviendra bientôt open source, dans les prochaines semaines.

Vous aurez besoin d'une clé de licence pour pdfHTML, soit un essai de 30 jours ou achetés, puis vous ajoutez ceci à votre POM:

<dependencies> 


    <!-- pdfHTML --> 
    <dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>html2pdf</artifactId> 
    <version>1.0.1</version> 
    </dependency> 

    <!-- iText 7 License Key Library --> 
    <dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>itext-licensekey</artifactId> 
    <version>2.0.4</version> 
    </dependency> 

</dependencies> 
2

La classe HtmlConverter est un add-on à iText 7. ne fonctionne pas avec iText 5. En fait, iText a été réécrit de zéro pour rendre HtmlConverter possible. Voir la introduction to the HTML to PDF tutorial pour un aperçu historique:

En 2016, nous avons publié iText 7, une toute nouvelle version de iText qui était pas plus compatible avec les versions précédentes, mais qui a été créé avec pdfHTML à l'esprit. Beaucoup de travail a été consacré au nouveau framework Renderer . Lorsqu'un document est créé avec iText 7, un arbre de renderers et leurs enfants-renderers est construit. La mise en page est créée par en parcourant cet arbre, une approche qui est beaucoup mieux adaptée lorsque traitant de conversion HTML vers PDF. Les objets iText ont été entièrement repensés afin de mieux faire correspondre les balises HTML et de permettre aux styles de réglage "la manière CSS ".

Vous pouvez télécharger iText 7 en suivant les instructions de téléchargement: iText 7 for Java

En ce qui concerne pdfHTML, les premières versions ont été développées dans la source fermée après un long débat sur le fait que trop de développeurs tiers ne sont pas fidèle aux développeurs d'iText.Ils ont prétendu ne pas savoir que vous ne pouvez généralement pas utiliser le logiciel AGPL gratuitement dans une application distribuée (en binaire ou en mode SaaS) en tant que logiciel à source fermée. Il a été décidé de faire des ajouts de sources fermées pour créer une prise de conscience, et pour éviter que nous devions poursuivre (voir les diapositives 8 à 62 au this presentation). En attendant, nous avons reçu l'autorisation de créer pdfHTML open source (AGPL), mais il faudra attendre quelques semaines avant que la nouvelle version soit terminée. En attendant, vous pouvez vous inscrire pour obtenir un 30-day trial avant d'acheter une licence.

+0

Existe-t-il un autre moyen de lire un modèle HTML, d'ajouter des valeurs aux champs et de rendre le PDF? Puis-je utiliser XMLWorkerHelper? Cette sage réponse: https://stackoverflow.com/questions/35921388/how-to-convert-an-html-string-to-a-pdf-inputstream suggère un moyen. S'il vous plaît aider, je ne peux pas le comprendre. – raita

+0

Voir le [historique] (https://developers.itextpdf.com/content/itext-7-converting-html-pdf-pdfhtml). Vous pouvez utiliser XML Worker, mais (1.) ce n'est pas aussi complet que pdfHTML, (2.) vous voulez obtenir un support pour cela (et il semble que vous ayez besoin * de support), et (3.) il est aussi disponible en AGPL, donc vous pourriez avoir besoin d'une licence commerciale de toute façon si vous l'utilisez dans un contexte commercial. Puisque vous êtes * nouveau * chez iText, pourquoi choisiriez-vous délibérément d'utiliser une ancienne version ??? Cela n'a pas beaucoup de sens, n'est-ce pas? –