Truc LF: G�n�rer des PDF depuis des documents html

ArticleCategory:

Applications

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Guido Socher

en to fr Jean-Etienne Poirrier

AboutTheAuthor:[A small biography about the author]

Il y a quelques temps, nous avions dit que LinuxFocus voulait rendre disponible les articles au format PDF. Nous avons re�u un certain nombre de suggestions en r�ponse, que nous r�sumons ici, dans ce truc. Merci beaucoup pour toutes les suggestions.

Abstract:

C'est une petite astuce. A partir de maintenant, LinuxFocus aura au moins une nouvelle astuce tous les mois. Si vous avez des id�es pour une nouvelle astuce, envoyez-les � guido(le signe � � �)linuxfocus.org

ArticleIllustration:

mozilla firefox

ArticleBody:

Introduction

Vous avez probablement remarqu� que nous avons maintenant des fichiers PDF pour tous les articles dont la langue utilise l'ensemble des caract�res iso8859-1. Cela n'a pas �t� facile � impl�menter car nous voulions qu'ils soient g�n�r�s automatiquement afin d'�viter que les documents texte/html et PDF diff�rent.

Voici notre exp�rience avec une liste d'options sur la mani�re de g�n�rer un PDF en g�n�ral.

L'id�e

Tous les syst�mes Linux poss�dent l'utilitaire Ghostscript ps2pdf. ps2pdf fonctionne tr�s bien et la qualit� des PDF g�n�r�s est bonne. En d'autres mots, nous pouvons toujours g�n�rer les fichier PDF si nous g�rons le document comme un fichier postscript.

Le syst�me d'impression de Linux est bas� sur postscript ; ainsi, cela devrait �tre simple !? Le probl�me est r�ellement de trouver une mani�re de le r�aliser avec un script en ligne de commande. Vous ne souhaitez pas cliquer avec la souris lorsque vous avez besoin d'imprimer quelques centaines d'articles.

Si vous n'�tes pas concern�s par les tables, les couleurs et les images, alors une combinaison de � lynx -dump .... | nenscript � et ps2pdf fonctionnera. Si, par contre, vous avez besoin des tables et des images, continuez votre lecture.

Les candidats

html2ps

C'est un script Perl et la version test�e ici �tait html2ps 1.0 beta3. La page d'accueil est http://user.it.uu.se/~jan/html2ps.html
Le programme fonctionne assez bien. Il requiert cependant beaucoup de modules Perl comme d�pendances et il a des probl�mes avec les tables des pages pour les structurer. C'est une bonne solution si vous avez une disposition graphique tr�s simple.

LaTeX

Il y a un convertisseur de LaTeX vers PDF. En utilisant XSLT, vous pouvez transformer du HTML en LaTeX. Un pr�-requis pour cela est d'avoir un fichier HTML syntaxiquement correct. Cela peut �tre r�alis� avec l'utilitaire Tidy :
HTML --(tidy)--> XHTML --(XSLT)--> Latex --(pdflatex)--> PDF
Je n'ai pas investigu� plus loin dans cette voie parce que je trouve XSLT et LaTeX trop lourds et complexes.

T�l�commande de navigateur web

Si, d'une mani�re ou d'une autre, il �tait possible de commander � distance un navigateur web, alors nous aurions l'avantage d'un fichier PDF g�n�r�, identique � ce que vous voyez normalement dans votre navigateur web. Le probl�me est qu'il faut un affichage X11. Il n'est donc pas possible de le faire ex�cuter par un job cron.

Le projet Mozilla a am�lior� l'impression et le rendu. Cela a cependant enlev� quelques possibilit�s de contr�le � distance que Netscape Communicator avait. La solution suivante ne fonctionnera donc qu'avec Communicator 4.x :
netscape -noraise -remote "openurl(http://unepage)"
sleep(10) # il n'y a pas moyen de savoir si une page est compl�tement charg�e
          # donc, nous attendons un peu
netscape -noraise -remote saveas(unepage.ps,PostScript)
sleep(10)
ps2pdf unepage.ps
Quelques lecteurs m'ont dit qu'ils pensaient que la t�l�commande d'impression devrait �tre �galement possible avec Konqueror mais personne n'a pu me fournir de solution fonctionnelle.

htmldoc

Htmldoc est un utilitaire tr�s bien �crit de http://www.htmldoc.org/. La commande suivante va faire exactement ce que nous voulons :
htmldoc -t pdf -webpage -f fichier.pdf fichier.html
Nous avons utilis� la version 1.8.24 et elle fonctionnait parfaitement. Le seul probl�me est que les fichiers PDF r�sultants sont, en moyenne, 10 fois plus gros que n'importe quel autre fichier PDF g�n�r� par les autres solutions, peu importe l'option de compression que vous utilisez dans htmldoc. C'est un gros probl�me si vous avez des centaines de documents.

Conclusion

Nous utilisons maintenant une combinaison de t�l�commande Netscape et Htmldoc. Nous ne pouvons pas compter uniquement sur Htmldoc, vu la taille des fichiers g�n�r�s. Si vous avez d'autres suggestions ou des id�es � ce sujet, �crivez-nous !