Конвертация текста из PDF в DOCX с помощью Python
Python

Конвертация текста из PDF в DOCX с помощью Python

Razilator

В этой статье мы рассмотрим каким образом можно с помощью двух библиотек конвертировать текст из PDF в Docx формат для последующей работы с ним.

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

Необходимые библиотеки для конвертации из PDF в Docx

Для начала нам необходимо установить две библиотеки в наше виртуальное окружение, пишем следующую команду в терминале: pip install python-docx PyPDF2

Код для конвертации из PDF в Docx

main.py
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. Вот подробное объяснение каждого шага:

  1. from docx import Document: Эта строка импортирует класс Document из библиотеки docx, который используется для создания нового документа Word.

  2. import PyPDF2: Эта строка импортирует библиотеку PyPDF2, которая используется для чтения PDF-файлов.

  3. def pdf_to_docx(input_pdf_path, output_docx_path): Это определение функции pdf_to_docx, которая принимает два аргумента: путь к входному PDF-файлу и путь к выходному DOCX-файлу.

  4. pdf = PyPDF2.PdfReader(input_pdf_path): Эта строка создает объект PdfReader, который считывает содержимое входного PDF-файла.

  5. document = Document(): Эта строка создает новый документ Word.

  6. for page_num in range(len(pdf.pages)): Этот цикл проходит по каждой странице в PDF-файле.

  7. page = pdf.pages[page_num]: Эта строка получает текущую страницу из PDF-файла.

  8. text = page.extract_text(): Эта строка извлекает текст из текущей страницы.

  9. document.add_paragraph(text): Эта строка добавляет извлеченный текст в документ Word в виде нового абзаца.

  10. document.save(output_docx_path): Эта строка сохраняет документ Word в указанном выходном файле.

  11. print(f'Конвертация файла из PDF в DOCX завершена, файл сохранен по пути: {output_docx_path}'): Эта строка выводит сообщение, подтверждающее успешное завершение конвертации.

  12. if __name__ == '__main__': Это условие гарантирует, что код будет выполнен только при прямом запуске этого скрипта, а не при его импорте как модуля.

  13. 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 для выполнения конвертации.

;