Edition de pdf par la programmation

Eléphant du PHP | 132 Messages

09 août 2016, 11:18

Bonjour, bonsoir

J'ai besoin de modifier des informations dans des devis au format PDF via un site web
J'ai déjà essayé plusieurs solutions web ou pas

Modification par PHP :
- fpdf (PHP) - Seulement de l'ajout pas de modification
- fpdi (PHP) - Seulement de l'ajout pas de modification

Conversion HTML :
- pdftohtml (Linux) - La conversion marche bien mais le code qui en sort est non exploitable

Décompression :
- pdftk - (Linux) Solution peut-être la plus viable mais inclus la possibilité de remplacer des choses non voulu

Bref, ça fait quelques jours que j'écume le web à la recherche d'une solution viable et efficace.

Est-ce que vous avez d'autres outils à me proposer ?
Ou d'autres idée en terme manières de m'y prendre ?
Cordialement
Naroth

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7158 Messages

09 août 2016, 14:18

Bonjour,

Le format PDF est conçu pour faire du "fixed-layout", c'est à dire qu'il n'est pas possible facilement par exemple de rajouter un paragraphe au milieu d'un texte sans que ça casse la mise en forme. La solution alors est d'utiliser un système d'extraction des données du PDF, de faire les modifications voulue et ensuite de recréer un nouveau PDF, mais c'est très casse-gueule de faire cela de façon automatisée.

Comment sont générés les devis originaux ?
Si c'est toi qui les génère, ne peux tu pas utiliser un template et FPDI pour les remplir ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 132 Messages

09 août 2016, 14:32

Hélas je ne les génère pas et ils ont tous des formes différentes.
Je ne sais pas exactement comment ils sont générés mais je suppose qu'ils doivent être générés a partir d'un Excel/Word.
Mais bien évidemment je n'y est pas accès.

Ma solution favorite (si elle avait été fonctionnelle ) aurait été de passé par le HTML, mais la c'est complètement impossible tout ce qui est tableau (la partie CSS) devient une image donc impossible d'en modifier la taille.
Cordialement
Naroth

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7158 Messages

09 août 2016, 15:22

Ma solution favorite (si elle avait été fonctionnelle ) aurait été de passé par le HTML, mais la c'est complètement impossible tout ce qui est tableau (la partie CSS) devient une image donc impossible d'en modifier la taille.
Il faut que tu testes différentes librairies de conversion PDF > HTML pour en trouver un (ça existe) qui ne génère pas d'images pour les tableaux mais bien des tableaux HTML.

Après ça dépend des formats en entrée bien sûr mais c'est faisable.
Dans ton doc original, tu peux bien sélectionner le texte des tableaux, ce n'est pas une image à l'origine ?


Tu peux aussi regarder du côté de la lib de Mozilla PDF.js qui transforme du PDF en code HTML :
https://mozilla.github.io/pdf.js/
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 132 Messages

09 août 2016, 17:34

A première vu ça a l'air pas mal la lib de Mozilla, je regarderais plus en détails ce soir !

Merci.
Cordialement
Naroth