I'm writing a PDF parser and I'm trying to get cross-reference streams working. I have been able to decode the xref stream with zlib, and I've unpredicted the stream, and I've verified that all the type 1 entries point to actual indirect objects within the file...except for a few. I've tested this with about 40 random PDF files that I downloaded from the Internet, and my parser works with most of them.
My problem is when I encounter a PDF xref stream dictionary that has the width setting with the third value set to zero like /W[1 3 0] or /W[1 2 0]. In tracing my code, everything appears to work fine with a zero width field setting it to a default value of zero, but the pointers that come out don't point to valid indirect objects it the file.
Is there any special way that I need to handle things when the third /W value is zero?
-paul