Access Keys:
Skip to content (Access Key - 0)
Welcome to Muck and Brass, the Snowtide blog site    

News from September, 2005

blog entry  2005/09/06

This Yogi Berra-esque annotation next to a particular value in a PDF data structure included in the PDF document specification sent me for a little ride last night.

I noticed this while reading a particular section in the PDF document specification, and ended up laughing myself to tears. I’m sure part of that was the tiredness (we’re grinding out some pretty long hours working on some nifty new features for PDFTextStream v1.4), but a good chunk of it was the absurdity of the language used and what it implies for the ’specification’.

“Sometimes required”? First, that just doesn’t make sense on the face of it, at least not without some definition of what ’sometimes’ entails; second, stuff like this makes for unnecessarily-complicated implementations of a specification. Of course, the annotation was explained in detail, and any serious developer would be able to handle its repercussions with aplomb. But not all software is written by serious people. For proof of that, just look at the hundreds of thousands (millions?) of PDF documents out there that contain off-by-one kinds of “errors” that fall into gray areas of the PDF spec, but are consumed without problems by a variety of applications (including Acrobat Reader and PDFTextStream).

(For PDF-heads out there, this annotation is associated with the /I value in a choice field dictionary, described in Table 8.71 of the PDF spec.)

Posted at 06 Sep @ 10:48 AM by user Chas Emerick | comment 0 comments
Founder, Snowtide Informatics

About Me

I'm the founder of Snowtide Informatics; we make PDFTextStream, a PDF text extraction library for Java and .NET that a lot of people like and use. I do a lot of programming in Clojure and just a little in Java, trying to make it easier for people to access data from unstructured content.

You should follow me on twitter here

    Topics

    Archives

    1. 2010
      1. February
      2. January
    2. 2009
      1. December
      2. November
      3. October
      4. September
      5. April
      6. March
      7. February
      8. January
    3. 2008
      1. November
      2. July
      3. May
      4. March
    4. 2007
      1. November
      2. October
      3. April
      4. March
      5. February
    5. 2006
      1. December
      2. October
      3. September
      4. August
      5. January
    6. 2005
      1. September
      2. August
      3. July
      4. June
      5. January
    7. 2004
      1. December
      2. September
    Adaptavist Theme Builder (3.3.5-conf210) Powered by Atlassian Confluence 3.0.2, the Enterprise Wiki.