Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XSL-FO.

Ähnliche Präsentationen


Präsentation zum Thema: "XSL-FO."—  Präsentation transkript:

1 XSL-FO

2 Inhalte Architektur Seitenvorlagen Blöcke Tabellen Listen
Format-Eigenschaften Grafiken Zeilen Fußnoten Gemischter Inhalt PDF-Lesezeichen Inhaltsverzeichnis Lebende Kolumnentitel Dynamische FO-Erstellung Links

3 Architektur Der zweischrittige Prozess
Die Verwendung von FO (Formatting Objects) meint typischerweise die Anwen-dung eines zweischrittigen Prozesses auf XML oder auch nicht-XML-Daten.: Während des ersten Schritts, wird das FO-Dokument (auch Ergebnis- oder Ziel-Dokument genannt) erzeugt. Zwei grundsätzliche Optionen existieren hier: XML wird durch ein XSLT-Stylesheet in ein FO-Dokument umgewandelt. Es wird direkt aus nicht-XML-Daten wie einer Datenbank oder von Benutzern eingegebenen und dann verarbeiteten Daten erzeugt. Während des zweiten Schritts wird das FO-Dokument in sein endgültiges Ausgabeformat wie PDF, RTF oder PostScript formatiert. Der Formatierer, der in diesem Schritt benutzt wird, kann auch die gleiche Software-Komponente sein wie im ersten Schritt. Es ist aber auch möglich, zwei verschiedene Komponenten zu kombinieren, um technische Fähigkeiten, die nur für einen Schritt verfügbar sind, dort auch zu nutzen.

4 Architektur Der zweischrittige Prozess

5 Architektur FO als Zwischenformat
FO ist eine Grammatik bzw. ein Vokabular, das mit einer hohen Anzahl an Möglichkeiten für Druck-Dokumente aufwartet. Daher kann es auch als Zwischenformat dienen, in das XML transformiert werden, um dann verschiedene Ausgabeformate für den Druck zu generieren. PDF ist das typische Format für XSL-FO, so wie (X)HTML das typische Ausgabeformat für XSLT ist. Die meisten Formatierer können aber auch noch PostScript, RTF oder sogar XHTML aus einem FO-Dokument erzeugen. Es kann also sehr effizient sein, wenn XML durch XSLT erst in FO umgewandelt wird und dann durch einen geeigneten Formatierer in das gewünschte endgültige Format.

6 Architektur FO als Zwischenformat

7 Architektur FO als Zwischenformat
Die Illustration zeigt zwei extreme Szenarien und stellt daran das oben erwähnte Konzept dar. Auf der linken Seite gibt es vier verschiedene XML-Formate, die alle in drei verschiedene Ausgaben umgewandelt werden sollen. Ohne FO als Zwischenformat muss man eine individuelle Transformation für jede Datei erstellen (rote Linien). Verwendet man FO, wandelt man jedes Eingabeformat zunächst einmal in FO um und dann von dort in die Ausgabeformate (schwarze Linien).

8 Architektur FO und XSLT im Vergleich
XSLT wird für die Transformation von XML in andere XML-Formate (wie auch FO) oder auch andere Textformate benutzt. Deswegen enthält es einige typische Merkmale eine Programmiersprache. FO dagegen ist nur eine Grammatik für Präsentation und enthält darüber hinaus noch dokumentbezogene Elemente. Oft wird mit XSLT FO und dann auch PDF erstellt, was man als XSL-FO bezeichnen kann.

9 Architektur FO und XSLT im Vergleich

10 Seitenvorlagen Das fo:layout-master-set enthält Seitenvorlagen (fo:simple-page-master) und Vorlagen für Seitenverläufe (Kombinationen von Vorlagen, fo:page-sequence-master). Sie werden vom fo:flow-Element im tatsächlichen Seitenverlauf fo:page-sequence referenziert. Eine Seite enthält Druckbereiche, die aus fo:flow oder fo:static-content-Containern referenziert werden.

11 Seitenvorlagen

12 Seitenvorlagen Ränder und druckbare Bereiche

13 Seitenvorlagen Seitentypen und ihre Auswahl
Ereignisse und ihre Kombination steuern die Auswahl von individuellen Seitenvorlagen bei der Erstellung eines tatsächlichen Seitenvorlaufs. Die erste gültige Bedingung einer Testreihe führt dann zur Auswahl.

14 Seitenvorlagen Seitentypen und ihre Auswahl

15 Seitenvorlagen Seitentypen und ihre Auswahl

