Bonjour,
J'utilise Wampserver pour développer un projet en php.
je veux quand je produits un état HTML et PHP pouvoir le générer sous forme de fichier pdf.
Si vous avez une solution ?
Bonjour,
J'utilise Wampserver pour développer un projet en php.
je veux quand je produits un état HTML et PHP pouvoir le générer sous forme de fichier pdf.
Si vous avez une solution ?
Par exemple :
http://html2pdf.fr/
Salut,
Une autre possibilité est dompdf
Cettre lib est plus souple que html2pdf (tu peux l'utiliser sur une page html complète), par contre il peut y avoir des problèmes pour des tableaux complexes et il gère parfois mal les positions float. Tu peux l'essayer si ton html est prévisible (pour éviter ces problèmes) car il a l'avantage d'être très simple et pratique d'utilisation.
Bonjour,
Pour dire, je vais devoir gérer en Html de véritables tableaux. On m'a conseille Fpdf aussi.
Je sais pas parmi eux, lequel est le plus simple et apte a gérer les tableaux HTML ?
Salut,
Avec fpdf on ne crée pas de pdf à partir de html mais en utilisant les fonctions de la lib fpdf. C'est souvent plus robuste mais aussi beaucoup plus laborieux puisque tu vas devoir créer du code spécifique pour créer ta page.
Avec dompdf et dans une moindre mesure avec html2pdf tu peux utiliser directement du html et tu n'as rien d'autre à faire que de paramétrer le format de sortie.
Par exemple j'ai utilisé ce système avec dompdf pour ce site de poêles-cheminées. Si tu ouvres une page produit (après avoir cliqué sur un produit dans une rubrique de produits) tu trouves en bas de chaque page un symbol "pdf" et un autre symbol "imprimante". Le premier va générer un pdf et le second la même chose en html pour ceux qui voudraient imprimer directement sans passer par du pdf. Je me sert du même html dans les trois cas (seuls les liens internes sont modifiés) : pour faire ma page produit, pour celle qui sert à imprimer via le navigateur et pour celle qui génère le pdf. Pratique
Merci pour les reponsess
Que voulez-vous dire tableaux html complexes ? Car moi je vais devoir utiliser pour mes états en html beaucoup de tableaux html
Salut,
Justement je t'ai donné un lien pour te donner une idée. En regardant le html de la fiche d'impression - le html qui sert pour dompdf est identique - tu pourras voir que l'on peut faire des tableaux un peu complexes.
Mais il y a des limites : par exemple si je met un "margin-top:1em" sur un tableau pour l'espacer du div précédent, le résultat n'est pas conforme, de même si j'utilise un padding-top en pourcentage sur une cellule de tableau (néanmoins les pourcentages sont correctement pris en compte pour les dimensions, c'est juste au niveau des padding dans les tableaux que ça cloche).
Il y a quasiment toujours moyen de contourner ces problèmes, dans le premier cas j'ai inclus mon tableau dans un div et appliqué le margin-top sur le div, et dans le second cas j'ai utilisé des em plutôt que des pourcentages pour faire mon padding-top.
C'est pour cela que je dis que dompdf est utilisable si c'est toi qui gère le html car tu pourras le faire en conséquence en corrigeant éventuellement les petits problèmes. Ce serait plus délicat en cas d'utilisation sur n'importe quel html, une page web prise au hasard par exemple.
Un exemple de code à partir de ma fiche d'impression html que je récupère pour générer et enregistrer le pdf dans un dossier et le faire afficher par le navigateur :
pour dire que c'est assez facile de générer un pdf à la volée à partir d'un document html complet donc il te faudra peu de temps pour essayer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 require_once 'dompdf/autoload.inc.php'; use Dompdf\Dompdf; // Données récupérées en bdd pour alimenter le html require 'Impression/produit_impr_php.php'; // Déclenche la temporisation de sortie (syntaxe >= php 5.4) ob_start(null, 0, PHP_OUTPUT_HANDLER_REMOVABLE); // Html complet avec doctype (strictement identique à la fiche d'impression html) require 'Impression/produit_impr_html.php'; // Récupère le tampon $content_html = ob_get_contents(); // Efface le tampon ob_end_clean(); // Instantiate and use the dompdf class $dompdf = new Dompdf(); $dompdf->loadHtml($content_html); $dompdf->set_paper("a4", "portrait"); // Render the HTML as PDF $dompdf->render(); //$nom_fichier_pdf est défini plus haut dans "Impression/produit_impr_php.php" $adresse_pdf = 'PDF_PRODUITS/'.$nom_fichier_pdf; // Enregistre le fichier pdf dans un dossier file_put_contents($adresse_pdf,$dompdf->output()); // Output the generated PDF to Browser $dompdf->stream("$nom_fichier_pdf", array("Attachment" => false)); ?>
EDIT: A noter qu'il y a un problème avec wampserver pour générer des grosses images (redimensionnées dans mon exemple pour fournir une bonne qualité d'impression). C'est lent, parfois il faut attendre une bonne vingtaine de seconde pour la génération du pdf. Mais ça s'arrange sur le serveur distant (ovh) puisque le même fichier ne met plus que quelques secondes à se générer, 5 secondes maximum en fonction du nombre et de la dimension des images.
Cela dit si tu rencontre des problèmes, sabotage t'a donné une autre solution... J'ai utilisé dompdf parce que ça a fonctionné assez vite et qu'on peut prendre un html complet, mais html2pdf est peut-être plus robuste.
Bonjour,
je vois bien les aspects expliques. j'ai même une fois utilisé html2pdf mais l’inconvénient est qu'il ne prends pas tout le code html complet, tu es obligé de réécrire ton code html que tu dois générer dans un autre fichier a part en n’omettant certaines balises Html. ce qui augmente ta quantité de fichiers php.
Sinon j'ai bien lu que html2pdf est pus adapte ux tableaux complexe. Maintenant avec cet inconvénient sur html2pdf que je viens de relater, c'est un peu décourageant de ce cote la
voila
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager