Blink PDF takes standard Markdown as input and produces a polished, print-ready PDF as output — no templating language, no HTML wrangling, no CSS stylesheets. You write the content; the engine handles the layout.Documentation Index
Fetch the complete documentation index at: https://docs.blinkpdf.io/llms.txt
Use this file to discover all available pages before exploring further.
Supported Markdown syntax
Blink PDF implements the full CommonMark specification. Every element you’d expect from a modern Markdown editor is supported out of the box:| Element | Syntax example |
|---|---|
| Headings | # H1 through ###### H6 |
| Bold | **bold** |
| Italic | *italic* |
| Unordered lists | - item |
| Ordered lists | 1. item |
| Tables | GFM pipe tables |
| Links | [label](https://example.com) |
| Images |  |
| Code blocks | Fenced ``` with language tag |
| Inline code | `code` |
| Blockquotes | > quote |
| Horizontal rules | --- |
Remote images are fetched at render time, which adds network latency on top of the ~100ms baseline. For the fastest renders, host images on a low-latency CDN or use base64-encoded data URIs.
Why you don’t need HTML, CSS, or LaTeX
Traditional PDF generation pipelines require you to write an HTML template, style it with CSS, and then pass it through a headless browser — all before the PDF even starts rendering. LaTeX-based tools add a compile step with its own syntax and error surface. Blink PDF removes all of that. The rendering engine understands Markdown semantics directly, so headings become bookmarks, bold text stays bold, and tables are typeset consistently — without a single line of CSS.How the rendering pipeline works
The pipeline is deliberately simple and deterministic:- You send a
POST /v1/renderrequest with amarkdownfield in the JSON body. - The engine parses your Markdown into a structured document tree.
- Layout and typesetting are applied — fonts are subset, Unicode is mapped, accessibility tags are injected.
- A PDF binary is streamed back in the response.
Example request
Here is a minimal Markdown document and the JSON body you’d send to render it:application/pdf binary you can stream directly to your user or save to object storage.
Tables and code blocks
Tables are fully supported using the GitHub Flavored Markdown (GFM) pipe syntax. Column alignment (:---, :---:, ---:) is respected in the rendered PDF. Blink PDF does not impose row or column limits, but very wide tables will be proportionally scaled to fit the page width.
Code blocks are rendered in a monospace typeface with syntax-aware styling. Adding a language identifier after the opening fence (e.g., ```python) enables language labeling in the output — useful for technical documentation and runbooks.
The custom engine vs. Chromium
Many PDF services spin up a headless Chromium instance, load a webpage, and screenshot it to PDF. That approach has real costs: cold start times measured in seconds, high memory usage per render, and layout behavior tied to browser internals you don’t control. Blink PDF’s engine renders Markdown natively, without a browser:| Blink PDF | Chromium-based | |
|---|---|---|
| Median render time | ~100ms | 1–5 s |
| Cold start | 0 s | 2–10 s |
| Throughput (single node) | ~30 PDFs/sec | 2–5 PDFs/sec |
| Input format | Markdown | HTML + CSS |
| Layout determinism | ✅ | ⚠️ browser-dependent |
The ~100ms median render time holds even for 100-page documents, because the engine processes the document tree in memory without spawning any subprocess or browser context.
Zero Retention
Learn how Blink PDF processes your Markdown in memory and never stores it.
Accessibility
Every PDF is PDF/UA-1 compliant with full Unicode and emoji support.