bits-to-dead-trees
🖥 -> 🌲 -> 📄 -> 🖨
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.
Setup
Requirements
- Node 22+
- npm
Installation
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.
Development
- After updating the
playwright
dependency, you should run npm 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
Server
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",
"pdfOptions": {},
"gotoOptions": {},
"browserContextOptions": {}
}
The response is the PDF file.
Docker
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:v2.20.0
ports:
- 8000:8000