123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?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$ -->
- <section xmlns:fo="http://www.w3.org/1999/XSL/Format">
- <title tab-width="50">An Example</title>
- <p>
- The XML file (a business card):
- </p>
- <fo:block text-align="start" font-family="'Lucida Console'" font-size="10pt" white-space="pre"
- ><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
- <business-card>
- <name>Pepé Le Pew</name>
- <function>Expert d'Amour</function>
- <address1>13 Pleasantstreet</address1>
- <address2>Acme Acres</address2>
- <phone>+1 (23) 456-7890</phone>
- <mail>pepe@looney.toon</mail>
- </business-card>]]></fo:block>
- <fo:block space-before="20pt"/>
- <p>The result:</p>
- <p>
- <fo:instream-foreign-object xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <svg:svg width="150mm" height="70mm" viewBox="0 0 150 70">
- <svg:g transform="rotate(-7)">
- <svg:image x="0" y="12" width="84" height="53" xlink:href="../svg/pepe-business-card.svg"/>
- </svg:g>
- </svg:svg>
- </fo:instream-foreign-object>
- </p>
- <fo:block-container absolute-position="absolute" left="80mm" top="20mm" width="3cm" height="10cm">
- <fo:block font-size="0" line-height="0">
- <fo:instream-foreign-object xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="1.8cm" height="10cm" viewBox="0 0 20 100">
- <defs>
- <marker refX="0" refY="0" orient="auto" style="overflow:visible" id="Arrow1Lend">
- <path
- d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
- transform="matrix(-0.4,0,0,-0.4,0,0)"
- style="fill-rule:evenodd;stroke:black;stroke-width:0.5;marker-start:none"
- id="arrowpath" />
- </marker>
- </defs>
- <g transform="translate(5,0)">
- <path
- d="M 0,0 C 10,10 10,40 0,50"
- style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;marker-mid:none;marker-end:url(#Arrow1Lend);stroke-opacity:1"
- id="path1872" />
- </g>
- </svg>
- </fo:instream-foreign-object>
- </fo:block>
- </fo:block-container>
- <fo:block-container absolute-position="absolute" width="100%">
- <fo:block start-indent="112mm">
- <p>The XSLT stylesheet which contains the rules to convert the business card XML to XSL-FO:</p>
- <fo:block text-align="start" font-family="'Lucida Console'" font-size="10pt" white-space="pre"
- ><![CDATA[<?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:output method="xml" indent="yes"/>
- <xsl:template match="/">
- <fo:root font-family="Helvetica" font-size="10pt">
- <fo:layout-master-set>
- <fo:simple-page-master master-name="bc"
- page-height="53mm" page-width="84mm" margin="3mm">
- <fo:region-body/>
- </fo:simple-page-master>
- </fo:layout-master-set>
- <xsl:apply-templates/>
- </fo:root>
- </xsl:template>
- <xsl:template match="business-card">
- <fo:page-sequence master-reference="bc">
- <fo:flow flow-name="xsl-region-body">
- <fo:block text-align="end" space-before="9mm" space-before.conditionality="retain">
- <fo:block font-size="14pt" font-weight="bold" space-after="2mm">
- <xsl:value-of select="name"/>
- </fo:block>
- <fo:block font-size="12pt" space-after="6mm">
- <xsl:value-of select="function"/>
- </fo:block>
- </fo:block>
- <fo:block><xsl:value-of select="address1"/></fo:block>
- <fo:block><xsl:value-of select="address2"/></fo:block>
- <fo:block><xsl:value-of select="phone"/></fo:block>
- <fo:block><xsl:value-of select="mail"/></fo:block>
- </fo:flow>
- </fo:page-sequence>
- </xsl:template>
- </xsl:stylesheet>]]></fo:block>
- </fo:block>
- </fo:block-container>
-
- </section>
|