Как с помощью Python преобразовать pdf‑файлы в doc

Развлечение на сегодняшний вечер — показать вам, как можно использовать библиотеку pdf2docx для преобразования файлов PDF в расширение docx.

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

pdf2docx — это библиотека Python для извлечения данных из PDF с помощью PyMuPDF, анализа макета с помощью правил и создания файла docx с помощью python-docx. python-docx — это еще одна библиотека, которая используется pdf2docx для создания и обновления файлов Microsoft Word (.docx).

Короче, начинаем:

$ pip install pdf2docx==0.5.1

Импортируем нужные нам библиотеки:

# Импортировать библиотеки
from pdf2docx import parse
from typing import Tuple

Определим функцию, отвечающую за преобразование PDF в Docx:

def convert_pdf2docx(input_file: str, output_file: str, pages: Tuple = None):
    """Преобразует PDF в DOCX"""
    if pages:
        pages = [int(i) for i in list(pages) if i.isnumeric()]
    result = parse(pdf_file=input_file,
                   docx_with_path=output_file, pages=pages)
    summary = {
        "Исходный файл": input_file, "Страниц": str(pages), "Результат преобразования": output_file
    }
    # Печать сводки
    print("#### Отчет ########################################################")
    print("\n".join("{}:{}".format(i, j) for i, j in summary.items()))
    print("###################################################################")
    return result

Функция convert_pdf2docx() позволяет указать диапазон страниц для преобразования, она преобразует файл PDF в файл Docx и в конце распечатывает отчет о своей работе.

Напишем обёртку для вызова этой функции:

if __name__ == "__main__":
    import sys
    input_file = sys.argv[1]
    output_file = sys.argv[2]
    convert_pdf2docx(input_file, output_file)

Просто используем встроенный в Python модуль sys для получения имен входных и выходных файлов из аргументов командной строки. Попробуем преобразовать образец PDF-файла (использованный пример можно забрать здесь):

$ python convert_pdf2docx.py Anketa_0.pdf Anketa_0.docx

В текущем каталоге появится новый файл Anketa_0.docx, и результат будет таким:

Parsing Page 1: 1/3...
Parsing Page 2: 2/3...
Parsing Page 3: 3/3...

Creating Page 1: 1/3...
Creating Page 2: 2/3...
Creating Page 3: 3/3...
--------------------------------------------------
Terminated in 0.9915917019999999s.
#### Отчет ########################################################
Исходный файл:Anketa_0.pdf
Страниц:None
Результат преобразования:Anketa_0.doc
###################################################################

Можно выборочно указать нужные страницы в функции convert_pdf2docx().

Надеюсь, сей простой и короткий урок вам понравился, и этот конвертер будет вам полезен.

Использованы материалы How to Convert PDF to Docx in Python

Print Friendly, PDF & Email

CC BY-NC 4.0 Как с помощью Python преобразовать pdf‑файлы в doc, опубликовано К ВВ, лицензия — Creative Commons Attribution-NonCommercial 4.0 International.


Респект и уважуха

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