Add image to existing PDF file in Python using reportlab
Create PDF file in Python using the open source Python library from Reportlab.
Add several pages to the PDF file.
See also Creating PDF files using Python and reportlab
examples/python/pdf_add_image.py
from reportlab.pdfgen import canvas def create_pdf(): pdf_file = 'multipage.pdf' can = canvas.Canvas(pdf_file) can.drawString(20, 800, "First Page") can.showPage() can.drawString(20, 800, "Second Page") can.showPage() can.drawString(20, 700, "Third Page") can.showPage() can.save() def add_image(): from PyPDF2 import PdfFileWriter, PdfFileReader import io in_pdf_file = 'multipage.pdf' out_pdf_file = 'with_image.pdf' img_file = '../../static/img/code_maven_440x440.png' packet = io.BytesIO() can = canvas.Canvas(packet) #can.drawString(10, 100, "Hello world") x_start = 0 y_start = 0 can.drawImage(img_file, x_start, y_start, width=120, preserveAspectRatio=True, mask='auto') can.showPage() can.showPage() can.showPage() can.save() #move to the beginning of the StringIO buffer packet.seek(0) new_pdf = PdfFileReader(packet) # read the existing PDF existing_pdf = PdfFileReader(open(in_pdf_file, "rb")) output = PdfFileWriter() for i in range(len(existing_pdf.pages)): page = existing_pdf.getPage(i) page.mergePage(new_pdf.getPage(i)) output.addPage(page) outputStream = open(out_pdf_file, "wb") output.write(outputStream) outputStream.close() create_pdf() add_image()
Published on 2021-03-10
If you have any comments or questions, feel free to post them on the source of this page in GitHub. Source on GitHub.
Comment on this post