In drei Schritten zum Druck

(Montero Pineda, Manuel: In drei Schritten zum Druck, in: technische kommunikation, Heft 3, 2018).

XML-Dokumente zur Ausgabe für ein gedrucktes Medium umzuwandeln, gehört zum Alltag in vielen Technischen Redaktionen. Ein nützliches Werkzeug für diese Aufgabe ist der W3C-Standard XSL-FO.

Die Abkürzung XSL-FO steht für "eXtensible Stylesheet Language – Formatting Objects". Mit dieser Sprache lassen sich Druckdateien erzeugen. Ausgangspunkt sind in der Regel XML-Dateien, die über XSL-FO in PDF umgewandelt werden. Herausgeber des XSL-FO-Standards ist das World Wide Web Consortium (W3C). Damit gehört er zur gleichen Sprachfamilie wie HTML, CSS und XSLT.

Wo liegen die Stärken von XSL-FO?

XSL-FO wird immer dann verwendet, wenn eine vollautomatische Ausgabe aus XML erfolgen soll. Daher haben die Entwickler großen Wert darauf gelegt, dass XSL-FO international verwendet werden kann: Es werden alle Schreibrichtungen und die Silbentrennung aller Sprachen unterstützt, auch aus dem arabischen und asiatischen Raum. Neben der Eigenschaft, dass XSL-FO alle Sprachen unterstützt, hat der Standard weitere Stärken. Sie liegen in der Erstellung von Registern und Verzeichnissen sowie in der Verwendung komplexer Seitenfolgen.

Wie funktioniert die Ausgabe?

Im ersten Schritt wird aus einer XML-Datei und einem XSL-Stylesheet mit Hilfe eines XSLT-Prozessors eine XML-FO-Datei generiert. Die Datei ähnelt vom Gedanken her einer HTML-Datei: Sie wird nicht im Quelltext gelesen, sondern mit einem Browser visualisiert. Nach diesem Schritt enthält die FO-Datei alle Angaben, die für die Druckausgabe nötig sind.

Das Programm für die Druckausgabe nennt sich XSL-Formatierer und stellt den zweiten Schritt im XSL-FO-Workfl­ow dar. Ein Formatierer ähnelt in seiner Funktionsweise einem Browser. Seine Aufgabe ist jedoch nicht die Web-Ansicht, sondern eben die Ausgabe für den Druck. Ähnlich wie ein Browser liest der XSL-Formatierer auch Grafiken ein, die normalerweise separat abgelegt sind.

Im letzten Schritt geht es um die Druckausgabe. Wird ein PDF benötigt, ist an dieser Stelle noch ein PDF-Generator notwendig. Er wird in allen Formatierern mitgeliefert, kann aber auch durch einen anderen ausgetauscht werden. Neben PDF sind auch Formate wie SVG oder PostScript möglich. Die folgende Abbildung fasst den Ablauf zusammen.

Von der XML-Datei zur fertigen Druckausgabe

Abbildung: Von der XML-Datei zur fertigen Druckausgabe.

Wie sieht die konkrete Umsetzung aus?

Ausgangspunkt für das folgende Beispiel ist eine kleine XML-Datei. Sie enthält verschiedene Gedichte und verwendet nur wenige Elemente. Zum Beispiel kommen die Elemente Autor, Titel, Vorname, Nachname, Strophe und Vers vor (die XML-Datei ist als Auszug auch unter Der Verwandlungskünstler zu sehen).

Im ersten Schritt des XSL-FO-Work­ows wird die XML-Datei zusammen mit einem XSL-FO-Stylesheet verarbeitet. Das dazugehörige Stylesheet zeigt die folgende Abbildung.

Das Stylesheet für unser Gedicht-Beispiel

Abbildung: Das Stylesheet für unser Gedicht-Beispiel.

Zu sehen sind viele Befehle, die mit fo: beginnen. All diese Befehle benötigt der FO-Formatierer. Sie sind der eigentliche XSLFO-Standard. Neben den fo:-Befehlen sind Angaben zu sehen, die notwendig sind, um eine Druckausgabe zu ermöglichen. Dazu zählt zum Beispiel die Definition einer DIN A4-Seite mit einer Höhe (page-height) von 297 Millimetern und einer Breite (page-width) von 210 Millimetern:

<fo:simple-page-master [...] page-height="297mm" page-width="210mm">

Neben der Definition der Seite befinden sich in diesem Beispiel auch Befehle für die Visualisierung der einzelnen Elemente des Gedichts. Der Autor soll beispielsweise als Absatz, mit der Schriftgröße 12 und fett dargestellt und mit dem nächsten Element zusammengehalten werden:

