PDFPipe

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 →