Categories
Self-Hosted Open Source Developer Tools Automation API PDF Document Processing MicroservicesStars
Forks
Watchers
Developer links
Gotenberg
Send a document, receive a PDF: Gotenberg is a Docker-based, stateless HTTP conversion API trusted in production by thousands of companies and adopted by notable open-source projects. Send files as multipart/form-data, get a PDF back; Chromium, LibreOffice, and fonts are the container's problem, not yours. Headless Chromium handles URLs, HTML templates, and Markdown with pixel-perfect browser rendering: it executes JavaScript, loads web fonts, waits for network idle, a JS expression, or a DOM selector before rendering SPAs, and accepts injected cookies and HTTP headers for authenticated pages. LibreOffice converts 100+ office formats - .docx, .xlsx, .pptx, and legacy formats - with page-range extraction and PDF/A archival conformance. Built-in PDF engines round out the pipeline in every image variant: merge, split, rotate, flatten, encrypt, watermark, stamp, read/write metadata and bookmarks, plus Factur-X/ZUGFeRD e-invoicing and PDF/UA accessibility compliance. Screenshots of URLs and HTML come from the same endpoints. Zero-transfer pipelines stream files directly between S3, MinIO, or GCS presigned URLs and Gotenberg, bypassing your application entirely, and webhooks enable async processing. Statelessness means horizontal scaling is trivial - run as many replicas as your conversion volume demands. Three image variants (full, Chromium-only, LibreOffice-only) trim the footprint to what you actually use.
Benefits
- No Browser Babysitting
- Chromium, LibreOffice, and font management live inside the container - your app just makes HTTP calls.
- Renders Like a Real Browser
- JavaScript executes, web fonts load, and SPAs render after waiting for network idle or a DOM selector - invoices look exactly as designed.
- Per-PDF API Fees Disappear
- DocRaptor and PDFShift meter every conversion; a self-hosted Gotenberg converts unlimited documents at flat infrastructure cost.
- Scales by Adding Replicas
- Stateless design means concurrency problems are solved by running more containers behind a load balancer.
Features
- Chromium Rendering
- URL, HTML, and Markdown to PDF with JS execution, wait conditions, custom headers, and cookies.
- LibreOffice Conversion
- 100+ office formats including .docx, .xlsx, and .pptx, with page ranges and PDF/A output.
- PDF Manipulation
- Merge, split, rotate, flatten, encrypt, watermark, stamp, and edit metadata and bookmarks.
- Compliance Formats
- PDF/A archival, PDF/UA accessibility, and Factur-X/ZUGFeRD e-invoicing.
- Zero-Transfer Pipelines
- Fetch from and upload to S3, MinIO, or GCS presigned URLs without touching your app.
- Async and Screenshots
- Webhook-based async processing plus PNG screenshots of URLs and HTML.