gpt4 book ai didi

python - 在django中获取xhtml2pdf数据作为变量

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:35 26 4
gpt4 key购买 nike

我通过以下方式在 django 应用程序中生成 PDF 文件:

context = Context({'data':data_object, 'MEDIA_ROOT':settings.MEDIA_ROOT})
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode('UTF-8')), result)
if not pdf.err:
response = HttpResponse( result.getvalue() )
response['Content-Type'] = 'application/pdf'
response['Content-Disposition'] = 'attachment; filename="%s.pdf"'%(title)
return response

当用户想要下载 PDF 文件时,它效果很好。但是,我需要在电子邮件中附加此 PDF。这就是为什么我需要获取此 PDF 的内容。我在 xhtml2pdf 文档中找不到任何内容。你能帮我解决这个问题吗?

最佳答案

您已经在这里这样做了:

HttpResponse( result.getvalue() )
# result.getvalue() gives you the PDF file content as a string

...所以您可以在电子邮件发送代码中使用它

有关帮助,请参阅此处 https://stackoverflow.com/a/3363254/202168

示例:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import formatdate


context = Context({'data':data_object, 'MEDIA_ROOT':settings.MEDIA_ROOT})
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode('UTF-8')), result)

if not pdf.err:
msg = MIMEMultipart(
From='from@example.com',
To='to@example.com',
Date=formatdate(localtime=True),
Subject="Here's your PDF!"
)
msg.attach(MIMEText(result.getvalue()))

smtp = smtplib.SMTP('smtp.googlemail.com') # for example
smtp.sendmail('from@example.com', ['to@example.com'], msg.as_string())
smtp.close()

关于python - 在django中获取xhtml2pdf数据作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com