Discussion:
edition de pdf
(trop ancien pour répondre)
Olivier Masson
2010-02-18 20:55:45 UTC
Permalink
Bonjour,

Est-il simple de modifier un PDF en PHP ?

HTML et impression n'étant pas terriblement fait l'un pour l'autre, je
souhaiterais pouvoir modifier des champs d'un document PDF déjà crée
(sous Acrobat ou autre) : une lettre type dans laquelle je vais insérer
les champs d'une base de donnée.

J'ai trouvé pas mal de ressources sur le net mais toutes ne s'accordent
pas sur la facilité de cette tâche.

Avez-vous des conseils ou de bonnes doc à me suggérer ?

Merci.
Bruno Baguette
2010-02-18 22:21:15 UTC
Permalink
Post by Olivier Masson
Bonjour,
Est-il simple de modifier un PDF en PHP ?
HTML et impression n'étant pas terriblement fait l'un pour l'autre, je
souhaiterais pouvoir modifier des champs d'un document PDF déjà crée
(sous Acrobat ou autre) : une lettre type dans laquelle je vais insérer
les champs d'une base de donnée.
J'ai trouvé pas mal de ressources sur le net mais toutes ne s'accordent
pas sur la facilité de cette tâche.
Avez-vous des conseils ou de bonnes doc à me suggérer ?
S'il s'agit d'un document PDF, j'aurais tendance à utiliser FPDFI (une
extension de FPDF), qui te permet d'inclure un PDF dans un nouveau
document PDF.

FPDI : <http://www.setasign.de/products/pdf-php-solutions/fpdi/about/>

A partir de là, "il ne te reste plus qu'à" (tout est relatif) ajouter
des zones de texte (en provenance de la base de données) en les
positionnant par dessus les champs du formulaire à remplir.

En espérant que ca t'aidera ! :-)
--
Bruno Baguette
kasmi ilyas
2010-02-18 22:21:15 UTC
Permalink
salut

a mon avis c'est pas possible mais y'a la possibilté de lire le
fichier et de le reécrire avec les modifications
avec zend c'est tres facile
http://framework.zend.com/manual/fr/zend.pdf.create.html

