XSL-FO. XSL-Formatting Objects.

Ähnliche Dokumente
XML. extensible Markup Language. Dr. Beatrice Amrhein.

XSL-Formatting Objects.

XML mit Java OpenSource. (c) Mark Egloff 2004 FOP. << Apache s FOP >>

Einführung in XSL-FO

XML-Praxis XSL-FO. Jörn Clausen

XSL-FO XSL Formatting Objects

Generierung von PDF-Dokumenten mittels XSL-FO

XML-Praxis XSL-FO. Jörn Clausen

Hinweise für die Nutzung von XSLTs beim PDF Export der BlueBridge Wiki Extensions

Seminar Dokumentenverarbeitung Sommersemester 2002

CSS. Cascading Style Sheets

XML-Praxis XSL-FO. Jörn Clausen.

TEI! Und dann? Texttechnologische Standards in den Geisteswissenschaften - Encoding in TEI <

Druckvorlage mit XSL FO

Java Apache XML (JAX) Lektion 10: XML III. Tree Transformation & Formatting. 2 Schritte von einer XML Datei zu gestaltetem Output:

1 Definition der Selektoren Einbinden der CSS 3 Möglichkeiten Farbangaben Schriftformatierung Abstände...

Übung zur Vorlesung Digitale Medien. Doris Hausen Ludwig-Maximilians-Universität München Wintersemester 2011/2012

XSL-FO verstehen und anwenden

Duale Zustellung. Standardprofile. Version 1.0.0, DI Arne Tauber

CSS Cascading Style Sheets

APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1

XSLT 2015/2016 S Seite 1 h_da W

Inhalt. for-each vs. apply-templates. xsl:for-each

Dynamische Inhalte und Formate

Eine Schnelleinführung in CSS

XML. extensible Markup Language. Dr. Beatrice Amrhein.

Aufbau eines Klassen-Selektors: selektor.klasse { css-eigenschaft1:wert1; css-eigenschaft2:wert2;...}

CSS. Cascading Stylesheets

Einführung in XSL-FO

Formatieren mit DSSSL und XSL-FO

XML-Praxis. XSL-FO Übungen. Jörn Clausen

Online-Publishing mit HTML und CSS für Einsteigerinnen

Transformieren und Formatieren

Automatisierte Dokumentenproduktion mit Apache FOP

Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO

XML. XML-Verarbeitung mittels XSL

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 3: Webdesign mit CSS Stand: Übung WS 2015/2016. Benedikt Schumm M.Sc.

Farb-, Text- und Schriftgestaltung mit CSS3

Präsenzveranstaltung zur E-Learning-Veranstaltung. Einführung in XML. Sommersemester Prof. Dr. Klaus-Peter Fähnrich Dr.

Cascading Stylesheets (CSS)

Dokumentenproduktion mit <XML/> & Co. Jeremias Märki <info@jeremias-maerki.ch>

Analyse, Konzeption und prototypische Umsetzung einer prozessorunabhängigen XSL-FO Entwicklungsumgebung. Daniel Merkle. Konstanz,

Kennen, können, beherrschen lernen was gebraucht wird

4. Briefing zur Übung IT-Systeme

HTML und CSS. Eine kurze Einführung

4. Briefing zur Übung IT-Systeme

4. Verarbeitung von XML mit Hilfe der extensible Style Language (XSL)

Introduction to Technologies for Interaction Design. Stylesheets

XSL-FO in der Praxis XML-Verarbeitung für PDF und Druck

Web-basierte Anwendungen. Eine Vertiefungsveranstaltung mit Schwerpunkt auf XML-Technologien

Formatierung eines Text Ads in CSS

IT- und Medientechnik

XSL und XSLT. Inhalt. Mathias Heilig XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

Digitale Medien. Übung

jetzt lerne ich Webseiten programmieren und gestalten Einfache Beispiele mit HTML, CSS, Javascript, ASP und PHP

XSL-FO Formatting/Flow Objects

