diff --git a/pdfminer/pdfdocument.py b/pdfminer/pdfdocument.py index 9192262..5dd2b9e 100644 --- a/pdfminer/pdfdocument.py +++ b/pdfminer/pdfdocument.py @@ -190,6 +190,7 @@ class PDFXRefFallback(PDFXRef): objs.append(obj) except PSEOF: pass + n = min(n, len(objs)/2) for index in xrange(n): objid1 = objs[index*2] self.offsets[objid1] = (objid, index, 0) diff --git a/pdfminer/pdfinterp.py b/pdfminer/pdfinterp.py index 27745fb..788bf8b 100644 --- a/pdfminer/pdfinterp.py +++ b/pdfminer/pdfinterp.py @@ -554,12 +554,20 @@ class PDFPageInterpreter(object): # setcolorspace-stroking def do_CS(self, name): - self.scs = self.csmap[literal_name(name)] + try: + self.scs = self.csmap[literal_name(name)] + except KeyError: + if STRICT: + raise PDFInterpreterError('Undefined ColorSpace: %r' % name) return # setcolorspace-non-strokine def do_cs(self, name): - self.ncs = self.csmap[literal_name(name)] + try: + self.ncs = self.csmap[literal_name(name)] + except KeyError: + if STRICT: + raise PDFInterpreterError('Undefined ColorSpace: %r' % name) return # setgray-stroking