You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@forrest.apache.org by ch...@apache.org on 2003/09/17 01:12:13 UTC
cvs commit: xml-forrest/src/resources/skins/common/xslt/fo document2fo.xsl
cheche 2003/09/16 16:12:13
Modified: . status.xml
src/resources/skins/common/xslt/fo document2fo.xsl
Log:
Added creation of TOC support on PDF files.
Improved so it uses value from skinconfig.xml.
Improve algorithm to define font size for section/subsection/...
Submitted by: Eric Burghard eburghar@free.fr
Revision Changes Path
1.218 +7 -1 xml-forrest/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/xml-forrest/status.xml,v
retrieving revision 1.217
retrieving revision 1.218
diff -u -r1.217 -r1.218
--- status.xml 16 Sep 2003 16:35:08 -0000 1.217
+++ status.xml 16 Sep 2003 23:12:13 -0000 1.218
@@ -25,6 +25,12 @@
<changes>
<release version="0.6-dev" date="unreleased">
+ <action dev="JJP" type="update" context="core"
+ due-to="Eric Burghard" due-to-email="eburghar@free.fr" >
+ Added creation of TOC support on PDF files.
+ Improved so it uses value from skinconfig.xml.
+ Improve algoritm to define font size for section/subsection/...
+ </action>
<action dev="JJP" type="add" context="core" fixes-bug="FOR-9" >
First I18n integration for menus in forrest.
</action>
1.17 +50 -9 xml-forrest/src/resources/skins/common/xslt/fo/document2fo.xsl
Index: document2fo.xsl
===================================================================
RCS file: /home/cvs/xml-forrest/src/resources/skins/common/xslt/fo/document2fo.xsl,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- document2fo.xsl 12 Sep 2003 10:25:55 -0000 1.16
+++ document2fo.xsl 16 Sep 2003 23:12:13 -0000 1.17
@@ -4,7 +4,12 @@
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
- <xsl:output method="xml"/>
+ <!-- the skinconf file -->
+ <xsl:param name="config-file" select="'../../../../skinconf.xml'"/>
+ <xsl:variable name="config" select="document($config-file)/skinconfig"/>
+ <!-- Get the section depth to use when generating the minitoc (default is 2) -->
+ <xsl:variable name="toc-max-depth" select="number($config/toc/@level)"/>
+
<xsl:param name="numbersections" select="'true'"/>
<!-- Section depth at which we stop numbering and just indent -->
@@ -218,14 +223,8 @@
<xsl:param name="level">0</xsl:param>
<xsl:variable name="size">
- <xsl:choose>
- <xsl:when test="number($level) = 1">
- <xsl:value-of select="14"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="12"/>
- </xsl:otherwise>
- </xsl:choose>
+ <!-- 14pt for level 1 12pt for level 2 -->
+ <xsl:value-of select="14-number($level)"/>
</xsl:variable>
<fo:block
@@ -688,6 +687,48 @@
font-size="8pt">
<xsl:apply-templates/>
</fo:inline>
+ </xsl:template>
+
+ <xsl:template match="body[count(//section) != 0]">
+ <xsl:if test="$toc-max-depth > 0">
+ <fo:block font-family="serif" font-size="14pt" font-weight="bold"
+ space-after="5pt" space-before="5pt" text-align="justify" width="7.5in">
+ <!-- insert i18n stuff here -->
+ <xsl:text>Table of contents</xsl:text>
+ </fo:block>
+ <fo:block font-family="sans" font-size="12pt" space-after="5pt"
+ space-before="0pt" text-align="justify" width="7.5in">
+ <xsl:apply-templates select="section" mode="toc" />
+ </fo:block>
+ </xsl:if>
+ <xsl:apply-templates />
+ </xsl:template>
+
+ <xsl:template match="section" mode="toc">
+ <fo:block space-before="5pt" text-align-last="justify">
+ <fo:inline>
+ <xsl:number count="section" format="1.1.1.1.1.1.1" level="multiple" />
+ <xsl:text>. </xsl:text>
+ <xsl:value-of select="title" />
+ <fo:leader leader-pattern="dots" />
+ <fo:page-number-citation ref-id="{generate-id( )}" />
+ </fo:inline>
+ <xsl:if test="$toc-max-depth > 1">
+ <xsl:apply-templates select="section" mode="toc2" />
+ </xsl:if>
+ </fo:block>
+ </xsl:template>
+
+ <xsl:template match="section" mode="toc2">
+ <fo:block start-indent=".5em" text-align-last="justify" text-indent=".5em">
+ <fo:inline padding-start="1em">
+ <xsl:number count="section" format="1.1.1.1.1.1.1" level="multiple" />
+ <xsl:text>. </xsl:text>
+ <xsl:value-of select="title" />
+ <fo:leader leader-pattern="dots" />
+ <fo:page-number-citation ref-id="{generate-id( )}" />
+ </fo:inline>
+ </fo:block>
</xsl:template>
<!-- ====================================================================== -->
PDF section sizes (Re: cvs commit: xml-forrest/src/resources/skins/common/xslt/fo document2fo.xsl)
Posted by Jeff Turner <je...@apache.org>.
On Tue, Sep 16, 2003 at 11:12:13PM -0000, cheche@apache.org wrote:
> cheche 2003/09/16 16:12:13
>
> Modified: . status.xml
> src/resources/skins/common/xslt/fo document2fo.xsl
> Log:
> Added creation of TOC support on PDF files.
> Improved so it uses value from skinconfig.xml.
> Improve algorithm to define font size for section/subsection/...
> Submitted by: Eric Burghard eburghar@free.fr
>
> Index: document2fo.xsl
> ===================================================================
> RCS file: /home/cvs/xml-forrest/src/resources/skins/common/xslt/fo/document2fo.xsl,v
> retrieving revision 1.16
> retrieving revision 1.17
> diff -u -r1.16 -r1.17
> --- document2fo.xsl 12 Sep 2003 10:25:55 -0000 1.16
> +++ document2fo.xsl 16 Sep 2003 23:12:13 -0000 1.17
> @@ -218,14 +223,8 @@
> <xsl:param name="level">0</xsl:param>
>
> <xsl:variable name="size">
> - <xsl:choose>
> - <xsl:when test="number($level) = 1">
> - <xsl:value-of select="14"/>
> - </xsl:when>
> - <xsl:otherwise>
> - <xsl:value-of select="12"/>
> - </xsl:otherwise>
> - </xsl:choose>
> + <!-- 14pt for level 1 12pt for level 2 -->
> + <xsl:value-of select="14-number($level)"/>
> </xsl:variable>
>
> <fo:block
This is not an improved algorithm. This is what we had before, and it
resulted in unreadably small section titles for deeply nested sections,
such as those in site.pdf (aggregated pages).
--Jeff