Skip to content

Instantly share code, notes, and snippets.

@sidkang
Last active May 2, 2023 10:42
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sidkang/f76c593fdee56e0bd5b49c5850b6c9ff to your computer and use it in GitHub Desktop.
Save sidkang/f76c593fdee56e0bd5b49c5850b6c9ff to your computer and use it in GitHub Desktop.
Resize PDF Files to Same Page Size Using Python
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.pdf import PageObject
from pathlib import Path
pdf_file = Path.home() / 'Downloads' / 'General harmony - practical, analysis and principle.pdf'
pdf_reader = PdfFileReader(str(pdf_file))
writer = PdfFileWriter()
# assume page 0 is the desired size
page0 = pdf_reader.getPage(0)
h = float(page0.mediaBox.getHeight())
w = float(page0.mediaBox.getWidth())
for page in pdf_reader.pages:
new_page = PageObject.createBlankPage(None, w, h)
new_page.mergeScaledTranslatedPage(page, min(h/float(page.mediaBox.getHeight()), w/float(page.mediaBox.getWidth())), 0, 0)
writer.addPage(new_page)
with Path("resize.pdf").open("wb") as out_pdf:
writer.write(out_pdf)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment