Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-4159

PDFBox doesn't warn if Special graphics state operators are used in text mode

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.8
    • 2.0.10, 3.0.0 PDFBox
    • 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.

      Attachments

        1. screenshot-1.png
          63 kB
          ulrich gratz
        2. test.pdf
          4 kB
          ulrich gratz
        3. pdfa.pdf
          11 kB
          Tilman Hausherr

        Activity

          People

            msahyoun Maruan Sahyoun
            ohlsen3000 ulrich gratz
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: