xmlgraphics-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vhenneb...@apache.org
Subject svn commit: r569118 [29/49] - in /xmlgraphics/site/deploy/fop: ./ 0.93/ 0.94/ 0.94/images/ dev/ dev/design/ skin/ trunk/
Date Thu, 23 Aug 2007 19:00:51 GMT
Modified: xmlgraphics/site/deploy/fop/dev/design/properties.html
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/properties.html?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/properties.html (original)
+++ xmlgraphics/site/deploy/fop/dev/design/properties.html Thu Aug 23 12:00:37 2007
@@ -58,10 +58,10 @@
 <a class="base-not-selected" href="../../index.html">Home</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.20.5/index.html">Version 0.20.5</a>
+<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
+<a class="base-not-selected" href="../../0.94/index.html">Version 0.94</a>
 </li>
 <li>
 <a class="base-not-selected" href="../../trunk/index.html">FOP Trunk</a>
@@ -244,9 +244,19 @@
     |start content
     +-->
 <div id="content">
+<div title="raw XML" class="xmllink">
+<a class="dida" href="properties.xml"><img alt="XML - icon" src="../../skin/images/xmldoc.gif" class="skin"><br>
+        XML</a>
+</div>
 <div title="Portable Document Format" class="pdflink">
 <a class="dida" href="properties.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
         PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
 </div>
 <h1>FOP Design: Properties</h1>
 <div id="minitoc-area">

Modified: xmlgraphics/site/deploy/fop/dev/design/properties.pdf
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/properties.pdf?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/properties.pdf (original)
+++ xmlgraphics/site/deploy/fop/dev/design/properties.pdf Thu Aug 23 12:00:37 2007
@@ -763,8 +763,8 @@
 108 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F3
-/BaseFont /Helvetica-Bold
+/Name /F1
+/BaseFont /Helvetica
 /Encoding /WinAnsiEncoding >>
 endobj
 109 0 obj
@@ -777,15 +777,15 @@
 110 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F6
-/BaseFont /Times-Italic
+/Name /F3
+/BaseFont /Helvetica-Bold
 /Encoding /WinAnsiEncoding >>
 endobj
 111 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F1
-/BaseFont /Helvetica
+/Name /F2
+/BaseFont /Helvetica-Oblique
 /Encoding /WinAnsiEncoding >>
 endobj
 112 0 obj
@@ -798,8 +798,8 @@
 113 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F2
-/BaseFont /Helvetica-Oblique
+/Name /F6
+/BaseFont /Times-Italic
 /Encoding /WinAnsiEncoding >>
 endobj
 114 0 obj
@@ -823,7 +823,7 @@
 endobj
 3 0 obj
 << 
-/Font << /F3 108 0 R /F5 109 0 R /F1 111 0 R /F6 110 0 R /F9 112 0 R /F2 113 0 R /F7 114 0 R >> 
+/Font << /F1 108 0 R /F5 109 0 R /F3 110 0 R /F2 111 0 R /F9 112 0 R /F6 113 0 R /F7 114 0 R >> 
 /ProcSet [ /PDF /ImageC /Text ] >> 
 endobj
 9 0 obj
@@ -1056,11 +1056,11 @@
 0000030951 00000 n 
 0000031125 00000 n 
 0000031312 00000 n 
-0000031426 00000 n 
-0000031537 00000 n 
-0000031649 00000 n 
-0000031758 00000 n 
-0000031865 00000 n 
+0000031421 00000 n 
+0000031532 00000 n 
+0000031646 00000 n 
+0000031763 00000 n 
+0000031870 00000 n 
 0000031982 00000 n 
 trailer
 <<

Added: xmlgraphics/site/deploy/fop/dev/design/properties.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/properties.xml?rev=569118&view=auto
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/properties.xml (added)
+++ xmlgraphics/site/deploy/fop/dev/design/properties.xml Thu Aug 23 12:00:37 2007
@@ -0,0 +1,377 @@
+<?xml version="1.0" encoding="ISO-8859-1"?><!--
+  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 V1.1//EN" "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/core/context/resources/schema/dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>FOP Design: Properties</title>
+    <version>$Revision: 426576 $</version>
+    <authors>
+      <person name="Karen Lease" email=""/>
+    </authors>
+  </header>
+  <body>
+    <section id="intro">
+      <title>Introduction</title>
+      <p>As the input XSL-FO is being parsed and the FO Tree is being built, the attributes of the FO elements are passed by the parser to the related FO object.
+The java object that represent the FO object then converts the attributes into properties that are stored in the FO Tree.</p>
+    </section>
+    <section id="issues">
+      <title>Issues</title>
+      <p>The following are some issues when dealing with properties:</p>
+      <ul>
+        <li>Initial Property Set</li>
+        <li>Inheritance: Some properties can be inherited from parent objects.</li>
+        <li>Adoption: The parentage for some elements can move around.
+Markers are one example.</li>
+        <li>Multiple Namespaces: The properties for foreign namespaces must be handled.</li>
+        <li>Expressions: XSL-FO expressions can be included in properties.</li>
+      </ul>
+    </section>
+    <section id="process-overview">
+      <title>Overview of Processing</title>
+      <p>The general flow of property processing is as follows:</p>
+      <ul>
+        <li>As part of <code>FOTreeBuilder.startElement()</code>, <code>FObj.handleAttrs</code> is passed a list of attributes to be processed for the new FObj.</li>
+        <li>FObj.handleAttrs gets a PropertyListBuilder and asks it to create a Property List from the list of attributes. There is currently only one static PropertyListBuilder, which handles the fo: namespace.</li>
+        <li>FObj.handleAttrs then cross-references the returned PropertyList with the FObj, creates a PropertyManager to facilitate downstream processing of the PropertyList, and handles the special case of the writing-mode property.</li>
+      </ul>
+    </section>
+    <section id="plb">
+      <title>PropertyListBuilder</title>
+      <p>Each plb object contains a hash of
+property names and <em>their</em> respective Makers. It may also
+contain element-specific property maker hashes; these are based on the
+<em>local name</em> of the flow object, ie. <em>table-row</em>, not
+<em>fo:table-row</em>. If an element-specific property mapping exists,
+it is preferred to the generic mapping.</p>
+    <p>The PLB loops through each attribute in the list, finds an appropriate "Maker" for it, then calls the Maker to convert the attribute value into a Property object of the correct type, and stores that Property in the PropertyList.</p>
+    </section>
+    <section id="datatypes">
+      <title>Property datatypes</title>
+      <p>The property datatypes are defined in the
+org.apache.fop.datatypes package, except Number and String which are java
+primitives. The FOP datatypes are:</p>
+      <ul>
+        <li>Number</li>
+        <li>String</li>
+        <li>ColorType</li>
+        <li>Length (has several subclasses)</li>
+        <li>CondLength (compound)</li>
+        <li>LengthRange (compound)</li>
+        <li>Space (compound)</li>
+        <li>Keep (compound)</li>
+      </ul>
+      <p>The <em>org.apache.fop.fo.Property</em> class is the superclass for all
+Property subclasses. There is a subclass for each kind of property
+datatype. These are named using the datatype name plus the word
+Property, resulting in NumberProperty, StringProperty, and so
+on. There is also a class EnumProperty which uses an <code>int</code>
+primitive to hold enumerated values. There is no corresponding Enum
+datatype class.</p>
+      <p>The Property class provides a "wrapper" around any possible
+property value. Code manipulating property values (in layout for
+example) usually knows what kind (or kinds) of datatypes are
+acceptable for a given property and will use the appropriate accessor.</p>
+      <p>The base Property class defines accessor methods for all FO property
+datatypes, such as getNumber(), getColorType(), getSpace(), getEnum(),
+etc. It doesn't define
+accessors for SVG types, since these are handled separately (at least
+for now.) In the base Property class, all of these methods return
+null, except getEnum which returns 0. Individual subclasses return a value of the appropriate type,
+such as Length or ColorType. A subclass may also choose to return a
+reasonable value for other accessor types. For example, a
+SpaceProperty will return the optimum value if asked for a Length.</p>
+    </section>
+    <section id="makers">
+      <title>Property Makers</title>
+      <p>The Property class contains a nested class called
+<em>Maker</em>. This is the base class for all other property Makers. It
+provides basic framework functionality which is overridden by the
+code generated by properties.xsl from the *properties.xml files. In
+particular it provides basic expression evaluation, using
+PropertyParser class in the org.apache.fop.fo.expr package.</p>
+      <p>Other Property subclasses such as LengthProperty define their own
+nested Maker classes (subclasses of Property.Maker). These handle
+conversion from the Property subclass returned from expression
+evaluation into the appropriate subclass for the property.</p>
+      <p>For each generic or specific property definition in the
+properties.xml files, a new subclass of one of the Maker classes is
+created. Note that no new Property subclasses are created, only new
+PropertyMaker subclasses. Once the property value has been parsed and
+stored, it has no specific functionality. Only the Maker code is
+specific. Maker subclasses define such aspects as keyword
+substitutions, whether the property can be inherited or not, which
+enumerated values are legal, default values, corresponding properties
+and specific datatype conversions.</p>
+      <p>The PLB finds a "Maker" for the property based on the attribute name and
+the element name. Most Makers are generic and handle the attribute on
+any element, but it's possible to set up an element-specific property
+Maker. The attribute name to Maker mappings are automatically created
+during the code generation phase by processing the XML property
+description files.</p>
+    </section>
+    <section id="attribute-list">
+      <title>Processing the attribute list</title>
+      <p>The PLB first looks to see if the font-size property is specified, since
+it sets up relative units which can be used in other property
+specifications. Each attribute is then handled in turn. If the attribute
+specifies part of a compound property such as space-before.optimum, the
+PLB looks to see if the attribute list also contains the "base" property
+(space-before in this case) and processes that first.</p>
+    </section>
+    <section id="maker-design">
+      <title>How the Property Maker works</title>
+      <p>There is a family of Maker objects for each of the property datatypes,
+such as Length, Number, Enumerated, Space, etc. But since each Property
+has specific aspects such as whether it's inherited, its default value,
+its corresponding properties, etc. there is usually a specific Maker for
+each Property. All these Maker classes are created during the code
+generation phase by processing (using XSLT) the XML property description
+files to create Java classes.</p>
+      <p>The Maker first checks for "keyword" values for a property. These are
+things like "thin, medium, thick" for the border-width property. The
+datatype is really a Length but it can be specified using these keywords
+whose actual value is determined by the "User Agent" rather than being
+specified in the XSL standard. For FOP, these values are currently
+defined in foproperties.xml. The keyword value is just a string, so it
+still needs to be parsed as described next.</p>
+      <p>The Maker also checks to see if the property is an Enumerated type and
+then checks whether the value matches one of the specified enumeration
+values.</p>
+      <p>Otherwise the Maker uses the property parser in the fo.expr package to
+evaluate the attribute value and return a Property object. The parser
+interprets the expression language and performs numeric operations and
+function call evaluations.</p>
+      <p>If the returned Property value is of the correct type (specificed in
+foproperties.xml, where else?), the Maker returns it. Otherwise, it may
+be able to convert the returned type into the correct type.</p>
+      <p>Some kinds of property values can't be fully resolved during FO tree
+building because they depend on layout information. This is the case of
+length values specified as percentages and of the special
+proportional-column-width(x) specification for table-column widths.
+These are stored as special kinds of Length objects which are evaluated
+during layout. Expressions involving "em" units which are relative to
+font-size _are_ resolved during the FO tree building however.</p>
+    </section>
+    <section id="property-list-struct">
+      <title>Structure of the PropertyList</title>
+      <p>The PropertyList extends HashMap and its basic function is to associate
+Property value objects with Property names. The Property objects are all
+subclasses of the base Property class. Each one simply contains a
+reference to one of the property datatype objects. Property provides
+accessors for all known datatypes and various subclasses override the
+accessor(s) which are reasonable for the datatype they store.</p>
+      <p>The PropertyList itself provides various ways of looking up Property
+values to handle such issues as inheritance and corresponding
+properties.</p>
+      <p>The main logic is:<br/>If the property is a writing-mode relative property (using start, end,
+before or after in its name), the corresponding absolute property value
+is returned if it's explicitly set on this FO. <br/>Otherwise, the
+writing-mode relative value is returned if it's explicitly set. If the
+property is inherited, the process repeats using the PropertyList of the
+FO's parent object. (This is easy because each PropertyList points to
+the PropertyList of the nearest ancestor FO.) If the property isn't
+inherited or no value is found at any level, the initial value is
+returned.</p>
+    </section>
+    <section id="property-spec">
+      <title>Implementing Standard Properties</title>
+      <p>Because the properties defined in the standard are basically static, FOP currently builds the source code for the related Property classes from an XML data file.
+All properties are specified in src/codegen/foproperties.xml.
+The related classes are created automatically during the build process by applying an XSLT stylesheet to the foproperties.xml file.</p>
+      <section id="generic">
+        <title>Generic properties</title>
+        <p>In the properties xml files, one can define generic property
+definitions which can serve as a basis for individual property
+definitions. There are currently several generic properties defined in
+foproperties.xml. An example is GenericColor, which defines basic properties
+for all ColorType properties. Since the generic specification doesn't include
+the inherited or default elements, these should be set in each property
+which is based on GenericColor. Here is an example:</p>
+        <p>
+          <code>&lt;property type='generic'&gt;
+    &lt;name&gt;background-color&lt;/name&gt;
+    &lt;use-generic&gt;GenericColor&lt;/use-generic&gt;
+    &lt;inherited&gt;false&lt;/inherited&gt;
+    &lt;default&gt;transparent&lt;/default&gt;
+  &lt;/property&gt;</code>
+        </p>
+        <p>A generic property specification can include all of the elements
+defined for the property element in the DTD, including the description
+of components for compound properties, and the specification of
+keyword shorthands.</p>
+        <p>Generic property specifications can be based on other generic
+specifications.
+An example is GenericCondPadding template which is based on the
+GenericCondLength definition but which extends it by adding an inherited
+element and a default value for the length component.</p>
+        <p>Generic properties can specify enumerated values, as in the
+GenericBorderStyle template. This means that the list of values, which
+is used by 8 properties (the "absolute" and "writing-mode-relative"
+variants for each BorderStyle property) is only specified one time.</p>
+        <p>When a property includes a "use-generic" element and includes no other
+elements (except the "name" element), then no class is generated for the
+property. Instead the generated mapping will associate this
+property directly with an instance of the generic Maker.</p>
+        <p>A generic class may also be hand-coded, rather than generated from the
+properties file.
+Properties based on such a generic class are indicated by the
+attribute <code>ispropclass='true'</code> on the
+<em>use-generic</em> element.</p>
+        <p>This is illustrated by the SVG properties, most of
+which use one of the Property subclasses defined in the
+<em>org.apache.fop.svg</em>
+package. Although all of these properties are now declared in
+svgproperties.xml, no specific classes are generated.  Classes are only
+generated for those SVG properties which are not based on generic
+classes defined in svg.</p>
+      </section>
+      <section id="element-specific">
+        <title>Element-specific properties</title>
+        <p>Properties may be defined for all flow objects or only for
+particular flow objects. A PropertyListBuilder object will always look
+first for a Property.Maker for the flow object before looking in the
+general list. These are specified in the
+<code>element-property-list</code> section of the properties.xml
+files. The <code>localname</code> element children of this element specify for
+which flow-object elements the property should be registered.</p>
+        <p>
+          <em>NOTE</em>: All the properties for an object or set of objects
+must be specified in a single element-property-list element. If the
+same localname appears in several element lists, the later set of
+properties will hide the earlier ones! Use the <em>ref</em>
+functionality if the same property is to be used in different sets of
+element-specific mappings.</p>
+      </section>
+      <section id="reference">
+        <title>Reference properties</title>
+        <p>A property element may have a type attribute with the value
+  <code>ref</code>. The
+  content of the <em>name</em> child element is the name of the referenced
+  property (not its class-name!). This indicates that the property
+  specification has
+  already been given, either in this same specification file or in a
+  different one (indicated by the <code>family</code> attribute). The
+  value of the family attribute is <em>XX</em> where the file
+  <em>XXproperties.xml</em> defines the referenced property. For
+  example, some SVG objects may have properties defined for FO. Rather
+  than defining them again with a new name, the SVG properties simply
+  reference the defined FO properties. The generating mapping for the
+  SVG properties will use the FO Maker classes.</p>
+      </section>
+      <section id="corresponding">
+        <title>Corresponding properties</title>
+        <p>Some properties have both <em>absolute</em> and
+<em>writing-mode-relative</em> forms. In general, the absolute forms
+are equivalent to CSS properties, and the writing-mode-relative forms
+are based on DSSSL. FO files may use either or both forms. In
+FOP code, a request for an absolute form will retrieve that value if it
+was specified on the FO; otherwise the corresponding relative property
+will be used if it was specified. However, a request for a relative
+form will only use the specified relative value if the corresponding
+absolute value was <em>not</em> specified for that FO.</p>
+        <p>Corresponding properties are specified in the properties.xml files
+using the element <code>corresponding</code>, which has at least one
+<code>propval</code> child and may have a <code>propexpr</code> child,
+if the corresponding
+value is calculated based on several other properties, as for
+<code>start-indent</code>.</p>
+        <p>
+          <em>NOTE</em>: most current FOP code accesses the absolute variants
+of these properties, notably for padding, border, height and width
+attributes. However it does use start-indent and end-indent, rather
+than the "absolute" margin properties.</p>
+      </section>
+    </section>
+    <section id="mapping">
+      <title>Mapping</title>
+      <p>The XSL script <code>propmap.xsl</code> is used to generate
+property mappings based on
+both foproperties.xml and svgproperties.xml. The mapping classes
+in the main fop packages simply load these automatically generated
+mappings. The mapping code still uses the static
+"maker" function of the generated object to obtain a Maker
+object. However, for all generated classes, this method returns an
+instance of the class itself (which is a subclass of Property.Maker)
+and not an instance of a separate nested Maker class.</p>
+      <p>For most SVG properties which use the SVG Property classes directly,
+the generated mapper code calls the "maker" method of the SVG Property
+class, which returns an instance of its nested Maker class.</p>
+      <p>The property generation also handles element-specific property
+mappings as specified in the properties XML files.</p>
+    </section>
+    <section id="enumerated">
+      <title>Enumerated values</title>
+      <p>For any property whose datatype is <code>Enum</code> or which
+contains possible enumerated values, FOP code may need to access
+enumeration constants. These are defined in the interfaces whose name
+is the same as the generated class name for the property,
+for example <code>BorderBeforeStyle.NONE</code>. These interface classes
+are generated by the XSL script <code>enumgen.xsl</code>. A separate
+interface defining the enumeration constants is always generated for
+every property which uses the constants, even if the constants
+themselves are defined in a generic class, as in BorderStyle.</p>
+      <p>If a subproperty or component of a compound property has enumerated
+values, the constants are defined in a nested interface whose name is
+the name of the subproperty (using appropriate capitalization
+rules). For example,
+the keep properties may have values of AUTO or FORCE or an integer
+value. These are defined for each kind of keep property. For example,
+the keep-together property is a compound property with the components
+within-line, within-column and within-page. Since each component may
+have the values AUTO or FORCE, the KeepTogether interface defines
+three nested interfaces, one for each component, and each defines
+these two constants. An example of a reference in code to the constant
+is <code>KeepTogether.WithinPage.AUTO</code>.</p>
+    </section>
+    <section id="compound">
+      <title>Compound property types</title>
+      <p>Some XSL FO properties are specified by compound datatypes. In the FO file,
+these are defined by a group of attributes, each having a name of the
+form <code>property.component</code>, for example
+<code>space-before.minimum</code>. These are several compound
+datatypes:</p>
+      <ul>
+        <li>LengthConditional, with components length and conditionality</li>
+        <li>LengthRange, with components minimum, optimum, and maximum</li>
+        <li>Space, with components minimum, optimum, maximum, precedence and
+conditionality </li>
+        <li>Keep, with components within-line, within-column and within-page</li>
+      </ul>
+      <p>These are described in the properties.xml files using the element
+<code>compound</code> which has <code>subproperty</code> children. A subproperty element is much
+like a property element, although it may not have an <code>inherited</code> child
+element, as only a complete property object may be inherited.</p>
+      <p>Specific datatype classes exist for each compound property. Each
+component of a compound datatype is itself stored as a Property
+object. Individual components may be accessed either by directly
+performing a get operation on the name, using the "dot" notation,
+eg. <code>get("space-before.optimum")</code>; or by using an accessor on the compound
+property, eg. <code>get("space-before").getOptimum()</code>.
+In either case,
+the result is a Property object, and the actual value may be accessed
+(in this example) by using the "getLength()" accessor.</p>
+    </section>
+    <section id="refine">
+      <title>Refinement</title>
+      <p>The <strong>Refinement</strong> step is part of reading and using the properties which may happen immediately or during the layout process. FOP does not currently use a separate Refinement process, but tends to handle refining steps as the FO Tree is built.</p>
+    </section>
+    <section id="refined-fo-tree">
+      <title>Refined FO Tree</title>
+      <p>The Refined FO Tree is the result of the Refinement process.</p>
+    </section>
+  </body>
+</document>
\ No newline at end of file

