LF Tip: PDFs aus HTML Dokumenten erzeugen

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 de Sebastian Bauer

AboutTheAuthor:[A small biography about the author]

Wir haben vor einiger Zeit angek�ndigt, dass wir unsere Artikel auch als PDFs verf�gbar machen wollen. Als Antwort darauf erhielten wir eine Reihe von Vorschl�gen, die in diesem Tipp zusammengefasst sind. Vielen Dank f�r alle Vorschl�ge.

Abstract:

Dies ist ein kurzer Tipp, wie es ihn von jetzt an mindestens einmal im Monat bei LinuxFocus geben wird. Wenn Sie eine Idee f�r einen neuen Tipp haben schicken Sie ihn bitte an guido("at" sign)linuxfocus.org

ArticleIllustration:

mozilla firefox

ArticleBody:

Introduction

Wahrscheinlich hast du bemerkt, dass wir f�r Sprachen, die den iso8859-1 Zeichensatz verwenden, jetzt auch PDF-Dokumente aller Artikel zur Verf�gung stellen. Das war nicht leicht zu realisieren, besonders weil die PDFs automatisch erzeugt werden sollten, damit sich HTML- und PDF-Dokumente nicht unterscheiden.

Hier werden nun unsere Erfahrungen mit einigen M�glichkeiten zur Erzeugung von PDFs beschrieben.

Die Idee

Alle Linux-Systeme enthalten das Ghostscript-Tool ps2pdf. ps2pdf funktioniert sehr gut und die Qualit�t der erzeugten PDFs ist gut. Mit anderen Worten ist es kein Problem PDFs zu erstellen, wenn wir es schaffen die Dokumente in Postscript umzuwandeln.

Da das gesamte Linux Drucksystem auf Postscript basiert, sollte das also eigentlich kein Problem sein!? Das eigentliche Problem ist aber, das Ganze mit einem Script von der Kommandozeile aus zu erledigen. Wer will schon jedesmal mit der Maus klicken, wenn es gilt ein paar Tausend Artikel zu drucken.

Wenn du dir keine Gedanken um Farben, Tabellen oder Bilder machen musst, reicht eine Kombination von lynx -dump .... | nenscript und ps2pdf aus. Wenn du aber Tabellen oder Bilder brauchst, lie� weiter...

Die Kandidaten

html2ps

Hierbei handelt es sich um ein Perl Script, das wir in der Version html2ps 1.0 beta3 getestet haben. Es kann auf der Seite http://user.it.uu.se/~jan/html2ps.html heruntergeladen werden.

Das Programm funktioniert ziemlich gut. Es ben�tigt aber einige Perl Module als Abh�ngigkeiten und es hat Probleme mit Tabellen, die zur Strukturierung der Seite verwendet werden. Es ist eine sehr gute Wahl, wenn man ein sehr einfaches Layout hat.

latex

Es gibt ein Programm, das LaTeX nach PDF konvertiert. Mit xslt k�nnte man HTML in LaTeX umwandeln. Eine Voraussetzung f�r dieses Vorgehen ist syntaktisch korrektes HTML, das mit dem Tool tidy erzeugt werden kann:

HTML --(tidy)--> XHTML --(XSLT)--> Latex --(pdflatex)--> PDF

Ich habe diese M�glichkeit nicht weiter untersucht, da ich xslt und LaTeX als zu schwer und komplex empfunden habe.

Browser Fernsteuerung

Wenn es m�glich w�re, den Browser fernzusteuern, h�tte das den Vorteil, dass das erzeugte PDF identisch mit der anzeigten Seite im Browser w�re. Das Problem ist, das ein X11 Server ben�tigt wird. Diese M�glichkeit kann also nicht durch einen Cronjob gestartet werden.

Das Mozilla Projekt hat das Drucksystem verbessert, aber auch einige F�higkeiten zur Fernsteuerung des Netscape Communicator entfernt. Die folgende L�sung funktioniert deshalb nur mit dem Communicator 4.X

netscape -noraise -remote "openurl(http://somepage)"
sleep(10) # there is no way to know if the page is completely loaded
          # so we just wait a bit
netscape -noraise -remote saveas(somepage.ps,PostScript)
sleep(10)
ps2pdf somepage.ps

Einige Leser haben mir geschrieben, dass sie glauben Drucken per Fernsteuerung sei auch mit dem Konqueror m�glich, aber leider konnte niemand eine funktionierende L�sung liefern.

htmldoc

htmldoc ist ein sehr gut geschriebenes Programm von http://www.htmldoc.org/. Das folgende Kommando macht genau das, was wir wollten:

htmldoc -t pdf --webpage -f file.pdf file.html

Wir haben Version 1.8.24 verwendet und es funktioniert ausgezeichnet. Das einzige Problem ist die Gr��e der PDFs. Durchschnittlich sind sie zehn mal gr��er als die, die mit einer der anderen M�glichkeiten erzeugt wurden, egal welche Kompression bei htmldoc verwendet wurde. Ein gro�es Problem, wenn man tausende von Dokumenten hat.

Zusammenfassung

Wir verwenden jetzt eine Kombination von Netscape Fernsteuerung und htmldoc. Sich alleine auf htmldoc zu st�tzen war wegen der Gr��e der erzeugten PDFs leider nicht m�glich. Wenn du weitere Vorschl�ge oder Ideen bez�glich dieses Themas hast schreib uns bitte.