github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/weasyprint_docker/webapp/app.py (about) 1 """ Implémente un serveur très simple, qui transforme le contenu 2 d'une requête POST en pdf. """ 3 4 import cairocffi 5 import flask 6 import weasyprint 7 8 app = flask.Flask(__name__) 9 10 11 @app.route("/", methods=["GET", "POST"]) 12 def index(): 13 if flask.request.method == "GET": 14 return "Serveur html to pdf" 15 elif flask.request.method == "POST": 16 b = flask.request.get_data() 17 css = weasyprint.CSS(string=""" 18 * { 19 font-family: Free Sans; 20 } 21 """) 22 return weasyprint.HTML(string=b).write_pdf(presentational_hints=True, stylesheets=[css]) 23 24 25 @app.route("/version") 26 def versions(): 27 return f""" 28 Weasyprint {weasyprint.__version__} 29 Cairocffi {cairocffi.version} 30 Cairo (lib) {cairocffi.cairo_version_string()} 31 """ 32 33 34 if __name__ == '__main__': 35 app.run(host='0.0.0.0')