Propchange: xmlgraphics/site/deploy/fop/dev/design/properties.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/deploy/fop/dev/design/properties.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: xmlgraphics/site/deploy/fop/dev/design/renderers.html
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/renderers.html?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/renderers.html (original)
+++ xmlgraphics/site/deploy/fop/dev/design/renderers.html Thu Aug 23 12:00:37 2007
@@ -58,10 +58,10 @@
 <a class="base-not-selected" href="../../index.html">Home</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.20.5/index.html">Version 0.20.5</a>
+<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
+<a class="base-not-selected" href="../../0.94/index.html">Version 0.94</a>
 </li>
 <li>
 <a class="base-not-selected" href="../../trunk/index.html">FOP Trunk</a>
@@ -244,9 +244,19 @@
     |start content
     +-->
 <div id="content">
+<div title="raw XML" class="xmllink">
+<a class="dida" href="renderers.xml"><img alt="XML - icon" src="../../skin/images/xmldoc.gif" class="skin"><br>
+        XML</a>
+</div>
 <div title="Portable Document Format" class="pdflink">
 <a class="dida" href="renderers.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
         PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
 </div>
 <h1>FOP Design: Renderers</h1>
 <div id="minitoc-area">

Modified: xmlgraphics/site/deploy/fop/dev/design/renderers.pdf
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/renderers.pdf?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/renderers.pdf (original)
+++ xmlgraphics/site/deploy/fop/dev/design/renderers.pdf Thu Aug 23 12:00:37 2007
@@ -556,8 +556,8 @@
 81 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F3
-/BaseFont /Helvetica-Bold
+/Name /F1
+/BaseFont /Helvetica
 /Encoding /WinAnsiEncoding >>
 endobj
 82 0 obj
@@ -570,8 +570,8 @@
 83 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F1
-/BaseFont /Helvetica
+/Name /F3
+/BaseFont /Helvetica-Bold
 /Encoding /WinAnsiEncoding >>
 endobj
 84 0 obj
@@ -602,7 +602,7 @@
 endobj
 3 0 obj
 << 
-/Font << /F3 81 0 R /F5 82 0 R /F1 83 0 R /F2 84 0 R /F7 85 0 R >> 
+/Font << /F1 81 0 R /F5 82 0 R /F3 83 0 R /F2 84 0 R /F7 85 0 R >> 
 /ProcSet [ /PDF /ImageC /Text ] >> 
 endobj
 9 0 obj
@@ -784,8 +784,8 @@
 0000018832 00000 n 
 0000019047 00000 n 
 0000019208 00000 n 
-0000019321 00000 n 
-0000019431 00000 n 
+0000019316 00000 n 
+0000019426 00000 n 
 0000019539 00000 n 
 0000019655 00000 n 
 trailer

