You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2012/02/01 13:54:24 UTC
svn commit: r1239111 - in /incubator/lcf/trunk: CHANGES.txt site/build.xml
site/forrest.properties.xml site/pdf/config.xml site/pdf/document-to-fo.xsl
Author: kwright
Date: Wed Feb 1 12:54:24 2012
New Revision: 1239111
URL: http://svn.apache.org/viewvc?rev=1239111&view=rev
Log:
Final commit for CONNECTORS-387. The PDFs are now generated using fonts that depend on their context. The default is Dejavu, and IPAPGothic is used to override that when in the ja_JP directory.
Added:
incubator/lcf/trunk/site/pdf/document-to-fo.xsl (with props)
Modified:
incubator/lcf/trunk/CHANGES.txt
incubator/lcf/trunk/site/build.xml
incubator/lcf/trunk/site/forrest.properties.xml
incubator/lcf/trunk/site/pdf/config.xml
Modified: incubator/lcf/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/CHANGES.txt?rev=1239111&r1=1239110&r2=1239111&view=diff
==============================================================================
--- incubator/lcf/trunk/CHANGES.txt (original)
+++ incubator/lcf/trunk/CHANGES.txt Wed Feb 1 12:54:24 2012
@@ -3,6 +3,9 @@ $Id$
======================= 0.5-dev =====================
+CONNECTORS-387: Generate end-user-documentation.pdf properly in Japanese.
+(Hitoshi Ozawa, Karl Wright)
+
CONNECTORS-397: Alfresco Connector UI must be conformed with Apache Velocity
(Piergiorgio Lucidi)
Modified: incubator/lcf/trunk/site/build.xml
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/site/build.xml?rev=1239111&r1=1239110&r2=1239111&view=diff
==============================================================================
--- incubator/lcf/trunk/site/build.xml (original)
+++ incubator/lcf/trunk/site/build.xml Wed Feb 1 12:54:24 2012
@@ -83,8 +83,111 @@
<dirname file="build.xml" property="project-path"/>
<replace file="tmp/forrest/plugins/org.apache.forrest.plugin.output.pdf/output.xmap" token="{root}" value="${project-path}"/>
<replace file="tmp/forrest/plugins/org.apache.forrest.plugin.output.pdf/config.xml" token="{root}" value="${project-path}"/>
+ <delete file="tmp/forrest/plugins/org.apache.forrest.plugin.output.pdf/resources/stylesheets/document-to-fo.xsl"/>
+ <copy todir="tmp/forrest/plugins/org.apache.forrest.plugin.output.pdf/resources/stylesheets">
+ <fileset dir="pdf">
+ <include name="document-to-fo.xsl"/>
+ </fileset>
+ </copy>
</target>
+ <target name="build-dejavu-fonts" depends="dejavu-check" if="dejavuAvailable">
+ <mkdir dir="tmp/font/dejavu-fonts"/>
+ <unzip src="fonts/dejavu-fonts-ttf-2.33.zip" dest="tmp/font/dejavu-fonts"/>
+ <java classname="org.apache.fop.fonts.apps.TTFReader" fork="true">
+ <classpath>
+ <fileset dir="../lib">
+ <include name="fop*.jar"/>
+ <include name="xmlgraphics-commons*.jar"/>
+ <include name="avalon*.jar"/>
+ <include name="commons-io*.jar"/>
+ <include name="commons-logging*.jar"/>
+ </fileset>
+ </classpath>
+ <arg value="tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSans.ttf"/>
+ <arg value="tmp/font/DejaVuSans.xml"/>
+ </java>
+ <java classname="org.apache.fop.fonts.apps.TTFReader" fork="true">
+ <classpath>
+ <fileset dir="../lib">
+ <include name="fop*.jar"/>
+ <include name="xmlgraphics-commons*.jar"/>
+ <include name="avalon*.jar"/>
+ <include name="commons-io*.jar"/>
+ <include name="commons-logging*.jar"/>
+ </fileset>
+ </classpath>
+ <arg value="tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSans-Oblique.ttf"/>
+ <arg value="tmp/font/DejaVuSans-Oblique.xml"/>
+ </java>
+ <java classname="org.apache.fop.fonts.apps.TTFReader" fork="true">
+ <classpath>
+ <fileset dir="../lib">
+ <include name="fop*.jar"/>
+ <include name="xmlgraphics-commons*.jar"/>
+ <include name="avalon*.jar"/>
+ <include name="commons-io*.jar"/>
+ <include name="commons-logging*.jar"/>
+ </fileset>
+ </classpath>
+ <arg value="tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSans-Bold.ttf"/>
+ <arg value="tmp/font/DejaVuSans-Bold.xml"/>
+ </java>
+ <java classname="org.apache.fop.fonts.apps.TTFReader" fork="true">
+ <classpath>
+ <fileset dir="../lib">
+ <include name="fop*.jar"/>
+ <include name="xmlgraphics-commons*.jar"/>
+ <include name="avalon*.jar"/>
+ <include name="commons-io*.jar"/>
+ <include name="commons-logging*.jar"/>
+ </fileset>
+ </classpath>
+ <arg value="tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSerif.ttf"/>
+ <arg value="tmp/font/DejaVuSerif.xml"/>
+ </java>
+ <java classname="org.apache.fop.fonts.apps.TTFReader" fork="true">
+ <classpath>
+ <fileset dir="../lib">
+ <include name="fop*.jar"/>
+ <include name="xmlgraphics-commons*.jar"/>
+ <include name="avalon*.jar"/>
+ <include name="commons-io*.jar"/>
+ <include name="commons-logging*.jar"/>
+ </fileset>
+ </classpath>
+ <arg value="tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSerif-Italic.ttf"/>
+ <arg value="tmp/font/DejaVuSerif-Italic.xml"/>
+ </java>
+ <java classname="org.apache.fop.fonts.apps.TTFReader" fork="true">
+ <classpath>
+ <fileset dir="../lib">
+ <include name="fop*.jar"/>
+ <include name="xmlgraphics-commons*.jar"/>
+ <include name="avalon*.jar"/>
+ <include name="commons-io*.jar"/>
+ <include name="commons-logging*.jar"/>
+ </fileset>
+ </classpath>
+ <arg value="tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSerif-Bold.ttf"/>
+ <arg value="tmp/font/DejaVuSerif-Bold.xml"/>
+ </java>
+ <java classname="org.apache.fop.fonts.apps.TTFReader" fork="true">
+ <classpath>
+ <fileset dir="../lib">
+ <include name="fop*.jar"/>
+ <include name="xmlgraphics-commons*.jar"/>
+ <include name="avalon*.jar"/>
+ <include name="commons-io*.jar"/>
+ <include name="commons-logging*.jar"/>
+ </fileset>
+ </classpath>
+ <arg value="tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSansMono.ttf"/>
+ <arg value="tmp/font/DejaVuSansMono.xml"/>
+ </java>
+
+ </target>
+
<target name="build-ipa-fonts" depends="ipa-check" if="ipaAvailable">
<mkdir dir="tmp/font/ipa-fonts"/>
<unzip src="fonts/IPAGTTC00303.zip" dest="tmp/font/ipa-fonts"/>
@@ -131,7 +234,7 @@
</condition>
</target>
- <target name="dist" depends="setup-local-forrest,build-ipa-fonts,dependencies-check" if="dependenciesAvailable">
+ <target name="dist" depends="setup-local-forrest,build-ipa-fonts,build-dejavu-fonts,dependencies-check" if="dependenciesAvailable">
<dirname file="tmp/forrest/LICENSE.txt" property="forrest-dir"/>
<echo message="${forrest-dir}"/>
<exec executable="cmd.exe" dir="." searchpath="true" failonerror="true" osfamily="windows">
Modified: incubator/lcf/trunk/site/forrest.properties.xml
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/site/forrest.properties.xml?rev=1239111&r1=1239110&r2=1239111&view=diff
==============================================================================
--- incubator/lcf/trunk/site/forrest.properties.xml (original)
+++ incubator/lcf/trunk/site/forrest.properties.xml Wed Feb 1 12:54:24 2012
@@ -18,14 +18,20 @@
-->
<properties>
- <property name="output.pdf.fontFamily.serif" value="IPAPGothic"/>
- <property name="output.pdf.fontFamily.sansSerif" value="IPAPGothic"/>
- <property name="output.pdf.fontFamily.monospace" value="IPAPGothic"/>
- <property name="output.pdf.fontFamily.arial" value="IPAPGothic"/>
+ <!-- Default values -->
+ <property name="output.pdf.fontFamily.serif" value="DejaVuSerif"/>
+ <property name="output.pdf.fontFamily.sansSerif" value="DejaVuSans"/>
+ <property name="output.pdf.fontFamily.monospace" value="DejaVuSansMono"/>
+ <!-- Overrides for ja_JP -->
+ <property name="output.pdf.fontFamily.serif.ja_JP" value="IPAPGothic"/>
+ <property name="output.pdf.fontFamily.sansSerif.ja_JP" value="IPAPGothic"/>
+ <property name="output.pdf.fontFamily.monospace.ja_JP" value="IPAPGothic"/>
+
+ <!-- property name="output.pdf.fontFamily.arial" value="IPAPGothic"/>
<property name="output.pdf.fontFamily.TimesNewRoman" value="IPAPGothic"/>
<property name="output.pdf.fontFamily.Courier" value="IPAPGothic"/>
<property name="output.pdf.fontFamily.arialMT" value="IPAPGothic"/>
<property name="output.pdf.fontFamily.arial-BoldMT" value="IPAPGothic"/>
<property name="output.pdf.fontFamily.arial-ItalicMT" value="IPAPGothic"/>
- <property name="output.pdf.fontFamily.TimesNewRomanPSMT" value="IPAPGothic"/>
+ <property name="output.pdf.fontFamily.TimesNewRomanPSMT" value="IPAPGothic"/ -->
</properties>
\ No newline at end of file
Modified: incubator/lcf/trunk/site/pdf/config.xml
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/site/pdf/config.xml?rev=1239111&r1=1239110&r2=1239111&view=diff
==============================================================================
--- incubator/lcf/trunk/site/pdf/config.xml (original)
+++ incubator/lcf/trunk/site/pdf/config.xml Wed Feb 1 12:54:24 2012
@@ -20,6 +20,104 @@
<renderer mime="application/pdf">
<fonts>
+ <!-- DejaVuSans -->
+ <font metrics-file="{root}/tmp/font/DejaVuSans.xml" kerning="yes" embed-url="file:///{root}/tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSans.ttf">
+ <font-triplet name="DejaVuSans" style="normal" weight="normal"/>
+ <font-triplet name="DejaVuSans" style="normal" weight="100"/>
+ <font-triplet name="DejaVuSans" style="normal" weight="200"/>
+ <font-triplet name="DejaVuSans" style="normal" weight="300"/>
+ <font-triplet name="DejaVuSans" style="normal" weight="400"/>
+ <font-triplet name="DejaVuSans" style="normal" weight="500"/>
+ <font-triplet name="DejaVuSans" style="normal" weight="600"/>
+ <font-triplet name="DejaVuSans" style="normal" weight="700"/>
+ <font-triplet name="DejaVuSans" style="normal" weight="800"/>
+ <font-triplet name="DejaVuSans" style="normal" weight="900"/>
+ </font>
+
+ <!-- DejaVuSans-Oblique -->
+ <font metrics-file="{root}/tmp/font/DejaVuSans-Oblique.xml" kerning="yes" embed-url="file:///{root}/tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSans-Oblique.ttf">
+ <font-triplet name="DejaVuSans" style="italic" weight="normal"/>
+ <font-triplet name="DejaVuSans" style="italic" weight="100"/>
+ <font-triplet name="DejaVuSans" style="italic" weight="200"/>
+ <font-triplet name="DejaVuSans" style="italic" weight="300"/>
+ <font-triplet name="DejaVuSans" style="italic" weight="400"/>
+ <font-triplet name="DejaVuSans" style="italic" weight="500"/>
+ <font-triplet name="DejaVuSans" style="italic" weight="600"/>
+ <font-triplet name="DejaVuSans" style="italic" weight="700"/>
+ <font-triplet name="DejaVuSans" style="italic" weight="800"/>
+ <font-triplet name="DejaVuSans" style="italic" weight="900"/>
+ </font>
+
+ <!-- DejaVuSans-Bold -->
+ <font metrics-file="{root}/tmp/font/DejaVuSans-Bold.xml" kerning="yes" embed-url="file:///{root}/tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSans-Bold.ttf">
+ <font-triplet name="DejaVuSans" style="bold" weight="normal"/>
+ <font-triplet name="DejaVuSans" style="bold" weight="100"/>
+ <font-triplet name="DejaVuSans" style="bold" weight="200"/>
+ <font-triplet name="DejaVuSans" style="bold" weight="300"/>
+ <font-triplet name="DejaVuSans" style="bold" weight="400"/>
+ <font-triplet name="DejaVuSans" style="bold" weight="500"/>
+ <font-triplet name="DejaVuSans" style="bold" weight="600"/>
+ <font-triplet name="DejaVuSans" style="bold" weight="700"/>
+ <font-triplet name="DejaVuSans" style="bold" weight="800"/>
+ <font-triplet name="DejaVuSans" style="bold" weight="900"/>
+ </font>
+
+ <!-- DejaVuSerif -->
+ <font metrics-file="{root}/tmp/font/DejaVuSerif.xml" kerning="yes" embed-url="file:///{root}/tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSerif.ttf">
+ <font-triplet name="DejaVuSerif" style="normal" weight="normal"/>
+ <font-triplet name="DejaVuSerif" style="normal" weight="100"/>
+ <font-triplet name="DejaVuSerif" style="normal" weight="200"/>
+ <font-triplet name="DejaVuSerif" style="normal" weight="300"/>
+ <font-triplet name="DejaVuSerif" style="normal" weight="400"/>
+ <font-triplet name="DejaVuSerif" style="normal" weight="500"/>
+ <font-triplet name="DejaVuSerif" style="normal" weight="600"/>
+ <font-triplet name="DejaVuSerif" style="normal" weight="700"/>
+ <font-triplet name="DejaVuSerif" style="normal" weight="800"/>
+ <font-triplet name="DejaVuSerif" style="normal" weight="900"/>
+ </font>
+
+ <!-- DejaVuSerif-Italic -->
+ <font metrics-file="{root}/tmp/font/DejaVuSerif-Italic.xml" kerning="yes" embed-url="file:///{root}/tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSerif-Italic.ttf">
+ <font-triplet name="DejaVuSerif" style="italic" weight="normal"/>
+ <font-triplet name="DejaVuSerif" style="italic" weight="100"/>
+ <font-triplet name="DejaVuSerif" style="italic" weight="200"/>
+ <font-triplet name="DejaVuSerif" style="italic" weight="300"/>
+ <font-triplet name="DejaVuSerif" style="italic" weight="400"/>
+ <font-triplet name="DejaVuSerif" style="italic" weight="500"/>
+ <font-triplet name="DejaVuSerif" style="italic" weight="600"/>
+ <font-triplet name="DejaVuSerif" style="italic" weight="700"/>
+ <font-triplet name="DejaVuSerif" style="italic" weight="800"/>
+ <font-triplet name="DejaVuSerif" style="italic" weight="900"/>
+ </font>
+
+ <!-- DejaVuSerif-Bold -->
+ <font metrics-file="{root}/tmp/font/DejaVuSerif-Bold.xml" kerning="yes" embed-url="file:///{root}/tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSerif-Bold.ttf">
+ <font-triplet name="DejaVuSerif" style="bold" weight="normal"/>
+ <font-triplet name="DejaVuSerif" style="bold" weight="100"/>
+ <font-triplet name="DejaVuSerif" style="bold" weight="200"/>
+ <font-triplet name="DejaVuSerif" style="bold" weight="300"/>
+ <font-triplet name="DejaVuSerif" style="bold" weight="400"/>
+ <font-triplet name="DejaVuSerif" style="bold" weight="500"/>
+ <font-triplet name="DejaVuSerif" style="bold" weight="600"/>
+ <font-triplet name="DejaVuSerif" style="bold" weight="700"/>
+ <font-triplet name="DejaVuSerif" style="bold" weight="800"/>
+ <font-triplet name="DejaVuSerif" style="bold" weight="900"/>
+ </font>
+
+ <!-- DejaVuSansMono -->
+ <font metrics-file="{root}/tmp/font/DejaVuSansMono.xml" kerning="yes" embed-url="file:///{root}/tmp/font/dejavu-fonts/dejavu-fonts-ttf-2.33/ttf/DejaVuSansMono.ttf">
+ <font-triplet name="DejaVuSansMono" style="normal" weight="normal"/>
+ <font-triplet name="DejaVuSansMono" style="normal" weight="100"/>
+ <font-triplet name="DejaVuSansMono" style="normal" weight="200"/>
+ <font-triplet name="DejaVuSansMono" style="normal" weight="300"/>
+ <font-triplet name="DejaVuSansMono" style="normal" weight="400"/>
+ <font-triplet name="DejaVuSansMono" style="normal" weight="500"/>
+ <font-triplet name="DejaVuSansMono" style="normal" weight="600"/>
+ <font-triplet name="DejaVuSansMono" style="normal" weight="700"/>
+ <font-triplet name="DejaVuSansMono" style="normal" weight="800"/>
+ <font-triplet name="DejaVuSansMono" style="normal" weight="900"/>
+ </font>
+
<!-- IPAGothic -->
<font metrics-file="{root}/tmp/font/ipagothic.xml" kerning="yes" sub-font="IPAGothic" embed-url="file:///{root}/tmp/font/ipa-fonts/IPAGTTC00303/ipag.ttc">
<font-triplet name="IPAGothic" style="normal" weight="normal"/>
Added: incubator/lcf/trunk/site/pdf/document-to-fo.xsl
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/site/pdf/document-to-fo.xsl?rev=1239111&view=auto
==============================================================================
--- incubator/lcf/trunk/site/pdf/document-to-fo.xsl (added)
+++ incubator/lcf/trunk/site/pdf/document-to-fo.xsl Wed Feb 1 12:54:24 2012
@@ -0,0 +1,730 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:prop="http://apache.org/forrest/properties/1.0"
+ version="1.0">
+ <xsl:variable
+ name="config"
+ select="//skinconfig" />
+ <xsl:variable
+ name="properties"
+ select="//prop:properties" />
+<!-- left, justify, right -->
+ <xsl:variable
+ name="text-align"
+ select="string($config/pdf/page/@text-align)" />
+<!-- prefix which turns relative URLs into absolute ones, empty by default -->
+ <xsl:variable
+ name="url-prefix"
+ select="string($config/pdf/url-prefix)" />
+<!-- print URL of external links -->
+ <xsl:variable
+ name="show-external-urls"
+ select="$config/pdf/show-external-urls" />
+<!-- disable the table of content (enabled by default) -->
+ <xsl:variable
+ name="disable-toc"
+ select="string($config/pdf/disable-toc)" />
+<!-- Get the section depth to use when generating the minitoc (default is 2) -->
+ <xsl:variable
+ name="toc-max-depth"
+ select="number($config/toc/@max-depth)" />
+<!-- The page size to be used -->
+ <xsl:variable
+ name="pagesize"
+ select="string($config/pdf/page/@size)" />
+<!-- The page orientation ("portrait" or "landscape") -->
+ <xsl:variable
+ name="pageorientation"
+ select="string($config/pdf/page/@orientation)" />
+<!-- Double-sided printing toggle -->
+ <xsl:variable
+ name="doublesided"
+ select="string($config/pdf/margins/@double-sided)" />
+<!-- The top page margin -->
+ <xsl:variable
+ name="topmargin"
+ select="string($config/pdf/margins/top)" />
+<!-- The bottom page margin -->
+ <xsl:variable
+ name="bottommargin"
+ select="string($config/pdf/margins/bottom)" />
+<!-- The inner page margin (always the left margin if
+ double-sided printing is off, alternating between left and right if
+ it's on) -->
+ <xsl:variable
+ name="innermargin"
+ select="string($config/pdf/margins/inner)" />
+<!-- The outer page margin (always the right margin if
+ double-sided printing is off, alternating between right and left if
+ it's on)-->
+ <xsl:variable
+ name="outermargin"
+ select="string($config/pdf/margins/outer)" />
+ <xsl:param
+ name="numbersections"
+ select="'true'" />
+<!-- page breaks after TOC and each page if an aggregate document -->
+ <xsl:variable
+ name="page-break-top-sections"
+ select="'true'" />
+<!-- page numbering format -->
+ <xsl:variable
+ name="page-numbering-format"
+ select="string($config/pdf/page-numbering-format)" />
+ <xsl:variable
+ name="background-color"
+ select="$config/colors/color[@name='body']/@value" />
+ <xsl:variable
+ name="heading-color"
+ select="$config/colors/color[@name='subheading']/@value" />
+ <xsl:variable
+ name="heading-type"
+ select="$config/headings/@type" />
+ <xsl:variable
+ name="path-language"
+ select="substring-before($path,'/')"/>
+<!-- Section depth at which we stop numbering and just indent -->
+ <xsl:param
+ name="numbering-max-depth"
+ select="'3'" />
+<!-- Generic font-family parameters defined here. Default values specified,
+ but usually the values should be passed in from the calling sitemap. -->
+ <xsl:param name="serif">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name=concat('output.pdf.fontFamily.serif.',$path-language)]">
+ <xsl:value-of select="$properties/*[@name=concat('output.pdf.fontFamily.serif.',$path-language)]/@value"/>
+ </xsl:when>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.serif']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.serif']/@value"/>
+ </xsl:when>
+ <xsl:otherwise>serif</xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="sans-serif">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name=concat('output.pdf.fontFamily.sansSerif.',$path-language)]">
+ <xsl:value-of select="$properties/*[@name=concat('output.pdf.fontFamily.sansSerif.',$path-language)]/@value"/>
+ </xsl:when>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.sansSerif']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.sansSerif']/@value"/>
+ </xsl:when>
+ <xsl:otherwise>sans-serif</xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="monospace">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name=concat('output.pdf.fontFamily.monospace.',$path-language)]">
+ <xsl:value-of select="$properties/*[@name=concat('output.pdf.fontFamily.monospace.',$path-language)]/@value"/>
+ </xsl:when>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.monospace']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.monospace']/@value"/>
+ </xsl:when>
+ <xsl:otherwise>monospace</xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+<!-- Classes of text types that typically go together, and share font family
+ properties; this can be used to specify the font family for all related
+ text types at once: -->
+ <xsl:param name="headerFooterFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.headerFooterFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.headerFooterFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$sans-serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+<!-- Specific font-family parameters defined here, to allow overrides of
+ specific content elements; default values taken from the generic ones
+ above: -->
+ <xsl:param name="rootFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.rootFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.rootFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="firstFooterFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.firstFooterFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.firstFooterFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$headerFooterFontFamily"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="evenHeaderFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.evenHeaderFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.evenHeaderFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$headerFooterFontFamily"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="evenFooterFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.evenFooterFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.evenFooterFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$headerFooterFontFamily"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="oddHeaderFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.oddHeaderFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.oddHeaderFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$headerFooterFontFamily"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="oddFooterFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.oddFooterFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.oddFooterFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$headerFooterFontFamily"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="documentTitleFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.documentTitleFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.documentTitleFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$sans-serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="versionFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.versionFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.versionFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$sans-serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="authorsFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.authorsFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.authorsFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$sans-serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="abstractFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.abstractFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.abstractFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="noticeFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.noticeFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.noticeFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="TOCTitleFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.TOCTitleFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.TOCTitleFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$sans-serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="TOCFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.TOCFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.TOCFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <!-- helper-commonElements.xsl font-family definitions: -->
+ <xsl:param name="sectionTitleFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.sectionTitleFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.sectionTitleFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$sans-serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="sourceFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.sourceFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.sourceFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$monospace"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="codeFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.codeFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.codeFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$monospace"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="warningTitleFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.warningTitleFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.warningTitleFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$sans-serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="noteTitleFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.noteTitleFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.noteTitleFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$sans-serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="fixmeTitleFontFamily">
+ <xsl:choose>
+ <xsl:when test="$properties/*[@name='output.pdf.fontFamily.fixmeTitleFontFamily']">
+ <xsl:value-of select="$properties/*[@name='output.pdf.fontFamily.fixmeTitleFontFamily']/@value"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$sans-serif"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+<!-- Other external parameters: -->
+ <xsl:param
+ name="imagesdir"
+ select="." />
+ <xsl:param
+ name="xmlbasedir" />
+ <xsl:param
+ name="path"
+ select="." />
+
+<!-- Included stylesheets: -->
+ <xsl:include
+ href="lm://pdf.transform.helper.pdfoutline" />
+ <xsl:include
+ href="lm://pdf.transform.helper.footerinfo" />
+ <xsl:include
+ href="lm://pdf.transform.helper.pageBreaks" />
+ <xsl:include
+ href="lm://pdf.transform.helper.pageNumber" />
+ <xsl:include
+ href="lm://pdf.transform.helper.commonElements" />
+ <xsl:include
+ href="lm://pdf.transform.helper.layout" />
+ <xsl:include
+ href="lm://pdf.transform.helper.xmpMetadata" />
+
+ <xsl:template
+ match="/">
+ <fo:root
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ font-family="{$rootFontFamily}"
+ font-size="12pt">
+ <fo:layout-master-set>
+ <fo:simple-page-master
+ master-name="first-page"
+ page-height="{$pageheight}"
+ page-width="{$pagewidth}"
+ margin-top="{$topmargin}"
+ margin-bottom="{$bottommargin}"
+ margin-left="{$innermargin}"
+ margin-right="{$outermargin}">
+ <fo:region-body
+ margin-top="0.5in"
+ margin-bottom=".5in" />
+ <fo:region-after
+ region-name="first-footer"
+ extent=".5in"
+ display-align="before" />
+ </fo:simple-page-master>
+ <fo:simple-page-master
+ master-name="even-page"
+ page-height="{$pageheight}"
+ page-width="{$pagewidth}"
+ margin-top="{$topmargin}"
+ margin-bottom="{$bottommargin}">
+ <xsl:choose>
+ <xsl:when
+ test="$doublesided = 'true'">
+ <xsl:attribute
+ name="margin-left">
+ <xsl:value-of
+ select="$outermargin" />
+ </xsl:attribute>
+ <xsl:attribute
+ name="margin-right">
+ <xsl:value-of
+ select="$innermargin" />
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute
+ name="margin-left">
+ <xsl:value-of
+ select="$innermargin" />
+ </xsl:attribute>
+ <xsl:attribute
+ name="margin-right">
+ <xsl:value-of
+ select="$outermargin" />
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <fo:region-body
+ margin-top="0.5in"
+ margin-bottom=".5in" />
+ <fo:region-before
+ region-name="even-header"
+ extent="0.5in" />
+<!-- commented out from region-body
+ because it is not standard conforming
+ border-bottom="0.5pt solid" -->
+ <fo:region-after
+ region-name="even-footer"
+ extent=".5in"
+ display-align="before" />
+ </fo:simple-page-master>
+ <fo:simple-page-master
+ master-name="odd-page"
+ page-height="{$pageheight}"
+ page-width="{$pagewidth}"
+ margin-top="{$topmargin}"
+ margin-bottom="{$bottommargin}"
+ margin-left="{$innermargin}"
+ margin-right="{$outermargin}">
+ <fo:region-body
+ margin-top="0.5in"
+ margin-bottom=".5in" />
+ <fo:region-before
+ region-name="odd-header"
+ extent="0.5in" />
+<!-- commented out from region-body
+ because it is not standard conforming
+ border-bottom="0.5pt solid" -->
+ <fo:region-after
+ region-name="odd-footer"
+ extent=".5in"
+ display-align="before" />
+ </fo:simple-page-master>
+ <fo:page-sequence-master
+ master-name="book">
+ <fo:repeatable-page-master-alternatives>
+ <fo:conditional-page-master-reference
+ page-position="first"
+ master-reference="first-page" />
+ <fo:conditional-page-master-reference
+ odd-or-even="odd"
+ master-reference="odd-page" />
+ <fo:conditional-page-master-reference
+ odd-or-even="even"
+ master-reference="even-page" />
+ </fo:repeatable-page-master-alternatives>
+ </fo:page-sequence-master>
+ </fo:layout-master-set>
+ <xsl:call-template name="createXMPMetadata"/>
+ <xsl:apply-templates
+ select="/site/document"
+ mode="outline" />
+ <fo:page-sequence
+ master-reference="book">
+ <xsl:apply-templates
+ select="/site/document" />
+ </fo:page-sequence>
+ </fo:root>
+ </xsl:template>
+
+ <xsl:template match="document">
+ <fo:title>
+ <xsl:value-of select="header/title" />
+ </fo:title>
+
+ <fo:static-content
+ flow-name="first-footer"
+ font-family="{$firstFooterFontFamily}">
+ <fo:block
+ border-top="0.25pt solid"
+ padding-before="6pt"
+ text-align="center">
+ <xsl:apply-templates
+ select="footer" />
+ </fo:block>
+<!-- don't list page number on first page if its content is just the TOC -->
+ <xsl:if
+ test="$disable-toc = 'true' or not($toc-max-depth > 0 and $page-break-top-sections)">
+ <xsl:call-template
+ name="insertPageNumber">
+ <xsl:with-param
+ name="text-align">end</xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:call-template
+ name="info" />
+ </fo:static-content>
+
+ <fo:static-content
+ flow-name="even-header"
+ font-family="{$evenHeaderFontFamily}">
+ <fo:block
+ font-size="70%"
+ text-align="end"
+ font-style="italic">
+ <xsl:value-of
+ select="header/title" />
+ </fo:block>
+ </fo:static-content>
+ <fo:static-content
+ flow-name="even-footer"
+ font-family="{$evenFooterFontFamily}">
+ <fo:block
+ border-top="0.25pt solid"
+ padding-before="6pt"
+ text-align="center">
+ <xsl:apply-templates
+ select="footer" />
+ </fo:block>
+ <xsl:choose>
+ <xsl:when test="$doublesided = 'true'">
+ <xsl:call-template name="insertPageNumber">
+ <xsl:with-param name="text-align">start</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="insertPageNumber">
+ <xsl:with-param name="text-align">end</xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template
+ name="info" />
+ </fo:static-content>
+
+ <fo:static-content
+ flow-name="odd-header"
+ font-family="{$oddHeaderFontFamily}">
+ <fo:block
+ font-size="70%"
+ font-style="italic">
+ <xsl:choose>
+ <xsl:when test="$doublesided = 'true'">
+ <xsl:attribute name="text-align">start</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text-align">end</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of
+ select="header/title" />
+ </fo:block>
+ </fo:static-content>
+
+ <fo:static-content
+ flow-name="odd-footer"
+ font-family="{$oddFooterFontFamily}">
+ <fo:block
+ border-top="0.25pt solid"
+ padding-before="6pt"
+ text-align="center">
+ <xsl:apply-templates
+ select="footer" />
+ </fo:block>
+ <xsl:call-template
+ name="insertPageNumber">
+ <xsl:with-param
+ name="text-align">end</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template
+ name="info" />
+ </fo:static-content>
+
+ <fo:flow
+ flow-name="xsl-region-body">
+ <fo:block
+ padding-before="24pt"
+ padding-after="24pt"
+ font-family="{$documentTitleFontFamily}"
+ font-size="24pt"
+ font-weight="bold"
+ id="{generate-id()}">
+ <xsl:value-of
+ select="header/title" />
+ </fo:block>
+ <fo:block
+ text-align="{$text-align}"
+ padding-before="18pt"
+ padding-after="18pt">
+ <xsl:apply-templates />
+ </fo:block>
+<!-- Total number of pages calculation... -->
+ <fo:block
+ id="term" />
+ </fo:flow>
+ </xsl:template>
+ <xsl:template
+ match="abstract">
+ <fo:block
+ font-size="12pt"
+ text-align="center"
+ space-before="20pt"
+ space-after="25pt"
+ width="7.5in"
+ font-family="{$abstractFontFamily}"
+ font-style="italic">
+ <xsl:call-template
+ name="insertPageBreaks" />
+ <xsl:apply-templates />
+ </fo:block>
+ </xsl:template>
+ <xsl:template
+ match="notice">
+ <fo:block
+ font-size="10pt"
+ font-family="{$noticeFontFamily}"
+ text-align="left"
+ space-before="20pt"
+ width="7.5in"
+ border-top="0.25pt solid"
+ border-bottom="0.25pt solid"
+ padding-before="6pt"
+ padding-after="6pt">
+ <xsl:copy-of
+ select="@id" />
+ <xsl:call-template
+ name="insertPageBreaks" />
+<!-- insert i18n stuff here --> NOTICE: <xsl:apply-templates />
+ </fo:block>
+ </xsl:template>
+ <xsl:template
+ match="anchor">
+ <fo:block>
+ <xsl:copy-of
+ select="@id" />
+ </fo:block>
+ <xsl:apply-templates />
+ </xsl:template>
+ <xsl:template match="version">
+ <fo:block
+ font-family="{$versionFontFamily}"
+ font-weight="bold"
+ font-size="smaller">
+ <xsl:call-template name="insertPageBreaks"/>
+ <xsl:apply-templates select="@major"/>
+ <xsl:apply-templates select="@minor"/>
+ <xsl:apply-templates select="@fix"/>
+ <xsl:apply-templates select="@tag"/>
+ <xsl:choose>
+ <xsl:when test="starts-with(., '$Revision: ')">
+<!-- insert i18n stuff here --> Version <xsl:value-of select="substring(., 12, string-length(.) -11-2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </fo:block>
+ </xsl:template>
+ <xsl:template match="authors">
+ <fo:block
+ space-before="2em"
+ font-family="{$authorsFontFamily}"
+ font-weight="bold"
+ font-size="smaller">
+ <xsl:call-template
+ name="insertPageBreaks" />
+<!-- insert i18n stuff here --> by <xsl:for-each
+ select="person">
+ <xsl:value-of
+ select="@name" />
+ <xsl:if
+ test="not(position() = last())">, </xsl:if>
+ </xsl:for-each>
+ </fo:block>
+ </xsl:template>
+ <xsl:template match="body[count(//section) != 0]">
+ <xsl:if test="$disable-toc != 'true' and $toc-max-depth > 0">
+ <fo:block
+ font-family="{$TOCTitleFontFamily}"
+ font-size="12pt"
+ font-weight="bold"
+ space-after="0.5em"
+ space-before="1em"
+ text-align="justify"
+ width="7.5in"
+ id="__toc__">
+ <xsl:call-template name="insertPageBreaks"/>
+ <!-- insert i18n stuff here -->
+ <xsl:text>Table of contents</xsl:text>
+ </fo:block>
+ <fo:block
+ font-family="{$TOCFontFamily}"
+ font-size="12pt"
+ space-after="5pt"
+ space-before="0pt"
+ text-align="justify"
+ width="7.5in">
+ <xsl:if test="$page-break-top-sections">
+ <xsl:attribute name="break-after">page</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="section" mode="toc"/>
+ </fo:block>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:template>
+ <xsl:template match="section" mode="toc">
+ <!-- FIXME: see bug FOR-640 -->
+ <xsl:param name="depth" select="'1'"/>
+ <fo:block space-before="5pt" text-align-last="justify" start-indent=".5em"
+ text-indent=".5em">
+ <fo:inline>
+ <xsl:variable name="id">
+ <xsl:choose>
+ <xsl:when test="normalize-space(@id)!=''">
+ <xsl:value-of select="@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id()"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <fo:basic-link internal-destination="{$id}">
+ <xsl:value-of
+ select="substring('          ', 0, 2 * $depth - 1)"/>
+ <xsl:variable name="section-nr">
+ <xsl:number count="section" format="1.1.1.1.1.1.1" level="multiple"/>
+ </xsl:variable>
+ <xsl:if test="not(starts-with(title, $section-nr))">
+ <fo:inline font-size="11pt">
+ <xsl:value-of select="$section-nr"/>
+ </fo:inline>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="title"/>
+ <fo:leader leader-pattern="dots"/>
+ <fo:page-number-citation ref-id="{$id}"/>
+ </fo:basic-link>
+ </fo:inline>
+ <xsl:if test="$toc-max-depth > $depth">
+ <xsl:apply-templates select="section" mode="toc">
+ <xsl:with-param name="depth" select="$depth + 1"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </fo:block>
+ </xsl:template>
+</xsl:stylesheet>
Propchange: incubator/lcf/trunk/site/pdf/document-to-fo.xsl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/lcf/trunk/site/pdf/document-to-fo.xsl
------------------------------------------------------------------------------
svn:keywords = Id