Skip to content

Commit

Permalink
Fix TypeError in PDFObjectStream.resolveReferences()
Browse files Browse the repository at this point in the history
A new optional parameter 'parser' was introduced for 'PDFObjectStream',
which takes a 'PDFParser' object.
This object is then used in 'resolveReferences()' to invoke
'PDFParser.readObject()'.
This commit fixes jesparza#70.
  • Loading branch information
Sebastian Deiss committed Mar 5, 2018
1 parent c74dc65 commit 7abea3c
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions PDFCore.py
Original file line number Diff line number Diff line change
Expand Up @@ -2675,8 +2675,9 @@ def setRawStream(self, newStream):


class PDFObjectStream (PDFStream) :
def __init__(self, rawDict = '', rawStream = '', elements = {}, rawNames = {}, compressedObjectsDict = {}) :
def __init__(self, rawDict = '', rawStream = '', elements = {}, rawNames = {}, compressedObjectsDict = {}, parser=None) :
global isForceMode
self.parser = parser
self.type = 'stream'
self.dictType = ''
self.errors = []
Expand Down Expand Up @@ -3239,8 +3240,8 @@ def resolveReferences(self):
if numbers != [] and len(numbers) % 2 == 0:
for i in range(0,len(numbers),2):
id = numbers[i]
offset = numbers[i+1]
ret = PDFParser.readObject(objectsSection[offset:])
offset = int(numbers[i+1])
ret = self.parser.readObject(objectsSection[offset:])
if ret[0] == -1:
if isForceMode:
object = None
Expand Down Expand Up @@ -7386,7 +7387,7 @@ def createPDFStream(self, dict, stream):
name = ret[1]
if elements.has_key('/Type') and elements['/Type'].getValue() == '/ObjStm':
try:
pdfStream = PDFObjectStream(dict, stream, elements, rawNames, {})
pdfStream = PDFObjectStream(dict, stream, elements, rawNames, {}, parser=self)
except Exception as e:
errorMessage = 'Error creating PDFObjectStream'
if e.message != '':
Expand Down

0 comments on commit 7abea3c

Please sign in to comment.