gpt4 book ai didi

python - 使用 gunicorn 和 nginx 提供 flask 应用程序时 pdfkit 不工作

转载 作者:行者123 更新时间:2023-11-28 19:05:12 25 4
gpt4 key购买 nike

在开发服务器上,我可以创建一个 pdf 并使用 pdfkit 将其发送给最终用户

返回 pdf 的 View

@changesBP.route('/pdf', methods=['GET'])
def pdfView():
if not 'dataDict' in session:
flash('Du skal uploade regneark for at kunne fortsætte på siden')
return redirect(url_for('indexBP.indexView'))

balanceChangelist = session['balanceGruppeChanges']
balanceGrupper = balanceData(data = session['dataDict'])
balanceListe = session['balanceListe']
resultatChangelist = session['resultatGruppeChanges']
resultatGrupper = resultatData(data = session['dataDict'])
resultatListe = session['resultatListe']

aendingsLister = []

for bc in balanceChangelist:
for c in bc['changes']:
if c['list'] not in aendingsLister:
aendingsLister.append(c['list'])

for rc in resultatChangelist:
for c in rc['changes']:
if c['list'] not in aendingsLister:
aendingsLister.append(c['list'])

options = {
'page-size': 'Letter',
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
'encoding': "UTF-8",
'no-outline': None,
'quiet': ''
}

html = render_template('pdfTemplate.html', balanceChangelist = balanceChangelist,
balanceGrupper = balanceGrupper,
balanceListe = balanceListe,
resultatChangelist = resultatChangelist,
resultatGrupper = resultatGrupper,
resultatListe = resultatListe,
aendingsLister = aendingsLister)

out_File = BytesIO()
out_File.write(pdfkit.from_string(html, False, options=options))
out_File.seek(0)
return send_file(out_File,
attachment_filename='out.pdf',
as_attachment=True,
mimetype="application/pdf")

按照 this guide 通过 gunicorn 和 Nginx 提供应用程序时访问 pdf View 时出现错误网关错误。

我可以在错误日志上使用一些帮助,该日志指出以下内容

2017/12/13 10:04:39 [error] 28047#28047: *78 upstream prematurely closed connection while reading response header from upstream, client: 10.2.20.180, server: 10.8.0.12, request: "GET /pdf HTTP/1.1", upstream: http://unix:/home/hepo/segesdupont/segesdupont.sock:/pdf", host: "10.8.0.12", referrer: "http://10.8.0.12/changes"

有什么想法吗?

最佳答案

此问题的内部错误是“UnicodeEncodeError:‘ascii’编解码器无法对位置 193 中的字符‘\xea’进行编码:序号不在范围 (128) 内”。

您只需从用于生成 pdf 的 html 中删除任何特殊字符即可解决此问题。使用 á 而不是 á。

关于python - 使用 gunicorn 和 nginx 提供 flask 应用程序时 pdfkit 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47789624/

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