Развлечение на сегодняшний вечер — показать вам, как можно использовать для преобразования файлов PDF в расширение docx.
Наша задача — разработать Python-модуль для преобразования одного или нескольких файлов PDF, расположенных в одной папке, в форме легкой утилиты командной строки не полагаясь на какие-либо внешние утилиты за пределами экосистемы Python.
pdf2docx — это библиотека Python для извлечения данных из PDF с помощью , анализа макета с помощью правил и создания файла 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().
Надеюсь, сей простой и короткий урок вам понравился, и этот конвертер будет вам полезен.
Использованы материалы
Как с помощью Python преобразовать pdf‑файлы в doc, опубликовано К ВВ, лицензия — Creative Commons Attribution-NonCommercial 4.0 International.
Респект и уважуха

