Язык программирования Python

Как разделить Python PDF на несколько страниц с помощью PyPDF2

Python – очень универсальный язык, который позволяет автоматизировать множество задач. В этом уроке я покажу вам, как разделить PDF в Python на несколько страниц благодаря библиотеке PyPDF2.

Что такое PyPDF2

PyPDF2 – это библиотека для работы с PDF-файлами, которая, помимо всего прочего, предоставляет нам следующие возможности:

  • Извлечение информации из документа (название, автор, …).
  • Разделение документов по страницам.
  • Объединение нескольких документов в один.
  • Обрезание страниц из документа.
  • Объедините несколько страниц в одну.
  • Шифрование и расшифровка файлов PDF.

Установка PyPDF2

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

$> pip install PyPDF2

Получение страницы из документа PDF

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

Для этого я определил функцию extract_page(doc_name, page_num).

Параметр doc_name – это полный путь к документу. Если документ находится в том же пути, что и программа Python, достаточно указать его имя. Параметр page_num – это номер страницы для извлечения (будьте внимательны, поскольку первая страница начинается с индекса 0):

from PyPDF2 import PdfFileWriter, PdfFileReader def extract_page(doc_name, page_num): pdf_reader = PdfFileReader(open(doc_name, 'rb')) pdf_writer = PdfFileWriter() pdf_writer.addPage(pdf_reader.getPage(page_num)) with open(f'document-page{page_num}.pdf', 'wb') as doc_file: pdf_writer.write(doc_file)
Code language: JavaScript (javascript)

Разделение PDF в Python по номеру страницы

В этом разделе мы рассмотрим новую функцию, которая позволяет разделить PDF в Python на две части по номеру страницы. Я вызвал функцию split_pdf(doc_name, page_num). Как и в предыдущем случае, параметр doc_name является путем или именем документа. page_num указывает номер страницы, который будет использоваться для разделения документа на две части (первая страница начинается с индекса 0):

def split_pdf(doc_name, page_num): pdf_reader = PdfFileReader(open(doc_name, "rb")) pdf_writer1 = PdfFileWriter() pdf_writer2 = PdfFileWriter() for page in range(page_num): pdf_writer1.addPage(pdf_reader.getPage(page)) for page in range(page_num, pdf_reader.getNumPages()): pdf_writer2.addPage(pdf_reader.getPage(page)) with open("doc1.pdf", 'wb') as file1: pdf_writer1.write(file1) with open("doc2.pdf", 'wb') as file2: pdf_writer2.write(file2)
Code language: JavaScript (javascript)

В результате функция генерирует два документа под названием doc1.pdf и doc2.pdf.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *