123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- 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.
- -->
- <!-- $Id$ -->
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:fo="http://www.w3.org/1999/XSL/Format"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:exslt="http://exslt.org/common"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- extension-element-prefixes="exslt">
-
- <xsl:output method="xml" indent="yes"/>
- <xsl:include href="poster.xsl"/>
- <xsl:include href="common.xsl"/>
-
- <xsl:template match="poster">
- <fo:root font-family="Verdana" font-size="14pt">
- <xsl:call-template name="poster-layout-master-set"/>
- <fo:declarations>
- <x:xmpmeta xmlns:x="adobe:ns:meta/">
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about="" xmlns:xap="http://ns.adobe.com/xap/1.0">
- <xap:Title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default">Apache FOP Poster</rdf:li>
- <rdf:li xml:lang="de">Apache FOP Plakat</rdf:li>
- </rdf:Alt>
- </xap:Title>
- </rdf:Description>
- <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
- <dc:creator>Jeremias Märki</dc:creator>
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default">Apache FOP Poster</rdf:li>
- <rdf:li xml:lang="de">Apache FOP Plakat</rdf:li>
- </rdf:Alt>
- </dc:title>
- </rdf:Description>
- </rdf:RDF>
- </x:xmpmeta>
- </fo:declarations>
- <fo:page-sequence master-reference="A2plusL" language="en" hyphenate="true" text-align="justify">
- <fo:static-content flow-name="xsl-region-before">
- <xsl:call-template name="background"/>
- </fo:static-content>
- <fo:flow flow-name="xsl-region-body">
- <xsl:apply-templates select="section"/>
- </fo:flow>
- </fo:page-sequence>
- </fo:root>
- </xsl:template>
-
- <xsl:template name="background">
- <fo:block-container absolute-position="fixed" width="700mm" height="500mm">
- <fo:block line-height="0">
- <fo:instream-foreign-object>
- <svg xmlns="http://www.w3.org/2000/svg" width="700mm"
- height="500mm" viewBox="0 0 840 594">
- <g font-family="Verdana">
- <path
- d="M 0,55 L 580,55 c 40,0 60,30 100,30 L 840,85 840,575 L 280,575 c -40,0 -60,-50, -100,-50 L 0,525 z"
- style="fill:lightblue; stroke:none;" />
- <path
- d="M 0,55 L 580,55 c 40,0 60,30 100,30 L 840,85"
- style="fill:none; stroke:blue; stroke-width:5;" />
- <path
- d="M 840,575 L 280,575 c -40,0 -60,-50 -100,-50 L 0,525"
- style="fill:none; stroke:blue; stroke-width:5;" />
- <image x="680" y="7" width="140" height="60" xlink:href="../svg/fop-logo-reconstructed.svg"/>
- <text x="15" y="35" style="fill:black; font-weight:bold; font-size:17">
- Apache FOP - The leading open source XSL-FO formatter
- </text>
- <text x="685" y="74" style="fill:black; font-size:5.5">
- A product of the Apache XML Graphics Project
- </text>
- <image x="15" y="530" width="160" height="60" xlink:href="../svg/asf-logo.svg"/>
- <text x="360" y="560" style="fill:blue; font-size:12">
- For more details, please visit: <a xlink:href="http://xmlgraphics.apache.org/fop/">http://xmlgraphics.apache.org/fop/</a>
- </text>
- <text style="fill:gray; font-size:5" text-anchor="end">
- <tspan x="830" y="587">
- Poster generated with Apache FOP and Apache Batik
- </tspan>
- <tspan x="830" y="594">
- The sources for the poster are available under: <a xlink:href="http://svn.apache.org/repos/asf/xmlgraphics/fop/trunk/src/documentation/poster">http://svn.apache.org/repos/asf/xmlgraphics/fop/trunk/src/documentation/poster</a>
- </tspan>
- </text>
- </g>
- </svg>
- </fo:instream-foreign-object>
- </fo:block>
- </fo:block-container>
- </xsl:template>
-
- <xsl:template match="section">
- <xsl:variable name="section-content" select="exslt:node-set(document(@href, .))"/>
- <fo:block
- space-before.minimum="2mm" space-before.optimum="5mm" space-before.maximum="30mm"
- space-before.conditionality="discard" space-after.conditionality="discard"
- space-after.minimum="2mm" space-after.optimum="5mm" space-after.maximum="30mm"
- keep-together.within-column="always">
- <fo:block-container width="{@width}mm" height="{@height}mm" space-after="-{@height}mm">
- <fo:block line-height="0">
- <fo:instream-foreign-object overflow="visible">
- <xsl:call-template name="section-box">
- <xsl:with-param name="width" select="@width"/>
- <xsl:with-param name="height" select="@height"/>
- <xsl:with-param name="tab-width" select="$section-content/section/title/@tab-width"/>
- <xsl:with-param name="title" select="$section-content/section/title"/>
- </xsl:call-template>
- </fo:instream-foreign-object>
- </fo:block>
- </fo:block-container>
- <fo:block-container width="{@width}mm - 8mm" height="{@height}mm - 24mm"
- padding="4mm" padding-top="16mm" padding-bottom="8mm" margin="0pt"
- display-align="distribute" id="section{position()}">
- <fo:block>
- <xsl:apply-templates select="$section-content/section/*[local-name() != 'title']"/>
- </fo:block>
- </fo:block-container>
- </fo:block>
- </xsl:template>
-
- <xsl:template name="section-box">
- <xsl:param name="width" select="200"/>
- <xsl:param name="height" select="100"/>
- <xsl:param name="tab-width" select="35"/>
- <xsl:param name="title" select="'Title'"/>
- <xsl:variable name="stroke-width" select="2"/>
- <xsl:variable name="offset" select="$stroke-width div 2"/>
- <xsl:variable name="w" select="$width - $stroke-width"/>
- <xsl:variable name="h" select="$height - $stroke-width"/>
- <svg xmlns="http://www.w3.org/2000/svg" width="{$width}mm" height="{$height}mm" viewBox="0 0 {$width} {$height}">
- <g transform="translate({$offset},{$offset})" font-family="Verdana">
- <path d="M 0,5 S 0,0 5,0 L {$tab-width},0 C {$tab-width + 10},0 {$tab-width + 10},10 {$tab-width + 20},10 L {$w - 5},10 S {$w},10 {$w},15 L {$w},{$h - 5} S {$w},{$h}, {$w - 5},{$h} L 5,{$h} S 0,{$h} 0,{$h - 5} z"
- style="fill:rgb(240,240,255); stroke:blue; stroke-width:{$stroke-width};" />
- <text x="4" y="9" style="fill:blue; font-size:7">
- <xsl:value-of select="$title"/>
- </text>
- </g>
- </svg>
- </xsl:template>
-
- </xsl:stylesheet>
|