16 Seitenvorlagen Eigenschaften
blank-or-not-blank column-count column-gap extent flow-name force-page-count initial-page-number master-name master-reference maximum-repeats odd-or-even page-height page-position page-width precedence region-name

17 Blöcke Box-Modell in FO und CSS

18 Blöcke Box-Modell in FO und CSS

19 Blöcke Auffüllung Richtung Variante 1 Variante 2 Oben padding-before
padding-top Unten padding-after padding-bottom Links padding-start padding-left Rechts padding-end padding-right

20 Blöcke Rand Oben Unten Links Rechts Überall Breite border-before-width
Oben Unten Links Rechts Überall Breite border-before-width border-top-width border-after-width border-bottom-width border-start-width border-left-width border-end-width border-right-width border-width Stil border-before-style border-top-style border-after-style border-bottom-style border-start-style border-left-style border-end-style border-right-style border-style Farbe border-before-color border-top-color border-after-color border-bottom-color border-start-color border-left-color border-end-color border-right-color border-color

21 Blöcke Rand Eigenschaft Wert Breite Stil Farbe
<border-width> | inherit with <border-width> = {thin | medium | thick | <absolute length> } Stil <border-style> | inherit with <border-style> ={none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset} Farbe <Color> | inherit with <Color> = {valid color spec}

22 Blöcke Ränder, Abstand und Einrückung
Richtung Ränder Abstand Einrückung Top margin-top Bottom margin-bottom Left margin-left space-end start-indent Right margin-right space-start end-indent

23 Blöcke Hintergrund (Farbe und Bild)
background-attachment background-color background-image background-repeat background-position-horizontal background-position-vertical

24 Blöcke Block- und Linien-Eigenschaften
hyphenation-keep hyphenation-ladder-count last-line-end-indent line-height line-height-shift-adjustment linefeed-treatment white-space-treatment text-align text-align-last text-indent white-space-collapse

25 Blöcke Umbruch-Eigenschaften
break-after break-before keep-together keep-with-next keep-with-previous orphans widows

26 Blöcke Zeilenabstand absolute-position top right bottom left

27 Blöcke Absolute Positionierung
space-end space-start relative-position

28 Tabelle

29 Tabelle

30 Tabelle Eigenschaften
border-after-precedence border-before-precedence border-collapse border-end-precedence border-separation border-start-precedence caption-side column-number column-width empty-cells ends-row number-columns-repeated number-columns-spanned number-rows-spanned starts-row table-layout table-omit-footer-at-break table-omit-header-at-break

31 Listen

32 Listen

33 Format-Eigenschaften
Block-Elemente In-Zeilen-Elemente fo:block fo:block-container fo:character fo:inline fo:inline-container

34 Format-Eigenschaften Text
Zeichen-Eigenschaften font-family font-size font-stretch font-size-adjust font-style font-variant font-weight Nummern format grouping-separator grouping-size letter-value

35 Format-Eigenschaften Text
Zeichen-Eigenschaften character letter-spacing suppress-at-line-break text-decoration text-shadow text-transform treat-as-word-space word-spacing Block-Ausrichtung alignment-adjust alignment-baseline baseline-shift display-align dominant-baseline relative-align

36 Format-Eigenschaften Text
Silbentrennung country language script hyphenate hyphenation-character hyphenation-push-character-count hyphenation-remain-character-count

37 Grafiken

38 Grafiken Eigenschaften block-progression-dimension content-height
content-width height inline-progression-dimension max-height max-width min-height min-width scaling scaling-method width

39 Zeilen fo:leader Eigenschaften leader-alignment leader-pattern
leader-pattern-width leader-length rule-style rule-thickness

40 Fußnoten Eine Fußnote ist am besten in seinem eigenen XML-Element (hier: FN) untegebracht. Eine Vorlagen-Regel für dieses FN-Element erstellt dann ein fo:footnote-Element mit einem fo:inline-Element für die Nummer und einem fo:footnote-body-Element für den tatsächlichen Text.

41 Fußnoten

42 Gemischter Inhalt und Inzeilen-Formatierung
Gemischter Inhalt ist Textinhalt mit XML-Elementen (bspw. Fußnoten, Bildern, Verweisen), der normalerweise in der gleichen Reihenfolge ausgegeben werden soll wie in der XML-Quelle. <xsl:apply-templates /> (leeres Element) oder <xsl:apply-templates select=”A | B | text()”/> können dann die Vorlagen-Regeln in der notwendigen Reihenfolge aufrufen. Das Element fo:inline ermöglicht dann die Inzeilen-Formatierung.

