Перейти к главному содержимому

Python: преобразование docx в pdf

Описание

Скрипт работает только под windows. Для работы нужен установленный Microsoft Word и пакет для python comtypes.

Фактически скрипт делает тоже самое как если бы вы открыли документ в Word-e и нажали "Сохранить как" в формат pdf. То есть все так и происходит, сохраняет сам Word, только не надо запускать его явно и не надо никуда жать.

Установка зависимостей

Пакет comtypes можно установить стандартными средствами через pip:

pip3 install comtypes

Сам скрипт

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import sys

import comtypes.client

wdFormatPDF = 17

#########################################################################
def covx_to_pdf(infile, outfile):
    """Convert a Word .docx to PDF"""

    print("Creating object...")
    word = comtypes.client.CreateObject('Word.Application')
    print("Opening docx file...")
    doc = word.Documents.Open(infile)
    print("Saving pdf file...")
    doc.SaveAs(outfile, FileFormat=wdFormatPDF)
    print("Closing document...")
    doc.Close()
    print("Exiting...")
    word.Quit()

#########################################################################
def main():
  print("Start conversion.")
  covx_to_pdf("inputfile.docx", "outputfile.pdf")
  print("Finished.")
  return 0

#########################################################################
if __name__ == '__main__':
  ret = main()
  sys.exit(ret)