12
votes

Génération dynamique PDF à partir du modèle

J'ai une obligation de pouvoir générer des PDF dans notre application (ASP.NET). Nous devons répondre aux exigences suivantes:

  1. Le texte sera largement dynamique et doit être ajouté de manière programmative.

  2. Idéalement, nous aimerions baser ces documents générés sur les modèles PDF fournis par nos concepteurs.

  3. Certaines des sections / pages peuvent être visibles ou ne peuvent pas être visibles selon certaines conditions - idéalement, nous aimerions que le contenu soit "débiter" vers le haut pour remplir l'espace lorsque quelque chose est supprimé.

  4. Certaines pages peuvent avoir besoin de répéter, en fonction de certaines conditions.

  5. Certains des modèles PDF seront hors de notre contrôle (nous remplissons des formulaires de demande fournis par des tiers), afin de pouvoir lire dans un PDF vierge et de remplir ce serait bon.

    J'ai regardé itexthaparpe et il semble faire la plupart de ces choses (c'est-à-dire que je peux prendre un PDF, le modifier pour inclure des champs de formulaire dans lesquels nous devons remplir des données, puis utiliser itextShaRP pour lire cela dans un modèle et Remplissez les données), cependant, je ne suis pas sûr de savoir comment aller à propos de potentiellement cacher des sections entières et / ou répéter des pages.

    Ce que je cherche ici, c'est un peu des conseils de quiconque ont été dans une situation similaire.


    Petite mise à jour ici, nous sommes allés avec ItextShaparp - c'est un outil puissant, mais prend un peu d'apprentissage, mais il est rapide, léger et précisément ce que nous voulons que ce soit.

    Cependant ...

    Je voudrais souligner que la dernière version n'est plus vraiment gratuite (comme dans la bière) - la licence ne permet pas une utilisation commerciale. En conséquence, nous avons maintenant une version sous licence, mais elle n'est pas choquante bon marché (et ils ne publient pas de liste de prix).


1 commentaires

Voir cette Article sur Rapports basés sur un modèle. Ceci est le HTML au convertisseur PDF dont ils parlent.


5 Réponses :


5
votes

Il existe divers composants commerciaux pour le faire. Regardez: PDFLIB ( http://www.pdflib.com/ ), composants hauts ( http://www.tallComponents.com/ ) etc

J'ai utilisé des produits à partir de composants de grande taille et je peux les recommander.

Certains autres sont beaucoup plus chers.

ITEXTSTHARP Comme vous l'avez mentionné est assez bon et peut être utilisé pour ajouter / supprimer des pages externes, vous pouvez masquer les pages complètes en les recommandant ou en les remplaçant avec des pages de placement. ITEXT peut utiliser des fichiers PDF existants ou créer des pages vierges.

De mon expérience personnelle, je viens de déposer des images et du texte sur des pages existantes et ajouté des pages générées par un outil de rapport lorsque des données tabulaires sont requises.

htth


2 commentaires

Mmm. Mais si le contenu à masquer est une section d'une page, cela devient un peu plus difficile.


Vous pouvez ajouter une page qui ne contient pas cette section, puis ajustez de manière programmative une autre page (ou les deux), puis remplacez-la lorsque vous en avez besoin?



0
votes

Je envisagerais d'utiliser la création de fichiers HTML à partir de modèles et de les transformer en PDF avec Prince . Prince est très flexible et craquant des fichiers HTML à partir de modèles est beaucoup plus facile, puis créant des fichiers PDF directement.


2 commentaires

Nous faisons actuellement quelque chose comme ceci (à l'aide d'ActivePDF) et c'est un peu sur le côté lent.


Nous proposons une licence gratuite pour une utilisation non commerciale de Prince. Cette licence ajoute un petit logo à la première page des fichiers PDF générés.



5
votes

J'utiliserais iTextShaRP. Je crée toutes sortes de fichiers PDF basés sur différents modèles et IText a fonctionné le meilleur pour moi. C'est un contrôle très puissant et peut manipuler des fichiers PDF à peu près n'importe quelle manière.

Je ne suis pas sûr que ITEXT puisse gérer votre troisième exigence. Je sais que cela peut créer un PDF à partir d'un fichier HTML. Peut-être utiliser ce que Tomas a posté et crée le PDF avec IText.


1 commentaires

ITEXTSHARP n'applique pas le CSS ... Je veux faire une table avec la frontière, mais cela ne fonctionne pas ... aussi de la couleur de fond, ne fonctionne pas ...



2
votes

Pourquoi besoin des fichiers de modèle au format PDF? Avec la dynamique que vous souhaitez que ce soit un mauvais format pour le modèle de rapport. Utilisez un logiciel de rapport qui génère également en tant que PDF. Vos concepteurs peuvent créer les modèles très faciles avec une interface graphique. Vous trouverez de nombreuses solutions de rapport ici sur Stackoverflow.


0 commentaires

1
votes

Nous avons utilisé http://www.dynamicpdf.com/ , pour des projets comme celui-ci et ont été satisfaits du résultat. Ils ont un outil PDF WYSIWYG Designer que vous pouvez utiliser pour construire le modèle de mise en page de votre PDF, ainsi que l'outil pour fusionner le modèle avec vos données basées sur le champ de champ en colonne. Cela permet d'économiser des heures de codage de la main chaque élément d'un PDF donné. Il prend en charge les en-têtes et les pieds de page de page et traite la complexité des pauses de page.


1 commentaires

Ce n'est pas gratuit