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))
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)