From abb818f0f9158cfd3846a2391d49f3ca211a54db Mon Sep 17 00:00:00 2001 From: Ashen Gunaratne Date: Sat, 6 Jan 2024 10:17:42 +0000 Subject: [PATCH] Replace PyPDF2 with pypdf --- requirements.txt | 2 +- scripts/pdf.py | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/requirements.txt b/requirements.txt index c2253da..a087c40 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ beautifulsoup4==4.12.0 lxml==4.9.4 -PyPDF2==2.12.1 +pypdf==3.17.4 PyYAML==6.0.1 reportlab==3.6.13 diff --git a/scripts/pdf.py b/scripts/pdf.py index a350de0..fca03e0 100755 --- a/scripts/pdf.py +++ b/scripts/pdf.py @@ -10,7 +10,7 @@ from os import P_WAIT, path, remove, spawnlp from os.path import basename -from PyPDF2 import PdfFileReader, PdfFileWriter +from pypdf import PdfReader, PdfWriter from tempfile import NamedTemporaryFile from argparse import ArgumentParser from reportlab.pdfbase import pdfmetrics @@ -27,7 +27,7 @@ args = parser.parse_args() # denouement -output = PdfFileWriter() +output = PdfWriter() # intermediate docs intermediate = NamedTemporaryFile(mode='wb') @@ -39,8 +39,8 @@ # construct denouement with open(intermediate.name, 'rb') as resume, open(forefront.name, 'rb') as forepart: - intermediate.pdf = PdfFileReader(resume) - forefront.pages = intermediate.pdf.getNumPages() + intermediate.pdf = PdfReader(resume) + forefront.pages = len(intermediate.pdf.pages) forefront.canvas = Canvas(filename=forefront.name, pagesize=A4, initialFontName='Helvetica') @@ -62,16 +62,16 @@ forefront.canvas.save() # read constructed custom headers - forefront.pdf = PdfFileReader(forepart) + forefront.pdf = PdfReader(forepart) # merge resume and headers for i in range(0, forefront.pages): - intermediate.pdf.getPage(i).mergePage(forefront.pdf.getPage(i)) - output.addPage(intermediate.pdf.getPage(i)) + intermediate.pdf.pages[i].merge_page(forefront.pdf.pages[i]) + output.add_page(intermediate.pdf.pages[i]) # add metadata # https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdfmark_reference.pdf - output.addMetadata({ + output.add_metadata({ '/Subject': 'Curriculum Vitae', '/Creator': 'XMLResume (https://github.com/ashenm/xmlresume)', '/Title': 'Curriculum Vitae - Ashen Gunaratne', @@ -79,7 +79,7 @@ }) # configure initial view - output.setPageLayout('/SinglePage') + output.page_layout = '/SinglePage' # write output with open('resume.pdf', 'wb') as file: