Skip to content

function61/html2pdf

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
 
 
 
 
pkg
 
 
 
 
 
 
 
 
 
 

Build status

What?

A small microservice that turns HTML into a PDF file. You can run this:

  • on AWS Lambda
  • with Docker
    • I didn't bother making a Dockerfile though, since I didn't need it. PR welcome!
  • as a standalone binary

There also exists a small client library for Go

Security

While we're confident in this project's code, ultimately this is a wrapper to wkhtmltopdf, and thus you should be aware of its status and its security considerations:

  • Do not use with untrusted HTML. Only render HTML that you control.
  • whtmltopdf uses QtWebKit that hasn’t been updated since 2012
    • Qt abandoned QtWebkit in favor or QtWebEngine which uses Chromium internally

Testing

You can start a local server process with:

$ html2pdf server

Then call it from the client:

$ export HTML2PDF_TOKEN="doesntMatter" # optionally you can put the service behind authentication
$ html2pdf client-localhost '<h1>hello world</h1>' > out.pdf

Usage from curl is also simple:

$ curl -d '{"html_base64": "PGgxPmhlbGxvIHdvcmxkPC9oMT4="}' http://localhost/render > out.pdf

Prerequisites for dev/testing

$ apt install -y libxrender1 libxext6 libfontconfig1

(Fortunately, these exist in Lambda's AMI)

Alternatives

Support / contact

Basic support (no guarantees) for issues / feature requests via GitHub issues.

Paid support is available via function61.com/consulting

Contact options (email, Twitter etc.) at function61.com

About

Small microservice for rendering HTML input to PDF

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks