Чтение определенной страницы из файла PDF в Python

5 лучших веб-фреймворков Python 2022 года Программирование и разработка

Обработка документов — один из наиболее распространенных вариантов использования языка программирования Python. Это позволяет языку обрабатывать множество файлов, таких как файлы базы данных, мультимедийные файлы и зашифрованные файлы, и это лишь некоторые из них. Эта статья научит вас читать определенную страницу из файла PDF (Portable Document Format) в Python.

Способ 1: использование библиотеки Pymupdf для чтения страницы в Python

В этой статье для обработки PDF будет использоваться PIL (библиотека изображений Python) вместе с библиотекой PyMuPDF. Чтобы установить библиотеку PyMuPDF, выполните следующую команду в командном процессоре операционной системы:

pip install pymupdf

Примечание. Эта библиотека PyMuPDF импортируется с помощью следующей команды.

import fitz

Для чтения страницы из pdf-файла требуется загрузить ее, а затем отобразить содержимое только одной из ее страниц. По сути, это делает одностраничный эквивалент изображения. Поэтому страница из pdf-файла будет читаться и отображаться как изображение.

Следующий пример демонстрирует описанный выше процесс:

Python3

import fitz
from PIL import Image
 
# Path of the PDF file
input_file = r"test.pdf"
 
# Opening the PDF file and creating a handle for it
file_handle = fitz.open(input_file)
 
# The page no. denoted by the index would be loaded
# The index within the square brackets is the page number
page = file_handle[0]
 
# Obtaining the pixelmap of the page
page_img = page.get_pixmap()
 
# Saving the pixelmap into a png image file
page_img.save('PDF_page.png')
 
# Reading the PNG image file using pillow
img = Image.open('PDF_page.png')
 
# Displaying the png image file using an image viewer
img.show()

Объяснение:

Сначала открывается файл PDF и сохраняется его дескриптор файла. Затем загружается первая страница pdf (с индексом 0) с использованием индексации списка. Карта пикселей этой страницы (массив пикселей) получается с помощью функции get_pixmap, и результирующая карта пикселей сохраняется в переменной. Затем эта пиксельная карта сохраняется как файл изображения png. Затем этот png-файл открывается с помощью функции open, присутствующей в модуле Image PIL. В конце изображение отображается с помощью функции show.

Примечание. Первая функция открытия используется для открытия файла PDF, а последняя используется для открытия файла изображения png. Функции принадлежат разным библиотекам и используются для разных целей.

Способ 2: чтение определенной страницы из PDF с использованием PyPDF2

Во втором примере будет использоваться библиотека PyPDF2. Который можно установить, выполнив следующую команду:

pip install PyPDF2

Та же цель может быть достигнута с помощью библиотеки PyPDF2. Библиотека позволяет обрабатывать файлы PDF и позволяет выполнять различные операции, такие как чтение, запись или создание файла PDF. Для поставленной задачи будет использоваться функция извлечения текста, чтобы получить текст из файла PDF и отобразить его. Код для этого выглядит следующим образом:

Python3

# importing required modules
import PyPDF2
   
input_file = r"test.pdf"
 
page = 4
 
# Creating a pdf file object
pdfFileObj = open('test.pdf', 'rb')
   
# Creating a pdf reader object
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
   
# Creating a page object
pageObj = pdfReader.getPage(page)
   
# Extracting text from page
data = pageObj.extractText()
 
# Closing the pdf file object
pdfFileObj.close()
 
print(data)

Выход:

He started this Journey with just one 
thought- every geek should have 
access to a never ending range of 
academic resources and with a lot 
of hardwork and determination, 
GeeksforGeeks was born.
Through this platform, he has        
successfully enriched the minds of 
students with knowledge which has 
led to a boost in their careers. But 
most importantly, GeeksforGeeks 
will always help students stay in 
touch with their Geeky side!
EXPERT ADVICE
CEO and Founder of 
GeeksforGeeks
                  I understand that many 
students who come to us are 
either fans of the sciences or 
have been pushed into this 
feild by their parents.
And I just want you to 
know that no matter 
where life takes you, we 
at GeeksforGeeks hope 
to have made this 
journey easier for  
you.Mr. Sandeep Jain
3

Объяснение:

Во-первых, путь к входному PDF-файлу и номер страницы определяются в отдельных переменных. Затем файл PDF открывается, и его файловый объект сохраняется в переменной. Затем эта переменная передается в качестве аргумента функции PdfFileReader, которая создает объект чтения PDF-файлов из файлового объекта. Затем данные, хранящиеся в пределах номера страницы, определенного в переменной страницы, получаются и сохраняются в переменной. Затем текст извлекается из этой страницы PDF, и файловый объект закрывается. В конце отображаются извлеченные текстовые данные.

Читайте также:  Обратная строка в Ruby
Оцените статью
bestprogrammer.ru
Добавить комментарий