Я работаю над env с функцией python для преобразования docx в pdf файлы.Я использую почтальон для отправки base64.Затем я монтирую файл docx (пока что все работает), но когда он конвертирует файл docx в pdf, появляется ошибка.Я думаю, это потому, что у меня нет Office на моем env?Как я могу это исправить, не имея офиса?Спасибо.
import sys
import os
import comtypes.client
import pythoncom
import uuid
import requests
from docx import Document
import base64
from os import listdir
from os.path import isfile, join
import azure.functions as func
def main(req: func.HttpRequest) -> func.HttpResponse:
bytesDoc = req.get_json()['base']
path = '/users/echornet/pruebas/'
newFile = open(path + 'prueba.docx','wb')
newFile.write(base64.b64decode(bytesDoc))
newFile.close()
wdFormatPDF = 17
out_file = path + 'prueba.pdf'
word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(newFile)
doc.SaveAs(out_file, FileFormat=wdFormatPDF)
doc.Close()
Это ошибка, которую я получаю.Я получаю docx, созданный из base64, но без преобразования.
System.Private.CoreLib: Исключительная ситуация при выполнении функции: Functions.FunConverter.System.Private.CoreLib: Результат: Сбой Исключение: AttributeError: модуль 'comtypes.gen.Word' не имеет атрибута '_Application' Стек: Файл 'C: \ PruebaFunction \ ConvEnv \ lib \ site-packages \ azure \ functions_worker \ dispatcher.py ", строка 288, в _handle__invocation_request self. run_sync_func, invocation_id, fi.func, args) Файл" C: \ Users \ echornet \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ concurrent \ futures \ thread.py ", строка 55, в результате выполнения = self.fn (* self.args, ** self.kwargs) Файл" C: \ PruebaFunction \ ConvEnv \ lib \ site-packages \ azure \ functions_worker \ dispatcher.py ", строка347, в __run_sync_func вернуть func (** params) Файл "C: \ PruebaFunction \ FunConverter__init .py", строка 32, в главном файле word = comtypes.client.CreateObject ('Word.Application') "C: \PruebaFunction \ ConvEnv \ lib \ site-packages \ comtypes \ client__init __. Py ", строка 250, в CreateObject возвращает _manage (obj, clsid, interface = interface) Файл" C: \ PruebaFunction \ ConvEnv \ lib \ site-packages \ comtypes \ "client__init__.py ", строка 188, в _manage obj= GetBestInterface (obj) Файл "C: \ PruebaFunction \ ConvEnv \ lib \ site-packages \ comtypes \ client__init __. Py", строка 112, в интерфейсе GetBestInterface = getattr (mod, itf_name)