Added: xmlgraphics/site/deploy/fop/dev/design/renderers.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/renderers.xml?rev=569118&view=auto
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/renderers.xml (added)
+++ xmlgraphics/site/deploy/fop/dev/design/renderers.xml Thu Aug 23 12:00:37 2007
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="ISO-8859-1"?><!--
+  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 V1.1//EN" "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/core/context/resources/schema/dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>FOP Design: Renderers</title>
+    <version>$Revision: 426576 $</version>
+    <authors>
+      <person name="Keiron Liddle" email="keiron@aftexsw.com"/>
+    </authors>
+  </header>
+  <body>
+    <section id="intro">
+      <title>Introduction</title>
+      <p>A renderer is primarily designed to convert a given area tree into the output
+document format. It should be able to produce pages and fill the pages
+with the text and graphical content. Usually the output is sent to
+an output stream.</p>
+      <p>Some output formats may support extra information that is not available
+from the area tree or depends on the destination of the document.</p>
+      <p>Each renderer is given an area tree to render to its output format.
+The area tree is simply a representation of the pages and the placement
+of text and graphical objects on those pages.</p>
+      <p>The renderer will be given each page as it is ready and an output stream
+to write the data out.
+All pages are supplied in the order they appear in the document.
+In order to save memory it is
+possble to render the pages out of order. Any page that is not ready to
+be rendered is setup by the renderer first so that it can reserve a space
+or reference for when the page is ready to be rendered.The renderer is responsible for managing the
+output format and associated data and flow.</p>
+    </section>
+    <section id="issues">
+      <title>Design Issues</title>
+      <section id="issue-renderers-responsible">
+        <title>Renderers are Responsible</title>
+        <p>Each renderer is totally responsible for its output format.</p>
+      </section>
+      <section id="issue-output-stream">
+        <title>Send Output to a Stream</title>
+      </section>
+    </section>
+    <section id="fonts">
+      <title>Fonts</title>
+      <p>Because font metrics (and therefore layout) are obtained in two different ways depending on the renderer, the renderer actually sets up the fonts being used. The font metrics are used
+during the layout process to determine the size of characters.</p>
+    </section>
+    <section id="context">
+      <title>Render Context</title>
+      <p>The render context is used by handlers.
+It contains information about the current state of the renderer, such as the page, the position, and any other miscellanous objects that are required to draw into the page.</p>
+    </section>
+    <section>
+      <title>XML Handling</title>
+      <p>A document may contain information in the form of XML for an image or instream foreign object.
+This XML is handled through the user agent.
+A standard extension for PDF is the SVG handler.</p>
+      <p>If there is XML in the SVG namespace it is given to the handler which renders the SVG into the pdf document at the given location.
+This separation means that other XML handlers can easily be added.</p>
+    </section>
+    <section>
+      <title>Extensions</title>
+      <p>Document level extensions are handled with an extension handler.
+This handles the information from the AreaTree and adds renders it to the document.
+An example is the pdf bookmarks. This information first needs to have all references resolved.
+Then the extension handler is ready to put the information into the pdf document.</p>
+    </section>
+    <section id="implement">
+      <title>Renderer Implementations</title>
+      <table>
+        <tr>
+          <th colspan="1" rowspan="1">Name</th>
+          <th colspan="1" rowspan="1">Type</th>
+          <th colspan="1" rowspan="1">Font Source</th>
+          <th colspan="1" rowspan="1">Font Embedding?</th>
+          <th colspan="1" rowspan="1">Out of Order Rendering?</th>
+          <th colspan="1" rowspan="1">Notes</th>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">PDF</td>
+          <td colspan="1" rowspan="1">Paginated</td>
+          <td colspan="1" rowspan="1">FOP</td>
+          <td colspan="1" rowspan="1">Yes</td>
+          <td colspan="1" rowspan="1">Yes</td>
+          <td colspan="1" rowspan="1">Uses the PDFDocument classes to create a PDF document. Most of the work is to insert text or create lines. SVG is handled by the XML handler that uses the PDFGraphics2D and batik to
+draw the svg into the pdf page.</td>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">PostScript</td>
+          <td colspan="1" rowspan="1">Paginated</td>
+          <td colspan="1" rowspan="1">FOP</td>
+          <td colspan="1" rowspan="1">Not implemented</td>
+          <td colspan="1" rowspan="1">?</td>
+          <td colspan="1" rowspan="1">Similar to PDF.</td>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">PCL</td>
+          <td colspan="1" rowspan="1">Paginated</td>
+          <td colspan="1" rowspan="1">FOP</td>
+          <td colspan="1" rowspan="1">?</td>
+          <td colspan="1" rowspan="1">?</td>
+          <td colspan="1" rowspan="1">Similar to PDF.</td>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">SVG</td>
+          <td colspan="1" rowspan="1">Paginated</td>
+          <td colspan="1" rowspan="1">?</td>
+          <td colspan="1" rowspan="1">?</td>
+          <td colspan="1" rowspan="1">?</td>
+          <td colspan="1" rowspan="1">Creates a single svg document that contains all the pages rendered
+with page sequences horizontally and pages vertically. Adds
+links between the pages so that it can be viewed by clicking on the page
+to go to the next page.</td>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">TXT</td>
+          <td colspan="1" rowspan="1">Paginated</td>
+          <td colspan="1" rowspan="1">N/A</td>
+          <td colspan="1" rowspan="1">N/A</td>
+          <td colspan="1" rowspan="1">No</td>
+          <td colspan="1" rowspan="1">Outputs to a text document.</td>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">AWT</td>
+          <td colspan="1" rowspan="1">Paginated</td>
+          <td colspan="1" rowspan="1">AWT</td>
+          <td colspan="1" rowspan="1">N/A</td>
+          <td colspan="1" rowspan="1">?</td>
+          <td colspan="1" rowspan="1">This draws the pages into an AWT graphic.</td>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">XML</td>
+          <td colspan="1" rowspan="1">Paginated</td>
+          <td colspan="1" rowspan="1">FOP</td>
+          <td colspan="1" rowspan="1">No</td>
+          <td colspan="1" rowspan="1">No</td>
+          <td colspan="1" rowspan="1">Creates an XML file that represents the AreaTree.</td>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">Print</td>
+          <td colspan="1" rowspan="1">Paginated</td>
+          <td colspan="1" rowspan="1">AWT</td>
+          <td colspan="1" rowspan="1">?</td>
+          <td colspan="1" rowspan="1">No</td>
+          <td colspan="1" rowspan="1">Prints the document using the java printing facitlities. The AWT
+rendering is used to draw the pages onto the printjob.</td>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">RTF</td>
+          <td colspan="1" rowspan="1">Structural</td>
+          <td colspan="1" rowspan="1">N/A</td>
+          <td colspan="1" rowspan="1">N/A</td>
+          <td colspan="1" rowspan="1">No</td>
+          <td colspan="1" rowspan="1">Structural format uses a different rendering mechanism.</td>
+        </tr>
+        <tr>
+          <td colspan="1" rowspan="1">MIF</td>
+          <td colspan="1" rowspan="1">Structural</td>
+          <td colspan="1" rowspan="1">N/A</td>
+          <td colspan="1" rowspan="1">N/A</td>
+          <td colspan="1" rowspan="1">No</td>
+          <td colspan="1" rowspan="1">Structural format uses a different rendering mechanism.</td>
+        </tr>
+      </table>
+    </section>
+    <section id="add">
+      <title>Adding a Renderer</title>
+      <p>You can add other renderers by implementing the Renderer interface.
+However, the AbstractRenderer does most of what is needed, including iterating through the tree parts, so it is probably better to extend this.
+This means that you only need to implement the basic functionality such as text, images, and lines.
+AbstractRenderer's methods can easily be overridden to handle things in a different way or do some extra processing.</p>
+      <p>The relevent AreaTree structures that will need to be rendered are:</p>
+      <ul>
+        <li>Page</li>
+        <li>Viewport</li>
+        <li>Region</li>
+        <li>Span</li>
+        <li>Block</li>
+        <li>Line</li>
+        <li>Inline</li>
+      </ul>
+      <p>A renderer implementation does the following:</p>
+      <ul>
+        <li>render each individual page</li>
+        <li>clip and align child areas to a viewport</li>
+        <li>handle all types of inline area, text, image etc.</li>
+        <li>draw various lines and rectangles</li>
+      </ul>
+    </section>
+    <section id="multiple">
+      <title>Multiple Renderers</title>
+      <p>The layout of the document depends mainly on the font being used.
+If two renderers have the same font metrics then it is possible to use the same Area Tree to render both. This can be handled by the AreaTree Handler.</p>
+    </section>
+    <section id="status">
+      <title>Status</title>
+      <section id="status-todo">
+        <title>To Do</title>
+      </section>
+      <section id="status-wip">
+        <title>Work In Progress</title>
+      </section>
+      <section id="status-complete">
+        <title>Completed</title>
+        <ul>
+          <li>new renderer model</li>
+          <li>new interface for structured documents, rtf and mif</li>
+          <li>added handlers for xml in renderer</li>
+        </ul>
+      </section>
+    </section>
+  </body>
+</document>
\ No newline at end of file

Propchange: xmlgraphics/site/deploy/fop/dev/design/renderers.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/deploy/fop/dev/design/renderers.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: xmlgraphics/site/deploy/fop/dev/design/startup.html
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/startup.html?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/startup.html (original)
+++ xmlgraphics/site/deploy/fop/dev/design/startup.html Thu Aug 23 12:00:37 2007
@@ -58,10 +58,10 @@
 <a class="base-not-selected" href="../../index.html">Home</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.20.5/index.html">Version 0.20.5</a>
+<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
+<a class="base-not-selected" href="../../0.94/index.html">Version 0.94</a>
 </li>
 <li>
 <a class="base-not-selected" href="../../trunk/index.html">FOP Trunk</a>
@@ -244,9 +244,19 @@
     |start content
     +-->
 <div id="content">
+<div title="raw XML" class="xmllink">
+<a class="dida" href="startup.xml"><img alt="XML - icon" src="../../skin/images/xmldoc.gif" class="skin"><br>
+        XML</a>
+</div>
 <div title="Portable Document Format" class="pdflink">
 <a class="dida" href="startup.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
         PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
 </div>
 <h1>FOP Design: Startup, Environment, Control</h1>
 <div id="minitoc-area">

Modified: xmlgraphics/site/deploy/fop/dev/design/startup.pdf
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/startup.pdf?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/startup.pdf (original)
+++ xmlgraphics/site/deploy/fop/dev/design/startup.pdf Thu Aug 23 12:00:37 2007
@@ -189,8 +189,8 @@
 31 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F3
-/BaseFont /Helvetica-Bold
+/Name /F1
+/BaseFont /Helvetica
 /Encoding /WinAnsiEncoding >>
 endobj
 32 0 obj
@@ -203,8 +203,8 @@
 33 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F1
-/BaseFont /Helvetica
+/Name /F3
+/BaseFont /Helvetica-Bold
 /Encoding /WinAnsiEncoding >>
 endobj
 34 0 obj
