One of my clients asked me to implement custom transformations (like the
SVG transform attribute) as an extension for fo:block-container. Now,
while trying to implement this feature I realized that for absolute
block-containers we include the absolute offset of the block-container
in the CTM (transformation matrix) and that interferes with inserting
custom transformations. The CTM is responsible for transforming the
content rectangle (reference-orientation, writing-mode). If CTM only
included the transformation necessary to transform the content rectangle
relative to the upper-left corner of the viewport everything would be
fine. But now I can only get either the content or the background and
border placed correctly but not both. I have two options to fix this:

1. I can try to extract the absolute position translation from the CTM.
That should be possible with some effort since we only have rotations in
90 degree steps. But it's really a hack.

2. I can fix BlockContainerLM, remove the absolute position from the CTM
and adjust all our renderers (and the affected layout engine tests).
That would be a clean solution but it changes the semantics of the area
tree and could interfere with renderers being developed elsewhere. 

So, is there anyone who develops their own renderer and could be
affected by this? Would option 2 be a problem?

Jeremias Maerki

Reply via email to