我正在用一个python函数编写一个env来将docx转换为pdf文件。我用 Postman 发送base64。然后我挂载docx文件(一切都还正常),但是当它将docx文件转换为pdf时,出现了一个错误。我想这是因为我的env上没有Office?没有办公室我怎么能修好它?谢谢
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()
这是我得到的错误。我得到了从base64创建的docx,但没有转换。
System.Private.CoreLib:执行函数时出现异常:Functions.FunConverter. System.Private.CoreLib:结果:失败异常:属性错误:模块“comtypes. gen. Word”没有属性“Application”堆栈:文件“C:\PruebaFunction\ConvEnv\lib\site-packages\azure\functions_worker\dispatcher.py ",line 288,in_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 ",line 347,in__run_sync_func return func(params)File" C:\PruebaFunction\FunConverter__init。py”,第32行,在main word = comtypes中。委托人CreateObject('Word.应用程序”)文件“C:\PruebaFunction\ConvEnv\lib\site-packages\comtypes\client__init_。py",第250行,在CreateObject return_manage(obj,clsid,interface = interface)文件" C:\PruebaFunction\ConvEnv\lib\site-packages\comtypes\client__init__。py",line 188,in_manage obj = GetBestInterface(obj)File" C:\PruebaFunction\ConvEnv\lib\site-packages\comtypes\client__init__。py",line 112,in GetBestInterface interface = getattr(mod,itf_name)
3条答案
按热度按时间xxhby3vn1#
你可以尝试用lib win32com来完成
pgx2nnw82#
你可以使用python库
docx2pdf
,它在内部使用win32com
:https://github.com/AlJohri/docx2pdf安装:
使用方法:
正如您提到的,这种方法确实需要安装Microsoft Office。
免责声明:我写了这个库和命令行工具。
3vpjnl9f3#
您可以使用Aspose.Words for Python来convert DOCX and other document formats to PDF。代码很简单-加载文档并将其保存为PDF: