Dear FOP Community, As some of you may know we are currently working towards fixing one of FOP’s major remaining issues: its inability to handle sequences of pages with different widths.
At the moment, the width of the first page of an fo:page-sequence is used for the whole sequence, even if later pages have different widths (for example, switching from portrait to landscape orientation). There is ongoing work on the creation of a new layout engine that will be able to overcome this limitation, but it will still take some time to finish it, and meanwhile that feature lack is becoming more and more annoying. So we decided to implement a cheap, limited fix that should make a majority of users happy, while leaving us time to implement the new approach. The changes that have been made to the code are very hacky and we would like to get some feedback on them before making an official release. Therefore I would like to ask everyone on this list who is interested in this new feature to download the binary and test it with their own files. Please report any issue that you may find on this list, with a sample FO file (please send the file directly to me if it’s big or confidential). I’ve set up a web page providing some explanation and links to the binaries: http://people.apache.org/~vhennebert/ChangingIPDHack/ PLEASE NOTE: the binaries are being made available through my personal space at people.apache.org. They are not replicated over the Apache mirrors like releases. Therefore, in order to save bandwidth please download them only for the purpose of testing the new feature. For all other cases please use the usual download links provided on FOP’s website [1]. Thank you. The page above also lists known limitations, that I’m reproducing here for convenience: - Tables and lists are not supported: they won’t be re-laid out according to the new width, but will simply be left as they are. This means that some content may be silently clipped when switching to a page with a narrower width (for example, from landscape to portrait). In the opposite situation (portrait to landscape), the table or list will not cover the whole width of the page. Layout will be re-launched at the first element that is not enclosed by a table or a list. All other FO elements implemented in FOP Trunk should support the width change. - In addition to not being re-laid out, a table or list that is broken over two pages of different widths may have its border- and padding-before wrong. The .conditionality component will be interpreted as retain even when left to its default value of discard. - 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. - There is likely to be memory and performance issues, as every time a page with a different width is encountered, all the content that remains to be laid out will be thrown away until the end of the page-sequence, and re-generated according to the new width. If no big issues have been found, the changes will be integrated into the next release of FOP (which will hopefully happen soon...). Thanks, Vincent [1] http://xmlgraphics.apache.org/fop/download.html --------------------------------------------------------------------- To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org