Convertir une page web en fichier PDF ou DOC - PHP - Programmation
Marsh Posté le 23-03-2011 à 13:10:21
J'ai utilisé une fois HTML2PDF pour une extension de Mediawiki chargée de convertir un article du wiki en pdf. Effectivement, t'as au mieux un message d'erreur qui affiche que le pdf contient "%A" (ou un truc du genre)... J'ai dû bidouiller un peu la lib pour que ça marche mais bof, pas tip-top le résultat, dès que l'article contient des images, la mise en page saute plus ou moins...
Si son serveur est sous Windows, tu peux tenter de générer un .doc avec COM mais de mémoire, le bug de non fermeture de l'appli appelée par COM via php n'est toujours pas résolu, ce qui veut dire qu'à chaque fois que tu vas lancer ton script, Word va rester en mémoire et ses instances vont s'accumuler
Toujours si t'es sous Windows, tu peux peut-être tenter le truc suivant (mais pas top) :
via AutoIT, tu lances ton script php pour faire afficher chaque page de test dans un navigateur web. Pour chaque page, autoit lance la séquence de raccourcis clavier que t'as mentionnés et tu génères le pdf via une imprimante virtuelle (en mode concaténation pour que toutes tes pages web soient dans le même pdf) Sous Linux, il doit y avoir l'équivalent de autoit et de l'imprimante virtuelle pdf...
Pour info, je sais pas si ça peut t'aider, ya la lib PHP nommée "Snoppy" qui permet de se comporter comme un navigateur web et de récupérer le contenu de pages web...
Marsh Posté le 24-03-2011 à 19:18:34
Ben si tu savais dès le début que tu voulais un pdf, pourquoi ne pas avoir tout programmé avec fpdf ?
Je génère pour plusieurs applis différents types de PDF et ça marche très bien.
Moi je pense que la solution c'est "se retaper tout"... Mais intelligemment : porter ton code sous fpdf.
Et là t'auras des pdf au poil
Marsh Posté le 27-04-2011 à 15:32:46
Pour revenir sur ce post, ma solution c'est finalement portée vers html2pdf, car il permet d'utiliser une fonction intéressante qui est WriteHTML() qui transforme une page web directement en PDF, cependant il faut faire très attention aux images (surtout celles qui n'ont pas de chemin complet genre /images/ ... au niveau du code) qui peuvent être présente car ce plugin ne les rapatrie pas automatiquement, J'ai donc créé une fonction qui le fait tout seul.
Sinon, pour répondre à PunkRod, je n'ai pas pu programmer tout directement en fpdf car j'ai recupérer une structure qui existe déjà et j'ai en charge la maintenance et la mise à jour de cette structure. C'est donc pour ca que je ne voulais pas tout me retaper
En tout cas merci pour votre aide
Marsh Posté le 23-03-2011 à 12:18:25
Bonjour à tous !
Je vous explique mon problème :
Je génère, avec du code php, une page web avec le résultat d'un questionnaire avec calcul de moyenne et affichage de graphiques.
Le but premier de mon développement est de réaliser un export de cette page web en PDF ou DOC (texte (généré par mon code PHP et non le code source de la page web), résultats des calculs et images).
La finalité de mon developpement est de créer un script qui parcourt toute la base de resultats des tests, qui génère la page web avec les résultats et graphiques et qui crée un seul PDF ou DOC avec tous les résultat dedans
En gros il faudrait que j'arrive, en PHP, à faire l'équivalent d'un Ctrl-A,Ctrl-C,Ctrl-V dans un DOC et Ctrl-S :-P
J'ai déjà fais toute ma routine pour afficher les pages de resultats une par une mais mon principal soucis et de creer ce fichier PDF unique.
J'ai déjà pas mal cherché surtout du coté de FPDF, mais cela ne me convient pas (car il faut que je traite uniquement du texte et donc que je retire de mon code tous les balises/codes PHP pour générer un fichier PDF correct - beaucoup trop lourd à programmer car j'ai une multitude de fonctions appelées pour calculer les résultats donc il faudrait que je me retape tout :-S )
J'ai également regardé du coté de HTML2PDF, mais le PDF ne se génère pas du tout et ne me génère pas d'erreur donc difficile de voir ou est le problème ...
Connaissez vous un système (automatisé) qui pourrait m'aider ?
Je travaille avec un serveur Apache 2.2.11, PHP 5.3 et Mysql 5.1.36 ...
Merci pour votre aide !!!
Reaver