Guides
Complete, runnable programs for the things people build with snapdok.io — one page per language, HTTP library and task. Every sample uses real parameters from the API reference and handles the errors that actually happen. Guides covering fillable PDF forms — the capability snapdok.io is built around — are marked in the lists below. More languages and libraries are added in batches.
Python — requests
- Convert an HTML form to a fillable PDF · fillable PDF
- Get a fillable PDF of just the form — no nav, no footer · fillable PDF
- Generate a fillable invoice PDF from a web page · fillable PDF
- Turn an online registration form into a fillable PDF · fillable PDF
- Wait for a JavaScript-rendered form, then make it fillable · fillable PDF
- Verify a fillable PDF render without opening the file · fillable PDF
- Convert a URL to PDF
- Take a full-page screenshot
- Capture very tall pages as numbered tiles
- Take a retina-quality (2x) screenshot
- Take a JPEG screenshot at a custom viewport size
- Use the 24-hour render cache to cut costs
- Take a screenshot of a URL
- Capture a JavaScript-heavy page after it settles
- Wait for a specific element before capturing
- Add page numbers and headers to a PDF
Python — httpx
- Convert a URL to PDF
- Take a full-page screenshot
- Capture very tall pages as numbered tiles
- Take a retina-quality (2x) screenshot
- Take a JPEG screenshot at a custom viewport size
- Use the 24-hour render cache to cut costs
- Take a screenshot of a URL
- Capture a JavaScript-heavy page after it settles
- Wait for a specific element before capturing
- Add page numbers and headers to a PDF
Node.js — built-in fetch
- Convert an HTML form to a fillable PDF · fillable PDF
- Get a fillable PDF of just the form — no nav, no footer · fillable PDF
- Generate a fillable invoice PDF from a web page · fillable PDF
- Turn an online registration form into a fillable PDF · fillable PDF
- Wait for a JavaScript-rendered form, then make it fillable · fillable PDF
- Verify a fillable PDF render without opening the file · fillable PDF
- Convert a URL to PDF
- Take a full-page screenshot
- Capture very tall pages as numbered tiles
- Take a retina-quality (2x) screenshot
- Take a JPEG screenshot at a custom viewport size
- Use the 24-hour render cache to cut costs
- Take a screenshot of a URL
- Capture a JavaScript-heavy page after it settles
- Wait for a specific element before capturing
- Add page numbers and headers to a PDF
Node.js — axios
- Convert a URL to PDF
- Take a full-page screenshot
- Capture very tall pages as numbered tiles
- Take a retina-quality (2x) screenshot
- Take a JPEG screenshot at a custom viewport size
- Use the 24-hour render cache to cut costs
- Take a screenshot of a URL
- Capture a JavaScript-heavy page after it settles
- Wait for a specific element before capturing
- Add page numbers and headers to a PDF
PHP — cURL extension
- Convert an HTML form to a fillable PDF · fillable PDF
- Get a fillable PDF of just the form — no nav, no footer · fillable PDF
- Generate a fillable invoice PDF from a web page · fillable PDF
- Turn an online registration form into a fillable PDF · fillable PDF
- Wait for a JavaScript-rendered form, then make it fillable · fillable PDF
- Verify a fillable PDF render without opening the file · fillable PDF
- Convert a URL to PDF
- Take a full-page screenshot
- Capture very tall pages as numbered tiles
- Take a retina-quality (2x) screenshot
- Take a JPEG screenshot at a custom viewport size
- Use the 24-hour render cache to cut costs
- Take a screenshot of a URL
- Capture a JavaScript-heavy page after it settles
- Wait for a specific element before capturing
- Add page numbers and headers to a PDF
Ruby — Net::HTTP
- Convert an HTML form to a fillable PDF · fillable PDF
- Get a fillable PDF of just the form — no nav, no footer · fillable PDF
- Generate a fillable invoice PDF from a web page · fillable PDF
- Turn an online registration form into a fillable PDF · fillable PDF
- Wait for a JavaScript-rendered form, then make it fillable · fillable PDF
- Verify a fillable PDF render without opening the file · fillable PDF
- Convert a URL to PDF
- Take a full-page screenshot
- Capture very tall pages as numbered tiles
- Take a retina-quality (2x) screenshot
- Take a JPEG screenshot at a custom viewport size
- Use the 24-hour render cache to cut costs
- Take a screenshot of a URL
- Capture a JavaScript-heavy page after it settles
- Wait for a specific element before capturing
- Add page numbers and headers to a PDF
By use case
- Send invoices your customers can fill in
- Paper registration forms that match your online form
- Rental application forms tenants can type into
- Patient intake forms, from your portal to the clipboard
- Permission slips parents can fill on a phone
- Claim forms your policyholders can actually complete
Articles
- wkhtmltopdf is archived: the 2026 migration guide — and the feature most replacements quietly drop · 2026-08-16
- What replaces wkhtmltopdf --enable-forms? We ran one form through each option and counted the fields · 2026-08-17
- CVE-2022-35583: the wkhtmltopdf SSRF that will never be patched — and how to contain it if you cannot migrate this quarter · 2026-08-17
- Every wkhtmltopdf flag and its 2026 equivalent — and the five defaults that flip on you silently · 2026-08-17
- Your PDF header is not missing — five reasons Chromium put it where you cannot see it · 2026-08-17
- Your landscape: true is losing to a line of CSS — and preferCSSPageSize is not the fix · 2026-08-17
- Your outline: true produced a byte-identical PDF — Chromium will not write bookmarks into an untagged file · 2026-08-17
- Your images downloaded fine and the PDF still has none of them — seven measured causes, and the check that names yours · 2026-08-17
- Your PDF form field shows 王 where somebody typed 王鑫 — CJK text, font subsets, and the glyph that was never embedded · 2026-08-17
- WinAnsi cannot encode "张" (0x5f20) — why pdf-lib throws inside save(), and why the smallest fix silently blanks the field · 2026-08-17
- WeasyPrint --pdf-forms with Chinese: the subsetting problem is already solved, and the two that are left are yours · 2026-08-17
- How many characters does your "Chinese font" actually have? 3,755 is a very popular answer — and it cannot spell 鑫 · 2026-08-17
- Chromium's tagged PDF fails PDF/UA-1 on four rules out of 106 — here is exactly which four, and what each one costs · 2026-08-17
- Section 508 does not require PDF/UA — the Access Board proposed exactly that, and then deleted it from the final rule · 2026-08-17
- How to check whether a PDF is accessible with veraPDF — the install, the flags, the exit codes, and the four things a green run does not tell you · 2026-08-17
- HTML to PDF accessibility checklist — the markup that moves a PDF/UA validator, the markup that does nothing, and where HTML stops · 2026-08-17