PDF aus XML und XSL:FO

Grundaufbau eines XSL-FO

Die XSL-FO-Sprache wird durch ein wohlgeformtes XML-Dokument dargestellt, das den fo-Namensraum (www.w3.org/1999/XSL/Format) benutzt. Das Wurzelelement ist fo:root.

<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:fo="http://www.w3c.org/1999/XSL/Format">
...
</fo:root>

Innerhalb dieses Tags werden zunächst die möglichen Seitenlayouts beschrieben und in welcher Reihenfolge diese Seiten auftreten können. Danach folgen die eigentlichen Seiten und ihr Inhalt.

Das Formatierungsmodell von FO basiert auf rechteckigen Bereichen, die Text, Bilder oder wiederum andere Formatierungsobjekte enthalten können. Auf einer Seite können verschiedene Arten von Bereichen auftauchen:

EineSeiteist in bis zu fünf Region-Areas unterteilt (oft auch als Flow bezeichnet): Body für den eigentlichen Seiteninhalt und Before, After, Start und End für Kopfzeilen, Fußzeilen oder Randbemerkungen.

Eine Block-Area ist dadurch gekennzeichnet, dass davor und danach ein Zeilenumbruch platziert wird. Sie entspricht etwa einem Absatz, einer Zwischenüberschrift oder einer Bildunterschrift. Alle Blöcke eines Dokuments werden sequenziell vom Formatter aneinander gereiht.

Eine Line-Area repäsentiert eine Textzeile innerhalbs eines Blocks. Es gibt kein Formatting Object, um eine Line dediziert auszuweisen. Der Formatter erzeugt die Zeilen, indem er den Inhalt eines Blocks umbricht.

Eine Inline-Area ist Bestandteil einer Zeile und dient beispielsweise dazu, Formeln, Grafiken oder Referenzen in den Text einzublenden.