Django:在没有安装Word的机器上将Word文档转换为PDF格式的pdf

时间:2018-04-18 19:21:18

标签: python django iis pypandoc

我目前正在开发一个Django网络应用程序,需要从DMS中检索多个文档,将它们合并为一个大型PDF,并将此文件作为用户的输出分发。

此过程中最大的问题源于其中一些文件是由doc / docx格式的python检索的。通常我会使用类似pythoncom和comtypes.client之类的东西来转换这些文件,然后继续进行合并,如下所示:

    wdFormatPDF = 17
    pythoncom.CoInitialize()

    word = comtypes.client.CreateObject('Word.Application')
    word.Visible = False
    doc = word.Documents.Open([retrieved doc file])
    doc.SaveAs(os.path.join([newly created pdf file]), FileFormat=wdFormatPDF)
    doc.Close()
    word.Quit()

但是,这仅适用于安装了Microsoft Word的计算机。由于应用程序理想情况下将在IIS服务器上运行,因此在我的环境中这不是一个真正的选项。

我考虑过测试pypandoc和miktex / xelatex(在Windows Server上仍然需要外部引用,但我的选择似乎开始变得有限),就像这样

output = pypandoc.convert_file([retrieved doc file]), 'pdf', outputfile=os.path.join([newly created PDF file]))

虽然这会创建PDF,但转换存在问题。我可以通过向额外参数添加字体设置来解释一些问题,但是doc文件包含图像和一些不能很好转换的特定对齐。

我也知道Reportlab,虽然它看起来更像是基于现有文本创建PDF,而不是移植完整的文档,图像和所有文件。

因此我的问题是:是否有一种方法可以像使用Word.Application comtype一样干净地执行此转换,但是没有安装Word?如果没有,是否有其他可用的包我无法找到或正确使用?

0 个答案:

没有答案