【问题标题】:Return PDF generated with FPDF in Flask在 Flask 中返回使用 FPDF 生成的 PDF
【发布时间】:2016-10-20 08:52:42
【问题描述】:

我可以使用下面的代码生成带有图像的 PDF。如何从 Flask 路由返回生成的 PDF?

from fpdf import FPDF
pdf = FPDF()
img = input('enter file name')
g = img + '.jpg'
pdf.add_page()
pdf.image(g, 50, 50)
pdf.output(img + '.pdf', 'F')

【问题讨论】:

    标签: python flask fpdf


    【解决方案1】:

    使用make_response 创建一个响应,并将 PDF 数据输出为字符串 (dest='S')。 Encode the output as latin-1,否则 Flask 会将其编码为 UTF-8,它可能无效。设置Content-DispositionContent-Type 标头告诉浏览器下载/处理PDF 文件。返回构造的响应。

    from flask import make_response
    
    @app.route('/jpg_to_pdf/<name>')
    def jpg_to_pdf(name):
        pdf = FPDF()
        pdf.add_page()
        pdf.image(os.path.join(app.instance_path, name + '.jpg'), 50, 50)
        response = make_response(pdf.output(dest='S').encode('latin-1'))
        response.headers.set('Content-Disposition', 'attachment', filename=name + '.pdf')
        response.headers.set('Content-Type', 'application/pdf')
        return response
    

    此示例假定图像位于实例文件夹中,根据需要进行修改以指向图像实际所在的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多