43 Gemischter Inhalt und Inzeilen-Formatierung

44 PDF -Lesezeichen Das Element fo:bookmark-tree enthält den Inhalt der PDF-Lesezeichen. Jedes wird durch fo:bookmark-element mit einem internal-destination-Attribut (ähnlich wie fo:basic-link) gebildet. Eine Hierarchie an Lesezeichen kann durch eine Hierarchie verschachtelter FO-Lesezeichen erstellt werden. Der Inhalt des PDF-Lesezeichens ist fo:block (FO-Inhalt von fo:bookmark) oder der XSLT-Sequenzkonstruktor innerhalb von fo:bookmark.

45 PDF -Lesezeichen

46 Inhaltsverzeichnis Blöcke, die in einem Inhaltsverzeichnis erscheinen sollen oder deren Seitenzahl benötigt wird, müssen ein id-Attribut mit einem eindeutigen Bezeichner haben. Diesen Wert referenziert man innerhalb von fo:page-number-citation und dem ref-id-Attribut. Der Wert wird entweder aus den XML-Daten gelesen/abgeleitet oder dynamisch durch die XSLT-Funktion generate-id()generiert und referenziert. Eine Verknüpfung wird definiert durch fo:basic-link und kann extern oder intern sein. Das Attribut internal-destination referenziert einen internen id-Wert, während external-destination einen URI referenziert.

47 Inhaltsverzeichnis

48 Lebende Kolumnentitel
Die Inhalte von lebenden Kolumnentiteln bildet man durch das fo:marker-Element, das ein marker-class-name-Attribut hat. Diese Markierung referenziert man innerhalb des retrieve-class-name-Attributs des fo:retrieve-marker-Elements. Die Attribute retrieve-position und retrieve-boundary geben den Bereich an, in dem die Markierung gesucht wird.

49 Lebende Kolumnentitel

50 Dynamische FO-Erstellung Techniken
Da FO ein XML-Format ist, können und werden FO-Dokumente auch über XSLT erzeugt werden. Die folgenden Techniken und ihre Kombinationen setzt man oft ein, um konfigurierbare und dynamische Transformationen zu erstellen.

51 Dynamische FO-Erstellung Techniken
Modulare Stylesheets: xsl:import und xsl:include können benutzt werden,um andere Stylesheets einzubinden. Parameter: Vorlagen-Parameter können verwendet werden, um dynamisch XSLT-Anweisungen auszuführen, während globale/Stylesheet-Parameter zusätzlich von der aufrufenden Umgebung (bspw. Java, .NET) adressiert werden können. Namen von XML-Konfigurationsdateien als Parameterwerte kann man verwenden, um dynamisch diese Dateien über die document()-Funktion anzusprechen.

52 Dynamische FO-Erstellung Techniken
Variablen: Variablen können globale Werte für Farben, Schrift-Eigenschaften oder numerische Werte für Rändern, Abstände etc. speichern. Temporäre Bäume (XSLT-Variablen mit XML-Inhalt oder Anweisungen zur dynamischen Erzeugung) können FO-Elemente enthalten oder erzeugen. Konfigurationsdateien: Sammlungen von Konfigurationswerten kann man in XML-Dateien speichern. Während Variablen direkt in der XSL-FO-Datei liegen, sind Konfigurationsdateien spezielle XML-Dateien, die zusätzlich eingelesen und verarbeitet/gefiltert werden.

53 Dynamische FO-Erstellung Techniken
Attributgruppen: Sammlungen von Attribute und ihre statischen oder dynamischen Werte (gelesen aus Variablen) kann man in Attributgruppen speichern und dann im xsl:use-attribute-sets-Attribut referenzieren. Ein fortgeschrittener Ansatz sind dann kaskadierende Gruppen: Entweder xsl:attribute-set selbst oder FO-Elemente referenzieren weitere Gruppen und bilden dadurch eine Gesamtmenge aller deklarierten Attribute.

54 Dynamische FO-Erstellung Techniken

55 Beispiele

56 Beispiele

57 Links/Impressum Links Impressum
XSL-Family: XSL-FO 1.1: XSLT 1.0: XPath 1.0: Impressum Autoren: Marco Skulschus, Marcus Wiederstein Layout und Design: Nadine Kilian Assistenz: Erik Richardson, Philip Lucsok Comelio Medien, Goethestraße 34, Berlin  

58 Fragen und Antworten


Herunterladen ppt "XSL-FO."

Ähnliche Präsentationen


Google-Anzeigen