【问题标题】:Python / Django, Generate pdf after generating htmlPython/Django,生成html后生成pdf
【发布时间】:2018-06-28 17:16:14
【问题描述】:

我的网络应用是由 python 2.7 和 Django 1.11 编写的。当客户付费订阅时,它将立即生成发票 pdf 并通过电子邮件发送给客户。但是当我削减 time.sleep 时代码不起作用。我想有一个赛车条件。

使用 wkhtmltopdf (0.9.9) 和 pdfkit 生成 pdf 文件。睡眠需要多少时间?还是合适的方式?

我将在生成 pdf 后将其发送给客户。它需要再次休眠以等待pdf生成吗?

output_html = current_month_folder + invoice_name + '.html'
output_filename = current_month_folder + invoice_name + '.pdf'
email_filename = invoice_name + '.pdf'
html_content = render_to_string(input_filename, context)

with open(output_html, 'w') as f:
    f.write(html_content)
    f.flush()
time.sleep(5)

pdfkit.from_file(output_html, output_filename)

【问题讨论】:

标签: python django wkhtmltopdf pdfkit


【解决方案1】:

您无需保存该文件并将其设为 pdf。请改用from_string

html_content = render_to_string(input_filename, context)

pdfkit.from_string(html_content, output_filename)

你不需要设置睡眠!您可以在下面放置电子邮件代码。

【讨论】:

  • 我改成你的方式了,还是不行。查了一下,是因为reload(sys)sys.setdefaultencoding('utf8')我把它去掉了,它可以生成pdf文件。但它仍然无法向我的邮箱发送电子邮件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 2015-10-11
  • 2015-07-17
  • 2012-06-19
  • 2012-08-25
  • 1970-01-01
相关资源
最近更新 更多