🖥 -> 🌲 -> 📄 -> 🖨
Exposes a web server with a single endpoint to take in a URL and create a PDF out of that. It's using Playwright in the background for this.
- Node 16+
- npm
git checkout https://github.com/rmehner/bits-to-dead-trees
cd bits-to-dead-trees
npm install
npm start
to start the server. It'll listen to port 8000 on localhost by default.
- After updating the
playwright
dependency, you should runnpm run update-schemas
to make sure that the server knows about new PDF options - Use
npm run start:dev
to start everything in dev mode with build watch and friends
The server exposes the /pdf
endpoint that listens to a POST request and expects a JSON body:
{
"url": "https://your-target-url.com/site/you/want/a/pdf/of",
"options": {}
}
options
are the options Playwright knows about PDF: https://playwright.dev/docs/api/class-page#page-pdf. We pass them to Playwright directly, so please refer to their docs.
The response is the PDF file.
Versions are automatically build as Docker images and are available on GitHub's package registry
If you want to use it internally with docker-compose, this should give you a good idea to start:
services:
pdf:
image: ghcr.io/rmehner/bits-to-dead-trees:v1.0.0
ports:
- 8000:8000