A CLI tool to generate PDF documents from HTML templates
"PC LOAD LETTER" - WTF does that mean?!
pip install pcloadletter
pcloadletter lets you generate a pdf document from an HTML Jinja template given some context data from the command line and/or a .yml/.json file.
usage: pcloadletter [-h] [-t TEMPLATE] [-o OUT] [-c CONTEXT_FILE] [extra_context ...]
Generate PDF file from a Jinja-rendered HTML template
positional arguments:
extra_context key=value pairs which are added to the template context (default: None)
optional arguments:
-h, --help show this help message and exit
-t TEMPLATE, --template TEMPLATE
The invoice template to render. (default: invoice.html)
-o OUT, --out OUT Destination file. (default: invoice.pdf)
-c CONTEXT_FILE, --context-file CONTEXT_FILE
A .yml or .json file containing context for the template. (default: None)
Examples:
pcloadletter --template templates/invoice.html --out invoice.pdf invoice_number=2021-001 invoice_date=`date +%Y-%m-%d`
pcloadletter --template report.html --context-file=report-data.yml addressee="Mr. M. Bolton"
For example, given a template file hello.html:
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<h1>Hello {{ target }}!</h1>
</body>
</html>and a stylesheet:
.h1 {
font-style: italic;
}we can render the pdf like so;
pcloadletter --template hello.html target="world out there"The context could have been given in a context file hello.yml;
target: world out therepcloadletter --template hello.html --context-file=hello.ymlThe above commands will generate a file invoice.pdf in the current directory. You can
change the destination using
--out=~/Documents/report.pdf