mediatext Jena GmbH XML mal anders automatisierte PDF-Generierung mit Apache FOP & Co. Januar 2015 (v1.0) mediatext Jena GmbH

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz

Ausgabeformatierung 08

Inhaltsverzeichnis. Überblick über die Formatierungsarten. Was versteht man unter Formatierung?

CAS WEBDESIGN UND WEBPUBLISHING KURS 1 / TAG 2: GRUNDLAGEN DER WEBENTWICKLUNG

1. Einstieg 2. Selektoren 3. Schriften 4. Strukturen 5. Zwischenräume, Abstände 6. Bilder 7. Farben 8. Beispiel

Einführung in HTML. Tutorium. Präsentation der Sitzung vom 2./9. Juni 2004 Martin Stricker

Leseprobe. Daniel Koch. XML für Webentwickler. Ein praktischer Einstieg ISBN: Weitere Informationen oder Bestellungen unter

Kennen, können, beherrschen lernen was gebraucht wird

Grundlagen-Beispiel CSS

Anhang B - Nutzung von XSQL

Inhaltsverzeichnis. Florian Bauer CSS Seite 2 von 10

Digitale Medien. Übung zur Vorlesung. Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid

Vergleich automatisierbarer XML-Satzsysteme

Die Programmiersprache des Webs. HTML HyperText Markup Language Hypertext - Auszeichnungssprache

HTML: Text und Textstruktur mit CSS gestalten

X-Technologien. XML and Friends. Jörn Clausen 9. Juli 2001

Übung zur Vorlesung Digitale Medien. Sarah Tausch Alice Thudt Ludwig-Maximilians-Universität München Wintersemester 2012/2013

XML basiertes Publizieren und Visualisieren

Webseite in XML Kurzeinführung

MEDIENÜBERGREIFENDES PUBLIZIEREN VON SCHULUNGSMATERIALIEN UNTER VERWENDUNG VON DOCBOOK-XML UND XSL DIPLOMARBEIT

Wir studieren HTML-Tags

Grundlagen der Extensible Stylesheet Language

Generierung eines CIM Frachtbriefes im PDF-Format


ANWENDUNGSSOFTWARE CSS

XSL Templates. Mit Templates arbeiten. XSL Templates

Herzlich Willkommen zum Wordkurs V. 2010

Hilfestellungen zur Formatierung der Diplomarbeit/Masterarbeit

3. Briefing zur Übung IT-Systeme

Seminar DWMX DW Session 004

Corporate Design Manual

Aufbau einer HTML Seite:

Formvorgaben für Seminar- und Abschlussarbeiten

<Trainingsinhalt> XML umsetzen und nutzen

Eine Schnelleinführung in XSL

Aufgabenbereich 3: Layoutgestaltung mit CSS

Innovator 11. Design der Dokumentation ändern. Wie Sie die Dokumentation von Innovator Ihrer Corporate Identity anpassen. HowTo.

Ändern der Schriftgröße für den Monitorexport

XSL-FO. Dienstag, 16. Mai Manuel Montero Pineda data2type GmbH

XSL-FO PDF Marco Skulschus Marcus Wiederstein

Benutzerhandbuch TABLE OF CONTENTS 1. Benutzerhandbuch Bedienung

Transkript:

XSL-FO XSL-Formatting Objects http://www.w3.org/tr/xsl11/

Das Umfeld XSL-FO... bildet zusammen mit XSLT und XPath die XSL (extensible Stylesheet Language)... ist eine XML Applikation... definiert das visuelle Layout-Modell... wird mit Hilfe von einem Transformations-Tool (FOP, XEP,...) nach PDF, PostScript,... transformiert

Daten Formatierte Ausgabe Die XML Daten werden mit Hilfe eines Stylesheets nach XSL-FO übersetzt, und dann mit Hilfe eines FO- Transformations-Tools nach Postscript, PDF,... XML Daten XSL Style Sheet saxon XSL-FO Fop, XEP,... Display Print

