Files
hinpdof/test.py
Hadley Rich a09424b2aa
Some checks failed
Build and Publish Docker Image / build (push) Failing after 35s
Merge branch 'main' of git.nice.net.nz:hads/hinpdof
2024-12-12 13:45:27 +13:00

60 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Opens the `test.j2` HTML template and sends it to the hinpdof API service to convert
it to a PDF file and saves the result to the `test.pdf` file.
"""
import requests
from jinja2 import Environment, FileSystemLoader
# hinpdof API service openapi url: https://hinpdof.huna.me/openapi.json
def render_template(template_name, context):
"""Render the Jinja2 template with the given context."""
env = Environment(loader=FileSystemLoader("."))
template = env.get_template(template_name)
return template.render(context)
def convert_html_to_pdf(html_content):
"""Send the HTML content to the hinpdof API service to convert it to a PDF file."""
api_url = "https://hinpdof.huna.me/pdf"
api_url = "http://localhost:8000/pdf"
headers = {
"Content-Type": "application/json",
"x-secret-key": "foo",
}
data = {
"html": html_content,
}
response = requests.post(api_url, json=data, headers=headers)
response.raise_for_status()
return response.content
def save_pdf(pdf_content, output_path):
"""Save the PDF content to a file."""
with open(output_path, "wb") as pdf_file:
pdf_file.write(pdf_content)
def main():
# Render the Jinja2 template
template_name = "test.j2"
context = {} # Add any context variables needed for the template
html_content = render_template(template_name, context)
# Convert the HTML content to a PDF file
pdf_content = convert_html_to_pdf(html_content)
# Save the PDF file
output_path = "test.pdf"
save_pdf(pdf_content, output_path)
print(f"PDF file saved to {output_path}")
if __name__ == "__main__":
main()