From b589da51b7bd0ea97597fc8f40cf1e68115e5b94 Mon Sep 17 00:00:00 2001 From: Yusuke Shinyama Date: Tue, 26 Nov 2013 21:27:45 +0900 Subject: [PATCH] Fix for malformed PDFs. --- pdfminer/pdfdocument.py | 1 + pdfminer/pdfinterp.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) 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