Ein einfaches FO-Beispiel 1) 2) 3) 4) 5) <?xml version="1.0"?> <fo:root xmlns:fo="http://www.w3.org/1999/xsl/format"> <fo:layout-master-set> <fo:simple-page-master master-name="only" page-width="5.5cm" margin-left="1cm"> <fo:region-body/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="only"> <fo:flow flow-name="xsl-region-body"> <fo:block font-size="18pt"> A small <fo:external-graphic src="file:fo.jpg"/> example </fo:block> </fo:flow> </fo:page-sequence> </fo:root> Die PDF-Ausgabe von FOP

Die wichtigsten XSL-FO Elemente

XSL-FO Elemente Es gibt 56 XSL-FO Elemente fo:block, fo:block-container, fo:character, fo:externalgraphic, fo:flow, fo:footnote, fo:inline, fo:layoutmaster-set, fo:leader, fo:list-block, fo:list-item, fo:list-item-body, fo:list-item-label, fo:page-number, fo:page-sequence, fo:region-after, fo:region-before, fo:region-body, fo:root, fo:simple-page-master, fo:table-and-caption, fo:table, fo:table-body, fo:table-caption, fo:table-cell, fo:table-column, fo:table-footer, fo:table-header, fo:table-row,...

fo:root Das Root-Element eines XSL-FO Dokumentes heisst fo:root. Im Root-Knoten muss der fo Namespace deklariert werden. Jedes XSL-FO Dokument beginnt also mit den Zeilen: <?xml version="1.0"?> <fo:root xmlns:fo="http://www.w3.org/1999/xsl/format">...

Die Seiten Aufteilung, Layout Eine Seite ist aufgeteilt in die fünf Bereiche regionbefore, region-after, region-start, region-end und region-body. Diese sehen in der üblichen Lesart (von links nach rechts, von oben nach unten) wie folgt aus: margin before start body end after margin

fo:layout-master-set <fo:layout-master-set> <fo:simple-page-master master-name="first" page-height="297mm" page-width="210mm" margin-top="15mm" margin-bottom="15mm" margin-left="20mm" margin-right ="15mm"> <fo:region-before extent="15mm" region-name="fbefore"/> <fo:region-body margin-top="20mm"/> </fo:simple-page-master>... </fo:layout-master-set>

fo:simple-page-master Mit dem simple-page-master Knoten werden die Seitenränder (margin) und ev. die Papiergrösse festgelegt. Weiter wird definiert, in wieviele Bereiche (regions) die Seite aufgeteilt werden soll (region-body, region-before, region-after,...) Pro Seitentyp (Titelseite, Index-Seite, Inhaltsverzeichnis,...) wird je eine separate Seiten-Vorlage definiert.

Verteilung des Inhalts fo:page-sequence Mit dem fo:page-sequence Knoten wird der Text (Inhalt) den verschiedenen Bereichen zugeordnet. <fo:page-sequence master-reference="first"> <fo:static-content flow-name="fbefore"> <fo:block> Das ist die Kopf-Zeile </fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body" > <fo:block text-align="justify" font-size="16pt"> Hier ist der Text der ersten Seite. </fo:block> </fo:flow> </fo:page-sequence>

Die Platz-Verteilung für die Regionen 10 cm 1 cm 1 cm 1.5 cm 2 cm 1.5 cm 1.5 cm 1 cm 1 cm 9 cm Beispiel Seite 6

Definieren von verschiedenen Seiten <fo:layout-master-set> <fo:simple-page-master master-top ="1.5cm" page-height="10cm"... master-name="erste"> <fo:region-beforeextent="1cm" region-name="first-before"/> <fo:region-bodymargin-top="2cm" margin-bottom="1.5cm"/> <fo:region-after extent="1cm" region-name="first-after"/> </fo:simple-page-master> <fo:simple-page-master... master-name="restliche"> <fo:region-before extent="2.5cm" region-name="rest-before"/> <fo:region-body margin-top="2.5cm"... /> </fo:simple-page-master>...

Welcher Seitentyp wird wann verwendet <fo:page-sequence-master master-name="global"> <fo:repeatable-page-master-alternatives> <fo:conditional-page-master-reference master-reference="erste" page-position="first"/> <fo:conditional-page-master-reference master-reference="restliche" page-position="rest"/> </fo:repeatable-page-master-alternatives> </fo:page-sequence-master> </fo:layout-master-set> Beispiel Seite 7

fo:flow fo:flow enthält eine beliebige Anzahl von Blöcken mit Text, Tabellen, Listen und Bildern. Mit Hilfe des flow Elementes wird der Dokument-Inhalt (Fliesstext) begrenzt. <fo:flow flow-name="xsl-region-body"> <fo:block font-size="16pt"> This is the document content. This is the <fo:external-graphic src="cup.gif"/> document content. This is the... </fo:block> </fo:flow>

fo:static-content In den Randbereichen befindet sich normalerweise wiederkehrende Information (Überschriften, Fussnoten, Seitenzahlen,...) <fo:static-content flow-name="region-after"> <fo:block text-align="end" font-size="10pt"> Seite <fo:page-number/> </fo:block> </fo:static-content> Seite 1

fo:block fo:block erzeugt einen (Text-)Bereich, welcher eine Zeile, aber auch mehrere Zeilen oder Seiten lang sein kann. Typischerweise wird fo:block benutzt, um zusammengehörende Ausgabe-Elemente (ein Textabschnitt, eine Titelzeile, eine Tabelle,...) zu gruppieren. <fo:block font-size="36pt"> Chapter 1: Introduction </fo:block>

fo:block-container Ein fo:block-container Element kann an beliebiger Stelle auf des Seite (absolut) positioniert werden: <fo:block-container border-color="black" border-style="solid" border-width="1pt" height="1cm" width="4cm" padding="5pt" top="9.5cm" left="12cm" position="absolute" > <fo:block text-align="start" line-height="10pt" font-family="sans-serif" font-size="10pt"> Hier ist ein Text </fo:block> </fo:block-container> Hier ist ein Text

fo:inline Das Element fo:inline dient zum Formattieren eines Textabschnitts, ohne dass eine neue Zeile begonnen wird. <fo:block font-family="times Roman"> Hier ist <fo:inline font-style="italic"> ein </fo:inline> Abschnitt <fo:inline font-weight="bold"> mit </fo:inline> verschiedenen <fo:inline color="blue"> Formaten. </fo:inline> </fo:block>

fo:external-graphic Mit Hilfe von fo:external-graphic wird ein Bild in ein Dokument eingebettet. Mögliche Bildformate sind GIF und JPEG, allerdings ist nicht festgelegt, welche Bildformate unterstützt werden (müssen). <fo:block> Look at this! <fo:external-graphic src="cup.jpg"/> </fo:block>

fo:list-block, fo:list-item Das Element fo:list-block dient zum Erzeugen einer Liste. Es erwartet als Kinder (beliebig viele) fo:listitem Knoten. <fo:list-block> <fo:list-item> <fo:list-item-label><fo:block> a) </fo:block> </fo:list-item-label> <fo:list-item-body start-indent="body-start()"> <fo:block>dies ist das erste Listenelement.</fo:block> </fo:list-item-body> </fo:list-item>... </fo:list-block>

Tabellen Zum Erzeugen von Tabellen gibt es die Elemente: fo:table, fo:table-body, fo:table-cell, fo:tablecolumn, fo:table-footer, fo:table-header, fo:table-row fo:table enhält (optional) einen table-header und/oder table-footer sowie einen table-body. Der table-body besteht dann aus table-row Elementen, welche wiederum aus table-cell Knoten zusammengesetzt sind.

Erzeugen von Tabellen <fo:table border="1pt solid black" background-color="#eeeeee"> <fo:table-column column-width="20mm"/> <fo:table-column/> <fo:table-header font-weight="bold" background-color="#cccccc"> <fo:table-row> <fo:table-cell border="1pt solid black" padding="3pt"> <fo:block> HTML </fo:block> </fo:table-cell>... </fo:table-row> </fo:table-header> <fo:table-body>... </fo:table-body> </fo:table>

This page is...

Die wichtigsten Attribute Properties

Attribute sind Properties Die Attribute der FO-Elemente sind Formatierung- Anweisungen. Sie bestimmen (letztlich) das Aussehen des darzustellenden Inhalts. Es gibt mehr als 200 Format Properties (Attribute), welche oft in verschiedensten Elementen angegeben werden können. Properties werden von aussen nach innen abgearbeitet. Bei sich widersprechenden Angaben, überschreibt die lokale Angabe die globale. Eine Property, welche an verschiedenen Orten benutzt werden kann, hat immer dieselbe Bedeutung.

Character Properties Alle XSL-FO Elemente, welche Text enthalten können (fo:block, fo:inline,...), erlauben Attribute für das Setzen von Character Properties(color, font-size, font-family, text-decoration,...). <fo:block font-family="helvetica" font-size="12pt"> Hier ist ein <fo:inline text-decoration="underline"> wichtiger </fo:inline> <fo:inline color="red" font-weight="900"> Text </fo:inline> </fo:block>

Character Property: Farbe Die color-property setzt die Schriftfarbe: <fo:inline color="green"> Text </fo:inline> Wie in CSS gibt es 16 vordefinierte Farben: white Weitere Farben können als hexadezimale rgb-trippel definiert werden: #RRGGBB.

Character Property: Font Die Property font-family definiert den zu benutzenden Font: <fo:inline font-family="times Roman" > Times Roman </fo:inline> Mögliche Fonts sind Helvetica, Times Roman, Courier, Symbol, ZapfDingbats,...

Character Property: Schriftgrösse Die Property font-size definiert die zu benutzende Schriftgrösse: <fo:inline font-family="helvetica" font-size="24pt"> ein Text in 24 Punkt Schrift </fo:inline>

Character Property: Style Der Style des Fonts wird definiert durch die Property font-style <fo:block font-family="times Roman" font-style="italic"> Times Roman italic </fo:block> Es gibt die Styles italic, normal, oblique, reverse-normal und reverseoblique

Character Property: Schrift-Dicke Die Dicke der Schrift wird definiert durch die Property font-weight: <fo:block font-family="times Roman" font-weight="bold"> Hier ist ein bold Text </fo:block> <fo:block font-family="times Roman" font-weight="normal"> Hier ist ein normaler Text </fo:block>

Character Property: Dekorationen text-decoration="underline" unterstrichen text-decoration="overline" überstrichen text-decoration="line-through" durchgestrichen text-shadow="gray" Schattenschrift text-transform="capitalize" Alle Ersten Buchstaben text-transform="uppercase" GROSSSCHRIFT text-transform="lowercase" kleinschrift

Sentence Properties Sentence Properties bestimmen den Platz zwischen den einzelnen Buchstaben (letter-spacing), zwischen einzelnen Wörtern im Text (word-spacing) und zwischen den einzelnen Linien im Text (line-height, text-depth, text-altitude,...), die Ausrichtung des Texts (text-align),...

Sentence Property: Zeilenabstand Der Zeilenabstand im Text kann kontrolliert werden durch die Properties line-height, text-depth und text-altitude. <fo:block font-size="10pt" line-height="16pt"...> Hier ist ein Text,... </fo:block>

Sentence Property: Text Ausrichtung Ob der Text linksbündig, rechtsbündig, zentriert oder im Blocksatz gesetzt werden soll, wird durch die Property text-align gesetzt. Diese kann die folgenden Werte annehmen: start oder left linksbündig center zentriert end oder right rechtsbündig justify Blocksatz

Definieren von Attribut-Listen Definieren verschiedener Styles für verschiedene Textblöcke: <xsl:attribute-set name="text-style"> <xsl:attribute name="font-family">serif</xsl:attribute> <xsl:attribute name="font-size">12pt</xsl:attribute> <xsl:attribute name="font-weight">normal</xsl:attribute>... </xsl:attribute-set> Verwenden mit: <fo:block xsl:use-attribute-sets="text-style">

Übung