bonne chnace
Olivier Masson
2010-02-19 12:23:52 UTC
Permalink
Post by kasmi ilyas
salut
a mon avis c'est pas possible mais y'a la possibilté de lire le
fichier et de le reécrire avec les modifications
avec zend c'est tres facile
http://framework.zend.com/manual/fr/zend.pdf.create.html
bonne chnace
Merci pour vos suggestions, ce n'est donc pas des plus simples...
Antoine Polatouche
2010-02-20 08:38:31 UTC
Permalink
Post by Olivier Masson
Bonjour,
Est-il simple de modifier un PDF en PHP ?
HTML et impression n'étant pas terriblement fait l'un pour l'autre, je
souhaiterais pouvoir modifier des champs d'un document PDF déjà crée
(sous Acrobat ou autre) : une lettre type dans laquelle je vais insérer
les champs d'une base de donnée.
J'ai trouvé pas mal de ressources sur le net mais toutes ne s'accordent
pas sur la facilité de cette tâche.
Avez-vous des conseils ou de bonnes doc à me suggérer ?
Merci.
Tu as essayé PDFLib ?
( http://www.pdflib.com
et dans ton cas
http://www.pdflib.com/en/products/pdflib-family/pdflib-pdi/ )
Olivier Masson
2010-02-20 14:17:35 UTC
Permalink
Post by Antoine Polatouche
Tu as essayé PDFLib ?
( http://www.pdflib.com
et dans ton cas
http://www.pdflib.com/en/products/pdflib-family/pdflib-pdi/ )
1590 euros, c'est quand même hors de prix !
Mickaël Wolff
2010-02-20 21:05:15 UTC
Permalink
Post by Olivier Masson
1590 euros, c'est quand même hors de prix !
Ce n'est peut-etre pas dans tes moyens, mais taxer d'onéreux un outil
qui demande un travail conséquent pour etre produit, je trouve que c'est
grossier. Et insultant pour l'ensemble des développeurs au chomage (si,
il y en a, ça arrive).
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Olivier Masson
2010-02-22 09:42:49 UTC
Permalink
Post by Mickaël Wolff
Post by Olivier Masson
1590 euros, c'est quand même hors de prix !
Ce n'est peut-etre pas dans tes moyens, mais taxer d'onéreux un outil
qui demande un travail conséquent pour etre produit, je trouve que c'est
grossier. Et insultant pour l'ensemble des développeurs au chomage (si,
il y en a, ça arrive).
Ce n'est pas un produit qui doit se vendre beaucoup et répond à une
besoin assez spécifique mais le travail réalisé pour faire cet outil est
*considérablement* loin, par exemple, de celui nécessaire pour faire un
produit tel que Lightwave (3D), tout aussi spécifique, pour un prix
équivalent.
Ça me rappelle les quelques progiciels (que l'on rencontre encore) qui,
prétextant qu'ils sont très spécifiques - mais conçu à la va-vite et
souvent très mal - coûtent une fortune.
D'autre part, il y a une licence "workstation" pour Win mais pas pour
Linux. C'est juste stupide (ou grossier :))
Bruno Baguette
2010-02-21 10:32:45 UTC
Permalink
Post by Olivier Masson
Post by Antoine Polatouche
Tu as essayé PDFLib ?
( http://www.pdflib.com
et dans ton cas
http://www.pdflib.com/en/products/pdflib-family/pdflib-pdi/ )
1590 euros, c'est quand même hors de prix !
Alternative : certains hébergeurs mutualisés proposent PDFlib dans leurs
offres.

C'est une piste à creuser quand le budget ne permet pas d'acheter la
licence de pdflib :-)
--
Bruno Baguette
Antoine Polatouche
2010-02-21 10:32:45 UTC
Permalink
Post by Olivier Masson
Post by Antoine Polatouche
Tu as essayé PDFLib ?
( http://www.pdflib.com
et dans ton cas
http://www.pdflib.com/en/products/pdflib-family/pdflib-pdi/ )
1590 euros, c'est quand même hors de prix !
Il y a une version gratuite qui te permet de prendre en main le produit,
et de bons hébergeurs qui ont le produit payant sur leurs serveurs...
Mickaël Wolff
2010-02-20 08:38:31 UTC
Permalink
Post by Olivier Masson
HTML et impression n'étant pas terriblement fait l'un pour l'autre,
Ce n'est tellement vrai. Il est possible de fournir une CSS pour un
rendu d'impression. Selon les navigateurs, ce sera plus ou moins bien
supporté. Mais ce n'est pas un problème lié à HTML : c'est un problème
de navigateur.
Post by Olivier Masson
souhaiterais pouvoir modifier des champs d'un document PDF déjà crée
(sous Acrobat ou autre) : une lettre type dans laquelle je vais insérer
les champs d'une base de donnée.
Ce devrait etre possible. Peut-etre avec FPDI. <http://www.setasign.de/>
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Olivier Masson
2010-02-20 14:17:35 UTC
Permalink
Post by Mickaël Wolff
Ce n'est tellement vrai. Il est possible de fournir une CSS pour un
rendu d'impression. Selon les navigateurs, ce sera plus ou moins bien
supporté. Mais ce n'est pas un problème lié à HTML : c'est un problème
de navigateur.
Oui je sais, mais je connais aussi tous les problèmes que cela pose et
je peux t'assurer que pouvoir faire un simple saut de page qui
fonctionne parfaitement, c'est pas gagné.
Mais tu as tout à fait raison, le problème ne vient pas tant (CSS n'est
quand même pas du tout fait pour gérer l'impression) de HTML/CSS mais
surtout des navigateurs.
Post by Mickaël Wolff
Ce devrait etre possible. Peut-etre avec FPDI. <http://www.setasign.de/>
J'ai déjà jeté un oeil sur les solutions précédemment données (la lib de
Zend ou FPDI) mais inclure des champs à des endroits bien précis semble
bizarrement ne pas être des plus simples.
Je vais regarder également fdpd-pdi suggéré par Antoine. Merci.
kasmi ilyas
2010-02-20 21:05:15 UTC
Permalink
bon

il y a aussi la lib TCPDF , tu peux exporter des PDF en prenant en
charge CSS,
je l'ai deja utilisé c'est tres pratique pour l'export de pdf,
kasmi ilyas
2010-02-20 21:05:15 UTC
Permalink
voila le lien si vous voulez l'utiliser
http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf
Denis Beauregard
2010-02-20 21:05:15 UTC
Permalink
Post by Olivier Masson
Bonjour,
Est-il simple de modifier un PDF en PHP ?
HTML et impression n'étant pas terriblement fait l'un pour l'autre, je
souhaiterais pouvoir modifier des champs d'un document PDF déjà crée
(sous Acrobat ou autre) : une lettre type dans laquelle je vais insérer
les champs d'une base de donnée.
Attention, si tu crées d'avance un document pdf, tu auras les
dimensions fixes. Donc, tu devras décider d'avance si c'est du
A4 (Europe) ou du format légal (Amérique du Nord). Pour cette
raison, le mieux serait à mon avis de produire le pdf au complet
à la volée.


Denis
DublinFrench
2010-02-22 07:51:22 UTC
Permalink
Salut
Post by Olivier Masson
Est-il simple de modifier un PDF en PHP ?
Dur. Le format est justement fait pour ne pas être réversible facilement.
Post by Olivier Masson
HTML et impression n'étant pas terriblement fait l'un pour l'autre, je
souhaiterais pouvoir modifier des champs d'un document PDF déjà crée
(sous Acrobat ou autre) : une lettre type dans laquelle je vais insérer
les champs d'une base de donnée.
Une de mes solutions favorite est DomPdf , qui est récemment passé en
projet google. Je m'appuie sur un template XHTML/CSS qui est donc
facilement updatable dynamiquement via des placeholder, puis je génère a
la volée un pdf reprenant ce html contextuel. Avantage, le DomPdf
n'exige pas la PDFLIB mais peut fonctionner avec la librairie CPDF , qui
est d'ailleurs livrée avec.

Cette solution est relativement souple: certes, le document de départ
n'est pas un pdf et il faut valider le template HTML, puis s'assurer
lors du developpement que la transformation est rigoureuse et que tout
est bien calé. Mais ensuite, ca marche très bien, et c'est beaucoup plus
rapide a faire que de sculpter intégralement son PDF a l'ancienne.

J'ai aussi vu passer des solutions basées sur les librairies OO de Open
Office, mais après avoir étudié le sujet une petite semaine en milieu
d'année dernière, j'en suis arrivé a la conclusion que c'était encore un
peu bidouille et non applicable sereinementnt en production, a
ldifférencece de nos dev DomPdf qui donnent toute satisfaction depuis
maintenant pas mal de temps.

Bonne continuation, et surtout n'hésite pas a nous faire partager toute
découverte ou idée permettant d'améliorer ce genre de travaux qui sont
très utiles pour pas mal d'entre nous.

@++

Stef
Olivier Masson
2010-02-22 09:42:49 UTC
Permalink
Post by DublinFrench
Bonne continuation, et surtout n'hésite pas a nous faire partager toute
découverte ou idée permettant d'améliorer ce genre de travaux qui sont
très utiles pour pas mal d'entre nous.
J'avais trouvé il y a peu un nouveau projet permettant d'éditer
simplement des maquettes PDF en PHP. J'ai perdu trace de ce projet...
Olivier Masson
2010-02-22 09:42:49 UTC
Permalink
Post by DublinFrench
Une de mes solutions favorite est DomPdf , qui est récemment passé en
projet google. Je m'appuie sur un template XHTML/CSS qui est donc
facilement updatable dynamiquement via des placeholder, puis je génère a
la volée un pdf reprenant ce html contextuel. Avantage, le DomPdf
n'exige pas la PDFLIB mais peut fonctionner avec la librairie CPDF , qui
est d'ailleurs livrée avec.
Cette solution est relativement souple: certes, le document de départ
n'est pas un pdf et il faut valider le template HTML, puis s'assurer
lors du developpement que la transformation est rigoureuse et que tout
est bien calé. Mais ensuite, ca marche très bien, et c'est beaucoup plus
rapide a faire que de sculpter intégralement son PDF a l'ancienne.
J'ai aussi vu passer des solutions basées sur les librairies OO de Open
Office, mais après avoir étudié le sujet une petite semaine en milieu
d'année dernière, j'en suis arrivé a la conclusion que c'était encore un
peu bidouille et non applicable sereinementnt en production, a
ldifférencece de nos dev DomPdf qui donnent toute satisfaction depuis
maintenant pas mal de temps.
Bonne continuation, et surtout n'hésite pas a nous faire partager toute
découverte ou idée permettant d'améliorer ce genre de travaux qui sont
très utiles pour pas mal d'entre nous.
@++
Stef
Merci pour ton avis.
Je vais voir ça. Le problème avec la création à base d'HTML c'est que
sur les projets que j'ai commencé à regarder, le support des CSS n'était
pas terrible et il fallait apparemment mettre des styles à l'ancienne
(attributs HTML de mise en forme, dépréciés dans les doctype
valid).
De plus, en amont le modèle PDF est réalisé par un graphiste (qui n'est
pas moi). Je pourrais peut-être refaire facilement la maquette en HTML,
mais avec les graphistes je me méfie toujours... Sinon, un simple
passage maquettee Phototoshop/Illustrator -> HTML pourrait suffire.
Mais il est évident qu'il serait beaucoup plus souple et propre de créer
le PDF que de le modifier.
Olivier Masson
2010-03-31 11:28:01 UTC
Permalink
Post by Olivier Masson
Bonjour,
Est-il simple de modifier un PDF en PHP ?
HTML et impression n'étant pas terriblement fait l'un pour l'autre, je
souhaiterais pouvoir modifier des champs d'un document PDF déjà crée
(sous Acrobat ou autre) : une lettre type dans laquelle je vais insérer
les champs d'une base de donnée.
J'ai trouvé pas mal de ressources sur le net mais toutes ne s'accordent
pas sur la facilité de cette tâche.
Avez-vous des conseils ou de bonnes doc à me suggérer ?
Merci.
J'ai opté pour la solution fpdf+fpdi.
Tout a fonctionné parfaitement.
C'était du pdf multipages en cmyk que l'on m'a fourni en pdf 1.3 pour
pouvoir l'utiliser dans fpdi.
J'avais juste un décalage constant avec les coordonnées fournies par le
logiciel du graphiste ; j'ai donc crée une fonction supplémentaire pour
spécifier un décalage à n'importe quel moment.
Ça ne fonctionne qu'en iso-8859-1 par contre.

Par la suite, j'ai achéte le fdpi:pdf parser, qui permet de lire les pdf
jusqu'en version 1.7, histoire de soutenir le projet.

A noter qu'ils développent aussi SetaPDF-FormFiller API, qui est parfait
pour remplir les formulaires PDF puisqu'il suffit de lui indiquer les
champs. Mais :
- le graphiste n'avait jamais fait de pdf form et n'avais pas conçu son
pdf ainsi. Cela se fait aisément avec OpenOffice et l'export pdf avec
formulaire (j'ai essayé) mais le graphiste m'a dit que ce n'était pas
fiable pour l'impression et pas du tout pratique pour la création,
comparé à Quarks Xpress qui est fait pour ça. Moi je n'en sais rien.
- Si le pdf parser est dispo sans /obfuscation/, le formfiller n'est lui
dispo qu'en ioncube et zend encode. Ce qui n'est pas forcément pour
plaire au client (il faut installer le module de déchiffrement et il
installer du code dont il ne sait rien).

Merci à tous pour vos informations.

Continuer la lecture sur narkive:
Loading...