PHP PDF modèle de bibliothèque avec la sortie au format PDF?
Est-il PHP PDF library, qui peut remplacer les variables de substitution dans un PDF, ODT ou DOCX document, et de générer un fichier PDF comme le résultat final, sans vissage jusqu'à la mise en page?
Exigences:
-
Besoins pas de 3ème partie de service web
-
Capacité à exécuter sur l'hébergement web mutualisé serait l'idéal (pas de binaire installations /packages requis)
Vous l'esprit, d'une bibliothèque qui est capable de charger un fichier PDF existant et insérer du texte par programmation à une position spécifique est pas assez pour mon cas d'utilisation.
En ce qui concerne ma recherche, il n'y a pas de bibliothèque qui peut faire ceci:
-
TCPDF ne peut que générer des documents à partir de zéro
-
FPDI pouvez lire un fichier PDF existant modèles, mais ne peut ajouter du contenu par programmation (pas de variable de modèle de remplacement)
-
Il existe différents DOCX/ODT des bibliothèques de modèles là-bas, mais ils n'ont pas de sortie PDF
PHPDOCx prétend être en mesure de faire exactement ce dont j'ai besoin - mais ils ne proposent pas une version d'essai et je ne vais pas acheter un chat dans un sac, surtout lorsqu'il semble y avoir aucun autre produit sur le web qui fait cela. J'ai du mal à croire qu'il peut le faire sans problèmes - si vous avez réussi à faire cela en utilisant le produit, merci de laisser une ligne ici.
Suis-je surplombant quelque chose?
Est-il un moyen de faire cela en utilisant les formulaires en PDF? Je suis de la création de la source de documents OpenOffice 3.
Je pourrai peut-être utiliser les commandes Linux (pdftk
est disponible, par exemple, d'essayer immédiatement.)
Mise À Jour: *Argh!* J'ai été appelé au bureau et à la générosité expiré dans l'intervalle. Le démarrage d'une nouvelle bounty: aussi loin Que mes tests de montre, pas de solution fonctionne parfaitement pour moi encore.
Mise à jour II: je vais être à la recherche de l'pdftk approche bientôt, mais je suis aussi de commencer un bounty pour un tour de plus de recueillir des commentaires. Cette question a 1300 points de rep dans les primes, doit être une sorte de record 🙂
- La taille de l'espace réservé variables sont en jeu? Si c'est juste des mots simples (ou < 30 octets) et non pas de longs paragraphes, puis placeholer préparation et une recherche simple et remplacer approche permettrait de le faire.
- ils peuvent être multi-lignes, paragraphes, mais je pouvais voir qu'ils sont répartis dans des lignes séparées.
- Est-il une raison pourquoi vous avez besoin d'analyser des espaces réservés? Que faire si il y avait juste de l'espace dans le PDF pour le contenu généré. Probablement ne fonctionnera pas si vous ne connaissez pas la longueur du contenu.
- pourquoi n'utilisez-vous pas un bon VPS (www.lowendbox.com) et de supprimer la limite de ne pas pouvoir installer les paquets et les bibliothèques? Qui aurait facilité les choses. Est-il une raison pour l'hébergement mutualisé?
- c'est pour un client, et je veux garder la technique et de la comptabilité frais généraux aussi petite que possible. Un VPS aurait pour effet de rendre cet facile mais l'ajout d'un nouveau paramètre de l'équation (Un serveur besoins de l'administration, de l'installation, en continu de mises à jour de sécurité, .... Il peut être alors que le site a besoin de l'PDF services est toujours en place...) que je veux éviter à tout prix
- Pekka, si le fichier PDF est un gros de remplacement de texte prend trop de temps, ne sera pas le serveur de tuer votre script PHP. Vous êtes mieux de déchargement de la tâche à un démon en cours d'exécution sur le serveur.
- Petite remarque, FPDI peut s'asseoir sur le dessus de TCPDF ainsi que FPDF IIRC, donc, par l'intermédiaire de ce TCPDF est capable de travailler avec des modèles dans le FPDI de la mode.
Vous devez vous connecter pour publier un commentaire.
Pekka,
J'ai regardé dans ce précédemment, je pense que vous pouvez utiliser pdftk (un utilitaire de ligne de commande), de remplir un formulaire PDF à l'aide de FDF/XFDF fichiers de données, que vous pouvez facilement générer à partir de l'intérieur de PHP. C'était la meilleure option que j'ai vu jusqu'à présent, mais il se peut bien être une bibliothèque native.
pdftk est très utile en général, mérite un coup d'œil.
Mise à jour: Ont un coup d'oeil ici: http://php.net/manual/en/book.fdf.php
pdftk
cours d'exécution commun à un hébergeur. Il semble idéalCe n'est pas très pratique, mais pour l'exhaustivité: Si vous avez déjà un ODT modèle, alors vous pouvez très bien conserver en tant que modèle. La modification de l'OpenDocument content.xml et de remplacer les espaces réservés y est assez simple. Si oui, vous pouvez utiliser
unoconv
oupyodconverter
de transformer le ODT en un fichier PDF final.Très évidemment, cela nécessite une installation de OpenOffice (UNO et Écrivain), sur le serveur web. Et, évidemment, pas tous les hébergeur serait aller avec ça! haha. Même si c'est simple sur n'importe quel Debian ou Fedora de l'installation. La vitesse d'exécution ne serait probablement pas être stellaire soit. Mais alors il pourrait être le plus propre approche, depuis OOo régit à la fois les formats de façon mieux que n'importe quelle classe PHP pourrait jamais.
exec()
, ce qui est tout à fait probable ne sont pas disponibles sur un ordinateur hôte partagé.Vous navez pas faire gratuit une exigence, donc, je vais suggérer LiveDocX. Ils ont une option gratuite, mais il ne répond pas à vos pas une 3ème partie exigence, ce qui signifie que vous auriez à server-licence).
Il est aussi ZF paquet pour cette:
Avez-vous envisagé d'utiliser quelque chose comme XSL:Objets de mise en forme (XSL:FO)? Ce sont des documents XML qui sont traitées et transformées en fichiers Pdf. Faire de chaîne - ou, mieux, dans les DOM - remplacements à l'intérieur qui doit être assez simple. Il prend en charge l'incorporation des images, des liens, des annotations, etc.
Ce n'est pas PHP mais il y a un certain nombre de PHP wrappers pour vous, avec les moyens de l'utiliser via exec, etc. Pas l'idéal, mais il prend soin de le modèle de partie complètement. Pour plus d'info: http://techportal.inviqa.com/2009/12/16/transforming-xml-with-php-and-xsl/
Il y a une implémentation est disponible comme un projet Apache - http://xmlgraphics.apache.org/fop/
Ce ne sera pas répondre à vos "pas de binaire" le mandat, mais PDFlib a un beau système de template à l'aide de "blocs", qui sont PDFlib spécifiques des métadonnées, vous pouvez "tirer" en un fichier PDF avec Acrobat plugin, puis par programmation à remplir au moment de l'exécution avec un seul appel de fonction par bloc. Les blocs peuvent être du texte (avec des pseudo-html pour la simple mise en forme du texte de face à la police/taille/couleur), des images (plus tout ce qui peut être affiché dans un PDF), et les Pdf eux-mêmes, de sorte que vous pouvez incorporer l'ensemble des autres documents ou extraits de documents dans un bloc.
Il peut le faire à partir d'un pré-document PDF existant (charger, insérer du contenu/bloc d'alimentation/etc.., sortie), ou de construire un nouveau fichier PDF à partir du sol (sérieusement douloureux de le faire par programmation, mais possible).
J'ai utilisé les blocs avec succès pour générer un simple système de template pour un client, où ils peuvent dessiner des blocs dans un document avec des petits morceaux de métadonnées incorporées, qui a ensuite été analysée côté serveur pour générer un formulaire pour demander des données à insérer dans les blocs au moment de la génération du document.
fpdf et il y a une autre extension sur le dessus de cela, ce que je ne me souviens pas, qui vous permet d'importer des modèles
Votre meilleur pari serait de générer l'intégralité du document à la volée, avec le modèle défini par programmation à l'aide de fpdf ou quelque chose de similaire. De cette façon, votre texte ne sera pas découpé en paragraphes ou quelque chose comme ça, et vous pouvez facilement les images de position/d'autres éléments requis.
PDFlib est agréable, et l'accueil peut être déjà. J'ai été en mesure d'accomplir des choses comme cela http://www.housejockey.com/flyers/12/80/MyListing.pdf avec PDFlib assez facilement, mais la technique de base est la baisse-dans un paragraphe de texte...que vous avez dit était bon à rien.
J'ai également travaillé avec abcPDF ASP/ASP.NET et trouve qu'il est assez bon pour la piquer à l'intérieur des fichiers Pdf, mais, encore une fois, n'est pas conçu pour creuser autour dans des zones de texte.
De travail robuste des modèles et des espaces réservés est un saut de complexité au-dessus de chute de contenu. La redistribution du contenu d'un texte existant dans un fichier PDF n'est généralement pas possible. Il requiert de la structure du document, qui est ce cher variable de données, packages de logiciels comme XMPie et Creo sont conçus pour faire...
PHPDOCX commence à sembler vraiment bon!
Bonne chance.
En retard, mais vous pouvez utiliser OpenSource concepteur de modèle https://github.com/applicius/dhek/releases , de définir pkaceholders/zones sur tout fichier PDF existant, puis le charger en PHP (comme c'est le format JSON) et d'écrire en conséquence, à l'origine PDF avec fpdf lib, pour générer des PDF personnalisés avec des données dynamiques écrites.
Bien pas exactement la chose que vous avez demandé, vous pouvez envisager de le faire en deux étapes: à l'aide de php template sytem (smarty, dwoo) pour générer le code html de la page, puis à l'aide d'outils comme Html2Pdf le convertir en pdf. Je suis à l'aide, et les résultats sont bons (pas de problèmes de mise en page etc)
Bien sûr, cela dépend de vos documents d'entrée (vous pouvez utiliser de l'html au lieu de PDF/ODT comme source ) et de la complexité de la mise en page de ceux-ci.
Ok je vais essayer de vous aider à résoudre le problème un peu.
D'abord la réponse pour le couple de votre question.
Q - Suis-je surplombant quelque chose?
Un - Pas. Il y a un PHP PDF library, qui peuvent remplacer les variables de substitution dans un fichier PDF existant et de générer un fichier PDF comme le résultat final, sans vissage jusqu'à la mise en page
Q - Est-il un moyen de faire cela en utilisant les formulaires en PDF?
Un - Oui. absolument le tric pour faire cela est d'utiliser un des Formulaires PDF
Pour les réponse que vous pouvez utiliser Justin Koivisto remplir pdf champ de formulaire php de la bibliothèque.
Pour plus de détails, vous s'il vous plaît aller à http://koivi.com/fill-pdf-form-fields/tutorial.php.
Prendre un coup d'oeil pour plus d'informations.
De crédit à Justin Koivisto pour son travail
P. S
De la solution de rechange pour l'affichage d'une table de sortie à partir d'un formulaire pdf
veuillez envisager de prendre un peu de lecture sur Oracle Business Intelligence Éditeur Guide de l'Utilisateur - Création d'un Gabarit PDF
J'ai été en mesure de remplacer les valeurs d'espace réservé dans un .docx via une bibliothèque sur github appelé phpdocx (https://github.com/djpate/phpdocx) (pas celle en référence d'ailleurs)
J'ai ensuite réussi à mettre une version portable de libreoffice sur mon ordinateur hôte du serveur, que j'appelle avec PHP pour faire une ligne de commande de conversion de .docx, etc. pour pdf. à la volée. Je n'ai pas les droits admin sur mon ordinateur hôte du serveur web. Voici mon blog de ce que j'ai fait:
http://geekswithblogs.net/robertphyatt/archive/2011/11/19/converting-.docx-to-pdf-or-.doc-to-pdf-or-.doc.aspx
Cette partie répond à votre question. J'espère que c'est utile.
Je vais ajouter cette nouvelle réponse depuis le DFF extension PHP est maintenant mort.
J'ai simplement suivi ces instructions et le fini de l'exécution d'un script perl puis le pdftk commande
Je suis conscient que c'est loin d'être un véritable solution PHP mais c'est fiable et assez facile à mettre en œuvre sur tous les *nix plate-forme.
Les outils qui y sont décrits sont également disponibles sur Debian, juste au cas où vous vous poseriez.
C'est un petit peu en retard, mais un regard à la PDFTemplate Bibliothèque, il ne fait exatly ce que vous voulez. Vous pouvez créer Ouvrir les fichiers de Document (odt) et ajouter des espaces réservés à elle. Le PDFTemplate bibliothèque peuvent remplir ces espaces réservés (même avec des images) et créer un fichier PDF.
ODT Fichiers avec des espaces réservés au format PDF
Si vous êtes prêt à utiliser un service externe, PDF Loutre pourrait résoudre votre problème. Il y a un plan gratuit qui vous permet de vous inscrire et intégrer immédiatement dans votre application.
D'autres avantages à l'utilisation de PDF Loutre comprennent moins de dépendances de votre application, et plus respectueuses de l'expérience en sélectionnant les champs à remplir (j'ai utilisé le manuel de l'essai-et-erreur d'obtenir les positions des champs dans le passé, et c'était beaucoup de temps).
DOM Pdf et mPdf sont les deux bibliothèques pour y parvenir.