Guides
Generate PDFs in any language
Choose your stack. Each guide shows the minimal code to turn an HTML string or URL into a PDF using a real render engine, with fonts and page breaks handled.
Add page numbers to a PDF
Running headers and footers with .pageNumber, .totalPages, .date substitution. Works on any page size or margin.
Read guide →
Export a React component to PDF
Render your component to HTML and stream back a real PDF. No html2canvas, jsPDF, or rewriting your UI in PDF primitives.
Read guide →
PDF in Next.js
Route handler that posts HTML to a render API and streams the PDF back. No browser binary in your bundle.
Read guide →
PDF in Node.js
Three lines of fetch. Works in Express, Fastify, and bare Node 18+.
Read guide →
PDF in Python
FastAPI endpoint using httpx. Drop the WeasyPrint dependency.
Read guide →
PDF in Django
Django view that returns a streaming PDF response with no extra dependencies.
Read guide →
PDF in Go
net/http client that streams the PDF response. No external packages required.
Read guide →
PDF in Java
Spring Boot controller using RestTemplate. Replaces iText and PDFBox.
Read guide →
PDF in Laravel
Laravel controller using Http::post. Drop the dompdf or snappy dependency.
Read guide →
PDF in Rails
Rails controller using Net::HTTP. No wkhtmltopdf binary to install.
Read guide →
PDF in PHP
Plain PHP using file_get_contents. Works with any framework.
Read guide →
PDF in Ruby
Ruby module using Net::HTTP from the standard library.
Read guide →
PDF in Rust
Axum handler using reqwest. Async, typed, no browser binary to manage.
Read guide →
PDF in C#
ASP.NET Core controller using IHttpClientFactory. Replaces PuppeteerSharp.
Read guide →
PDF in .NET
Minimal API and MVC with Polly resilience. Replaces DinkToPdf.
Read guide →
PDF in Flask
Flask route using requests. Works with Jinja2 templates and no extra dependencies.
Read guide →
PDF in Kotlin
OkHttp, Spring WebClient, and Ktor examples. No Chromium binary in your JVM app.
Read guide →
PDF in Express
Express route that returns a PDF response. Drop the html-pdf or puppeteer dependency.
Read guide →
PDF in FastAPI
FastAPI endpoint using httpx. Async-native, no WeasyPrint or headless browser needed.
Read guide →
PDF in Spring Boot
Spring Boot controller and WebClient. Replaces Flying Saucer, iText, and PDFBox.
Read guide →
PDF in NestJS
Injectable PdfService and controller. No Puppeteer process, no wkhtmltopdf binary.
Read guide →
PDF in Deno
fetch is built in, nothing to install. Works on Deno Deploy and Deno.serve with --allow-net only.
Read guide →
PDF in Bun
Bun.serve handler that streams the PDF straight to the client. No binary to install, no npm package to add.
Read guide →
PDF in Elixir
Phoenix controller using Req or HTTPoison. One HTTP call replaces the usual PDFKit/wkhtmltopdf approach.
Read guide →
PDF in Remix
Resource route that returns a PDF response from a loader. No Puppeteer, no CLI tools.
Read guide →
PDF in SvelteKit
SvelteKit +server.ts endpoint that proxies the render and streams the PDF back. Works on any adapter.
Read guide →
PDF in Vue.js
Node.js or Nuxt Nitro server route that calls the render API. No jsPDF or canvas workarounds.
Read guide →
PDF in Nuxt.js
Nuxt server API route using defineEventHandler. One file, typed, works with Nuxt 3 and Nitro.
Read guide →
PDF in Astro
Astro API endpoint that proxies the render. Works with any Astro adapter including SSR and serverless.
Read guide →
PDF in AWS Lambda
No Chromium layer, no wkhtmltopdf binary. One HTTP call keeps your Lambda small and cold-start fast.
Read guide →
PDF in Cloudflare Workers
Fetch the render API from a Worker. Stream the PDF back or store it in R2. Works with Hono too.
Read guide →
PDF in Vercel
Route Handler or Edge Function. No browser binary in your bundle, instant cold starts, works on free plans.
Read guide →
PDF in GitHub Actions
Generate PDFs in CI with no runner dependencies. Attach to releases, upload as artifacts, or post a stored URL to Slack.
Read guide →
PDF in Docker
No browser binary in your image. Alpine compatible. Drop 200 MB of Chromium dependencies with one HTTP call.
Read guide →
Ready to render?
Get an API key and render your first PDF in minutes. 500 free documents a month, no card required.
Get your API key →