Separated PDFXRefFallback.

pull/1/head
Yusuke Shinyama 2013-10-10 18:44:12 +09:00
parent c926874d20
commit 658be970b8
1 changed files with 21 additions and 16 deletions

View File

@ -112,8 +112,26 @@ class PDFXRef(PDFBaseXRef):
self.trailer.update(dict_value(dic)) self.trailer.update(dict_value(dic))
return 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') 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) parser.seek(0)
while 1: while 1:
try: try:
@ -132,19 +150,6 @@ class PDFXRef(PDFBaseXRef):
self.offsets[int(objid)] = (0, pos) self.offsets[int(objid)] = (0, pos)
return 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 ## PDFXRefStream
## ##
@ -641,8 +646,8 @@ class PDFDocument(object):
xrefs = [] xrefs = []
parser.fallback = fallback parser.fallback = fallback
if parser.fallback: if parser.fallback:
xref = PDFXRef() xref = PDFXRefFallback()
xref.load_fallback(parser) xref.load(parser)
xrefs.append(xref) xrefs.append(xref)
else: else:
pos = self.find_xref(parser) pos = self.find_xref(parser)