На моем веб-сайте онлайн-чтения и редактирования PDF-файлов мне пришлось добавить функцию преобразования PDF-файла в формат docx. Для решения этой задачи я использовал в своем проекте пакет pdf2docx, который предоставляет некоторые функции для преобразования данного PDF-файла в файл Word.
В этом уроке я показал, как преобразовать PDF-файл, хранящийся на вашем компьютере, в файл DOCX, сохранив его в определенном месте. Вы также можете конвертировать PDF-файлы, защищенные паролем, в файлы docx, а не просто в простые PDF-файлы.
- Пакет pdf2docx
- С использованием класса Converter()
- Преобразование PDF-файла, защищенного паролем
- С использованием метода parse()
Пакет pdf2docx
Пакет под названием pdf2docx конвертирует PDF-файлы в DOCX. Этот пакет не существует в стандартной библиотеке Python, поэтому его необходимо установить в своей среде или проекте.
Перед установкой pdf2docx убедитесь, что в вашей системе установлен Python. Если нет, следуйте этому руководству о том, как загрузить и установить Python.
Чтобы установить пакет pdf2docx, откройте командную строку и выполните команду ниже.
pip install pdf2docx
Если вы используете Jupyter Notebook, вы можете выполнить команду ниже.
!pip install pdf2docx
Посмотрите ниже, как он выглядит при установке с помощью командной строки.
Если вы видите что-то вроде изображения выше, вы устанавливаете пакет pdf2docx. Давайте используем этот пакет для преобразования файлов PDF в файлы DOCX.
В пакете pdf2docx есть класс Converter(), который выполняет следующие действия:
- Сначала он читает или загружает PDF-файл, который вы хотите преобразовать в docx; затем он извлекает всю информацию о форматировании из PDF-файла страницу за страницей. Другими словами, он анализирует файл PDF постранично, чтобы определить его внутреннюю структуру.
- Более того, он понимает, где находится текст и изображения на странице, а также стиль ее шрифта. Он также определяет структурные элементы, такие как заголовки, абзацы, таблицы или другие атрибуты форматирования, такие как жирный шрифт или курсив, цвет, размеры и выравнивание(сверху, снизу, по центру и т. д.).
- Он извлекает макет каждого элемента и стиль форматирования каждой страницы.
- После этого он генерирует элементы docx, соответствующие извлеченным элементам из файла PDF.
- Затем он добавляет эти элементы docx в файл docx. Таким образом, он преобразует данный PDF-файл в файл DOCX.
Теперь вы знаете, как класс Converter() принимает файл PDF и обрабатывает его для создания файла docx. Пришло время убедиться на практике.
С использованием класса Converter()
Итак, возьмите любой PDF-файл и запишите его в том месте, где он существует на вашем компьютере. Ниже я показал файл pdf, который будет конвертирован в docx.
Откройте командную строку и введите 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-файл «pythonguides.pdf» в docx-файл «pythonuides.docx».
Чтобы убедиться в этом, перейдите в папку, где сохранен преобразованный файл. В моем случае я указал местоположение как «C:/Users/saura/OneDrive/Desktop/Project/pythonguides.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-файла, который вы хотите конвертировать.
Теперь выполните приведенный ниже код, минуя пароль класса Converter().
cv_obj = Converter(path_to_pdf, 345678) cv_obj.convert(path_to_docx) cv_obj.close()
Как вы можете видеть на рисунке выше, когда Converter() передается пароль, функция Convert() преобразует данный PDF-файл в DOCX. Если вы видите сообщение «Прервано через 0,26 с», файл PDF преобразуется в файл docx.
Если я перейду в место, где сохранен файл docx, и открою его, он будет выглядеть так, как показано ниже.
Судя по изображению, вы успешно преобразовали 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)
Опять же, на приведенном выше рисунке показано «Завершено через 0,22 с», что означает, что он успешно преобразовал PDF-файл «pythonguies_parse.pdf» в docx-файл «pythonguides_parse.docx».
Перейдите в указанное место и посмотрите файл docx в своем каталоге. Надеюсь, вы понимаете, как конвертировать Python PDF в Word, используя два вышеуказанных метода.