На моем веб-сайте онлайн-чтения и редактирования PDF-файлов мне пришлось добавить функцию преобразования PDF-файла в формат docx. Для решения этой задачи я использовал в своем проекте пакет pdf2docx, который предоставляет некоторые функции для преобразования данного PDF-файла в файл Word.

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

Содержание

Пакет pdf2docx

Пакет под названием pdf2docx конвертирует PDF-файлы в DOCX. Этот пакет не существует в стандартной библиотеке Python, поэтому его необходимо установить в своей среде или проекте.

Перед установкой pdf2docx убедитесь, что в вашей системе установлен Python. Если нет, следуйте этому руководству о том, как загрузить и установить Python.

Чтобы установить пакет pdf2docx, откройте командную строку и выполните команду ниже.

pip install pdf2docx

Если вы используете Jupyter Notebook, вы можете выполнить команду ниже.

!pip install pdf2docx

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

Установка пакета pdf2docx перед преобразованием PDF в DOCX

Если вы видите что-то вроде изображения выше, вы устанавливаете пакет pdf2docx. Давайте используем этот пакет для преобразования файлов PDF в файлы DOCX.

В пакете pdf2docx есть класс Converter(), который выполняет следующие действия:

  • Сначала он читает или загружает PDF-файл, который вы хотите преобразовать в docx; затем он извлекает всю информацию о форматировании из PDF-файла страницу за страницей. Другими словами, он анализирует файл PDF постранично, чтобы определить его внутреннюю структуру.
  • Более того, он понимает, где находится текст и изображения на странице, а также стиль ее шрифта. Он также определяет структурные элементы, такие как заголовки, абзацы, таблицы или другие атрибуты форматирования, такие как жирный шрифт или курсив, цвет, размеры и выравнивание(сверху, снизу, по центру и т. д.).
  • Он извлекает макет каждого элемента и стиль форматирования каждой страницы.
  • После этого он генерирует элементы docx, соответствующие извлеченным элементам из файла PDF.
  • Затем он добавляет эти элементы docx в файл docx. Таким образом, он преобразует данный PDF-файл в файл DOCX.

Теперь вы знаете, как класс Converter() принимает файл PDF и обрабатывает его для создания файла docx. Пришло время убедиться на практике.

С использованием класса Converter()

Итак, возьмите любой PDF-файл и запишите его в том месте, где он существует на вашем компьютере. Ниже я показал файл pdf, который будет конвертирован в docx.

С использованием класса Converter() 

Откройте командную строку и введите Python, чтобы открыть оболочку.

python

Импортируйте класс Converter() из пакетов pdf2docx, используя приведенный ниже код.

from pdf2docx import Converter

Затем укажите путь к файлу PDF, который вы хотите преобразовать, и путь для сохранения файла docx.

path_to_pdf ='C:/Users/saura/OneDrive/Desktop/Project/pythonguides.pdf'
path_to_docx ='C:/Users/saura/OneDrive/Desktop/Project/pythonguides.docx'

После этого создайте объект класса Converter() и передайте путь к PDF-файлу, который вы хотите преобразовать, как показано ниже.

cv_obj = Converter(path_to_pdf)

Затем в классе Converter() есть функция Convert(), которая полностью отвечает за преобразование pdf в docx, поэтому вы можете вызвать эту функцию и передать ей путь к файлу docx, как показано ниже.

cv_obj.convert(path_to_docx)

Приведенный выше код конвертирует pdf в docx. После этого вам необходимо закрыть объект cv_obj, используя приведенный ниже код.

cv_obj.close()

После выполнения вышеуказанных шагов вы должны увидеть результат, показанный на рисунке ниже.

PDF в Word в Python с использованием класса Converter() pdf2docx

Если все прошло правильно и ошибок не было, вы успешно преобразовали PDF-файл «pythonguides.pdf» в docx-файл «pythonuides.docx».

