This is an AWS Lambda function that converts HTML pages to PDF documents using wkhtmltopdf, it implements a simple interface to read and HTML input and output PDF content.
WARNING: You must use v2.x.x tag if you are using Node.js runtime >=10.x in AWS Lambda.
Input event to this function has the following structure:
{
"html": "<!DOCTYPE html><html><head><title>HTML doc</title></head><body>Content</body></html>"
}
It yields a response in the following format:
{
"data": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7..."
}
data
is base64 encoding of the converted PDF file.
The function can be tested locally using AWS SAM CLI. You can change contents of events/example-event.json
or you can create a new file which you will give sam as an event parameter.
sam local invoke "HtmlToPdf" -e events/example-event.json
There are two ways in which these functions can be deployed to AWS.
1 - Check our npm run deploy:dev
and npm run deploy:prod
commands in package.json
and change it according to your needs. Do not forget to add environment variables (you can find it under template.yml
) to your lambda function in aws lambda edit page or running lamba update-function-configuration command. Be sure to create the following environment variable in Lambda: FONTCONFIG_PATH=/var/task/fonts
2 - Check out template.yml
file and edit according to your needs then use sam deploy
.