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

return original PDF Header

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.8.11
    • 1.8.12
    • Parsing
    • None

    Description

      Wish by abyss presented in the mailing list

      Yes, I know, that the version in catalog shall be used to determine version
      and therefore the version COSDocument#getVersion() method result is expected
      to reflect that. But I ask the header string. And it's result differs from
      the actual header string in the file after PDFParser finishes its job.

      Please, bear also in mind that Extensions Dictionary (see ISO 32000-1
      chapter 7.12) validation should consider the values both in document catalog
      and header:
      "The value of BaseVersion, when treated as a version number, shall be less
      than or equal to the PDF version, both in the document header (see 7.5.2,
      "File Header") and the catalog Version key value, if present."

      As it says "both", that means BaseVersion may not exceed the value neither
      in header nor in catalog, therefore we need to validate that.

      my answer:

      How about something like this:

      private String originalHeaderString = null;
      
      public void setOriginalHeaderString(String header)
          {
              if (originalHeaderString != null)
                    throw bad state exception blah blah
              originalHeaderString = header;
          }
      
      public String getOriginalHeaderString()
      {
          return originalHeaderString ;
      }
      

      The setter should be called only once by parseHeader().

      This was accepted, so I'll implement it (for 1.8 only)

      Attachments

        Activity

          People

            tilman Tilman Hausherr
            tilman Tilman Hausherr
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: