Conversion d'un rendu html en pdf

Fermé
Flatbeat Messages postés 30 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 7 février 2010 - 17 janv. 2010 à 23:59
 Flatbeat - 20 janv. 2010 à 23:47
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 !
A voir également:

3 réponses

le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
18 janv. 2010 à 00:06
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 :

@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.
0
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 !
0
Quand je vide le cache, je n'ai évidemment plus le problème, et bizarrement ça ne fait plus le problème pendant un moment
0