@@ -235,7 +235,7 @@
 endobj
 3 0 obj
 << 
-/Font << /F3 31 0 R /F5 32 0 R /F1 33 0 R /F2 34 0 R /F7 35 0 R >> 
+/Font << /F1 31 0 R /F5 32 0 R /F3 33 0 R /F2 34 0 R /F7 35 0 R >> 
 /ProcSet [ /PDF /ImageC /Text ] >> 
 endobj
 9 0 obj
@@ -307,8 +307,8 @@
 0000004349 00000 n 
 0000004559 00000 n 
 0000004715 00000 n 
-0000004828 00000 n 
-0000004938 00000 n 
+0000004823 00000 n 
+0000004933 00000 n 
 0000005046 00000 n 
 0000005162 00000 n 
 trailer

Added: xmlgraphics/site/deploy/fop/dev/design/startup.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/startup.xml?rev=569118&view=auto
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/startup.xml (added)
+++ xmlgraphics/site/deploy/fop/dev/design/startup.xml Thu Aug 23 12:00:37 2007
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1"?><!--
+  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 V1.1//EN" "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/core/context/resources/schema/dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>FOP Design: Startup, Environment, Control</title>
+    <version>$Revision: 426576 $</version>
+  </header>
+  <body>
+    <section id="intro">
+      <title>Introduction</title>
+      <p>Startup is the process of getting FOP bootstrapped and creating basic objects. Environment includes acquiring user options, instantiating any frameworks, setting up logging, etc. Control includes the basic logic for tieing the various subsystems together properly.</p>
+    </section>
+    <section id="status">
+      <title>Status</title>
+      <section id="status-todo">
+        <title>To Do</title>
+        <ul>
+          <li>avalon integration - logging, configuration, component management, caching, uri resolver</li>
+          <li>improved interfaces
+            <ul>
+              <li>no threading/static problems</li>
+              <li>simpler to use</li>
+            </ul>
+          </li>
+          <li>better commandline handling</li>
+        </ul>
+      </section>
+      <section id="status-wip">
+        <title>Work In Progress</title>
+      </section>
+      <section id="status-complete">
+        <title>Completed</title>
+        <ul>
+          <li><strong>better image handling</strong> - redone so it can use a cache and synchronizes properly only on the current image while loading</li>
+        </ul>
+      </section>
+    </section>
+  </body>
+</document>
\ No newline at end of file

Propchange: xmlgraphics/site/deploy/fop/dev/design/startup.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/deploy/fop/dev/design/startup.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: xmlgraphics/site/deploy/fop/dev/design/svg.html
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/svg.html?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/svg.html (original)
+++ xmlgraphics/site/deploy/fop/dev/design/svg.html Thu Aug 23 12:00:37 2007
@@ -58,10 +58,10 @@
 <a class="base-not-selected" href="../../index.html">Home</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.20.5/index.html">Version 0.20.5</a>
+<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
+<a class="base-not-selected" href="../../0.94/index.html">Version 0.94</a>
 </li>
 <li>
 <a class="base-not-selected" href="../../trunk/index.html">FOP Trunk</a>
@@ -244,9 +244,19 @@
     |start content
     +-->
 <div id="content">
+<div title="raw XML" class="xmllink">
+<a class="dida" href="svg.xml"><img alt="XML - icon" src="../../skin/images/xmldoc.gif" class="skin"><br>
+        XML</a>
+</div>
 <div title="Portable Document Format" class="pdflink">
 <a class="dida" href="svg.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
         PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
 </div>
 <h1>FOP Design: SVG</h1>
 <div id="minitoc-area">

Modified: xmlgraphics/site/deploy/fop/dev/design/svg.pdf
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/svg.pdf?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/svg.pdf (original)
+++ xmlgraphics/site/deploy/fop/dev/design/svg.pdf Thu Aug 23 12:00:37 2007
@@ -251,8 +251,8 @@
 39 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F3
-/BaseFont /Helvetica-Bold
+/Name /F1
+/BaseFont /Helvetica
 /Encoding /WinAnsiEncoding >>
 endobj
 40 0 obj
@@ -265,8 +265,8 @@
 41 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F1
-/BaseFont /Helvetica
+/Name /F3
+/BaseFont /Helvetica-Bold
 /Encoding /WinAnsiEncoding >>
 endobj
 42 0 obj
@@ -297,7 +297,7 @@
 endobj
 3 0 obj
 << 
-/Font << /F3 39 0 R /F5 40 0 R /F1 41 0 R /F2 42 0 R /F7 43 0 R >> 
+/Font << /F1 39 0 R /F5 40 0 R /F3 41 0 R /F2 42 0 R /F7 43 0 R >> 
 /ProcSet [ /PDF /ImageC /Text ] >> 
 endobj
 9 0 obj
@@ -383,8 +383,8 @@
 0000007363 00000 n 
 0000007552 00000 n 
 0000007721 00000 n 
-0000007834 00000 n 
-0000007944 00000 n 
+0000007829 00000 n 
+0000007939 00000 n 
 0000008052 00000 n 
 0000008168 00000 n 
 trailer

Added: xmlgraphics/site/deploy/fop/dev/design/svg.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/svg.xml?rev=569118&view=auto
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/svg.xml (added)
+++ xmlgraphics/site/deploy/fop/dev/design/svg.xml Thu Aug 23 12:00:37 2007
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="ISO-8859-1"?><!--
+  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 V1.1//EN" "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/core/context/resources/schema/dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>FOP Design: SVG</title>
+    <version>$Revision: 426576 $</version>
+  </header>
+  <body>
+<section id="intro">
+  <title>Introduction</title>
+    <p>SVG is rendered through Batik.</p><p>The XML from the XSL:FO document
+      is converted into an SVG DOM with batik. This DOM is then set as the Document
+      on the Foreign Object area in the Area Tree.</p><p>This DOM is then available to
+      be rendered by the renderer.</p><p>SVG is rendered in the renderers via an      XMLHandler in the FOUserAgent. This XML handler is used to render the SVG. The
+      SVG is rendered by using batik. Batik converts the SVG DOM into an internal
+      structure that can be drawn into a Graphics2D. So for PDF we use a
+      PDFGraphics2D to draw into.</p><p>This creates the necessary PDF information to
+      create the SVG image in the PDF document.</p><p>Most of the work is done in the
+      PDFGraphics2D class. There are also a few bridges that are plugged into batik
+      to provide different behaviour for some SVG elements.</p>
+</section>
+<section>
+  <title>Text Drawing</title>
+<p>Normally batik converts text into a set of curved
+       shapes. </p><p>This is handled as any other shapes when rendering to the output. This
+       is not always desirable as the shapes have very fine curves. This can cause the
+       output to look a bit bad in PDF and PS (it can be drawn properly but is not by
+       default). These curves also require much more data than the original
+       text.</p><p>To handle this there is a PDFTextElementBridge that is set when
+       using the bridge in batik. If the text is simple enough for the text to be
+       drawn in the PDF as with all other text then this sets the TextPainter to use
+       the PDFTextPainter. This inserts the text directly into the PDF using the       drawString method on the PDFGraphics2D.</p><p>Text is considered simple if the
+       font is available, the font size is useable and there are no tspans or other
+       complications. This can make the resulting PDF significantly
+       smaller.</p>
+</section>
+<section>
+  <title>PDF Links</title>
+<p>To support links in PDF another batik
+       element bridge is used. The PDFAElementBridge creates a PDFANode which inserts
+       a link into the PDF document via the PDFGraphics2D.</p><p>Since links are       positioned on the page without any transforms then we need to transform the
+       coordinates of the link area so that they match the current position of the a
+       element area. This transform may also need to account for the svg being
+       positioned on the page.</p>
+</section>
+<section>
+  <title>Images</title>
+<p>Images are normally drawn
+       into the PDFGraphics2D. This then creates a bitmap of the image data that can
+       be inserted into the PDF document. </p><p>As PDF can support jpeg images then another
+       element bridge is used so that the jpeg can be directly inserted into the       PDF.</p>
+</section>
+<section>
+  <title>PDF Transcoder</title>
+<p>Batik provides a mechanism to
+       convert SVG into various formats. Through FOP we can convert an SVG document
+       into a single paged PDF document. The page contains the SVG drawn as best as
+       possible on the page. There is a PDFDocumentGraphics2D that creates a
+       standalone PDF document with a single page. This is then drawn into by batik in
+       the same way as with the PDFGraphics2D.</p>
+</section>
+<section>
+   <title>Other Outputs</title>
+<p>When rendering to AWT the SVG is simply drawn onto the
+       awt canvas using batik.</p><p>The PS Renderer uses a similar technique as the
+       PDF Renderer.</p><p>The SVG Renderer simply embeds the SVG inside an svg
+       element.</p>
+</section>
+
+    </body>
+</document>
\ No newline at end of file

