[Xmlgraphics-fop Wiki] Update of "ChangingIpdLimitations " by ChrisBowditch
Apache Wiki <[email protected]> Wed, 05 Dec 2018 16:32:56 -0000
| Newsgroups | gmane.text.xml.fop.cvs |
|---|---|
| Message-ID | <[email protected]> |
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Xmlgraphics-fop Wiki" for change notification.
The "ChangingIpdLimitations" page has been changed by ChrisBowditch:
https://wiki.apache.org/xmlgraphics-fop/ChangingIpdLimitations?action=diff&rev1=2&rev2=3
Also, the space-before of the first element following the table or list will be discarded, as if the element were starting the page. The workaround is to set its space-before.conditionality component to retain.
+ == FOP Warning ==
+
+ {{{WARNING: Content that cannot handle IPD changes is flowing to a narrower page. Part of it may be clipped by the page border.}}}
+
+ = Paragraphs =
+ Paragraphs do change the width across the page.
+
+ [[attachment:fop-ipd-para.png]]
+
+ == Last Page ==
+ There is a limiation that changing IPD doesn't work in conjunction with page-position="last" So if the document has a fo:page-sequence-master with conditional alternatives and page-position="last" and the last page is a different width to preceeding pages then the width of the content is not adjusted. If page-position="last" is not used then the content on last page will be adjusted if the width changes.
+
+ = Performance Issues with change of page width in a page sequence. =
+ Each time you change the page width in a page sequence the FOP engine will recalculate the layout from that part.
+
+ e.g consider the following document in one page sequence (where [ ] indicates the page width and the number is the page number).
+
+ {{{
+ [1]
+ [2]
+ [3 ]
+ [4 ]
+ [5]
+ [6]}}}
+
+ == What Happens ==
+
+ In this document page sequence, FOP will work out the whole flow based on the width of page 1.
+ It will check if the page width changed in the flow, and it did at page 3, so it recalculates all of the pages from page 3 with page 3's width.
+ It will check if the page width changed in the flow from 3, and it did at page 5, so it recalculates all of the pages from page 5 with page 5's width.
+ As you can see this can be very expensive in CPU time if you change the page width inside a page-sequence, always use a a new page sequence for each width change if possible.
+