From 3fb0398c6dedd3a583bba4bfb27898fbad386af5 Mon Sep 17 00:00:00 2001 From: William Victor Mote Date: Tue, 22 Apr 2003 02:48:54 +0000 Subject: [PATCH] Add
ids. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196305 13f79535-47bb-0310-9956-ffa450edef68 --- .../content/xdocs/design/areas.xml | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/documentation/content/xdocs/design/areas.xml b/src/documentation/content/xdocs/design/areas.xml index 162659cac..01f77ba77 100644 --- a/src/documentation/content/xdocs/design/areas.xml +++ b/src/documentation/content/xdocs/design/areas.xml @@ -18,13 +18,13 @@ From that point forward, the area tree model can then handle the new page. The data in the area tree must be minimal and independant. This means that the data uses less memory and can be serialized to an output stream if needed.

The Area Tree consists of a set of pages, which the actual implemenation places in a set of page sequences.

-
+
Structure

The area tree is a root element that has a list of page-viewport-areas. Each page viewport has a page-reference-area which holds the contents of the page. To handle the processing better FOP does not maintain a list at the root level but lets the area tree model handle each page as it is added.

-
+
Page

A page consists of a page+viewport pair.

The PageViewPort and Page with the regions is created by the @@ -43,7 +43,7 @@ The flow areas are then created inside these normal flow reference areas.

The layout manager then uses the page to add areas into the normal flow reference areas and floats and footnotes. After adding the areas for the body region then the other regions can be done layed out and added.

-
+
Block Areas

Block level areas contain either other blocks or line areas (which is a special block area).

@@ -52,7 +52,7 @@ special block area).

The spacing between block areas is handled by an empty block area. A block area is stacked with other block areas in a particular direction, it has a size and it contains line areas made from a group of inline areas and/or block areas.

-
+
Line Areas

A line areas is simply a collection of inline areas that are stacked in the inline progression direction. A line area has a height and a start position. @@ -60,7 +60,7 @@ The line area is rendered by handling each inline area.

A line area gets a set of inline areas added until complete then it is justified and vertically alignedi when adding the areas. If the line area contains unresolved areas then there will be a line resolver that retains the justification information until all areas in the line are resolved.

-
+
Inline Areas

There are a few different types of inline areas. All inline areas have a height and width.

@@ -73,14 +73,14 @@ A special inline area Word is also used for a group of consecutive characters.

Once a LineArea is filled with inline areas then the inline areas need to be aligned and adjusted to fill the line properly.

-
+
Repeated Areas

There are cases where the same subtree could be repeated in the area tree. These areas will be returned by the same layout managers. So it is possible to put a flag on the created areas so that the subtree data can be cached in the output. Examples of this are: static areas, table header/footer, svg.

-
+
Traits

A trait is information associated with an area. This could be information such as text colour or is-first.

@@ -94,15 +94,15 @@ Since setting the same value on every area would use a lot of memory then the tr every line area with the same dominant value can derive it. The text inline areas then get the font colour set on the inline area or from the line area or from the block area.

-
+
Classes

The following class structure will be used to represent the area tree.

-
+
Page Area Classes

The page area classes hold the top level layout of a page. The areas are created by the page master and should be ready to have flow areas added.

-
+
Block Area Classes

The block areas hold other block areas and/or line areas. The child areas are stacked in a particular direction.

@@ -110,7 +110,7 @@ The child areas are stacked in a particular direction.

These areas a placed with an absolute positioning. The absolute positioning is where the blocks are placed with an offset from the parent reference area.

-
+
Inline Area Classes

The inline areas are used to make up a line area. An inline area typically has a height, width and some content. @@ -118,7 +118,7 @@ The inline area is offset from the baseline of the current line area. The content of the inline area can be other inline areas or a simple atomic object.

-
+
Forward References

The Area Tree maintains a set of mappings from the reference to pages.

The PageViewPort holds the list of forward references that need resolving so that if a references is resolved during layout the page can be easily found and then fixed. @@ -126,7 +126,7 @@ Once all the forward references are resolved then the page is ready to be render

To layout a page any areas that cannot be resolved need to reserve space. Once the inline area is resolved then the complete line should be adjusted to accomodate any change in space used by the area.

-
+
Caching

We may need to cache pages due to forward references or when keeping all pages.

@@ -136,7 +136,7 @@ The Page is serialized to an object stream and then all of the page contents are The Page is then recoved by reading from the object stream.

The PageViewport retains information about id areas for easy access.

-
+
Extensions

The Area Tree holds the Output Document extensions. This is information such as pdf bookmarks or other output document specific information that @@ -144,7 +144,7 @@ is not handled by XSL:FO.

It is also possible to create custom areas that extend a normal area. The actual data that is rendered could be set in a different way or depend on resolving a forward reference.

-
+
Area Tree Handlers

To handle different situations the handler for the Area Tree handles each page as it is added.

-- 2.39.5