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

Reply via email to