Propchange: xmlgraphics/site/deploy/fop/dev/design/svg.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/deploy/fop/dev/design/svg.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: xmlgraphics/site/deploy/fop/dev/design/useragent.html
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/useragent.html?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/useragent.html (original)
+++ xmlgraphics/site/deploy/fop/dev/design/useragent.html Thu Aug 23 12:00:37 2007
@@ -58,10 +58,10 @@
 <a class="base-not-selected" href="../../index.html">Home</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.20.5/index.html">Version 0.20.5</a>
+<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
 </li>
 <li>
-<a class="base-not-selected" href="../../0.93/index.html">Version 0.93</a>
+<a class="base-not-selected" href="../../0.94/index.html">Version 0.94</a>
 </li>
 <li>
 <a class="base-not-selected" href="../../trunk/index.html">FOP Trunk</a>
@@ -244,9 +244,19 @@
     |start content
     +-->
 <div id="content">
+<div title="raw XML" class="xmllink">
+<a class="dida" href="useragent.xml"><img alt="XML - icon" src="../../skin/images/xmldoc.gif" class="skin"><br>
+        XML</a>
+</div>
 <div title="Portable Document Format" class="pdflink">
 <a class="dida" href="useragent.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
         PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
 </div>
 <h1>FOP Design: User Agent</h1>
 <div id="minitoc-area">

Modified: xmlgraphics/site/deploy/fop/dev/design/useragent.pdf
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/useragent.pdf?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/useragent.pdf (original)
+++ xmlgraphics/site/deploy/fop/dev/design/useragent.pdf Thu Aug 23 12:00:37 2007
@@ -156,8 +156,8 @@
 24 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F3
-/BaseFont /Helvetica-Bold
+/Name /F1
+/BaseFont /Helvetica
 /Encoding /WinAnsiEncoding >>
 endobj
 25 0 obj
@@ -170,8 +170,8 @@
 26 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F1
-/BaseFont /Helvetica
+/Name /F3
+/BaseFont /Helvetica-Bold
 /Encoding /WinAnsiEncoding >>
 endobj
 27 0 obj
@@ -202,7 +202,7 @@
 endobj
 3 0 obj
 << 
-/Font << /F3 24 0 R /F5 25 0 R /F1 26 0 R /F2 27 0 R /F7 28 0 R >> 
+/Font << /F1 24 0 R /F5 25 0 R /F3 26 0 R /F2 27 0 R /F7 28 0 R >> 
 /ProcSet [ /PDF /ImageC /Text ] >> 
 endobj
 9 0 obj
@@ -243,8 +243,8 @@
 0000006838 00000 n 
 0000005783 00000 n 
 0000005932 00000 n 
-0000006045 00000 n 
-0000006155 00000 n 
+0000006040 00000 n 
+0000006150 00000 n 
 0000006263 00000 n 
 0000006379 00000 n 
 trailer

Added: xmlgraphics/site/deploy/fop/dev/design/useragent.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/design/useragent.xml?rev=569118&view=auto
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/design/useragent.xml (added)
+++ xmlgraphics/site/deploy/fop/dev/design/useragent.xml Thu Aug 23 12:00:37 2007
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="ISO-8859-1"?><!--
+  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 V1.1//EN" "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/core/context/resources/schema/dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>FOP Design: User Agent</title>
+    <version>$Revision: 426576 $</version>
+    <authors>
+      <person name="Keiron Liddle" email="keiron@aftexsw.com"/>
+    </authors>
+  </header>
+
+    <body>
+<section id="intro">
+  <title>Introduction</title>
+<p>
+Technically the user agent is FOP in the role of determining the
+output format and when resolving various attributes. The user
+agent is represented by a class that is available to others to
+specify how FOP should behave.
+  </p>
+  <p>
+The user agent is used by the formatting process to determine
+certain user definable values.
+  </p>
+  <p>
+It will enable the customisation of values for generating and
+rendering the document.
+  </p>
+  <p>
+The user agent must be available to the layout processor and
+the renderer. Users can supply their own user agent or use
+the default one for a particular renderer.
+  </p>
+  <p>
+The user agent needs to be made available to the property
+resolution layout process and the renderer.
+   </p>
+
+  <p>
+Standard Features:
+  </p>
+       <ul>
+       <li>error handling, what to do if fo markup is invalid</li>
+       <li>auto overflow value and handling error-if-overflow</li>
+       <li>adjusting length values (eg. for borders) to renderable values</li>
+       <li>available fonts</li>
+       <li>converting cm/in to pt (dpi)</li>
+       <li>active state for multi properties</li>
+       <li>title, used to identify a set of pages (in a page sequence)</li>
+       <li>the width (in inline-progression-dimension) of a character with
+treat-word-as-space true</li>
+       <li>maximum space used by conditional areas from region-reference-area</li>
+       <li>if there should be "hot links" to before floats or footnotes</li>
+       <li>when to clear side floats if space in inline-progression-dimension
+is not enough</li>
+       <li>placement of left over footnotes on a page with a region-body</li>
+       <li>using color property as border colour</li>
+       <li>interpretting all border styles (except outset) as solid</li>
+       <li>thin, medium and thick values for border width</li>
+       <li>initial font-family value</li>
+       <li>absolute font sizes (eg, xx-small, x-small etc.)</li>
+       <li>relative font sizes (eg. larger, smaller)</li>
+       <li>small caps simulation</li>
+       <li>font weight mapping</li>
+       <li>baseline info for a font if not available</li>
+       <li>determining sub/superscript when another baseline is dominant</li>
+       <li>scaling method for external-graphic and instream-foreign-object</li>
+       <li>the width of a replaced element</li>
+       <li>"normal" line height value</li>
+       <li>text alignment (stretching the line with letter and word spacing)</li>
+       <li>text transform</li>
+       <li>initial color</li>
+       <li>rendering intent of auto</li>
+       <li>dot character for leader</li>
+       <li>line breaking with leaders, use optimum length when breaking the line</li>
+       <li>page height/width of auto</li>
+       <li>left and right caption widths</li>
+       <li>glyph orientation vertical of auto</li>
+       <li>rendering processor of content-type (mime type)</li>
+       </ul>
+
+  <p>
+Interactive Features:
+  </p>
+       <ul>
+       <li>inline and block scroll amount</li>
+       <li>dynamic effects, links and property sets</li>
+       <li>initial "pause-after", "pause-before" and "voice-family" value</li>
+       <li>treating fixed as scroll on background attachement</li>
+       <li>media usage of auto</li>
+       </ul>
+
+  </section>
+
+    </body>
+</document>
\ No newline at end of file

Propchange: xmlgraphics/site/deploy/fop/dev/design/useragent.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/deploy/fop/dev/design/useragent.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: xmlgraphics/site/deploy/fop/dev/doc.html
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/doc.html?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/doc.html (original)
+++ xmlgraphics/site/deploy/fop/dev/doc.html Thu Aug 23 12:00:37 2007
@@ -58,10 +58,10 @@
 <a class="base-not-selected" href="../index.html">Home</a>
 </li>
 <li>
-<a class="base-not-selected" href="../0.20.5/index.html">Version 0.20.5</a>
+<a class="base-not-selected" href="../0.93/index.html">Version 0.93</a>
 </li>
 <li>
-<a class="base-not-selected" href="../0.93/index.html">Version 0.93</a>
+<a class="base-not-selected" href="../0.94/index.html">Version 0.94</a>
 </li>
 <li>
 <a class="base-not-selected" href="../trunk/index.html">FOP Trunk</a>
@@ -244,10 +244,20 @@
     |start content
     +-->
 <div id="content">
+<div title="raw XML" class="xmllink">
+<a class="dida" href="doc.xml"><img alt="XML - icon" src="../skin/images/xmldoc.gif" class="skin"><br>
+        XML</a>
+</div>
 <div title="Portable Document Format" class="pdflink">
 <a class="dida" href="doc.pdf"><img alt="PDF -icon" src="../skin/images/pdfdoc.gif" class="skin"><br>
         PDF</a>
 </div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
 <h1>FOP Development: Managing Documentation</h1>
 <div id="minitoc-area">
 <ul class="minitoc">
@@ -330,7 +340,7 @@
 <div class="section">
 <a name="N1004E"></a><a name="web-background"></a>
 <h3 class="underlined_5">Background</h3>
-<p>The FOP web site and documentation are generated using <a href="http://forrest.apache.org">Apache Forrest</a>.</p>
+<p>The FOP web site and documentation are generated using <a class="external" href="http://forrest.apache.org">Apache Forrest</a>.</p>
 <p>The following table summarizes the flow of data to the FOP website in chronological order:</p>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
           
@@ -348,7 +358,7 @@
 <td colspan="1" rowspan="1">Developer commits code to FOP repository.</td>
             <td colspan="1" rowspan="1">FOP repository (SVN)</td>
             <td colspan="1" rowspan="1">Raw XML and other content</td>
-            <td colspan="1" rowspan="1"><a href="http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/content/xdocs/">in SVN</a></td>
+            <td colspan="1" rowspan="1"><a class="external" href="http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/content/xdocs/">in SVN</a></td>
           
 </tr>
           
@@ -390,7 +400,7 @@
 <div class="content">
           Please make sure you use Forrest from the 0.7 branch for the time being. You will need
           to download it directly from SVN:
-          <a href="http://svn.apache.org/repos/asf/forrest/branches/forrest_07_branch">http://svn.apache.org/repos/asf/forrest/branches/forrest_07_branch</a>
+          <a class="external" href="http://svn.apache.org/repos/asf/forrest/branches/forrest_07_branch">http://svn.apache.org/repos/asf/forrest/branches/forrest_07_branch</a>
         
 </div>
 </div>
@@ -401,7 +411,7 @@
 <li>
             Once you're satisfied, run "ant -f publish.xml" to do a clean build of the website. If the build 
             runs without problems, the website will be uploaded as a whole using SVN to the 
-            <a href="https://svn.apache.org/repos/asf/xmlgraphics/site/deploy/fop/">website staging directory in SVN</a>.
+            <a class="external" href="https://svn.apache.org/repos/asf/xmlgraphics/site/deploy/fop/">website staging directory in SVN</a>.
           </li>
           
 <li>
@@ -425,10 +435,10 @@
 <ul>
           
 <li>
-<a href="http://forrest.apache.org/mirrors.cgi#closest">download</a> latest the Forrest release (currently Forrest 0.7)</li>
+<a class="external" href="http://forrest.apache.org/mirrors.cgi#closest">download</a> latest the Forrest release (currently Forrest 0.7)</li>
           
 <li>set environment variable FORREST_HOME=~/apache-forrest-0.7 where ~ is the directory where Forrest is installed
