-1

在我的 Django 应用程序中,我使用 Wea​​syPrint 将 html 报告转换为 pdf。我需要将转换后的文件发送回客户端,以便他们下载。但是我在 WeasyPrint 网站上看不到任何代码,我们可以在其中获取保存文件的路径或以任何方式知道文件的保存位置。

如果我硬编码路径,例如,D:/Python/Workspace/report.pdf并尝试通过 javascript 打开它,它只是说地址不被理解。

有什么更好的方法来解决这个问题?

我的代码:

 HTML(string=htmlContent).write_pdf(fileName,
        stylesheets=[CSS(filename='css/bootstrap.min.css')])

这是所有与生成 PDF 文件的 WeasyPrint 相关的代码。

4

1 回答 1

0

您甚至都懒得发布相关代码,但无论如何:

如果您使用的是 Python API,您可以在调用时指定输出文件路径,weasyprint.HTML().write_pdf()或者将 PDF 作为字节字符串返回,如此处所述- 然后您可以手动将其保存到可以将用户重定向到的文件中,或者只是将字节串传递给 django 的HttpResponse.

如果您使用的是命令行(这对于 Django 应用程序来说会非常令人惊讶...),您还必须指定输出路径...

IOW:我不太明白你的问题。FWIW,整个文档在这里:http ://weasyprint.readthedocs.io/en/latest/ - 并且项目主页上有一个非常明显的链接(这就是我找到它的方式 FWIW)。

编辑:现在您发布了您的实际代码:答案在FineManual(tm)中以明文形式写成:


_

IOW,要么您选择传递要生成的文件名并将此文件提供给用户,要么您可以将您的 DjangoHttpResponse作为目标传递,参见Django 文档中的这个示例

于 2016-09-23T11:32:27.847 回答