Last active
May 2, 2023 10:42
-
-
Save sidkang/f76c593fdee56e0bd5b49c5850b6c9ff to your computer and use it in GitHub Desktop.
Resize PDF Files to Same Page Size Using Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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