XSL-FO ( XSL Formatting Objects ) ist eine Auszeichnungssprache zur Formatierung von XML- Dokumenten, die häufig zur Erstellung von PDF- Dateien verwendet wird. XSL-FO ist Bestandteil von XSL (Extensible Stylesheet Language), einer Sammlung von W3C- Technologien zur Transformation und Formatierung von XML-Daten. Weitere Bestandteile von XSL sind XSLT und XPath . Version 1.1 von XSL-FO wurde 2006 veröffentlicht.
XSL-FO wird vom W3C als funktionsvollständig betrachtet: [ 1 ] Die letzte Aktualisierung des Arbeitsentwurfs erfolgte im Januar 2012, und die zugehörige Arbeitsgruppe wurde im November 2013 aufgelöst. [ 2 ]
Grundlagen
Im Gegensatz zur Kombination aus HTML und CSS ist XSL-FO eine einheitliche Darstellungssprache. Sie besitzt keine semantische Auszeichnung im HTML-Stil. Und im Gegensatz zu CSS, das die Standarddarstellung eines externen XML- oder HTML-Dokuments verändert, speichert sie alle Daten des Dokuments in sich selbst.
Die Grundidee von XSL-FO besteht darin, dass der Benutzer ein Dokument nicht in FO, sondern in einer XML-Sprache verfasst. Beispiele hierfür sind XHTML , DocBook und TEI . Anschließend erstellt der Benutzer eine XSLT- Transformation, entweder indem er sie selbst schreibt oder eine passende für den jeweiligen Dokumenttyp findet. Diese XSLT-Transformation wandelt das XML in XSL-FO um.
Sobald das XSL-FO-Dokument generiert ist, wird es an eine Anwendung, den sogenannten FO-Prozessor, übergeben. FO-Prozessoren konvertieren das XSL-FO-Dokument in ein lesbares, druckbares oder beides Format. Am häufigsten wird XSL-FO als PDF- Datei oder im PostScript-Format ausgegeben, einige FO-Prozessoren können aber auch andere Formate wie RTF- Dateien oder sogar ein Fenster in der Benutzeroberfläche (GUI) ausgeben, das die Seitenreihenfolge und deren Inhalt anzeigt.
Die XSLT-Sprache wurde ursprünglich nur für diesen Zweck entwickelt; mittlerweile wird sie jedoch auch für allgemeinere XML-Transformationen eingesetzt. Dieser Transformationsschritt ist in XSL-FO so selbstverständlich, dass das XSLT-Dokument, das XML in XSL-FO umwandelt, oft fälschlicherweise als das eigentliche XSL-FO-Dokument bezeichnet wird. Selbst Tutorials zu XSL-FO verwenden häufig XSLT-Befehle, die die FO-Verarbeitungsanweisungen ergänzen.
Der XSLT-Transformationsschritt ist außerordentlich leistungsstark. Er ermöglicht die automatische Generierung eines Inhaltsverzeichnisses, verlinkter Verweise, eines Index und verschiedener anderer Möglichkeiten.
Ein XSL-FO-Dokument unterscheidet sich von PDF- oder PostScript-Dokumenten. Es beschreibt nicht das Layout des Textes auf den einzelnen Seiten, sondern deren Aussehen und die Position der Inhalte. Ein FO-Prozessor bestimmt anschließend die Positionierung des Textes innerhalb der im FO-Dokument definierten Grenzen. Die XSL-FO-Spezifikation erlaubt es sogar, dass verschiedene FO-Prozessoren unterschiedlich auf die generierten Seiten reagieren.
Manche FO-Prozessoren trennen Wörter beispielsweise, um beim Zeilenumbruch Platz zu sparen, andere hingegen nicht. Unterschiedliche Prozessoren verwenden mitunter sogar verschiedene Trennalgorithmen – von sehr einfachen bis hin zu komplexen, die berücksichtigen, ob die vorherige oder die nächste Zeile ebenfalls getrennt ist. Dies kann das Layout der einzelnen Seiten in manchen Grenzfällen erheblich verändern. In anderen Fällen räumt die XSL-FO-Spezifikation FO-Prozessoren jedoch explizit einen gewissen Spielraum hinsichtlich des Layouts ein.
Die Unterschiede zwischen den FO-Prozessoren, die zu inkonsistenten Ergebnissen führen können, sind oft unproblematisch. Denn der Hauptzweck von XSL-FO ist die Erstellung von gedruckten Medien. XSL-FO-Dokumente dienen in der Regel als Zwischenprodukte, meist zur Generierung von PDF- Dateien oder gedruckten Dokumenten als endgültige Form für die Verteilung. Im Gegensatz dazu wird HTML direkt als endgültige Form an den Benutzer generiert und verteilt. Die Verteilung des fertigen PDFs anstelle der Formatierungssprache (HTML/CSS oder XSL-FO) hat den Vorteil, dass die Empfänger nicht von den Unvorhersehbarkeiten aufgrund unterschiedlicher Formatierungsspracheninterpreter betroffen sind. Andererseits lässt sich das Dokument nicht so einfach an die unterschiedlichen Bedürfnisse der Empfänger anpassen, z. B. an verschiedene Seitengrößen, bevorzugte Schriftgrößen oder die Darstellung auf Bildschirm, Papier oder Audio.
Sprachkonzepte
Die XSL-FO-Sprache wurde für seitenbasierte Medien entwickelt; daher ist das Konzept der Seiten ein integraler Bestandteil der XSL-FO-Struktur.
FO eignet sich am besten für sogenanntes „inhaltsorientiertes“ Design. Dies ist die Standardmethode für das Layout von Büchern, Artikeln, juristischen Dokumenten usw. Dabei wird ein zusammenhängender Textabschnitt verwendet, wobei wiederkehrende Informationen in den Seitenrändern angeordnet sind. Dies steht im Gegensatz zum „layoutorientierten“ Design, das in Zeitungen oder Zeitschriften Anwendung findet. Passt der Inhalt dieser Dokumente nicht in den vorgegebenen Platz, wird er entsprechend gekürzt. XSL-FO kann die strengen Vorgaben für das Magazinlayout nicht ohne Weiteres umsetzen; in vielen Fällen fehlen ihm sogar die Möglichkeiten, bestimmte Layoutformen abzubilden.
Trotz des einfachen Designs der Sprache bietet sie eine hohe Ausdrucksstärke. Tabellen, Listen, seitliche Ausrichtungen und viele weitere Funktionen stehen zur Verfügung. Diese Funktionen sind mit den Layoutfunktionen von CSS vergleichbar, wobei einige dieser Funktionen voraussichtlich von XSLT implementiert werden.
Dokumentstruktur
XSL-FO-Dokumente sind XML-Dokumente, müssen aber keiner DTD oder einem Schema entsprechen. Stattdessen entsprechen sie einer in der XSL-FO-Spezifikation definierten Syntax .
XSL-FO-Dokumente enthalten zwei obligatorische Abschnitte. Der erste Abschnitt enthält eine Liste benannter Seitenlayouts. Der zweite Abschnitt ist eine Liste von Dokumentdaten mit Auszeichnungssprache, die anhand der verschiedenen Seitenlayouts festlegt, wie der Inhalt auf die einzelnen Seiten verteilt wird.
Seitenlayouts definieren die Eigenschaften einer Seite. Sie legen den Textfluss fest, um den Konventionen der jeweiligen Sprache zu entsprechen. Sie bestimmen die Seitengröße und die Seitenränder. Vor allem aber können sie Seitenfolgen definieren, die Effekte ermöglichen, bei denen gerade und ungerade Seiten unterschiedlich aussehen. Beispielsweise kann man eine Seitenfolge festlegen, die für den Druck zusätzlichen Platz an den Innenrändern vorsieht; dadurch bleibt mehr Platz am Rand, an dem das Buch gebunden wird.
Der Dokumentdatenteil ist in eine Abfolge von Datenflüssen unterteilt, wobei jeder Datenfluss einem Seitenlayout zugeordnet ist. Die Datenflüsse enthalten eine Liste von Blöcken, die wiederum jeweils eine Liste von Textdaten, Inline-Markup-Elementen oder einer Kombination aus beidem enthalten. Inhalte wie Seitenzahlen, Kapitelüberschriften usw. können auch in den Dokumenträndern hinzugefügt werden.
Blöcke und Inline-Elemente funktionieren im Prinzip genauso wie in CSS, obwohl sich einige Regeln für Padding und Margin zwischen FO und CSS unterscheiden. Die Richtung relativ zur Seitenausrichtung für die Abfolge von Blöcken und Inline-Elementen lässt sich vollständig festlegen, sodass FO-Dokumente auch in anderen Sprachen als Englisch funktionieren. Im Gegensatz zu CSS 2.1 verwendet die FO-Spezifikation richtungsneutrale Begriffe wie „Start“ und „Ende“ anstelle von „links“ und „rechts“, um diese Richtungen zu beschreiben.
Die grundlegende Inhaltsauszeichnung von XSL-FO basiert auf CSS und dessen Kaskadenregeln. Daher werden viele Attribute in XSL-FO an die Kindelemente weitergegeben, sofern sie nicht explizit überschrieben werden.
Funktionen von XSL-FO v1.0
XSL-FO bietet umfangreiche Funktionen zur Textgestaltung. Zusätzlich zu den oben genannten Informationen ermöglicht die Sprache von XSL-FO die Spezifikation der folgenden Punkte.
Mehrere Spalten
Eine Seite kann mehrspaltig sein. In diesem Fall fließen die Texte standardmäßig von einer Spalte in die nächste. Einzelne Texteinträge können sich über alle Spalten erstrecken und so einen Textumbruch erzeugen. Die Spalten oberhalb dieses Umbruchs fließen dann ineinander, ebenso wie die Spalten unterhalb. Es ist jedoch nicht möglich, Text vom oberen in den unteren Abschnitt zu fließen.
Aufgrund der Beschaffenheit der Seitenspezifikation von XSL-FO können mehrere Seiten tatsächlich unterschiedliche Spaltenanzahlen und -breiten aufweisen. Daher kann der Textfluss von einer dreispaltigen Seite über eine fünfspaltige Seite zu einer einspaltigen Seite problemlos erfolgen.
Alle FO-Funktionen funktionieren innerhalb der Beschränkungen einer mehrspaltigen Seite.
Wir können mehrere Spalten überspannen, indem wir zwei Attribute angeben, d.h. span und padding-after.
Listen
Eine XSL-FO-Liste besteht im Wesentlichen aus zwei nebeneinander angeordneten Blockgruppen. Ein Eintrag setzt sich aus einem Block links (Startrichtung) und einer Blocksequenz rechts (Endrichtung) zusammen. Der linke Block entspricht konzeptionell der Nummer oder dem Aufzählungspunkt in einer Liste. Er kann aber genauso gut ein Textstring sein, wie man ihn beispielsweise in einem Glossareintrag findet. Der rechte Block funktioniert wie erwartet. Beide Blockgruppen können als Container fungieren oder mehrere Blöcke in einem einzigen Listeneintrag enthalten.
Die Nummerierung von XSL-FO-Listen erfolgt, sofern sie nummeriert sind, üblicherweise durch das XSLT oder den Prozess, der das XSL-FO-Dokument erzeugt hat. Daher müssen Listen in XSL-FO explizit nummeriert werden.
Seitenumbruchsteuerung
Der Benutzer kann für Blöcke oder den gesamten Datenfluss Witwen- und Waisen- Attribute festlegen und deren Vererbung in untergeordnete Blöcke ermöglichen. Zusätzlich kann definiert werden, dass Blöcke auf einer Seite zusammenbleiben. Beispielsweise kann festgelegt werden, dass ein Bildblock und seine Beschreibung niemals getrennt werden. Der FO-Prozessor versucht, diese Anweisungen bestmöglich umzusetzen, selbst wenn dadurch viel Leerraum auf der Seite entsteht.
Fußnoten
Der Benutzer kann Fußnoten erstellen, die am Seitenende erscheinen. Die Fußnote wird im FO-Dokument im Fließtext an der Stelle eingefügt, an der sie referenziert wird. Die Referenz wird als Inline-Definition dargestellt, dies ist jedoch optional. Der Hauptteil besteht aus einem oder mehreren Blöcken, die vom FO-Prozessor am Seitenende platziert werden. Der FO-Prozessor stellt sicher, dass die zugehörige Fußnote unabhängig von der Referenz auf derselben Seite beginnt. Dies gilt auch dann, wenn dadurch zusätzlicher Leerraum entsteht.
Tabellen
Eine FO-Tabelle funktioniert ähnlich wie eine HTML/CSS-Tabelle. Der Benutzer gibt für jede einzelne Zelle die Datenzeilen an. Zusätzlich kann er für jede Spalte Formatierungsinformationen wie die Hintergrundfarbe festlegen. Außerdem kann er die erste Zeile als Tabellenkopfzeile mit eigenen Formatierungsinformationen definieren.
Dem FO-Prozessor kann genau vorgegeben werden, wie viel Platz jeder Spalte zugewiesen werden soll, oder er kann angewiesen werden, den Text automatisch an die Tabelle anzupassen.
Steuerung der Textausrichtung
FO bietet umfangreiche Steuerungsmöglichkeiten zur Ausrichtung von Textblöcken. Man kann mitten auf einer Seite einen Textblock festlegen, der anders ausgerichtet werden soll. Diese ausgerichteten Blöcke eignen sich für Sprachen, die anders ausgerichtet sind als der Rest des Dokuments, oder einfach, wenn der Text aus Layoutgründen ausgerichtet werden muss. Diese Blöcke können praktisch jeden Inhalt enthalten, von Tabellen über Listen bis hin zu anderen neu ausgerichteten Textblöcken.
Verschiedenes
- Seitenzahlenangaben. Eine Seite, die ein spezielles Tag enthält, kann im Text zitiert werden, und der FO-Prozessor fügt die tatsächliche Seitenzahl ein, auf der dieses Tag vorkommt.
- Blockrahmen in verschiedenen Ausführungen.
- Hintergrundfarben und -bilder.
- Schriftartsteuerung und -gewichtung, wie in CSS.
- Seitliche Schwimmer.
- Verschiedene Inline-Elemente.
Funktionen von XSL-FO v1.1
Version 1.1 von XSL-FO fügt der Version 1.0 eine Reihe neuer Funktionen hinzu.
Mehrere Ströme und Flussabbildung
XSL-FO 1.0 schränkte die Textplatzierung auf einer Seite stark ein. Version 1.1 lockert diese Beschränkungen deutlich und ermöglicht es, Fließtext in mehrere explizite Bereiche einer Seite einzuordnen. Dies erlaubt einen zeitungsähnlicheren Satz.
Lesezeichen
Viele Ausgabeformate für XSL-FO-Prozessoren, insbesondere PDF, verfügen über Lesezeichenfunktionen. Diese ermöglichen es dem Format, einen Textabschnitt in einem separaten Fenster anzuzeigen, der vom Benutzer ausgewählt werden kann. Bei Auswahl des Textabschnitts scrollt das Dokumentfenster sofort zu diesem Abschnitt.
XSL-FO v1.1 bietet nun die Möglichkeit, benannte Lesezeichen in XSL-FO zu erstellen, wodurch der Prozessor diese an ein Ausgabeformat weiterleiten kann, das dies unterstützt.
Indizierung
XSL-FO 1.1 bietet Funktionen zur Erstellung eines Inhaltsverzeichnisses, wie es beispielsweise am Ende eines Buches zu finden ist. Dies geschieht durch Verweise auf korrekt ausgezeichnete Elemente im FO-Dokument.
Zitat auf der letzten Seite
Die letzte Seite kann generiert werden, ohne dass ein expliziter Verweis auf einen bestimmten Ankerpunkt im FO-Dokument angegeben werden muss. Die Definition von „letzte Seite“ kann auf einen bestimmten Seitenbereich beschränkt oder auf das gesamte Dokument ausgedehnt werden. So kann der Benutzer beispielsweise „Seite 2 von 15“ angeben, wobei Seite 15 die Seitenzahl der Definition der letzten Seite ist.
Tischmarkierungen
Tabellenmarkierungen ermöglichen es dem Benutzer, dynamische Inhalte in Tabellenkopf- und -fußzeilen zu erstellen, wie z. B. laufende Summen am Ende jeder Tabellenseite oder Hinweise wie „Tabelle wird fortgesetzt“.
Innen-/Außenschwimmer
XSL-FO 1.1 fügt die Schlüsselwörter „inside“ und „outside“ für seitliche Ausrichtungen hinzu, wodurch Seitenlayouts mit Randnotizen an den äußeren oder inneren Seitenrändern möglich werden. „Inside“ bezieht sich auf die Seite, die dem Buchrücken zugewandt ist, und „outside“ auf die Seite, die vom Buchrücken abgewandt ist.
Optimierte Grafikgrößen
XSL-FO 1.1 verbessert die Funktionalität zur automatischen Anpassung von Grafiken an die Bildschirmgröße. Grafiken können nun verkleinert (aber nicht vergrößert) werden, und es lassen sich spezifische Skalierungsschritte definieren. Der resultierende Skalierungsfaktor kann zudem für die Anzeige angegeben werden (z. B. in einer Bildunterschrift: „Abbildung in Originalgröße (50 %)“).
Vorteile
- XML-Sprache – Da es sich um eine XML-Sprache handelt, wird zur Generierung von XSL-FO-Code aus beliebigen XML-Sprachen lediglich eine XSLT-Transformation (und ein XSLT-Prozessor) benötigt. Man kann problemlos ein Dokument in TEI oder DocBook erstellen und es anschließend in HTML für die Webansicht oder (mittels eines FO-Prozessors) in PDF für den Druck umwandeln. Tatsächlich existieren bereits zahlreiche XSLT-Transformationen für TEI und DocBook, die für beide Zwecke geeignet sind.
- Benutzerfreundlichkeit – Ein weiterer Vorteil von XSL-FO ist die relative Benutzerfreundlichkeit. Da viele Funktionen der Sprache auf CSS basieren, sind CSS-Nutzer mit den Grundlagen der Markup-Attribute vertraut. Es ist in der Regel recht einfach zu verstehen, wie ein bestimmter Abschnitt eines FO-Dokuments aussieht.
- Kostengünstig – Im Vergleich zu kommerziellen Satz- und Layoutprogrammen bietet XSL-FO eine deutlich günstigere Lösung, sofern es die typografischen und Layout-Anforderungen erfüllt (siehe unten). Die Anschaffungskosten sind gering (bei kostenlosen Implementierungen wie Apache FOP und xmlroff sogar null), insbesondere im Vergleich zu kommerziellen Kompositionswerkzeugen. Die erforderlichen Kenntnisse (vor allem XSLT-Programmierung) sind weit verbreitet. Es gibt zahlreiche gute Bücher zu XSL-FO sowie Online-Ressourcen und eine aktive Benutzergemeinschaft.
- Mehrsprachigkeit – XSL-FO wurde für alle geschriebenen menschlichen Sprachen entwickelt, und die Implementierungen haben dieses Ziel weitgehend erreicht. Dadurch eignet sich XSL-FO besonders gut für die Erstellung von Dokumenten, die in eine Vielzahl von Landessprachen lokalisiert werden, wenn ein einziges Toolset benötigt wird, das alle Sprachversionen von Dokumenten erstellen kann. Dies ist besonders wertvoll für die technische Dokumentation von Produkten wie Unterhaltungselektronik, wo asiatische und nahöstliche Sprachen wichtig sind, da diese Regionen der Welt riesige Märkte für Produkte wie Mobiltelefone und Computerperipheriegeräte darstellen.
- Ausgereifter Standard – Mit der Veröffentlichung von XSL-FO 1.1 hat sich XSL-FO als ausgereifter Standard mit einer Vielzahl solider kommerzieller und nichtkommerzieller Implementierungen etabliert. Es gibt keinen vergleichbaren Standard für die Seitengestaltung.
Nachteile
- Begrenzte Möglichkeiten – XSL-FO wurde speziell für die Anforderungen von Dokumenten mit einfacher Gestaltung entwickelt, wie sie beispielsweise in technischen Handbüchern, Geschäftsdokumenten und Rechnungen vorkommen. Obwohl es auch für komplexere Designs verwendet werden kann, ist es in seinen Möglichkeiten hinsichtlich Layout und Typografie naturgemäß eingeschränkt. Insbesondere bietet XSL-FO keine direkte Möglichkeit, Formatierungseffekte zu erzielen, die von der Seitenpositionsbeziehung zweier Formatierungsobjekte abhängen. Beispielsweise lässt sich nicht direkt festlegen: „Wenn sich dieses Element auf derselben Seite wie jenes befindet, dann führe X aus, andernfalls Y.“ Dies ist eine bewusste Designentscheidung, die das zweistufige, transformationsbasierte abstrakte Verarbeitungsmodell von XSL-FO widerspiegelt. Diese Einschränkung kann durch die Implementierung eines mehrstufigen Prozesses behoben werden. Derzeit existiert jedoch kein Standard für die Rückmeldung des Ergebnisses des ersten Durchgangs an den zweiten. Die meisten Implementierungen bieten zwar ein verarbeitbares Zwischenergebnisformat, das hierfür verwendet werden kann, doch ist jeder heute implementierte Prozess zwangsläufig implementierungsspezifisch.
- Aus demselben Grund gibt es wichtige Layoutmerkmale , die in XSL-FO einfach nicht enthalten sind, entweder weil sie keine ausreichend hohe Priorität hatten oder weil ihre Gestaltung zu schwierig war, um sie in Version 1.1 aufzunehmen, oder weil es nicht genügend Implementierungen gab, um ihre Aufnahme in die endgültige Spezifikation gemäß den W3C-Regeln zu ermöglichen.
- Zusätzlich zu diesen architektonischen Einschränkungen bieten die aktuellen XSL-FO-Implementierungen, sowohl kommerzielle als auch Open-Source-Lösungen, nicht die gleiche typografische Raffinesse wie professionelle Layout-Tools wie QuarkXPress oder InDesign oder programmierbare Satzsysteme wie LaTeX . Beispielsweise bietet keine der aktuellen Implementierungen Funktionen, um sicherzustellen, dass Textzeilen auf gegenüberliegenden Seiten vertikal ausgerichtet sind. Die XSL-FO-Spezifikation verbietet dies zwar nicht, schreibt es aber auch nicht vor. Für die meisten Dokumente, für die eine vollautomatische Satzlösung ausreicht, ist diese typografische Raffinesse nicht erforderlich. Für hochwertige Publikationen und Bücher für den Massenmarkt ist sie jedoch in der Regel notwendig; in manchen Fällen kann dies durch die Verwendung von XSLT zur Generierung eines LaTeX- Dokuments erreicht werden.
- Abhängigkeit von Erweiterungen – Bei der Beurteilung der Anwendbarkeit von XSL-FO auf ein bestimmtes Dokument oder Dokumentdesign müssen die proprietären Erweiterungen der verschiedenen XSL-FO-Implementierungen berücksichtigt werden. Diese Erweiterungen fügen Funktionen hinzu, die nicht Teil der Kernspezifikation sind. Beispielsweise bietet ein Produkt Unterstützung für japanische Typografiekonventionen, die in der XSL-FO-Spezifikation nicht definiert sind. Die Verwendung dieser Funktionen führt jedoch dazu, dass ein solches XSL-FO-System etwas stärker an eine bestimmte Implementierung gebunden ist (wenn auch nicht so vollständig wie bei einem rein proprietären Kompositionssystem).
- Unpraktische manuelle Bearbeitung – Die manuelle Bearbeitung von XSL-FO-Instanzen ist im Allgemeinen unpraktisch (XSL-FO wurde für Klarheit und Vollständigkeit, nicht für einfache Bearbeitung entwickelt). Visuelle Bearbeitungswerkzeuge wie XFDesigner können die Aufgabe erleichtern, allerdings sind nicht alle XSL-FO-Tags zugänglich (insbesondere Marker und Fußnoten). XFDesigner wird von Ecrion Software nicht mehr unterstützt.
Bei der Entscheidung, ob XSL-FO für ein bestimmtes Dokument geeignet ist, deuten die folgenden typografischen und Layout-Anforderungen in der Regel darauf hin, dass XSL-FO nicht funktionieren wird (obwohl einige davon durch proprietäre Erweiterungen erfüllt werden können):
- Die Fußnotennummerierung bzw. die Symbolfolge muss auf jeder neuen Seite neu gestartet werden (einige Implementierungen bieten jedoch Erweiterungen zur Unterstützung der automatischen Fußnotennummerierung).
- Es ist notwendig, Text um beide Seiten eines schwebenden Objekts herumzuführen (XSL-FO kann Text um eine Seite und die Ober- und/oder Unterseite herumführen, aber nicht um beide Seiten; einige Implementierungen bieten jedoch Unterstützung für solch komplexe Layouts über proprietäre Erweiterungen.)
- Es ist erforderlich, eine variable Anzahl von Spalten auf einer einzelnen Seite zu haben (mindestens zwei kommerzielle Implementierungen bieten jedoch Erweiterungen zum Erstellen mehrspaltiger Blöcke innerhalb einer Seite an).
- Es werden spaltenweite Fußnoten benötigt (mehrere Implementierungen bieten Spaltenfußnotenerweiterungen an).
- Es werden Randnotizen benötigt, die dynamisch relativ zu anderen Randnotizen positioniert werden (z. B. gleichmäßig vertikal auf der Seite verteilte Randnotizen). XSL-FO bietet jedoch nur Funktionen, um Randnotizen vertikal an ihrem Ankerpunkt auszurichten.
- Es muss ein Inhalt erstellt werden, der sich über zwei Seiten als Float- oder "Out-of-Line"-Objekt in einer ansonsten homogenen Sequenz von sich wiederholenden Seitenmastern erstreckt (dies ist in XSL-FO 1.1 mithilfe mehrerer Body-Regionen und Flow-Maps möglich, erfordert jedoch die Möglichkeit, die für diese Seiten verwendeten Seitenmaster zu steuern).
- Es werden sowohl am unteren Rand positionierte Inhalte als auch Fußnoten auf derselben Seite benötigt.
- Es muss möglich sein, Text entlang einer beliebigen Kurve zu zeichnen (obwohl einige Implementierungen SVG unterstützen , was dazu genutzt werden kann, diese Einschränkung zu umgehen).
- Es muss möglich sein, Linien an bestimmten Grundlinienraster anzupassen (z. B. um eine exakte Ausrichtung der Linien auf gegenüberliegenden Seiten zu erreichen).
- Alles, was ein seitenbezogenes Layout erfordert, wie beispielsweise die Sicherstellung, dass eine Abbildung immer auf der Seite erscheint, die ihrem Ankerpunkt zugewandt ist.
Ersatz
Die XML- und HTML- Standards, zusammen mit dem CSS- Standard, beginnen seit CSS2 ( Paged Media Module), grundlegende Funktionen für gedruckte Medien bereitzustellen. Mit dem CSS Paged Media Module Level 3 vervollständigt das W3C die Formulierung eines integrierten Standards für die Dokumentformatierung und die PDF-Erstellung. Seit 2013 [ 2 ] ist CSS3-paged ein W3C-Vorschlag für einen Ersatz von XSL-FO.
Die Designhinweise für eine Version 2.0 der XSL-Formatierungsobjekte wurden erstmals 2009 veröffentlicht und zuletzt 2012 aktualisiert. [ 3 ]
Siehe auch
- XHTML
- Apache FOP – Open-Source- und lizenzgebührenfreie Implementierung von XSL-FO
- XEP – Kommerzielle und proprietäre Rendering-Engine
- Antenna House Formatter – XSL-FO- und CSS-Formatierungssoftware – Kommerzielle und proprietäre Rendering-Engine
Referenzen
- ^ „XSL-FO Aktueller Status – W3C“ . www.w3.org . Abgerufen am 05.08.2016 .
- ^ a b Quin, Liam (2. November 2013). "Re: [xsl] xsl 2.0?" . XSL-List – Offenes Forum zu XSL (Mailingliste).
- ^ „XSL-FO 2.0 Design Notes Published - W3C“ . www.w3.org . Abgerufen am 9. November 2018 .
Externe Links
- XSL-FO 1.1 Spezifikation auf W3C
- XSL-FO 1.0-Spezifikation auf W3C
- Was ist XSL-FO? auf XML.com
- FO-Beispiele und -Techniken (Archiviert am 10.05.2018 im Internet Archive) – Referenzseite erstellt von Dave Pawson
- XSL-FO-Tutorial und Beispiele , archiviert am 05.10.2014 im Internetarchiv Wayback Machine
- Tutorial zur XSL-Formatierung von Objekten
- aXSL – Open-Source-API zur Verarbeitung von XSL-FO-Dokumenten
- FOray – Open-Source- und lizenzgebührenfreie Implementierung von XSL-FO unter Verwendung der aXSL-Schnittstellen
- Einführung und Beispiele zu XSL-FO
- FO.NET ( Archiviert am 02.01.2018 im Internet Archive) – XSL-FO-zu-PDF-Renderer für .NET