-1
from docx2pdf import convert
import pythoncom 

#flask rest api
@app.route('/api_v1/get_pdf/',methods=['GET'])
def get_pdf():
    if threading.currentThread ().getName () != 'MainThread':
        pythoncom.CoInitialize () 
    convert(in_word,out_pdf )

我正在使用 docx2pdf 在 python 中将 docx 文件转换为 pdf,我的脚本需要在 windows 启动时执行(无需登录 windows)。在这种模式下,脚本在转换为 pdf 时会引发错误'NoneType' object has no attribute 'SaveAs'。我不知道问题出在哪里,但我认为这是因为某些服务在登录 Windows 之前无法正常工作,但如果我在登录 Windows 后运行脚本,则可以正常工作。那么我怎样才能让脚本在登录到 Windows 之前工作呢?

追溯:

'NoneType' object has no attribute 'SaveAs'
Traceback (most recent call last):
File "D:\xxxx\main.py", line 746, in get_pdf
convert(in_word,out_pdf )
File "C:\Python38\lib\site-packages\docx2pdf\__init__.py", line 106, in convert
return windows(paths, keep_active)
File "C:\Python38\lib\site-packages\docx2pdf\__init__.py", line 33, in windows
doc.SaveAs(str(pdf_filepath), FileFormat=wdFormatPDF)
AttributeError: 'NoneType' object has no attribute 'SaveAs'
4

1 回答 1

0

docx2pdf 通过运行 Microsoft Word 应用程序进行转换。如果没有用户登录,Word 将无法启动,即使它不会显示 UI。您将不得不找到另一个不使用 Word 的 docx 转换器。有几个选项,包括 pandoc。

于 2021-02-26T07:12:47.973 回答