def postprocess_pdf(input_pdf, qr_data, qr_x=545, qr_y=20, version=None):
""" PDF post-processor. Append QR code on each PDF page.
:param input_pdf: PDF byte content
:param qr_data: QR code data
:param qr_x: X possition of QR image
:param qr_y: Y possition of QR image
"""
qr = pyqrcode.create(qr_data, version=version)
eps = StringIO()
qr.eps(eps)
eps.seek(0)
qr_pdf = BytesIO()
qr_img = Image(file=BytesIO(bytes(eps.read(), 'utf-8')))
qr_img.format = 'pdf'
qr_img.save(qr_pdf)
qr_page = PdfFileReader(qr_pdf).getPage(0)
output_writer = PdfFileWriter()
output_pdf = BytesIO()
for page in PdfFileReader(BytesIO(input_pdf)).pages:
page.mergeTranslatedPage(qr_page, qr_x, qr_y)
output_writer.addPage(page)
output_writer.write(output_pdf)
output_pdf.seek(0)
return output_pdf.read()
评论列表
文章目录