gpt4 book ai didi

Django、ReportLab PDF 生成附加在电子邮件中

转载 作者:行者123 更新时间:2023-12-03 00:33:47 24 4
gpt4 key购买 nike

使用 Django 和 ReportLab 生成 PDF 并将其附加到电子邮件的最佳方式是什么?

我正在使用 SimpleDocTemplate,并且可以将生成的 PDF 附加到我的 HttpResponse - 这很棒,但我无法找到如何将相同的附件准确添加到电子邮件中:

    # Create the HttpResponse object with the appropriate PDF headers.
response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'attachment; filename=invoice.pdf'
doc = SimpleDocTemplate(response, pagesize=letter)
Document = []

...通过将表格附加到文档来制作我的 pdf...

  doc.build(Document)
email = EmailMessage('Hello', 'Body', 'from@from.com', ['to@to.com'])
email.attach('invoice.pdf', ???, 'application/pdf')
email.send()

我只是不确定如何将我的 pdfdocument 翻译为 blob,以便 email.attach 可以接受它并且 email.send 可以发送它。

有什么想法吗?

最佳答案

使用ReportLab


try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter, A4
from reportlab.lib.units import inch

def createPDF(request):
x=100
y=100
buffer=StringIO()
p=canvas.Canvas(buffer,pagesize=letter)
p.drawString(x,y,"HELLOWORLD")
p.showPage()
p.save()
pdf=buffer.getvalue()
buffer.close()
return pdf

def someView(request):
EmailMsg=mail.EmailMessage(YourSubject,YourEmailBodyCopy,'email@email.com',["email@email.com"],headers={'Reply-To':'email@email.com'})
pdf=createPDF(request)
EmailMsg.attach('yourChoosenFileName.pdf',pdf,'application/pdf')
EmailMsg.send()

完美运行!!

关于Django、ReportLab PDF 生成附加在电子邮件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378713/

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