Untergeordnete Seiten
  • Von der Textdatei zum PDF
Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Oft besteht die Anforderung, einfache Textdateien zum Druck vorzubereiten oder an Dritte weiterzugeben. Dabei bietet sich das Universalformat PDF an. Doch wie soll der Weg dahin geschehen?

Dieser Artikel zeigt, wie einfach es möglich ist, mit jadice server 5 eine Textdatei in ein PDF-Dokument zu konvertieren und dabei zusätzlich Formatierungen einzubringen.

XSL-FO ist der Weg

XSL-FO ist eine Seitenformatierungssprache, die von der W3C standardisiert ist. Mit ihr können hochwertige Druckerzeugnisse in einer XML-Syntax deklariert werden. Die Verarbeitung ist in der Regel zweistufig:

Zunächst wird eine beliebige XML-Datei durch eine XSL-Transformation in die XSL-FO-Syntax überführt. Danach wird ein XSL-FO-Prozessor angesprochen, der diese XML-Datei in das gewünschte Format überführt. jadice server 5 liefert dazu den Prozessor "Apache FOP" mit, der die wesentlichen Teile des XSL-FO-Standards abdeckt.

Vom Text zur XML-Datei

Bevor die unstrukturierte Textdatei mittels XSL-FO konvertiert werden kann, muss aus ihr eine XML-Datei werden. Für diesen ersten Schritt gibt es in jadice server 5 einen sehr einfachen Node, der diese Arbeit übernimmt, den PlaintextToXMLNode. In den Ergebnisdatenstrom können wahlweise auch die Metadaten der Ursprungsdatei in Form ihres StreamDescriptors übernommen werden. Dies machen wir uns in diesem Beispiel zu Nutze, um eine Kopfzeile und den Dateinamen in der spätere PDF einzubringen.

Beispiel einer Textdatei:

Lorem ipsum dolor sit amet, ...

Nach der Transformation mit dem PlaintextToXMLNode:

 Von der XML-Datei zum PDF

Aus der XML-Datei aus dem Schritt und einem statischen XSL-FO-Template, das im Konfigurationsverzeichnis abgelegt wird, kann nun das PDF erstellt werden. jadice server 5 bietet hierfür den XSLFOFormatterNode an, der sowohl die XSL-Transformation von der XML-Datei und dem Template durchführt und das Ergebnis direkt im Anschluss über den XSL-FO-Prozessor konvertiert.

Während der Entwicklung bietet es sich an, nur die XSL-Transformation durchzuführen und das Ergebnis zu kontrollieren. Dazu bietet jadice server 5 den XSLTransformationNode an. Hier das Ergebnis mit dem Beispiel-Template, das Sie im Anhang finden:

 

Alles zusammen in einem Aufruf

Alle Schritte zur Konvertierung von Text nach PDF können mit einem einzigen Aufruf an jadice server 5 durchgeführt werden. Der folgende Code-Block zeigt schematisch den notwendigen Ausruf an:

 

Benötigte Dateien

Für dieses Beispiel benötigen Sie das XSL-FO-Template, dass Sie im Anhang finden. Dieses muss in der jadice server-Installation in das Verzeichnis <jadice-server>/server-config/xlsfo-demo kopiert werden.

Dort finden Sie außerdem das Ergebnis dieses Beispiels.

  Datei Geändert
PDF-Datei Ergebnis.pdf Ergebnis der XSL-FO-Konvertierung 19 Apr 2013 by Benjamin Geißelmeier
XML-Datei plaintext.xsl XSL-FO-Template 19 Apr 2013 by Benjamin Geißelmeier

Und andere Formate?

Der XSL-FO-Prozessor Apache FOP kann nicht nur PDF als Zielformat erzeugen, sondern auch weitere Formate wie z.B. TIFF oder PCL. Diese können durch die Angabe des passenden MIME-Types in der Methode setTargetMimeType() ausgewählt werden.