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 →
PDF from a Stripe webhook
Generate a branded invoice the moment a payment succeeds, then store the URL or email it to the customer.
Read guide →
PDF in Angular
An HttpClient service and component template. No client-side library that falls apart on complex layouts.
Read guide →
PDF in Azure Functions
Node.js and Python examples with async delivery and Application Settings. No headless browser in the function.
Read guide →
PDF in Convex
Render from a Convex action and store the URL in your database. Scheduled jobs and real-time queries included.
Read guide →
PDF in Directus
Export any collection item using Flows, a Hook extension, or the Directus JS SDK.
Read guide →
PDF in Electron
Call from the main process and save locally or get a sharable URL. Sidesteps printToPDF's limitations.
Read guide →
PDF in Fastify
One fetch call from any route. Stream the bytes, store for a URL, or wrap it in a plugin decorator.
Read guide →
PDF in Hono
Works the same on Cloudflare Workers, Bun, Deno, and Node. Stream bytes or return a stored URL.
Read guide →
PDF in Inngest
Render inside a durable step, with automatic retries when the call fails.
Read guide →
PDF in Make
The HTTP module, wired to Google Sheets, Airtable, HubSpot, or any other Make app.
Read guide →
PDF in n8n
The HTTP Request node, or the official community node. Works on n8n Cloud and self-hosted.
Read guide →
PDF in Payload CMS
A REST endpoint or afterOperation hook that exports any collection document as a styled PDF.
Read guide →
PDF in Strapi
Custom routes, lifecycle hooks, or direct API calls against your content entries.
Read guide →
PDF in Supabase Edge Functions
Triggered by a database webhook or a Stripe event, storing the document URL back in your tables.
Read guide →
PDF in Svelte
A SvelteKit server route that streams the PDF, plus the component button that triggers it.
Read guide →
PDF in Tauri
A Tauri command in Rust that keeps your API key out of the webview. Works on every platform.
Read guide →
PDF in Temporal
Rendering as an activity in a long-running workflow, with retries and durable state.
Read guide →
PDF in WordPress
wp_remote_post or curl, including WooCommerce invoices on payment. No plugin required.
Read guide →
PDF in Zapier
Webhooks by Zapier or Code by Zapier, driven by Stripe payments, form submissions, or CRM events.
Read guide →
PDF with tRPC
A type-safe procedure with Zod-validated input for any Next.js or T3 Stack app.
Read guide →
Ready to render?
Get an API key and render your first PDF in minutes. 100 free documents a month, no card required.
Get your API key →