Hi all, I don't know if you want to deal with this here in FOP land or over in Batik land but since the code in question is currently in FOP I thought I would start here. The PDF transcoder is currently broken. This appears to be due to a recent change to the way clips are done. Previously a new clip was done something like:
Shape oldClip = g2d.getClip(); // get clip, in the current coordinate system g2d.clip(newAdditiveClip); // Draw things, blah blah g2d.setClip(oldClip); // restore clip, in current coordinate system. ---- This as it turns out has problems, the basic issue is that the clip can 'waver' as it is gotten and restored in various coordinate systems (shift one pixel left or right). To avoid the need to get and restore the clip I started using the 'create' method of the Graphics. So the new code looks something like: g2d = g2d.create(); // create new graphics with independent drawing state g2d.clip(newAdditiveClip); // Draw things, blah blah g2d.dispose(); // parent node will use 'old' graphics 2D. ---- The real code is a bit more complex than this but you get the idea. The problem is that the PDFGraphics2D doesn't seem to properly implement 'create()'. I've tried to hack this in but I get garbage PDF out. So what I'm looking for is a basic analysis of how hard this would be to fix, as well as suggestions on how to fix it. There are some other potential solutions to the wavering clip issue, although I think the above is by far the cleanest (and hence most desirable) of them.