forked from CGM_Public/pretix_original
Even with pdftk, use PyPDF to read page size
This commit is contained in:
@@ -226,11 +226,12 @@ class Renderer:
|
|||||||
self.layout = layout
|
self.layout = layout
|
||||||
self.background_file = background_file
|
self.background_file = background_file
|
||||||
self.variables = get_variables(event)
|
self.variables = get_variables(event)
|
||||||
if not settings.PDFTK:
|
if self.background_file:
|
||||||
if self.background_file:
|
self.bg_bytes = self.background_file.read()
|
||||||
self.bg_pdf = PdfFileReader(BytesIO(self.background_file.read()), strict=False)
|
self.bg_pdf = PdfFileReader(BytesIO(self.bg_bytes), strict=False)
|
||||||
else:
|
else:
|
||||||
self.bg_pdf = None
|
self.bg_bytes = None
|
||||||
|
self.bg_pdf = None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _register_fonts(cls):
|
def _register_fonts(cls):
|
||||||
@@ -342,6 +343,8 @@ class Renderer:
|
|||||||
self._draw_textarea(canvas, op, order, o)
|
self._draw_textarea(canvas, op, order, o)
|
||||||
elif o['type'] == "poweredby":
|
elif o['type'] == "poweredby":
|
||||||
self._draw_poweredby(canvas, op, o)
|
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()
|
canvas.showPage()
|
||||||
|
|
||||||
def render_background(self, buffer, title=_('Ticket')):
|
def render_background(self, buffer, title=_('Ticket')):
|
||||||
@@ -349,13 +352,13 @@ class Renderer:
|
|||||||
buffer.seek(0)
|
buffer.seek(0)
|
||||||
with tempfile.TemporaryDirectory() as d:
|
with tempfile.TemporaryDirectory() as d:
|
||||||
with open(os.path.join(d, 'back.pdf'), 'wb') as f:
|
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:
|
with open(os.path.join(d, 'front.pdf'), 'wb') as f:
|
||||||
f.write(buffer.read())
|
f.write(buffer.read())
|
||||||
subprocess.run([
|
subprocess.run([
|
||||||
settings.PDFTK,
|
settings.PDFTK,
|
||||||
os.path.join(d, 'front.pdf'),
|
os.path.join(d, 'front.pdf'),
|
||||||
'multistamp',
|
'background',
|
||||||
os.path.join(d, 'back.pdf'),
|
os.path.join(d, 'back.pdf'),
|
||||||
'output',
|
'output',
|
||||||
os.path.join(d, 'out.pdf'),
|
os.path.join(d, 'out.pdf'),
|
||||||
|
|||||||
Reference in New Issue
Block a user