Skip to content

Instantly share code, notes, and snippets.

@widoyo
Created October 16, 2012 07:42
Show Gist options
  • Star 20 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save widoyo/3897853 to your computer and use it in GitHub Desktop.
Save widoyo/3897853 to your computer and use it in GitHub Desktop.
Generating PDF using Flask & ReportLab
from flask import make_response
from reportlab.pdfgen import canvas
# ...
@app.route('/pdf')
def pdf():
import cStringIO
output = cStringIO.StringIO()
p = canvas.Canvas(output)
p.drawString(100, 100, 'Hello')
p.showPage()
p.save()
pdf_out = output.getvalue()
output.close()
response = make_response(pdf_out)
response.headers['Content-Disposition'] = "attachment; filename='sakulaci.pdf"
response.mimetype = 'application/pdf'
return response
@mailtodanish
Copy link

do u know how to use template

@odilxon
Copy link

odilxon commented Jan 12, 2022

from flask import Flask
from flask import render_template
from flask import make_response
import pdfkit

app = Flask(name)

@app.route("/")
def index():
name = "Giovanni Smith"
html = render_template(
"certificate.html",
name=name)
pdf = pdfkit.from_string(html, False)
response = make_response(pdf)
response.headers["Content-Type"] = "application/pdf"
response.headers["Content-Disposition"] = "inline; filename=output.pdf"
return response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment