Příklad 1. Zdrojový XML dokument – vizitka.xml
<?xml version="1.0" encoding="UTF-8"?> <osoba> <jmeno>Jirka Kosek</jmeno> <email>jirka@kosek.cz</email> <foto>kosek.jpg</foto> <poznamka>Je to úplný <dulezite>magor do XML</dulezite>. Už mu z toho asi hráblo, pořád brblá něco o XSLT a XML schématech. Ale jinak je <dulezite>převážně neškodný</dulezite>. Napíšeme ještě něco, aby textu bylo více. Ještě více než více. Až ho bude úplně nejvíce. Více než nejvíce. Pořád málo. Tak ještě přidáme. Ať má dost. A to by bylo, abysedlouhéslovonerozdělilozvláštěkdyž hoprotáhnemeopravduhodně.</poznamka> </osoba>
Příklad 2. XSLT styl pro generování FO – vizitka.xsl
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0"> <xsl:template match="/"> <fo:root> <fo:layout-master-set> <fo:simple-page-master margin-bottom="0.5cm" margin-left="0.5cm" margin-right="0.5cm" margin-top="0.5cm" page-width="9cm" page-height="5cm" master-name="my-master"> <fo:region-body/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="my-master"> <fo:flow flow-name="xsl-region-body" font-family="Times New Roman" font-size="8pt"> <fo:block> <fo:float float="right"> <fo:block margin-left="6pt" margin-bottom="2pt"> <fo:external-graphic src="url({osoba/foto})" content-width="2cm"/> </fo:block> </fo:float> <xsl:apply-templates/> </fo:block> </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> <xsl:template match="jmeno"> <fo:block font-family="Helvetica" font-size="200%" font-weight="bold"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="email"> <fo:block> e-mail: <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="foto"> <!-- Již jsme zpracovali, teď ignorujeme --> </xsl:template> <xsl:template match="poznamka"> <fo:block space-before="6pt" font-style="italic" text-align="justify" language="cs" hyphenate="true"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="dulezite"> <fo:inline color="red" font-weight="bold"> <xsl:apply-templates/> </fo:inline> </xsl:template> </xsl:stylesheet>
spuštění převodu z XML do PDF přes FO
saxon -o vizitka.fo vizitka.xml vizitka.xsl xep -fo vizitka.fo
nebo v jednom kroku
xep -xml vizitka.xml -xsl vizitka.xsl