<xsl:template match="Autor">
   <fo:block font-size="12pt" font-weight="bold" keep-with-next.within-page="always">

Der Titel soll ebenfalls als Absatz dargestellt werden, mit der Schriftgröße 16, auch fett und mit einem kleinen Abstand danach:

<xsl:template match="Titel">
    <fo:block font-size="16pt" fontweight="bold" space-after="10pt" keep-with-next.within-page="always">

Des Weiteren wird die Strophe als Absatz und mit einem Abstand von vier Punkt definiert:

<xsl:template match="Strophe">
   <fo:block space-after="4pt">

Außerdem soll das Gedicht einen größeren Abstand zum nächsten Gedicht haben:

<xsl:template match="Gedicht">
   <fo:block space-after="20pt">

Das Element Untertitel soll die Schriftgröße 12 haben, fett ausgegeben werden und zusätzlich kursiv sein:

<xsl:template match="Untertitel">
   <fo:block font-size="12pt" font-weight="bold" font-style="italic">

Wie entsteht die FO-Datei?

Zunächst muss der XSLT-Prozessor gestartet werden. Er verarbeitet die XML-Datei zusammen mit dem XSL-FO-Stylesheet und erzeugt eine FO-Datei. In der FO-Datei erkennen wir, dass alle Befehle übernommen wurden, die in dem Stylesheet angegeben waren. Zum Beispiel zeigt die folgende Abbildung die Angaben für den Titel mit Schriftgröße 16, fett und 10pt-Abstand.

Angaben für die Darstellung von Titel-Elementen

Abbildung: Die Angaben für die Darstellung von Titel-Elementen.

Wenn wir uns durch die Datei klicken, stellen wir fest, dass die Layout-Angaben für jedes Element übernommen wurden. Normalerweise wird die FO-Datei nicht angezeigt, da sie nur im Hintergrund benötigt wird.

Wie wird die Ausgabedatei erzeugt?

Im nächsten Schritt folgt das PDF. Dafür kommt der XSL-FO-Formatierer ins Spiel. In diesem Fall handelt es sich um die Open-Source-Lösung "Apache FOP" (Formatting Objects Processor). Gestartet wird der Ablauf durch einen Batch-Befehl. Der FOP-Formatierer startet, nimmt die FO-Datei und erzeugt ein PDF. Die Gedichte sind nun in einer Druckausgabe vorhanden – siehe die folgende Abbildung.

Ausgabe der Gedichte als PDF

Abbildung: Die Ausgabe der Gedichte als PDF.

Es wurden Seitennummern erzeugt sowie die jeweilige Darstellung des Autors, der Überschrift, des Untertitels, der Verse und der Strophen.

Wo liegen die Einsatzbereiche?

Die Technische Dokumentation ist ein typischer Anwendungfall für XSL-FO. Hier kann der Standard dank seiner Internationalisierung viele Stärken zeigen. Außerdem eignen sich Handbücher besonders gut für den Einsatz von XSL-FO, da sie sehr systematisch aufgebaut sind. Das macht die Verarbeitung mit XSL-FO leichter.

Auch Verlage verwenden den Standard. Entsprechende Workfl­ows werden dort zumeist für Previews eingesetzt. Das bedeutet, dass der Autor vorab eine Version bekommt, die dem fertigen Layout sehr nahekommt. Nur selten wird jedoch der komplette Satz einer Publikation mit XSL-FO erstellt.

Ein weiterer Einsatzbereich sind Kataloge, zumeist mit technischen Inhalten. Ähnlich wie Handbücher sind die Kataloge syssystematisch aufgebaut. Weniger geeignet sind Kataloge, die sehr bildlastig und bei denen die Seiten nicht gleichartig aufgebaut sind. Dazu zählen zum Beispiel Kataloge für Mode oder Reisen.

Wie sieht die Zukunft aus?

Das W3C hat Version 1.0 von XSL-FO im Jahr 2001 herausgegeben. Die Version 1.1 erschien im Dezember 2006. Das Konsortium hat die Weiterentwicklung mittlerweile eingestellt und somit ist der Standard abgeschlossen. Der offizielle Nachfolgestandard von XSL-FO ist CSS. Allerdings ist der Nachfolger noch nicht so ausgereift, was sich auf lange Sicht aber ändern könnte.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSL-FO bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2018 tcworld GmbH
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieser Artikel aus der Fachzeitschrift "technische kommunikation" (Heft 3, 2018) denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

tcworld GmbH, Rotebühlstraße 64, 70178 Stuttgart, info@tekom.de, www.tekom.de