Sorry, can't provide test at this moment - need to filter out proprietary information. But, if you look at the code of ExternalGraphics and Area, you may notice the following: // We estimate the space left in the area if (area.spaceLeft() < (height + spaceBefore)) { return Status.AREA_FULL_NONE; } // ... blah // We modify the space left in the area (addDisplaySpace changes Area.currentHeight, and spaceLeft uses currentHeight) if ((spaceBefore != 0) && (this.marker == 0)) { area.addDisplaySpace(spaceBefore); } // ... blah // We modify the space left in the area if (spaceAfter != 0) { area.addDisplaySpace(spaceAfter); } // We use the space left in the area, but AFTER the modifications above if (breakBefore == BreakBefore.PAGE || ((spaceBefore + imageArea.getHeight()) > area.spaceLeft())) { return Status.FORCE_PAGE_BREAK; } The result is - sometimes image doesn't fit. Reading spaceLeft into a variable before modification and using the variable in the remaining places fixed the problem, for me at least.
Fop 0.20.x is no longer supported. Please retest your sample with FOP 0.92beta. Feel free to re-open the bug if your test fails on 0.92beta.
batch transition to closed remaining pre-FOP1.0 resolved bugs