Сегодня покажу как автоматизировать такую рутинную операцию как сохранение большого количества файлов форматов Word в формат сканированных документов PDF.

Для начала нам необходимо установить библиотеку "comtypes":

pip install comtypes

Далее собственно всё просто:

1. формируем два списка, в один из которых помещаем файлы из текущей директории формата doc во второй docx

2. каждый файл из списка открываем в программе Word и пере сохраняем в нужном нам формате, в данном случае это PDF

3. Profit

Листинг всего кода выглядит так:

# -*- coding: utf-8 -*-
import os
import comtypes.client
import glob

wdFormatPDF = 17

list_files_doc = []
list_files_docx = []

def start():
    for f in glob.glob('*.doc'):
        list_files_doc.append(f)

    for f in list_files_doc:
        convert(4, f)

    for f in glob.glob('*.docx'):
        list_files_docx.append(f)

    for f in list_files_docx:
        convert(5, f)


def convert(fformat, f):
    print(f)
    new_name = f[:len(f) - fformat] + '.pdf'
    word = comtypes.client.CreateObject('Word.Application')
    doc = word.Documents.Open(os.path.abspath(f))
    doc.SaveAs(os.path.abspath(new_name), FileFormat=wdFormatPDF)
    doc.Close()
    word.Quit()


if __name__ == '__main__':
    start()

После этого достаточно выполнить наш скрипт из директории с файлами и мы получим копии в формате PDF.

Таким образом у нас получилась программа длиной в 35 строк кода которая может помочь сэкономить кучу времени и сил.


Основы python | Python | word | pdf |