Making Sure Your Documents Work with XF Ultrascale 2011
XF Ultrascale 2011 is able to process input documents of any size because content is discarded immediately when it's no longer needed. In order to be able to do that however, there is a minimal set of rules you must follow in your documents:
Repeated content must be available in advance.
Headers and footers must be defined before document’s body. Similarly, table headers and footers must be defined before table’s body.
Example 1: Page Headers & Footers
Example 2: Table Headers & Footers
Minimizing Memory Usage
Table cells should not expand too many pages
You should avoid placing a major part of your document inside a single fo:table-cell element, because table rows need to be kept in memory until all their cells are completed.
List item labels should not expand too many pages
You should avoid placing a major part of your document inside a single fo:list-item-label element. List items need to be kept in memory until their label element is fully processed (because their body needs to be processed afterwards).
Automatic table layout should be avoided whenever possible
By default, XSL-FO tables use automatic layout. This option, however, when enabled on very large tables, will require increase the engine's memory usage. This is because the entire table will need to be loaded into memory to correctly determine column widths and to be able to add extra columns/cells as necessary. If your entire document is comprised of one large auto layout table, then the memory footprint during processing would be twice that of the equivalent fixed layout table. To minimize memory usage, please consider using a fixed layout instead. Also, be sure to define the widths of all table columns. Both lengths and percentages may be used. Note that not specifying all column widths on fixed table layout will cause the engine to issue an error and stop processing.
Improving Processing Speed
Disable the resolver thread for documents without references
The resolver thread is only needed for documents with references (fo:page-number-citation, fo:retrieve-marker, fo:retrieve-table-marker). If you don't cite object id-s or don't wish to display the number of pages in your document, you should disable the resolver thread to ensure maximum processing speed. This is an advanced option and is available only when calling the engine programmatically. For more details, please consult the Programming Manuals.
All tables should use fixed layout and should have column widths defined
By default, XSL-FO tables use automatic layout. This option, however, when enabled on very large tables, will cause a performance penalty, in terms of both processing speed and memory usage. To improve processing speed, please consider using a fixed layout instead. Also, be sure to define the widths of all table columns. Both lengths and percentages may be used. Note that not specifying all column widths on fixed table layout will cause the engine to issue an error and stop processing.