-              (see <a href="http://forrest.apache.org/docs/your-project.html">http://forrest.apache.org/docs/your-project.html</a> for details)</li>
+              (see <a class="external" href="http://forrest.apache.org/docs/your-project.html">http://forrest.apache.org/docs/your-project.html</a> for details)</li>
           
 <li>set environment variable PATH=$PATH:$FORREST_HOME/bin</li>
           
@@ -450,8 +460,8 @@
 <h3 class="underlined_5">Updating Distribution Files</h3>
 <p>
           The Apache distribution system mirrors distributions around the world. Since it uses
-          <a href="http://httpd.apache.org/">Apache httpd</a> Module
-          <a href="http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html#headername">mod_autoindex</a>
+          <a class="external" href="http://httpd.apache.org/">Apache httpd</a> Module
+          <a class="external" href="http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html#headername">mod_autoindex</a>
           you also need to manually update the HEADER.html &amp; READER.html files on
           <span class="codefrag">people.apache.org</span> in
           <span class="codefrag">/www/www.apache.org/dist/xmlgraphics/fop/</span>.

Modified: xmlgraphics/site/deploy/fop/dev/doc.pdf
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/doc.pdf?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/doc.pdf (original)
+++ xmlgraphics/site/deploy/fop/dev/doc.pdf Thu Aug 23 12:00:37 2007
@@ -549,8 +549,8 @@
 72 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F3
-/BaseFont /Helvetica-Bold
+/Name /F1
+/BaseFont /Helvetica
 /Encoding /WinAnsiEncoding >>
 endobj
 73 0 obj
@@ -563,22 +563,22 @@
 74 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F1
-/BaseFont /Helvetica
+/Name /F3
+/BaseFont /Helvetica-Bold
 /Encoding /WinAnsiEncoding >>
 endobj
 75 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F9
-/BaseFont /Courier
+/Name /F2
+/BaseFont /Helvetica-Oblique
 /Encoding /WinAnsiEncoding >>
 endobj
 76 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F2
-/BaseFont /Helvetica-Oblique
+/Name /F9
+/BaseFont /Courier
 /Encoding /WinAnsiEncoding >>
 endobj
 77 0 obj
@@ -602,7 +602,7 @@
 endobj
 3 0 obj
 << 
-/Font << /F3 72 0 R /F5 73 0 R /F1 74 0 R /F9 75 0 R /F2 76 0 R /F7 77 0 R >> 
+/Font << /F1 72 0 R /F5 73 0 R /F3 74 0 R /F2 75 0 R /F9 76 0 R /F7 77 0 R >> 
 /ProcSet [ /PDF /ImageC /Text ] >> 
 endobj
 9 0 obj
@@ -745,10 +745,10 @@
 0000018831 00000 n 
 0000019107 00000 n 
 0000019375 00000 n 
-0000019488 00000 n 
-0000019598 00000 n 
+0000019483 00000 n 
+0000019593 00000 n 
 0000019706 00000 n 
-0000019812 00000 n 
+0000019822 00000 n 
 0000019928 00000 n 
 trailer
 <<

Added: xmlgraphics/site/deploy/fop/dev/doc.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/doc.xml?rev=569118&view=auto
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/doc.xml (added)
+++ xmlgraphics/site/deploy/fop/dev/doc.xml Thu Aug 23 12:00:37 2007
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="ISO-8859-1"?><!--
+  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 V1.3//EN" "http://forrest.apache.org/dtd/document-v13.dtd">
+<document>
+  <header>
+    <title>FOP Development: Managing Documentation</title>
+    <version>$Revision: 520894 $</version>
+  </header>
+  <body>
+    <section id="general">
+      <title>General Information</title>
+      <p>All raw documentation content is managed in the FOP SVN repository.
+Updates should be committed to the repository, then the repository files are used to generate usable output.
+The remaining discussions on this page assume that the SVN repository is the starting place for processing.
+The path to the documentation is src/documentation/content/xdocs.</p>
+      <note>All documentation is maintained on the trunk.
+Although we are currently maintaining two sets of code (trunk and maintenance), there is only one set of documentation.
+Most of the user and developer doc is common to the two environments, and differences are highlighted where necessary.
+The major exception to this rule is the design doc, which currently exclusively pertains to the trunk (redesign).
+Maintenance branch releases either copy the trunk content to the maintenance branch or use the trunk content directly for doc builds.</note>
+      <p>Basic documents are stored in XML files, and use DTDs provided by Apache Forrest.</p>
+    </section>
+    <section id="design">
+      <title>Design Principles</title>
+      <p>These principles are not written in stone, but reflect the current philosophy, and are documented here primarily to help achieve consistency. These principles should be changed if better or more practical ones are found, but they should probably be discussed and changed by common consent.</p>
+      <section id="where">
+        <title>Where</title>
+        <ul>
+          <li>To the extent possible, keep user content separate from developer content, primarily so the user doesn't have to filter out technical information.</li>
+          <li>To the extent possible, try to document a topic exactly once, in the place the user is most likely to look for it, then link to that from other locations as appropriate. This is somewhat contrary to the principle above, which should be applied as a higher priority.</li>
+        </ul>
+      </section>
+      <section id="design-when">
+        <title>When</title>
+        <p>The documentation and the product are in a constant state of change, and there is some difficulty in deciding what product state the website content should reflect. The current thinking is that the website should reflect the current state of the repository code branch from which releases are made. Features or other documentation that applies to unreleased code should be marked in such a way within the content that the user can determine whether and how it applies to the version they are using. For example, "Feature xyz is first available in Release n.nn.n".</p>
+        <p>Other approaches were considered, but all seemed to have significantly higher costs both to the users and the developers. From the user's standpoint, the choice is either that they potentially have to look multiple places to get the information they need (which was rejected), or they have to filter out an occasional feature that is in code available subsequent to their release (which was accepted).</p>
+      </section>
+    </section>
+    <section id="web">
+      <title>Website</title>
+      <section id="web-background">
+        <title>Background</title>
+        <p>The FOP web site and documentation are generated using <link href="http://forrest.apache.org">Apache Forrest</link>.</p>
+        <p>The following table summarizes the flow of data to the FOP website in chronological order:</p>
+        <table>
+          <tr>
+            <th colspan="1" rowspan="1">Process</th>
+            <th colspan="1" rowspan="1">Output</th>
+            <th colspan="1" rowspan="1">State</th>
+            <th colspan="1" rowspan="1">View(s)</th>
+          </tr>
+          <tr>
+            <td colspan="1" rowspan="1">Developer commits code to FOP repository.</td>
+            <td colspan="1" rowspan="1">FOP repository (SVN)</td>
+            <td colspan="1" rowspan="1">Raw XML and other content</td>
+            <td colspan="1" rowspan="1"><link href="http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/content/xdocs/">in SVN</link></td>
+          </tr>
+          <tr>
+            <td colspan="1" rowspan="1">Developer builds and uploads documentation using ForrestBot.</td>
+            <td colspan="1" rowspan="1">/www/xmlgraphics.apache.org/fop on people.apache.org</td>
+            <td colspan="1" rowspan="1">sync-ready</td>
+            <td colspan="1" rowspan="1">n/a</td>
+          </tr>
+          <tr>
+            <td colspan="1" rowspan="1">Cron job runs rsync to synchronize the website with the real web server (runs every few hours).</td>
+            <td colspan="1" rowspan="1">Infrastructure knows. :-)</td>
+            <td colspan="1" rowspan="1">web-ready</td>
+            <td colspan="1" rowspan="1"><link href="http://xmlgraphics.apache.org/fop">FOP Web Site</link></td>
+          </tr>
+        </table>
+        <note>Server-side ForrestBot is currently not available for website publishing. We use it locally and with manual invocation.</note>
+      </section>
+      <section id="web-forrestbot-publish">
+        <title>ForrestBot "publish" Step-by-Step</title>
+        <p>
+          We're using ForrestBot for build and deploy the FOP website. ForrestBot comes with Apache Forrest 0.7. 
+          The root directory of your FOP checkout contains the file "publish.xml" which is an Ant build file
+          that manages the build and the deployment of the FOP website. Please look into this file for
+          further instructions to set up ForrestBot on your machine. Basically, we're simply running ForrestBot 
+          manually by typing "ant -f publish.xml" once we're happy with our changes to the site.
+          Step-by-step instructions for the deployment process again:
+        </p>
+        <note>
+          Please make sure you use Forrest from the 0.7 branch for the time being. You will need
+          to download it directly from SVN:
+          <link href="http://svn.apache.org/repos/asf/forrest/branches/forrest_07_branch">http://svn.apache.org/repos/asf/forrest/branches/forrest_07_branch</link>
+        </note>
+        <ul>
+          <li>Modify the sources of the website and check locally with Forrest (run "forrest run" or just "forrest").</li>
+          <li>
+            Once you're satisfied, run "ant -f publish.xml" to do a clean build of the website. If the build 
+            runs without problems, the website will be uploaded as a whole using SVN to the 
+            <link href="https://svn.apache.org/repos/asf/xmlgraphics/site/deploy/fop/">website staging directory in SVN</link>.
+          </li>
+          <li>
+            Then log into people.apache.org using SSH, go to the /www/xmlgraphics.apache.org 
+            directory and run "svn up".
+          </li>
+          <li>
+            Wait for the next rsync cycle and check your changes in the live site. 
+            (Sorry, no manual rsync available ATM)
+          </li>
+        </ul>
+        <p>
+          The reason for putting the generated website in the SVN repository: The infrastructure
+          people want to be able to restore the websites themselves in case of a crash.
+        </p>
+      </section>
+      <section id="web-local-forrest">
+        <title>Using a Local Forrest</title>
+        <p>To use a local Forrest (during website development, not for deployment):</p>
+        <ul>
+          <li><link href="http://forrest.apache.org/mirrors.cgi#closest">download</link> latest the Forrest release (currently Forrest 0.7)</li>
+          <li>set environment variable FORREST_HOME=~/apache-forrest-0.7 where ~ is the directory where Forrest is installed
+              (see <link href="http://forrest.apache.org/docs/your-project.html">http://forrest.apache.org/docs/your-project.html</link> for details)</li>
+          <li>set environment variable PATH=$PATH:$FORREST_HOME/bin</li>
+          <li>cd to your local FOP checkout</li>
+          <li>update your local FOP checkout (svn update)</li>
+          <li>run forrest(.bat), which will build the web-site documents in xml-fop/build/site.</li>
+        </ul>
+        <note>
+          You can use "forrest run" to start a local web server. That improves development speed as you 
+          can simply refresh in the browser after a change.
+        </note>
+      </section>
+      <section id="distribution">
+        <title>Updating Distribution Files</title>
+        <p>
+          The Apache distribution system mirrors distributions around the world. Since it uses
+          <link href="http://httpd.apache.org/">Apache httpd</link> Module
+          <link href="http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html#headername">mod_autoindex</link>
+          you also need to manually update the HEADER.html &amp; READER.html files on
+          <code>people.apache.org</code> in
+          <code>/www/www.apache.org/dist/xmlgraphics/fop/</code>.
+        </p>
+        <p>
+          Please be careful when doing stuff like that.
+        </p>
+      </section>
+      <section id="delete">
+        <title>Deleting Documentation Files</title>
+        <p>
+          ForrestBot simply uploads the whole generated site. It doesn't delete obsolete files. You
+          can do that manually in the /www/xmlgraphics.apache.org/fop folder on cvs.apache.org. Be careful
+          when doing stuff like that.
+        </p>
+        <note>
+          Please make sure you always have <strong>group rw permissions on all files</strong> under the /www directory!
+        </note>
+      </section>
+      
+    </section>
+  </body>
+</document>
\ No newline at end of file

Propchange: xmlgraphics/site/deploy/fop/dev/doc.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/deploy/fop/dev/doc.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: xmlgraphics/site/deploy/fop/dev/extensions.html
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/extensions.html?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/extensions.html (original)
+++ xmlgraphics/site/deploy/fop/dev/extensions.html Thu Aug 23 12:00:37 2007
@@ -58,10 +58,10 @@
 <a class="base-not-selected" href="../index.html">Home</a>
 </li>
 <li>
-<a class="base-not-selected" href="../0.20.5/index.html">Version 0.20.5</a>
+<a class="base-not-selected" href="../0.93/index.html">Version 0.93</a>
 </li>
 <li>
-<a class="base-not-selected" href="../0.93/index.html">Version 0.93</a>
+<a class="base-not-selected" href="../0.94/index.html">Version 0.94</a>
 </li>
 <li>
 <a class="base-not-selected" href="../trunk/index.html">FOP Trunk</a>
@@ -244,9 +244,19 @@
     |start content
     +-->
 <div id="content">
+<div title="raw XML" class="xmllink">
+<a class="dida" href="extensions.xml"><img alt="XML - icon" src="../skin/images/xmldoc.gif" class="skin"><br>
+        XML</a>
+</div>
 <div title="Portable Document Format" class="pdflink">
 <a class="dida" href="extensions.pdf"><img alt="PDF -icon" src="../skin/images/pdfdoc.gif" class="skin"><br>
         PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
 </div>
 <h1>FOP Development: Adding an Extension</h1>
 <div id="minitoc-area">

Modified: xmlgraphics/site/deploy/fop/dev/extensions.pdf
URL: http://svn.apache.org/viewvc/xmlgraphics/site/deploy/fop/dev/extensions.pdf?rev=569118&r1=569117&r2=569118&view=diff
==============================================================================
--- xmlgraphics/site/deploy/fop/dev/extensions.pdf (original)
+++ xmlgraphics/site/deploy/fop/dev/extensions.pdf Thu Aug 23 12:00:37 2007
@@ -155,8 +155,8 @@
 24 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F3
-/BaseFont /Helvetica-Bold
+/Name /F1
+/BaseFont /Helvetica
 /Encoding /WinAnsiEncoding >>
 endobj
 25 0 obj
@@ -169,22 +169,22 @@
 26 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F1
-/BaseFont /Helvetica
+/Name /F3
+/BaseFont /Helvetica-Bold
 /Encoding /WinAnsiEncoding >>
 endobj
 27 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F9
-/BaseFont /Courier
+/Name /F2
+/BaseFont /Helvetica-Oblique
 /Encoding /WinAnsiEncoding >>
 endobj
 28 0 obj
 << /Type /Font
 /Subtype /Type1
-/Name /F2
-/BaseFont /Helvetica-Oblique
+/Name /F9
+/BaseFont /Courier
 /Encoding /WinAnsiEncoding >>
 endobj
 29 0 obj
@@ -208,7 +208,7 @@
 endobj
 3 0 obj
 << 
-/Font << /F3 24 0 R /F5 25 0 R /F1 26 0 R /F9 27 0 R /F2 28 0 R /F7 29 0 R >> 
+/Font << /F1 24 0 R /F5 25 0 R /F3 26 0 R /F2 27 0 R /F9 28 0 R /F7 29 0 R >> 
 /ProcSet [ /PDF /ImageC /Text ] >> 
 endobj
 9 0 obj
@@ -255,10 +255,10 @@
 0000004526 00000 n 
 0000004665 00000 n 
 0000004845 00000 n 
-0000004958 00000 n 
-0000005068 00000 n 
+0000004953 00000 n 
+0000005063 00000 n 
 0000005176 00000 n 
-0000005282 00000 n 
+0000005292 00000 n 
 0000005398 00000 n 
 trailer
 <<



---------------------------------------------------------------------
Apache XML Graphics Project URL: http://xmlgraphics.apache.org/
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org


Mime
View raw message