相关疑难解决方法(0)

将 pdf 从 django-wkhtmltopdf 保存到服务器(而不是作为响应返回)

我正在编写一个 Django 函数,它接受一些用户输入,并为用户生成一个 pdf。但是,生成 pdf 的过程非常密集,我会收到很多重复的请求,所以我想将生成的 pdf 存储在服务器上并在生成它们之前检查它们是否已经存在。

问题是 django-wkhtmltopdf(我用于生成)旨在直接返回给用户,我不确定如何将其存储在文件中。

我有以下内容,可用于在 /pdf 处返回 pdf:

网址.py

urlpatterns = [
    url(r'^pdf$', views.createPDF.as_view(template_name='site/pdftemplate.html', filename='my_pdf.pdf'))
]
Run Code Online (Sandbox Code Playgroud)

视图.py

class createPDF(PDFTemplateView):
    filename = 'my_pdf.pdf'
    template_name = 'site/pdftemplate.html'
Run Code Online (Sandbox Code Playgroud)

所以这可以很好地创建一个pdf。我想要的是从另一个视图调用该视图并保存结果。这是我到目前为止所得到的:

#Create pdf
pdf = createPDF.as_view(template_name='site/pdftemplate.html', filename='my_pdf.pdf')
pdf = pdf(request).render()

pdfPath = os.path.join(settings.TEMP_DIR,'temp.pdf')
with open(pdfPath, 'w') as f:
    f.write(pdf.content)
Run Code Online (Sandbox Code Playgroud)

这将创建 temp.pdf 并且大约是我期望的大小,但文件无效(它呈现为一个完全空白的页面)。

有什么建议?

pdf django wkhtmltopdf

5
推荐指数
1
解决办法
2461
查看次数

标签 统计

django ×1

pdf ×1

wkhtmltopdf ×1