"""Utilities for generating a PDF of an HTML page.""" from jinja2 import Environment, FileSystemLoader, select_autoescape import pdfkit def generate_pdf(params: dict) -> bytes: """PDF generation from params via html template.""" jinja_env = Environment( loader=FileSystemLoader('payee/templates'), autoescape=select_autoescape() ) template = jinja_env.get_template('tax_details.html') page_options = { 'page-size': 'A4', 'margin-top': '0.5in', 'margin-right': '0.6in', 'margin-bottom': '0.5in', 'margin-left': '0.5in', 'encoding': 'UTF-8', } pdf_bytes = pdfkit.from_string(template.render(**params), options=page_options) return pdf_bytes