14.4 C
New York

PYPDF2 Library: How Can You Work With PDF Files in Python?


Extracting text from PDF using PyPDF2 is hard as it has limited support for text extraction. The return of the code will not be in a proper format. You may get a series of line break characters due to PyPDF2’s limited support.

Many operations can be carried out on PDF files using the PyPDF2 module, including:

If you work with invoices, and receipts or worry about ID verification, check out Nanonets online OCR or PDF text extractor to extract text from PDF documents for free. Click below to learn more about Nanonets Enterprise Automation Solution.

Other PyPDF2 Tutorials

How to Rotate Pages of a PDF File?

The Python module PyPDF2 is a library used to manipulate PDF files. It’s very easy to use and is available for many different platforms.

Here we’ll see how we can rotate the pages of a pdf file. Save the PDF in another file and run the following code:

import PyPDF2
pdf_in = open('original.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_in)
pdf_writer = PyPDF2.PdfFileWriter()
for pagenum in range(pdf_reader.numPages):
page = pdf_reader.getPage(pagenum)
pdf_out = open('rotated.pdf', 'wb')

How to Merge PDF Files?

After scanning multiple pages of a document or storing numerous pages as separate documents on your computer, merging PDF files is frequently necessary.

Numerous programs, including Adobe and online applications, can help do this task swiftly. However, most of them are either for sale or may not offer enough security measures.

Open your preferred editor, then make a new file called “pdfMerger.py.” Make sure the Python program is located in the same directory as the PDF files that will be attached.

You can combine two or more PDF files by using the following block of code:

from PyPDF2 import PdfFileMerger, PdfFileReader
merger = PdfFileMerger()
merger.append(PdfFileReader(open(filename1, 'rb')))
merger.append(PdfFileReader(open(filename2, 'rb')))

The code above appears pretty straightforward, but what if you want to combine more than two files? For each file, you want to add, line 3 would need to be repeated, which would make your application rather long. In this circumstance, a for loop can be used.

Another method to combine multiple PDF files is shown in the following code.

How to Split Pages from a PDF File?

For various reasons, you may often want to extract a specific page from a large PDF file or combine several PDF files into one. This can be accomplished with certain PDF editor software. Still, you may find that the split and merge features are typically not included in the free version or that processing so many pages or files makes them too laborious. In this article, I’ll share a straightforward Python script that you can use to split or combine several PDF files.

Using PdfFileReader to read the original file will allow you to access a specific page by its page number when you wish to extract a particular page from the PDF file and create it as a separate PDF file (page number starts from 0). The add page function of the PdfFileWriter allows you to add a PDF page to a brand-new PDF object and save it.

Here is an example of code that separates the file1.pdf’s first page into a separate PDF file called first page.pdf.

from PyPDF2 import PdfFileWriter, PdfFileReader
input_pdf = PdfFileReader("file1.pdf")
output = PdfFileWriter()
with open("first_page.pdf", "wb") as output_stream:

How to Merge Pages of a PDF File?

You can use PdfFileMerger to combine multiple PDF files into a single document. Even though you may also use PdfFileWriter to accomplish this, merging pages without editing them first makes using PdfFileMerger more straightforward.

The sample code that uses the PdfFileMerger’s append method to add multiple PDF files and write them into a single file called merged is shown below.

from PyPDF2 import PdfFileReader, PdfFileMerger
pdf_file1 = PdfFileReader("file1.pdf")
pdf_file2 = PdfFileReader("file2.pdf")
output = PdfFileMerger()
with open("merged.pdf", "wb") as output_stream:

If you want to add certain pages from your original file to the new PDF file, you can use the pages argument of the append function to give a tuple containing the beginning and ending page numbers.

If you wish to specify where you want your pages to go, you must use the merge function because the append function will always add new pages at the end. It enables you to select the page’s location on which you wish to insert new pages.

Encrypting the PDF File

A PDF file can be encrypted using a password or a digital certificate. The encryption method is chosen by the user when the file is created. A password-protected PDF file can be opened, edited, and printed by anyone who knows the password. It cannot be opened or edited by someone who does not know the password. A digitally signed document is also protected from unauthorized editing. Still, it also includes an electronic signature that can be verified by anyone who has access to the original document or its digital signature.

for page in range(pdf.getNumPages()):
pdfwrite.encrypt(user_pwd=password, owner_pwd=None,
with open(outputpdf, 'wb') as fh:

You can password protect a PDF file using the above code just like this:

How to Add a Watermark to a PDF File?

A watermark is a text or graphic overlay on your document’s front. It can help you protect your work from unauthorized use or misuse and show which records have been modified or printed. You can add text and graphics to make custom watermarks for your documents.

Here’s a code snippet about how to add a watermark to a PDF File:

import PyPDF2
pdf_file = "doc.pdf"
watermark = "watermark.pdf"
merged_file = "merged.pdf"
input_file = open(pdf_file,'rb')
input_pdf = PyPDF2.PdfFileReader(input_file)
watermark_file = open(watermark,'rb')
watermark_pdf = PyPDF2.PdfFileReader(watermark_file)
pdf_page = input_pdf.getPage(0)
watermark_page = watermark_pdf.getPage(0)
output = PyPDF2.PdfFileWriter()
merged_file = open(merged_file,'wb')

Three arguments must be carefully considered while using the encrypt function.

  • User password user pwd is used to limit file opening and reading;
  • User password is one step below the owner pwd, str. The file can be opened without any limitations when it is given. Default owner pwd and user pwd are the same if not supplied;
  • Use the 128bit Boolean option to specify whether or not to utilize 128 bits for a password. False indicates a 40-bit password should be used; True is the default;

Want to automate repetitive manual tasks? Save Time, Effort & Money while enhancing efficiency!


PyPDF2 is one of the easiest ways to convert between PDF files, and it’s completely open source. If you’re in a hurry to get going, the excellent online documentation will have you up and running in minutes. If you have questions or need more help, the friendly PyPDF2 community will gladly offer their assistance. As well as being simple to use, PyPDF2 is extremely lightweight—it has no other dependencies besides Python (which means it’ll work on almost every platform imaginable).

Moreover, PyPDF2 is distributed under a BSD-style license, so you’re free to bundle it with your software if you like. In short, this is an awesome tool for manipulating PDFs, and we recommend that Python developers must check it out.


Can Python Read a PDF?

Python has no native support for reading PDF files, so this isn’t something you will be able to do with a single line of code. But plenty of third-party libraries allow Python to read PDFs and convert them into other formats, such as HTML or plain text.

Another question arises here if Python reads a PDF, then:

Can Python read Excel files too?

Yes, Python can read Excel files. Pandas make it simple to import an Excel file into Python. You must use read excel to achieve this objective.

Is PyPDF2 Open Source?

PyPDF2 is open-source software licensed under the LGPL.

Also, PyPDF2 is available for download in source code form. It can be installed using pip or downloading the zip file and extracting it to your chosen directory.

The PyPDF2 library includes several command-line tools that can be used to convert PDF files into other formats. These tools are installed with the Python module when it is installed.

Is PyPDF2 Safe?

PyPDF2 aims to provide a pure Python interface to libpdf (the C++ PDF Reference Library) rather than having a separate C extension module linked to Python.

The primary goal of PyPDF2 is to make it easier for developers to create PDF applications without having to worry about installing a complicated development environment or dealing with multiple versions of external libraries.

Yes, Excel can extract data from PDF.

Excel is a great tool for manipulating data and is easy to use. It’s also very powerful and can be used to handle many different types of data.

In addition, Excel is a big advantage because you can use it on any platform (Windows, Mac, Linux), and you don’t need any special software.

The process of extracting data from PDF is not straightforward, but we will show you how to do it step by step.

Text extraction from PDF is hard. There are many reasons for this:

The PDF format was designed to be read by humans, not machines. The world’s most popular document format has many neat features that make it easy for people to read, but it’s a pain for computers to deal with.

PDFs can contain any content (text, charts, images, etc.), and they can be laid out in any way you want. This means there is no standard way to extract text from a PDF file — every file has its unique layout.

The text in a given PDF might not be located where you expect it to be! Some PDFs have tables of contents or indexes containing all the document’s text; others have footnotes or endnotes; others have headers and footers that repeat at regular intervals; others use frames or layers instead of pages (this is rare).

Text can be extracted from photographs using optical character recognition (OCR). OCR software is what accomplishes this. The most well-known Open Source OCR program is the tesseract OCR engine.

PyPDF2 isn’t an OCR program.

What is OCR Python?

OCR Python is a fully-featured OCR library written in pure Python. It wraps the Tesseract open source OCR engine and provides a simple API for developers to use. OCR, Optical Character Recognition, converts scanned text images into searchable, digital text.

OCR Python uses Tesseract’s high-quality output as its base, and it can be used with any other OCR engine that uses the Leptonica or Harp libraries (such as GOCR).

If you want to digitize documents using OCR, then this library will help you quickly and easily.

Nanonets online OCR & OCR API have many interesting use cases that could optimize your business performance, save costs and boost growth. Find out how Nanonets’ use cases can apply to your product.

  • Coinsmart. Europe’s Best Bitcoin and Crypto Exchange.Click Here
  • Platoblockchain. Web3 Metaverse Intelligence. Knowledge Amplified. Access Here.
  • Source: https://nanonets.com/blog/pypdf2-library-working-with-pdf-files-in-python/

Latest Intelligence

Too Big to Fail?


Latest Intelligence