(self, resources)
| 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. |
no test coverage detected