From 631307a4d590d6b75993cfb986d33f38fcd2c5ea Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 27 Nov 2018 09:22:53 +0100 Subject: [PATCH] Even with pdftk, use PyPDF to read page size --- src/pretix/base/pdf.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/pretix/base/pdf.py b/src/pretix/base/pdf.py index 09bbf09d61..5730faabea 100644 --- a/src/pretix/base/pdf.py +++ b/src/pretix/base/pdf.py @@ -226,11 +226,12 @@ class Renderer: self.layout = layout self.background_file = background_file self.variables = get_variables(event) - if not settings.PDFTK: - if self.background_file: - self.bg_pdf = PdfFileReader(BytesIO(self.background_file.read()), strict=False) - else: - self.bg_pdf = None + if self.background_file: + self.bg_bytes = self.background_file.read() + self.bg_pdf = PdfFileReader(BytesIO(self.bg_bytes), strict=False) + else: + self.bg_bytes = None + self.bg_pdf = None @classmethod def _register_fonts(cls): @@ -342,6 +343,8 @@ class Renderer: self._draw_textarea(canvas, op, order, o) elif o['type'] == "poweredby": self._draw_poweredby(canvas, op, o) + if self.bg_pdf: + canvas.setPageSize((self.bg_pdf.getPage(0).mediaBox[2], self.bg_pdf.getPage(0).mediaBox[3])) canvas.showPage() def render_background(self, buffer, title=_('Ticket')): @@ -349,13 +352,13 @@ class Renderer: buffer.seek(0) with tempfile.TemporaryDirectory() as d: with open(os.path.join(d, 'back.pdf'), 'wb') as f: - f.write(self.background_file.read()) + f.write(self.bg_bytes) with open(os.path.join(d, 'front.pdf'), 'wb') as f: f.write(buffer.read()) subprocess.run([ settings.PDFTK, os.path.join(d, 'front.pdf'), - 'multistamp', + 'background', os.path.join(d, 'back.pdf'), 'output', os.path.join(d, 'out.pdf'),