Dypso Backoffice
Dypso Backoffice

Download Products


DypsWebCapture : Capture Web page as thumbnail image

Documentation
Example
Download
Buy

New release with embed IE and Firefox rendering engine !



DypsFTP : Manage a FTP site from your script

Documentation
Buy


DypsImg2SWF : Protect and save your image as SWF/Flash format!

Documentation
Example
Download
Buy


DypsXLS for ASP: Générateur de fichier Excel

New features!
Documentation
Exemple d'utilisation
Download
Buy


DypsMetaGrabber : get Meta Tag from any web page!

Documentation
Example
Download
Buy


DypsAntiSpam for ASP

Features
Exemple d'utilisation
Download
Buy

DypsoPRank for ASP

Features
Exemple d'utilisation
Download
Buy

Pop3 Checker for ASP

Features
Exemple d'utilisation
Download
Buy

SVG Pie chart Maker for ASP

Features
Exemple d'utilisation
Download

DypsRTF for ASP

Features
Exemple d'utilisation
Download
Buy

What's New ?


Mise en ligne du premier outil gratuit pour générer des fichiers Excel depuis ASP : DypsXLS !
[Lire la suite]

Et un forum Le site se dote d'un forum pour vous permettre de partager toujours plus.
[Rejoigner nous]

Annuaire de scripts ! Un annuaire de scripts et de liens utiles vers des ressources pour le développement
[Lire la suite]

Création d'un outil gratuit pour retrouver ses mails : Pop3 Checker for free !
[Lire la suite]

Création d'un outil gratuit pour générer des graphiques vectoriels à la volée: Free SVG Pie chart Maker !
[Lire la suite]

Développement Web


Imprimer la page | English version

Créer des fichiers PDF avec HTMLDoc

Techniques

Cette section permet de regrouper un ensemble de techniques ou de scripts qui ont l'originalité d'arriver à résoudre une difficulté avec le moindre effort ou qui sont particulièrement efficaces...


Techniques / PDF

  •  Convertir des fichiers HTML en PDF

Il peut être utile de produire des fichiers PDF depuis une page dynamique, pour générer les fichiers à la volée par exemple afin de créer des états de type publipostage , des listings ou même un formulaire à remplir. Plusieurs solutions s'offre alors à vous suivant le langage utilisé. Une méthode pratique et gratuite, utilisable par tous les langages peut être de transformer des fichiers HTML en PDF. Il existe pour cela plusieurs techniques. L'une d'elle repose sur l'utilisation d'un utilitaire gratuit : HTMLDoc. HTMLDoc est un exécutable qui permet de convertir un ou plusieurs fichiers HTML en fichier PDF. Il s'utilise normalement avec une interface graphique mais peut aussi être appelé en ligne de commande.

Avantages sur un serveur WEB :

  • Il est trés facile de générer un fichier HTML à transformer.
  • C'est une des méthodes les plus rapides et plus fiables pour des fichiers PDF simples.
  • De nombreux formats d'images sont supportés : BMP, GIF, JPEG, et PNG.
  • La table des matières peut être créée automatiquement

Inconvénients :

  • HTMLDOC ne gère pas encore les feuilles de styles CSS.
  • Il est moins aisé de générer des documents HTML trop complexes ( Par exemple : il existe une limitation dans le nombre d'imbrication de tableau HTML).
  • La compression des fichiers n'est pas optimale, aussi il faudrait éviter la génération de fichier PDF trop volumineux.
  • Il est difficile d'avoir un formatage précis des fichiers générés

Le fichier HTML peut être converti en fichier pdf avec un ligne de commande sous DOS :

htmldoc -t pdf --quiet -webpage -f fichier.pdf fichier.html

Par contre depuis un site dynamique, si vous devez générer les fichiers PDF à la volée depuis ASP ou PHP, par exemple, il vous faut écrire un fichier HTML qui sera transformer via la ligne de commande exécutée depuis le serveur WEB . Cet appel peut être coûteux en temps de traitement.


Générer un fichier PDF à la volée depuis ASP :


' ****** La ligne de commande

CmdeHTMLDOC = chr(34)&"C:\Program Files\HTMLDOC\htmldoc.exe" &_
chr(34)& "  -t pdf --quiet "& _
"  --webpage -f "



' En consultant le fichier de documentaion de HTMLDOC 
' vous vous rendrez compte
' qu'un certains nombre de paramètres peuvent aussi être
' précisés, comme la police, sa taille, la compression
' du document final, etc. Par exemple :
' CmdeHTMLDOC = chr(34)& _
' "C:\Program Files\HTMLDOC\htmldoc.exe" & _
' chr(34) & "  --compression=1 --no-toc " & _
' " --pagemode document  "& _
' " --textfont Arial "& _
' " --fontsize 8 "& _
' " --header ... --footer ...  "& _
' " --size a4 --left 1.5cm "& _
' " --right 1.5cm "& _
' " --fontspacing 2 --webpage -f "



' ******* génération du fichier HTML à la volée
Set FSO =   Server.CreateObject("Scripting.FileSystemObject") 
name_fileHTML= "fichier.html"
dir = Server.MapPath(name_fileHTML)
set inF = FSO.OpenTextFile(dir,2,true) 
	
inF.write "<html><body>"_
	"<table border=""1"" width=""90%"">"_
	"<tr><th>Employé</th><th>Salaire</th></tr>"_
	"<tr><td>Smith</td><td>1 000 euros</td></tr>"_
	"</table>"_
	"</body></html>"
	
'fermeture fichier HTML
inF.close
			
	
	
' ******* génération du fichier PDF
set wshell=Server.CreateObject("wscript.shell")

' ******* Ligne de commande complétée par les chemins 
' ******* des fichiers source HTML et de destination en PDF :

fic_html = dir
fic_pdf = Server.MapPath("fichier_test.pdf")

wpath= CmdeHTMLDOC &chr(34)& _
fic_pdf &chr(34)&" "& chr(34)& fic_html &chr(34)

' ******* Lancement de la commande
wshell.Run wpath, SW_SHOWNORMAL,true
Set wshell=nothing

' ******* L'ouverture du document peut se faire  
' ******* alors simplement en JavaScript :

Response.write "<script>window.document.location.href='" & _
	 	Server.MapPath("fichier_test.pdf") & _
		"';</script>"
		
' ******* Mais il est aussi possible d'effectuer
' *******  une redirection sur 
' ******* le fichier PDF depuis le serveur 		

' ******* Fin du script
Response.End
Convertir une page HTML en ligne, en fichier PDF depuis PHP :
header("Content-Type: application/pdf");
flush();
$CmdeHTMLDOC= 'htmldoc -t pdf --size A4 --webpage'.
	' -f c:\SITE_PROG.pdf http://dypso.free.fr';
passthru($CmdeHTMLDOC);		
Réagisser à cet article