Обработка документов — один из наиболее распространенных вариантов использования языка программирования 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()
(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, и файловый объект закрывается. В конце отображаются извлеченные текстовые данные.