Comparer ces produits pour la génération PDF avec les exigences Java given inside: iText, Apache PDFBox ou FOP? [fermé]

il y avait des questions à ce sujet, mais pas récemment, et la technologie a dû aller de l'avant depuis.

Exigences:

  • génération de documents pdf basé sur le modèle prédéfini (je peux utiliser des formulaires pdf ou xsl-fo)
  • être capable de remplir des données textuelles
  • être capable de remplir des données graphiques (codes à barres générés)
  • possibilité de modifier le modèle pdf dans l'environnement de production sans correction (recompilation)
  • générer un fichier pdf à sauvegarder dans la base de données (sous forme de blob) et/ou imprimer
  • open source/libre

options des suppositions sont iText, PDFBox, FOP, et quoi d'autre? Ce sont des recommandations fondées sur les exigences ci-dessus?

37
demandé sur topchef 2011-07-08 18:23:30

7 réponses

  1. iText; de nos jours iText est une bibliothèque commerciale, la dernière version n'est plus gratuite
  2. FOP; j'ai beaucoup travaillé avec FOP. Il est assez gourmand en ressources (Java > XML > XSLT > PDF) et les PDF complexes deviennent un cauchemar (peut entraîner des XSLT avec 20k+ LoC)
  3. PDFBox; il semble être la meilleure solution bien que je ne travaille pas avec elle dans les grands projets
  4. N'a pas encore vérifié la soucoupe volante

pour conclure, je donnerais une essayer. Selon les exigences de votre code à barres, vous devrez peut - être insérer votre code à barres (police) dans le PDF ou distribuer la police à vos clients-prenez soin de ces questions.

29
répondu home 2011-07-08 14:33:43

j'ai fait un projet avec soucoupe volante http://code.google.com/p/flying-saucer/ qui est basé sur iText. Il est gratuit, facile à utiliser, a un grand soutien pour CSS, et a un bon open source.

6
répondu Brian Hoover 2011-07-08 14:27:18

je pense que tes critères peuvent être remplis avec les deux iText et Apahce FOp, mais ici vous avez quelques critères supplémentaires:

  • licence: FOP est basé sur la licence Apache et donc "amical" aussi pour un usage commercial
  • flexibility: une API de bas niveau comme iText est plus flexible que le FOP de haut niveau
  • outils Visuels: il y a un designer pour la FOP ici.
  • modèle de programmation: iText est basé sur la programmation API tandis que FOP nécessite un Modèle XSLFO et moins de programmation.
  • propriétaire vs standard. Apache FOP est basé sur un standard et donc indépendant du fournisseur, alors que iText est une API propriétaire
  • Performace: on dit que le FOP est plus intensif en informatique. cela dépend bien sûr de ce que vos fichiers PDF cibles sont. Ça n'a jamais été un problème pour moi en utilisant FOP.

Je n'utiliserais pas PDFBox, il est bon pour lire et modifier un fichier PDF existant mais créer un fichier à partir de zéro en utilisant PDFBox peut être beaucoup de travail.

6
répondu user986280 2011-12-10 16:13:50

je suis un peu partial (committer), mais je suggère iText.

générer des documents pdf à partir d'un modèle prédéfini (je peux utiliser des formulaires pdf ou xsl-fo)

formulaires PDF: cochez

être capable de remplir des données textuelles

Formulaires PDF, vérifier. Vous pouvez également effectuer la mise en page programmatique.

être capable de remplir des données graphiques (généré des codes à barres)

Vérifier. Donné un emplacement connu (qui pourrait être "l'emplacement de cette annotation particulière"), iText va dessiner un code à barres pour vous donné une symbologie et une valeur. Vous pouvez en déduire une liste de symbologies supportées depuis le constantes listées ici.

pour ce genre de chose, j'utilise des Champs de boutons avec une apparence "icône seulement". L '"icône" est une instruction de dessin PDF arbitraire, ou une image. les codes à barres d'iText vont créer un PdfTemplate vous pouvez remplir le bouton sans trop difficulté.

être capable de modifier le modèle pdf dans l'environnement de production sans Patcher (recompiler)

si toute votre mise en page est cuite dans le modèle PDF, et votre "code à barres va ici" info n'est pas codé dur dans la source, alors vous êtes d'or.

générer un fichier pdf à sauvegarder dans la base de données (sous forme de blob) et/ou imprimer

un PDF est un PDF est un PDF. Heck, avec un travail supplémentaire de votre part, vous pouvez utiliser iText pour construire des fichiers PDF/A. "A" est pour l'Archivage.

open source/libre

Open Source: Yes. v2.1.7 était la dernière version à utiliser la MPL. Depuis le 5.x, Tous les communiqués iText ont été sous L'AGPL. Oui, iText est passé de 2.1.7 à 5.0, afin de synchroniser la numérotation des versions entre iText et iTextSharp.

pas exactement" petit f " libre, mais la version 2.1.7 n'est pas si difficile à trouver. Otoh, c'est des choses orphelines, sans entretien. Être un consommateur informé.

3
répondu Mark Storer 2011-07-11 22:19:52

cela dépend comment exactement vous voulez créer le PDF aussi bien. FOP fonctionne à partir de XML, IText vous permet de créer de manière programmatique à partir de Java.

2
répondu mark stephens 2011-07-08 15:19:54

un autre pouce pour la soucoupe volante. Il fonctionne assez bien et est facile à utiliser si vous êtes familier avec html et css.

ce qui n'est pas vraiment documenté est la façon d'accéder à la fonctionnalité de code à barres intégrée d'iTexts. Cependant, cela peut être facilement accompli. J'ai mis en place un tutoriel ici: http://andreas.haufler.info/2012/12/generating-barcodes-in-pdfs-with-flying.html

1
répondu Andreas Haufler 2012-12-19 11:04:10

personne n'en parle BFO (Big faceless) si c'est commercial

-1
répondu JunLei 2017-10-06 11:10:42