aboutsummaryrefslogtreecommitdiffstats
path: root/src/documentation/content/xdocs/trunk/extensions.xml
blob: e2d19eca8b1325a3e02d134670da1305e904357b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?xml version="1.0" standalone="no"?>
<!--
  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$ -->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
<document>
  <header>
    <title>Standard FOP Extensions</title>
    <version>$Revision$</version>
  </header>
  <body>
    <p>
      By "extension", we mean any data that can be placed in the input XML document that 
      is not addressed by the XSL-FO standard.
      By having a mechanism for supporting extensions, FOP is able to add features that 
      are not covered in the specification.
    </p>
    <p>
      The extensions documented here are included with FOP, and are automatically available 
      to you. If you wish to add an extension of your own to FOP, please see the 
      <a href="../dev/extensions.html">Developers' Extension Page</a>.
    </p>
    <note>All extensions required the correct use of an appropriate namespace in your input document.</note>
    <section id="svg">
      <title>SVG</title>
      <p>
        Please see the <a href="graphics.html#svg">SVG documentation</a> for more details.
      </p>
    </section>
    <section id="fo-extensions">
      <title>FO Extensions</title>
      <section id="fox-namespace">
        <title>Namespace</title>
        <p>
          By convention, FO extensions in FOP use the "fox" namespace prefix.
          To use any of the FO extensions, add a namespace entry for 
          <code>http://xml.apache.org/fop/extensions</code> to the root element:
        </p>
        <source><![CDATA[<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
               xmlns:fox="http://xml.apache.org/fop/extensions">]]></source>
        <note>Currently, no extensions are implemented in FOP Trunk which use the FOP extension namespace.</note>
      </section>
      <section id="bookmarks">
        <title>PDF Bookmarks</title>
        <p>
          In previous versions of Apache FOP there was a <code>fox:outline</code> element
          which was used to create outlines in PDF files. The redesigned code makes use
          of the new <a href="http://www.w3.org/TR/xsl11/#fo_bookmark-tree">bookmark feature defined in the latest XSL 1.1 working draft</a>.
        </p>
      </section>
      <section id="named-destinations">
        <title>Anchors or Named Destinations</title>
        <p>This extension element hasn't been reimplemented for the redesigned code, yet.</p>
        <!--p>Use the fox:destination element to define "named destinations" inside a PDF document.
These are useful as fragment identifiers, e.g. "http://server/document.pdf#anchor-name".
fox:destination elements can be placed almost anywhere in the fo document, including a child of
root, a block-level element, or an inline-level element.
For the destination to actually work, it must correspond to an "id" attribute on some fo element
within the document. In other words, the "id" attribute actually creates the "view" within the
PDF document. The fox:destination simply gives that view an independent name.
</p>
        <source><![CDATA[<fox:destination internal-destination="table-of-contents"/>
...
<fo:block id="table-of-contents">Table of Contents</fo:block>]]></source>
        <warning>It is possible that in some future release of FOP, <em>all </em>elements with
"id" attributes will generate named-destinations, which will eliminate the need for
fox:destination.</warning-->
      </section>
      <section id="table-continue-label">
        <title>Table Continuation Label</title>
        <p>This extension element hasn't been reimplemented for the redesigned code, yet.</p>
        <!--p>Use the fox:continued-label element to create content in table-header and
table-footer cells that will appear only on pages after the first page that the table
appears. fox:continued-label is itself inline content, and is a container of fo:inline
content. This content will be laid out only if the table does not fit on a single page and flows
to following pages. Here is an example of FO code creating such a table-header:</p>
<source><![CDATA[<fo:table-header>
  <fo:table-row>
    <fo:table-cell>
      <fo:block>Header column 1 with continued label
          <fox:continued-label><fo:inline> (cont.)</fo:inline></fox:continued-label>
      </fo:block>
    </fo:table-cell>
    <fo:table-cell>
      <fo:block>Header column 2 with no continued label</fo:block>
    </fo:table-cell>
  </fo:table-row>
</fo:table-header>]]></source-->
      </section>
    </section>
  </body>
</document>