Конвертация текста из PDF в DOCX с помощью Python
В этой статье мы рассмотрим каким образом можно с помощью двух библиотек конвертировать текст из PDF в Docx формат для последующей работы с ним.
Предупреждаю, что мы конвертируем только текст, без стилей, для стилей нужны более сложные библиотеки.
Необходимые библиотеки для конвертации из PDF в Docx
Для начала нам необходимо установить две библиотеки в наше виртуальное окружение, пишем следующую команду в терминале: pip install python-docx PyPDF2
Код для конвертации из PDF в Docx
from docx import Document
import PyPDF2
def pdf_to_docx(input_pdf_path, output_docx_path):
"""
Функция преобразования из PDF в DOCX
Принимает путь PDF файла и путь для сохранения DOCX файла
"""
pdf = PyPDF2.PdfReader(input_pdf_path)
document = Document()
for page_num in range(len(pdf.pages)):
page = pdf.pages[page_num]
text = page.extract_text()
document.add_paragraph(text)
document.save(output_docx_path)
print(f'Конвертация файла из PDF в DOCX завершена, файл сохранен по пути: {output_docx_path}')
if __name__ == '__main__':
input_pdf_path = 'path/to/file.pdf'
output_docx_path = 'path/to/file.docx'
pdf_to_docx(input_pdf_path, output_docx_path)
Ваш код выполняет конвертацию из PDF в DOCX. Вот подробное объяснение каждого шага:
-
from docx import Document
: Эта строка импортирует классDocument
из библиотекиdocx
, который используется для создания нового документа Word. -
import PyPDF2
: Эта строка импортирует библиотекуPyPDF2
, которая используется для чтения PDF-файлов. -
def pdf_to_docx(input_pdf_path, output_docx_path)
: Это определение функцииpdf_to_docx
, которая принимает два аргумента: путь к входному PDF-файлу и путь к выходному DOCX-файлу. -
pdf = PyPDF2.PdfReader(input_pdf_path)
: Эта строка создает объектPdfReader
, который считывает содержимое входного PDF-файла. -
document = Document()
: Эта строка создает новый документ Word. -
for page_num in range(len(pdf.pages))
: Этот цикл проходит по каждой странице в PDF-файле. -
page = pdf.pages[page_num]
: Эта строка получает текущую страницу из PDF-файла. -
text = page.extract_text()
: Эта строка извлекает текст из текущей страницы. -
document.add_paragraph(text)
: Эта строка добавляет извлеченный текст в документ Word в виде нового абзаца. -
document.save(output_docx_path)
: Эта строка сохраняет документ Word в указанном выходном файле. -
print(f'Конвертация файла из PDF в DOCX завершена, файл сохранен по пути: {output_docx_path}')
: Эта строка выводит сообщение, подтверждающее успешное завершение конвертации. -
if __name__ == '__main__'
: Это условие гарантирует, что код будет выполнен только при прямом запуске этого скрипта, а не при его импорте как модуля. -
input_pdf_path = 'path/to/file.pdf'
,output_docx_path = 'path/to/file.docx'
,pdf_to_docx(input_pdf_path, output_docx_path)
: Эти строки задают пути к входному и выходному файлам и вызывают функциюpdf_to_docx
для выполнения конвертации.