Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.8
-
None
-
None
Description
When i use a large amount of AffineTransformations the resulting document will open in Acrobat Reader, but each time a warning is displayed, that there is a defect in the document. The code I use is like:
// BROKEN context.useFont(FontFace.FONT_TEXT); for (int i = 0; i < 80; i++) { context.contentStream.beginText(); context.contentStream.saveGraphicsState(); context.contentStream.transform(new Matrix(AffineTransform.getTranslateInstance(0, VIEWPORT_TOP - i * 5))); context.contentStream.showText("XXXXXXXXX"); context.contentStream.restoreGraphicsState(); context.contentStream.endText(); } // WORKS context.useFont(FontFace.FONT_TEXT); for (int i = 0; i < 80; i++) { context.contentStream.saveGraphicsState(); context.contentStream.beginText(); context.contentStream.transform(new Matrix(AffineTransform.getTranslateInstance(0, VIEWPORT_TOP - i * 5))); context.contentStream.showText("XXXXXXXXX"); context.contentStream.endText(); context.contentStream.restoreGraphicsState(); }
When i skip the transformations or reduce the amount to e.g. 30, everything is fine. The size of ty or page breaks do not have an influence on the result, it seems to be the amount of transforms.
I attached a simple PDF sporting the described effect. Please note: The effect only occurs in the standalone Acrobat Reader, not the acrobat browser plugin. So to see the error, download the PDF from this ticket and open it independently from the browser.