updated on Thu Jan 26 16:09:46 UTC 2012
[aur-mirror.git] / python2-template2pdf / image_resolver.patch
blob671c98c00fcbe69a2ff6640c0efa9aa744e686e2
1 Index: template2pdf/t2p/trml2pdf.py
2 ===================================================================
3 --- template2pdf/t2p/trml2pdf.py (revision 66)
4 +++ template2pdf/t2p/trml2pdf.py (revision 67)
5 @@ -28,6 +28,7 @@
6 import reportlab
7 from reportlab.pdfgen import canvas
8 from reportlab import platypus
10 try:
11 from reportlab.graphics.barcode.common import Codabar, Code11, I2of5, MSI
12 from reportlab.graphics.barcode.code128 import Code128
13 @@ -54,8 +55,9 @@
14 def _child_get(node, childs):
15 """Filter child nodes
16 """
17 - return filter(lambda n: ((n.nodeType==n.ELEMENT_NODE) and (n.localName==childs)),
18 - node.childNodes)
19 + return filter(
20 + lambda n: ((n.nodeType==n.ELEMENT_NODE) and (n.localName==childs)),
21 + node.childNodes)
24 class _rml_styles(object):
25 @@ -262,7 +264,7 @@
26 else:
27 self.canvas = canvas.Canvas(out)
28 pd = self.dom.documentElement.getElementsByTagName('pageDrawing')[0]
29 - pd_obj = _rml_canvas(self.canvas, None, self)
30 + pd_obj = _rml_canvas(self.canvas, doc_tmpl=None, doc=self)
31 pd_obj.render(pd)
32 self.canvas.showPage()
33 self.canvas.save()
34 @@ -387,7 +389,9 @@
36 def _image(self, node):
37 img, args = self.doc.image_resolver(node)
38 - self.canvas.drawImage(img, **args)
39 + x = args.pop('x', 0)
40 + y = args.pop('y', 0)
41 + self.canvas.drawImage(img, x, y, **args)
43 def _path(self, node):
44 self.path = self.canvas.beginPath()
45 @@ -455,7 +459,7 @@
47 def render(self, canvas, doc):
48 canvas.saveState()
49 - cnv = _rml_canvas(canvas, doc, self.styles)
50 + cnv = _rml_canvas(canvas, None, doc)
51 cnv.render(self.node)
52 canvas.restoreState()
54 @@ -525,7 +529,8 @@
56 def _illustration(self, node):
57 class Illustration(platypus.flowables.Flowable):
58 - def __init__(self, node, styles):
59 + def __init__(self, node, styles, parent):
60 + self.parent = parent
61 self.node = node
62 self.styles = styles
63 self.width = utils.as_pt(node.getAttribute('width'))
64 @@ -535,8 +540,8 @@
65 def draw(self):
66 canvas = self.canv
67 drw = _rml_draw(self.node, self.styles)
68 - drw.render(self.canv, None)
69 - return Illustration(node, self.styles)
70 + drw.render(self.canv, self.parent.doc)
71 + return Illustration(node, self.styles, self)
73 def _flowable(self, node):
74 if node.localName=='para':
75 @@ -661,7 +666,7 @@
76 frames.append( frame )
77 gr = pt.getElementsByTagName('pageGraphics')
78 if len(gr):
79 - drw = _rml_draw(gr[0], self.doc)
80 + drw = _rml_draw(gr[0], self.styles)
81 self.page_templates.append(
82 platypus.PageTemplate(frames=frames, onPage=drw.render,
83 **utils.getAttrsAsDict(pt, [], {'id': 'str'})))
84 @@ -676,6 +681,7 @@
85 fis = r.render(node_story)
86 self.doc_tmpl.build(fis)
89 def parseString(data, fout=None):
90 r = _rml_doc(data)
91 if fout:
92 @@ -688,6 +694,7 @@
93 r.render(fp)
94 return fp.getvalue()
97 def trml2pdf_help():
98 print 'Usage: trml2pdf input.rml >output.pdf'
99 print 'Render the standard input (RML) and output a PDF file'