"""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