org.apache.fop.area

Class RenderPagesModel

Known Direct Subclasses:
CachedRenderPagesModel

public class RenderPagesModel
extends AreaTreeModel

This uses the AreaTreeModel to store the pages Each page is either rendered if ready or prepared for later rendering. Once a page is rendered it is cleared to release the contents but the PageViewport is retained. So even though the pages are stored the contents are discarded.

Field Summary

protected List
prepared
Pages that have been prepared but not rendered yet.
protected Renderer
renderer
The renderer that will render the pages.

Fields inherited from class org.apache.fop.area.AreaTreeModel

currentPageSequence, log

Constructor Summary

RenderPagesModel(FOUserAgent userAgent, String outputFormat, FontInfo fontInfo, OutputStream stream)
Create a new render pages model with the given renderer.

Method Summary

void
addPage(PageViewport page)
Add a page to the render page model.
protected boolean
checkPreparedPages(PageViewport newPageViewport, boolean renderUnresolved)
Check prepared pages
void
endDocument()
End the document.
void
handleOffDocumentItem(OffDocumentItem oDI)
protected void
preparePage(PageViewport page)
Prepare a page.
void
startPageSequence(LineArea title)
Start a new page sequence.

Methods inherited from class org.apache.fop.area.AreaTreeModel

addPage, endDocument, getPage, getPageCount, getPageSequenceCount, handleOffDocumentItem, startPageSequence

Field Details

prepared

protected List prepared
Pages that have been prepared but not rendered yet.

renderer

protected Renderer renderer
The renderer that will render the pages.

Constructor Details

RenderPagesModel

public RenderPagesModel(FOUserAgent userAgent,
                        String outputFormat,
                        FontInfo fontInfo,
                        OutputStream stream)
            throws FOPException
Create a new render pages model with the given renderer.
Parameters:
userAgent - FOUserAgent object for process
outputFormat - the MIME type of the output format to use (ex. "application/pdf").
fontInfo - FontInfo object
stream - OutputStream
Throws:
FOPException - if the renderer cannot be properly initialized

Method Details

addPage

public void addPage(PageViewport page)
Add a page to the render page model. If the page is finished it can be rendered immediately. If the page needs resolving then if the renderer supports out of order rendering it can prepare the page. Otherwise the page is added to a queue.
Overrides:
addPage in interface AreaTreeModel
Parameters:
page - the page to add to the model

checkPreparedPages

protected boolean checkPreparedPages(PageViewport newPageViewport,
                                     boolean renderUnresolved)
Check prepared pages
Parameters:
newPageViewport - the new page being added
renderUnresolved - render pages with unresolved idref's (done at end-of-document processing)
Returns:
true if the current page should be rendered false if the renderer doesn't support out of order rendering and there are pending pages

endDocument

public void endDocument()
            throws SAXException
End the document. Render any end document OffDocumentItems
Overrides:
endDocument in interface AreaTreeModel

handleOffDocumentItem

public void handleOffDocumentItem(OffDocumentItem oDI)
Overrides:
handleOffDocumentItem in interface AreaTreeModel

preparePage

protected void preparePage(PageViewport page)
Prepare a page. An unresolved page can be prepared if the renderer supports it and the page will be rendered later.
Parameters:
page - the page to prepare

startPageSequence

public void startPageSequence(LineArea title)
Start a new page sequence. This tells the renderer that a new page sequence has started with the given title.
Overrides:
startPageSequence in interface AreaTreeModel
Parameters:
title - the title of the new page sequence

Copyright 1999-2007 The Apache Software Foundation. All Rights Reserved.