Skip to content

Instantly share code, notes, and snippets.

@tonybolanyo
Forked from kzim44/editExistingPdf.py
Created May 13, 2017 16:44
Show Gist options
  • Save tonybolanyo/41a5ecdb82d70d8fac05a394f0741b79 to your computer and use it in GitHub Desktop.
Save tonybolanyo/41a5ecdb82d70d8fac05a394f0741b79 to your computer and use it in GitHub Desktop.
Edit an existing PDF using Python
from pyPdf import PdfFileWriter, PdfFileReader
import StringIO
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
packet = StringIO.StringIO()
# create a new PDF with Reportlab
can = canvas.Canvas(packet, pagesize=letter)
can.drawString(100,100, "Hello world")
can.save()
#move to the beginning of the StringIO buffer
packet.seek(0)
new_pdf = PdfFileReader(packet)
# read your existing PDF
existing_pdf = PdfFileReader(file("mypdf.pdf", "rb"))
output = PdfFileWriter()
# add the "watermark" (which is the new pdf) on the existing page
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)
# finally, write "output" to a real file
outputStream = file("/home/joe/newpdf.pdf", "wb")
output.write(outputStream)
outputStream.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment