Skip to content

Commit

Permalink
Support changing page size on a per-page basis
Browse files Browse the repository at this point in the history
  • Loading branch information
daemondazz committed Aug 22, 2022
1 parent df444f1 commit 6453d34
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions trml2pdf/doc.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,12 @@ def __init__(self, out, node, doc):
self.doc = doc
pts = node.getElementsByTagName('pageTemplate')
for pt in pts:
if not pt.hasAttribute('pageSize'):
pageSize = (utils.unit_get('21cm'), utils.unit_get('29.7cm'))
else:
ps = [x.strip() for x in pt.getAttribute('pageSize').replace(')', '').replace(
'(', '').split(',')]
pageSize = (utils.unit_get(ps[0]), utils.unit_get(ps[1]))
frames = []
for frame_el in pt.getElementsByTagName('frame'):
frame = platypus.Frame(**(utils.attr_get(
Expand All @@ -114,10 +120,10 @@ def __init__(self, out, node, doc):
if len(gr):
drw = canv.RmlDraw(gr[0], self.doc.styles)
self.page_templates.append(platypus.PageTemplate(
frames=frames, onPage=drw.render, **utils.attr_get(pt, [], {'id': 'str'})))
frames=frames, pageSize=pageSize, onPage=drw.render, **utils.attr_get(pt, [], {'id': 'str'})))
else:
self.page_templates.append(
platypus.PageTemplate(frames=frames, **utils.attr_get(pt, [], {'id': 'str'})))
platypus.PageTemplate(frames=frames, pageSize=pageSize, **utils.attr_get(pt, [], {'id': 'str'})))
self.doc_tmpl.addPageTemplates(self.page_templates)

def render(self, node_story):
Expand Down

0 comments on commit 6453d34

Please sign in to comment.