From 658be970b83d3817c9a13b89787cacf8a2a787d6 Mon Sep 17 00:00:00 2001 From: Yusuke Shinyama Date: Thu, 10 Oct 2013 18:44:12 +0900 Subject: [PATCH] Separated PDFXRefFallback. --- pdfminer/pdfdocument.py | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/pdfminer/pdfdocument.py b/pdfminer/pdfdocument.py index 4de80c8..e1a0b31 100644 --- a/pdfminer/pdfdocument.py +++ b/pdfminer/pdfdocument.py @@ -112,8 +112,26 @@ class PDFXRef(PDFBaseXRef): self.trailer.update(dict_value(dic)) return + def get_trailer(self): + return self.trailer + + def get_objids(self): + return self.offsets.iterkeys() + + def get_pos(self, objid): + try: + (genno, pos) = self.offsets[objid] + except KeyError: + raise + return (None, pos) + + +## PDFXRefFallback +## +class PDFXRefFallback(PDFXRef): + PDFOBJ_CUE = re.compile(r'^(\d+)\s+(\d+)\s+obj\b') - def load_fallback(self, parser, debug=0): + def load(self, parser, debug=0): parser.seek(0) while 1: try: @@ -132,19 +150,6 @@ class PDFXRef(PDFBaseXRef): self.offsets[int(objid)] = (0, pos) return - def get_trailer(self): - return self.trailer - - def get_objids(self): - return self.offsets.iterkeys() - - def get_pos(self, objid): - try: - (genno, pos) = self.offsets[objid] - except KeyError: - raise - return (None, pos) - ## PDFXRefStream ## @@ -641,8 +646,8 @@ class PDFDocument(object): xrefs = [] parser.fallback = fallback if parser.fallback: - xref = PDFXRef() - xref.load_fallback(parser) + xref = PDFXRefFallback() + xref.load(parser) xrefs.append(xref) else: pos = self.find_xref(parser)