Чтобы убедиться в этом, перейдите в папку, где сохранен преобразованный файл. В моем случае я указал местоположение как «C:/Users/saura/OneDrive/Desktop/Project/pythonguides.docx».

Просмотр файла DOCX после преобразования PDF в DOCX

Посмотрите на картинку выше. Если вы откроете файл docx «pythonguides.docx» в MS Word, вы увидите точное содержимое в формате PDF.

Преобразование PDF-файла, защищенного паролем

Класс Converter() принимает аргумент пароля. Синтаксис:

Converter(path, password)

Где:

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

Например, у меня есть еще один PDF-файл в том же месте, защищенный паролем. Чтобы преобразовать это в docx, сначала я покажу вам, что происходит, когда вы пытаетесь преобразовать PDF-файл, защищенный паролем.

Определите путь к файлу PDF и путь к файлу docx, как показано ниже.

path_to_pdf ='C:/Users/saura/OneDrive/Desktop/Project/password_file.pdf'
path_to_docx ='C:/Users/saura/OneDrive/Desktop/Project/password_file.docx'

Создайте объект, используя класс Converter(), не указывая пароль.

cv_obj = Converter(path_to_pdf)

Затем вызовите функцию Convert(), чтобы выполнить преобразование.

cv_obj.convert(path_to_docx)

Как только вы выполните приведенный выше код, появится ошибка, как показано на рисунке ниже.

Преобразование PDF-файла, защищенного паролем

Ошибка указывает на то, что для доступа к файлу PDF требуется пароль. Чтобы устранить эту ошибку, вы должны предоставить пароль для PDF-файла, который вы хотите конвертировать.

Теперь выполните приведенный ниже код, минуя пароль класса Converter().

cv_obj = Converter(path_to_pdf, 345678)

cv_obj.convert(path_to_docx)
cv_obj.close()

Преобразование PDF-файла, защищенного паролем, в Word на Python

Как вы можете видеть на рисунке выше, когда Converter() передается пароль, функция Convert() преобразует данный PDF-файл в DOCX. Если вы видите сообщение «Прервано через 0,26 с», файл PDF преобразуется в файл docx.

Если я перейду в место, где сохранен файл docx, и открою его, он будет выглядеть так, как показано ниже.

Преобразование PDF-файла, защищенного паролем, в DOCX на Python

Судя по изображению, вы успешно преобразовали PDF-файл, защищенный паролем, в файл docx. Помните, что файл docx сохраняется без пароля после преобразования в файл docx.

С использованием метода parse()

Еще одна функция, parse(), находится в пакете pdf2docx, которая также позволяет конвертировать данный pdf-файл в docx.

Синтаксис приведен ниже.

parse(pdf_file_path, docx_file_path)

Где:

  • pdf_file_path: определяет имя и путь к PDF-файлу, который вы хотите конвертировать.
  • docx_file_path: определяет имя файла и путь к текстовому файлу, который вы хотите видеть в результате.

Используя приведенный ниже код, давайте преобразуем PDF-файл с именем «pythonguides_parse.pdf» в файл docx.

Определите путь, по которому хранится файл PDF, а также место сохранения файла docx в вашей системе.

path_to_pdf ='C:/Users/saura/OneDrive/Desktop/Project/pythonguides_parse.pdf'
path_to_docx='C:/Users/saura/OneDrive/Desktop/Project/pythonguides_parse.docx'

Передайте оба пути в функцию parse(), как показано ниже.

parse(path_to_pdf, path_to_docx)

С использованием метода parse()

Опять же, на приведенном выше рисунке показано «Завершено через 0,22 с», что означает, что он успешно преобразовал PDF-файл «pythonguies_parse.pdf» в docx-файл «pythonguides_parse.docx».

Перейдите в указанное место и посмотрите файл docx в своем каталоге. Надеюсь, вы понимаете, как конвертировать Python PDF в Word, используя два вышеуказанных метода.

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