MCPcopy Index your code
hub / github.com/clips/pattern / PDFPageInterpreter

Class PDFPageInterpreter

pattern/web/pdf/pdfinterp.py:299–805  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

297## Interpreter
298##
299class PDFPageInterpreter(object):
300
301 debug = 0
302
303 def __init__(self, rsrcmgr, device):
304 self.rsrcmgr = rsrcmgr
305 self.device = device
306 return
307
308 def dup(self):
309 return PDFPageInterpreter(self.rsrcmgr, self.device)
310
311 # init_resources(resources):
312 # Prepare the fonts and XObjects listed in the Resource attribute.
313 def init_resources(self, resources):
314 self.resources = resources
315 self.fontmap = {}
316 self.xobjmap = {}
317 self.csmap = PREDEFINED_COLORSPACE.copy()
318 if not resources: return
319 def get_colorspace(spec):
320 if isinstance(spec, list):
321 name = literal_name(spec[0])
322 else:
323 name = literal_name(spec)
324 if name == 'ICCBased' and isinstance(spec, list) and 2 <= len(spec):
325 return PDFColorSpace(name, stream_value(spec[1])['N'])
326 elif name == 'DeviceN' and isinstance(spec, list) and 2 <= len(spec):
327 return PDFColorSpace(name, len(list_value(spec[1])))
328 else:
329 return PREDEFINED_COLORSPACE[name]
330 for (k,v) in dict_value(resources).iteritems():
331 if 2 <= self.debug:
332 print >>sys.stderr, 'Resource: %r: %r' % (k,v)
333 if k == 'Font':
334 for (fontid,spec) in dict_value(v).iteritems():
335 objid = None
336 if isinstance(spec, PDFObjRef):
337 objid = spec.objid
338 spec = dict_value(spec)
339 self.fontmap[fontid] = self.rsrcmgr.get_font(objid, spec)
340 elif k == 'ColorSpace':
341 for (csid,spec) in dict_value(v).iteritems():
342 self.csmap[csid] = get_colorspace(resolve1(spec))
343 elif k == 'ProcSet':
344 self.rsrcmgr.get_procset(list_value(v))
345 elif k == 'XObject':
346 for (xobjid,xobjstrm) in dict_value(v).iteritems():
347 self.xobjmap[xobjid] = xobjstrm
348 return
349
350 # init_state(ctm)
351 # Initialize the text and graphic states for rendering a page.
352 def init_state(self, ctm):
353 # gstack: stack for graphical states.
354 self.gstack = []
355 self.ctm = ctm
356 self.device.set_ctm(self.ctm)

Callers 2

dupMethod · 0.85
process_pdfFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…