I prepared an example (XML file, XSL file), because it is quite hard to describe the problem. Explanation is in the result PDF document.
If anyone knows, ...
Thanks, Pavel Tyl
XML DOCUMENT
<?xml version="1.0" encoding="utf-8"?> <Thesis> <Chapter> <ChName>Why is not number "1" at the end of red block?</ChName> <Text>GameEnginu v něm lze vytvářet i interaktivní aplikace. Blender je dostupný na všech hlavních platformách (Windows, Linux, Mac OSX, FreeBSD, IRIX a Solaris). Blender je šířen jako Open Source pod licencí GPL, což znamená, že kromě binárních souborů pro jednotlivé platformy jsou k dispozici i jeho zdrojové kódy. Blender je napsán ve třech programovacích abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm nopqrstuvwxyz. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. </Text> <SubChapter> <ChName>Co je XML?</ChName> <Text> XML Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed <MyPicture address="http://www.mageo.cz/icons/BUNNYMAN.gif" alignment="left" šířka="40px" výška="50px">Tento králik je prvním obrázkem (BUNNYMAN.gif)</MyPicture> do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. značkovací jazyk stejně jako HTML, ale jeho úkolem není data zobrazovat, ale popisovat. Základní stavební jednotky značkování, tagy, nejsou v XML předem definované, definujeme si je sami. </Text> </SubChapter> <SubChapter> <ChName>Co je XML?</ChName> <Text> XML Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris ni <MyPicture address="http://www.mageo.cz/icons/BUNNYMAN.gif" alignment="left" šířka="40px" výška="50px">Tento králik je prvním obrázkem (BUNNYMAN.gif)</MyPicture>si ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. značkovací jazyk stejně jako HTML, ale jeho úkolem není data zobrazovat, ale popisovat. Základní stavební jednotky značkování, tagy, nejsou v XML předem definované, definujeme si je sami. </Text> </SubChapter> </Chapter>
<Chapter> <ChName>In list of pictures at the end of document (page 5) is it OK.</ChName> <Text>GameEnginu v něm lze vytvářet i interaktivní aplikace. Blender je dostupný na všech hlavních platformách (Windows, Linux, Mac OSX, FreeBSD, IRIX a Solaris). Blender je šířen jako Open Source pod licencí GPL, což znamená, že kromě binárních souborů pro jednotlivé platform <MyPicture address="http://www.mageo.cz/icons/BUNNYMAN.gif" alignment="left" šířka="40px" výška="50px">Tento králik je prvním obrázkem (BUNNYMAN.gif)</MyPicture> jsou k dispozici i jeho zdrojové kódy. Blender je napsán ve třech programovacích abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm nopqrstuvwxyz. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. Tady bude neco jako shrnuti cele kapitoly. </Text> <SubChapter> <ChName>Co je XML?</ChName> <Text> XML Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, <MyPicture address="http://www.mageo.cz/icons/BUNNYMAN.gif" alignment="left" šířka="40px" výška="50px">Tento králik je prvním obrázkem (BUNNYMAN.gif)</MyPicture>quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. značkovací jazyk stejně jako HTML, ale jeho úkolem není data zobrazovat, ale popisovat. Základní stavební jednotky značkování, tagy, nejsou v XML předem definované, definujeme si je sami. </Text> </SubChapter> <SubChapter> <ChName>Co je XML?</ChName> <Text> XML Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. značkovací jazyk stejně jako HTML, ale jeho úkolem není data zobrazovat, ale popisovat. Základní stavební jednotky značkování, tagy, nejsou v XML předem definované, definujeme si je sami. </Text> </SubChapter> </Chapter> </Thesis>
XSL-FO DOCUMENT
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:template match="/"> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="mypage" page-height="29.7cm" page-width="21cm" margin-right="27.5mm" margin-left="27.5mm" margin-bottom="1cm" margin-top="1.5cm"> <fo:region-body region-name="telo" margin-top="1.5cm" margin-bottom="1.5cm" margin-left="0mm" margin-right="0mm"/> <fo:region-before extent="1cm" region-name="zahlavi"/> <fo:region-after extent="1cm" region-name="zapati"/> </fo:simple-page-master> <fo:simple-page-master master-name="toc" page-height="29.7cm" page-width="21cm" margin-right="27.5mm" margin-left="27.5mm" margin-bottom="1cm" margin-top="1.5cm"> <fo:region-body region-name="telo" margin-top="1.5cm" margin-bottom="1.5cm" margin-left="0mm" margin-right="0mm"/> <fo:region-before extent="1cm" region-name="zahlavi"/> <fo:region-after extent="1cm" region-name="zapati"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="toc" format="i" force-page-count="no-force" initial-page-number="1"> <fo:static-content flow-name="zapati"> <fo:block font-size="10pt" text-align-last="justify"> <fo:inline color="#aaaaaa" font-style="italic" font-weight="normal"> Some text </fo:inline> <fo:leader leader-pattern="space"/> <fo:inline font-weight="bold" font-style="italic"> <fo:page-number/> </fo:inline> </fo:block> </fo:static-content> <fo:flow flow-name="telo"> <xsl:call-template name="TableOfContents"/> </fo:flow> </fo:page-sequence> <fo:page-sequence master-reference="mypage" force-page-count="no-force" initial-page-number="1"> <fo:static-content flow-name="xsl-footnote-separator"> <fo:block> <fo:leader leader-pattern="rule" leader-length="30%" rule-style="solid" rule-thickness="0.5pt"/> </fo:block> </fo:static-content> <fo:static-content flow-name="zahlavi"> <fo:block font-size="10pt" text-align-last="justify"> <fo:inline color="#aaaaaa" font-family="Arial"> Some text </fo:inline> <fo:leader leader-pattern="space"/> <fo:inline color="#aaaaaa" font-family="Arial"> Some text </fo:inline> </fo:block> </fo:static-content> <fo:static-content flow-name="zapati"> <fo:block font-size="10pt" text-align-last="justify"> <fo:inline font-size="10pt" color="#000000" font-family="TimesNewRoman" font-style="italic"> <fo:retrieve-marker retrieve-class-name="sekce"/> </fo:inline> <fo:leader leader-pattern="space"/> <fo:inline font-size="10pt" color="#000000" font-family="TimesNewRoman"> <fo:page-number/> </fo:inline> </fo:block> </fo:static-content> <fo:flow flow-name="telo"> <xsl:apply-templates select="/Thesis"/> </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> <xsl:template match="Thesis"> <xsl:apply-templates select="Chapter"/> <xsl:call-template name="ListOfPictures"/> </xsl:template> <xsl:template match="Chapter"> <xsl:apply-templates select="ChName"/> <xsl:apply-templates select="Text"/> <xsl:apply-templates select="SubChapter"/> <fo:block break-after="page"/> </xsl:template> <xsl:template match="Chapter/ChName"> <fo:block> <fo:marker marker-class-name="sekce"> <xsl:apply-templates select="text()"/> </fo:marker> </fo:block> <fo:block font-size="18pt" line-height="30pt" space-after="22pt" font-family="TimesNewRoman" font-weight="bold"> <xsl:attribute name="id"> <xsl:choose> <xsl:when test="@id"> <xsl:value-of select="@id"/> </xsl:when> <xsl:when test="name(preceding-sibling::*[1]) = 'a' and preceding-sibling::[EMAIL PROTECTED]"> <xsl:value-of select="preceding-sibling::*[1]/@name"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="generate-id()"/> </xsl:otherwise> </xsl:choose> </xsl:attribute> <xsl:number count="Chapter/ChName" from="Thesis" level="any" format="1"/> <fo:leader leader-pattern="space"/> <xsl:apply-templates select="*|text()"/> </fo:block> </xsl:template> <xsl:template match="SubChapter"> <xsl:apply-templates select="ChName"/> <xsl:apply-templates select="Text"/> <xsl:apply-templates select="Článek"/> </xsl:template> <xsl:template match="SubChapter/ChName"> <fo:block font-size="16pt" line-height="28pt" text-indent="0pt" keep-with-next="always" space-after="18pt" font-family="TimesNewRoman" font-weight="bold"> <xsl:attribute name="id"> <xsl:choose> <xsl:when test="@id"> <xsl:value-of select="@id"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="generate-id()"/> </xsl:otherwise> </xsl:choose> </xsl:attribute> <xsl:number count="Chapter/ChName" from="Thesis" level="any" format="1."/> <xsl:number count="SubChapter/ChName" from="Chapter" level="any" format="1"/> <fo:leader leader-pattern="space"/> <xsl:apply-templates select="*|text()"/> </fo:block> </xsl:template> <xsl:template match="Text"> <fo:block font-family="TimesNewRoman" font-weight="100" text-indent="8mm" line-height="22pt" font-size="12pt" text-align="justify" hyphenate="true" language="cs"> <xsl:apply-templates select="*|text()"/> </fo:block> </xsl:template> <xsl:template match="[EMAIL PROTECTED]'left']"> <fo:block width="100%" text-align="left" keep-with-next.within-page="always" text-indent="0pt"> <xsl:attribute name="id"> <xsl:choose> <xsl:when test="@id"> <xsl:value-of select="@id"/> </xsl:when> <xsl:when test="name(preceding-sibling::*[1]) = 'a' and preceding-sibling::[EMAIL PROTECTED]"> <xsl:value-of select="preceding-sibling::*[1]/@name"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="generate-id()"/> </xsl:otherwise> </xsl:choose> </xsl:attribute> <fo:external-graphic src="" content-width="scale-to-fit" content-height="scale-to-fit"> <xsl:if test="@šířka"> <xsl:attribute name="width"> <xsl:value-of select="@šířka"/> </xsl:attribute> </xsl:if> <xsl:if test="@výška"> <xsl:attribute name="height"> <xsl:value-of select="@výška"/> </xsl:attribute> </xsl:if> </fo:external-graphic> </fo:block> <fo:block text-align="center" font-style="italic" space-after="12pt" hyphenate="false" wrap-option="wrap" text-indent="0pt"> Obr. <xsl:number count="Text//MyPicture" from="Thesis" level="any" format="1.: "/> <xsl:apply-templates select="*|text()"/> </fo:block> </xsl:template> <!-- ============================================ List of Pictures ============================================ --> <xsl:template name="ListOfPictures"> <fo:block break-before="page" font-family="TimesNewRoman"> <fo:block space-after="12pt" line-height="20pt" font-size="18pt" text-align="start"> List of pictures </fo:block> <xsl:for-each select="//MyPicture"> <fo:block text-align-last="justify" line-height="18pt" font-size="12pt" space-after="3pt" text-align="start" start-indent="0cm" background-color="coral"> Obr. <xsl:number count="Text//MyPicture" from="Thesis" level="any" format="1.: "/> <xsl:apply-templates select="text()"/> <fo:leader leader-pattern="dots" leader-pattern-width="8pt"/> <!-- THERE ARE NO PROBLEMS HERE --> <fo:page-number-citation> <xsl:attribute name="ref-id"> <xsl:choose> <xsl:when test="@id"> <xsl:value-of select="@id"/> </xsl:when> <xsl:when test="name(preceding-sibling::*[1]) = 'a' and preceding-sibling::[EMAIL PROTECTED]"> <xsl:value-of select="preceding-sibling::*[1]/@name"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="generate-id()"/> </xsl:otherwise> </xsl:choose> </xsl:attribute> </fo:page-number-citation> </fo:block> </xsl:for-each> </fo:block> </xsl:template> <!-- ============================================ Table of Contents ============================================ --> <xsl:template name="TableOfContents"> <fo:block font-family="TimesNewRoman" line-height="12pt" font-size="8pt" space-after="6pt" background-color="grey"> This block is absolutely OK. This block is absolutely OK. This block is absolutely OK. This block is absolutely OK. This block is absolutely OK. This block is absolutely OK. This block is absolutely OK. This block is absolutely OK. This block is absolutely OK. This block is absolutely OK. This block is absolutely OK. </fo:block> <xsl:for-each select="/Thesis/Chapter/ChName"> <fo:block font-family="TimesNewRoman" text-align-last="justify" background-color="coral" line-height="18pt" font-size="12pt" space-after="3pt" space-before="18pt" start-indent="0cm"> <xsl:number count="Chapter/ChName" from="Thesis" level="any" format="1"/> <xsl:apply-templates select="*|text()"/> <fo:leader leader-pattern="dots"/> <!-- PROBLEM COMES HERE!!! IF I DISPLACE <fo:page-number-citation/> by <fo:page-number/> ALIGNMENT IS OK. IN LIST OF PICTURES IS ALIGNMENT OK. --> <fo:page-number-citation> <xsl:attribute name="ref-id"> <xsl:choose> <xsl:when test="@id"> <xsl:value-of select="@id"/> </xsl:when> <xsl:when test="name(preceding-sibling::*[1]) = 'a' and preceding-sibling::[EMAIL PROTECTED]"> <xsl:value-of select="preceding-sibling::*[1]/@name"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="generate-id()"/> </xsl:otherwise> </xsl:choose> </xsl:attribute> </fo:page-number-citation> </fo:block> </xsl:for-each> </xsl:template> </xsl:stylesheet>
View this message in context:
Sent from the FOP - Users forum at Nabble.com.
