How to delete pages from pdf file using Python?

Try using PyPDF2.

Instead of deleting pages, create a new document and add all pages which you don’t want to delete.

Some sample code (originally adapted from BinPress which is dead, archived here).

from PyPDF2 import PdfWriter, PdfReader
pages_to_keep = [1, 2, 10] # page numbering starts from 0
infile = PdfReader('source.pdf', 'rb')
output = PdfWriter()

for i in pages_to_keep:
    p = infile.pages[i] 
    output.add_page(p)

with open('newfile.pdf', 'wb') as f:
    output.write(f)

or

from PyPDF2 import PdfWriter, PdfReader
pages_to_delete = [3, 4, 5] # page numbering starts from 0
infile = PdfReader('source.pdf', 'rb')
output = PdfWriter()

for i in range(len(infile.pages)):
    if i not in pages_to_delete:
        p = infile.pages[i]
        output.add_page(p)

with open('newfile.pdf', 'wb') as f:
    output.write(f)

Leave a Comment