IIS 下的 Python Flask - Docx 到 Pdf

问题描述 投票:0回答:1

我的 Windows 服务器下有一个 Flask 应用程序,我希望它能够将 docx 转换为 pdf,而不更改 docx 文件。我尝试使用下面的 comptypes 代码来完成此操作,但它不起作用,因为 Windows 不允许。

还有哪些其他选择?

这是我遇到的错误

(-2147024891,'访问被拒绝',无,无)

我正在寻找另一个可以通过向 IIS 发出的请求进行转换的包,但所有这些都需要许可证。

最终编辑:对于每个尝试通过调度 word.application 来执行此操作的人,您必须更改 Windows 组件服务设置。您必须在那里找到 Microsoft Word 并应用 IIS 和 DefaultApplication User 的安全更改。但我决定将我的所有计划更改为 libreoffice,它不需要这样的东西,但它也有缺点,例如它不会转换为文档 1:1 它会改变一些东西。

我现在结束这个话题。

def doc2pdf(doc_name, pdf_name, font_size=8):

    pythoncom.CoInitialize()
    word = client.DispatchEx("Word.Application")
    if os.path.exists(pdf_name):
        os.remove(pdf_name)
    worddoc = word.Documents.Open(doc_name, ReadOnly=1)
    worddoc.Content.Font.Size = font_size
    try:
        worddoc.SaveAs(pdf_name, FileFormat=17)
    except Exception as e:
        createText('wordToPdfException', f"{e}")
    worddoc.Close()
    # Quit the Word application
    word.Quit()
    pythoncom.CoUninitialize()
    return pdf_name
python flask pdf iis docx
1个回答
0
投票

通过 IIS 的 Doc2Pdf 不起作用,因为微软不允许,您必须转到 Windows 的组件服务并在那里找到 Microsoft Word,并通过添加 IIS 和 DefaultAppPool 来更改其安全性,但是,我决定使用不需要这些的 libreoffice步骤,但它有其自身的缺点,例如它不会 1:1 转换文档,它会更改一些内容。

© www.soinside.com 2019 - 2024. All rights reserved.