Conversion d'un rendu html en pdf
Flatbeat
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
Flatbeat -
Flatbeat -
Bonjour, ma question est relativement banale, mais je n'ai pas trouvé de véritable solution à mon problème.
J'ai besoin de générer des factures en PDF. Ces factures sont générées à partir d'informations stockées dans une base de donnée MySQL. Je pensais générer la facture en HTML à partir des différentes informations pour ensuite la sauvegarder au format PDF.
Cependant je n'arrive pas à trouver de véritables solutions permettant une conversion d'un rendu HTML vers PDF. Évidemment je ne cherche pas des sites proposant ces services ou je devrais uploader les factures à la main, le but est d'automatiser le processus par le PHP
Merci d'avance pour toute aide !
J'ai besoin de générer des factures en PDF. Ces factures sont générées à partir d'informations stockées dans une base de donnée MySQL. Je pensais générer la facture en HTML à partir des différentes informations pour ensuite la sauvegarder au format PDF.
Cependant je n'arrive pas à trouver de véritables solutions permettant une conversion d'un rendu HTML vers PDF. Évidemment je ne cherche pas des sites proposant ces services ou je devrais uploader les factures à la main, le but est d'automatiser le processus par le PHP
Merci d'avance pour toute aide !
A voir également:
- Conversion d'un rendu html en pdf
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Save as pdf office 2007 - Télécharger - Bureautique
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Editeur html - Télécharger - HTML
- Comment faire un fichier pdf - Guide
3 réponses
Salut !
Le problème est donc le rendu. Créer un PDF, c'est utiliser une imprimante "virtuelle". Pour imprimer, il faut des styles CSS en particulier.
Par défaut, les styles des sites web sont les styles "screen" (pour l'écran). Mais on peut aussi définir des styles CSS qui ne seront utilisé et visibles qu'à l'impression.
Par exemple, si je met ceci dans mon fichier CSS :
La page s'affichera en rouge sur fond vert à l'écran mais quand on imprimera la page, ce sera en noir sur fond blanc.
Il te faut donc afficher la page HTML avec ce systèmes de CSS puis arriver à automatiser l'impression via PHP ou autre.
Le problème est donc le rendu. Créer un PDF, c'est utiliser une imprimante "virtuelle". Pour imprimer, il faut des styles CSS en particulier.
Par défaut, les styles des sites web sont les styles "screen" (pour l'écran). Mais on peut aussi définir des styles CSS qui ne seront utilisé et visibles qu'à l'impression.
Par exemple, si je met ceci dans mon fichier CSS :
@media screen { body { background-color: green; color: red; } } @media print { body { background-color: white; color: black; } }
La page s'affichera en rouge sur fond vert à l'écran mais quand on imprimera la page, ce sera en noir sur fond blanc.
Il te faut donc afficher la page HTML avec ce systèmes de CSS puis arriver à automatiser l'impression via PHP ou autre.
J'ai finallement utilisé dompdf qui fonctionne parfaitement.
Pour prévisualiser le fichier, j'ai juste intégrer le fichier PDF dans la page avec
<object id="render_preview_pdf" data="<?php echo APPLICATION_URL . 'pdf/' . $sFilePdf; ?>" type="text/html" codetype="application/pdf" width="100%" height="100%; ">
</object>
Mon problème est que je regénere le fichier avec des appels ajax. Le fichier est donc modifié sur le serveur. Cependant, dans la preview (que je regenere evidemment), l'ancien fichier est en cache, donc on ne peut pas voir le nouveau PDF.
Est-il possible de désactiver la mise en cache du PDF ?
Merci d'avance !
Pour prévisualiser le fichier, j'ai juste intégrer le fichier PDF dans la page avec
<object id="render_preview_pdf" data="<?php echo APPLICATION_URL . 'pdf/' . $sFilePdf; ?>" type="text/html" codetype="application/pdf" width="100%" height="100%; ">
</object>
Mon problème est que je regénere le fichier avec des appels ajax. Le fichier est donc modifié sur le serveur. Cependant, dans la preview (que je regenere evidemment), l'ancien fichier est en cache, donc on ne peut pas voir le nouveau PDF.
Est-il possible de désactiver la mise en cache du PDF ?
Merci d'avance !