PDF Generation Library for Java [fermé]

je sais que cela a déjà été demandé, mais je ne sais pas encore quel cadre de génération de PDF utiliser pour mon projet actuel.

mes exigences

  • génération à la volée de documents PDF (principalement les bons de commande, les factures)
  • basé sur Java
  • facile à disposition
  • devrait être open source
  • facile de changer de mise en page

beaucoup de gens semblent utiliser iText , mais j'ai quelques inquiétudes (en dehors de la licence modifiée) concernant la séparation des préoccupations: dans un contexte HTML, il y a un bon support MVC, où je m'en tiens habituellement à MVC ressort et FreeMarker pour séparer la logique et la mise en page. Je suis un peu inquiet qu'avec iText vous finissiez par mélanger le code et la mise en page beaucoup.

je suis conscient ,que Apache FOP pourrait être une solution ici, mais à nouveau Je trouve XSLT fastidieux de travailler avec et je lis que FOP peut être lent quand il s'agit de débit énorme de nombreux documents?

j'ai également considéré JasperReports , mais de mon point de vue cela est plus adapté pour les rapports contenant des ensembles de données tabulaires plutôt que des documents uniques tels que des factures qui exigent beaucoup de mise en page formatage?

une idée?

36
demandé sur Stefan Haberl 2010-10-21 13:40:32

6 réponses

essayez JasperReports. Utilisez iReport pour créer le .fichiers jrxml. JapserReports peut gérer des mises en page complexes. Pour les parties du rapport basées sur des requêtes différentes, jetez un oeil à l'utilisation de sous-rapports intégrés dans le rapport principal.

tout comme la solution de @Adrian Smith, cette approche séparera l'édition de la mise en page du rapport de la recherche de données.

19
répondu Janek Bogucki 2010-10-21 09:47:31

j'ai mis en œuvre une bonne solution où mon logiciel crée un format indépendant" pur "fichier XML, puis je donne à mon patron le XSD et il le met dans Altova StyleVision où il peut WYSIWYG rapports de conception basés sur des données qu'il extrait de la XSD. Ce logiciel produit un XSLT. Donc mon programme:

  • produit le format indépendant "XML pur
  • le transforme avec XSLT, dont la sortie est XML-FO
  • utiliser Apache FOP pour convertir le XML-FO en PDF

C'est une très bonne solution, signifie que je n'ai plus (en tant que programmeur) à changer mon code chaque fois que mon patron veut changer une couleur dans le rapport, mon travail est simplement de produire " pur " XML.

mise à jour: je dois également souligner que je donne à mon patron accès à notre dépôt SVN avec tortue SVN qui est suffisamment simple d'utilisation qu'il peut l'utiliser sans erreur. Il peut donc vérifier les fichiers XSLT directement dans SVN et lancer le build/deploy sans même avoir à m'interrompre dans mon travail. Évidemment, ce flux de travail ne fonctionne qu'avec des gens qui sont suffisamment précis pour ne pas faire d'erreurs, etc. mais il fonctionne très bien pour nous dans ce cas.

9
répondu Adrian Smith 2010-10-21 09:59:12

Docmosis vous permet de créer des modèles dans Word ou OpenOffice writer - séparer les préoccupations bien et la mise en page est alors dans les outils les plus familiers.

2
répondu Paul Jowett 2010-10-29 13:34:17

D'après mon expérience, je vous suggérerais de considérer la suite de Java PDF Libraries pour créer des rapports PDF,

  1. rapports dynamiques
  2. Apache PDF Box
  3. iText PDF
  4. PDF Clown

pour votre exigence, je pense que rapports dynamiques serait le bon choix. J'ai utilisé des rapports dynamiques de les 3 dernières années pour toutes mes exigences de rapport PDF. Avec une quantité de code très réduite, vous pouvez facilement créer un PDF vraiment dynamique. Dynamicreports est une couverture autour du rapport Jasper. Donc, il utilise le rapport Jasper à l'interne.

2
répondu Prasanna L M 2016-12-29 09:35:52

j'utilise JODConverter depuis un moment et je l'aime vraiment.

ce que nous faisons est d'utiliser JODReports pour générer dynamique OpenOffice.org documents (qui utilise en interne FreeMarker). Ensuite, nous convertissons ces documents en documents PDF en utilisant JODConverter.

on dirait beaucoup de travail, mais ce n'est vraiment pas le cas.

1
répondu Shervin Asgari 2010-10-21 09:45:55

une possibilité est

  • pour créer vos documents en format PostScript et ensuite
  • convertissez-le en pdf en utilisant ghostscript (ps2pdf)
1
répondu Curd 2010-10-21 09:58:29