Need help implementing this in a real project?
We help businesses with:
- Web Development
- Ecommerce Integrations
- Automation
- Technical SEO
This runs the opposite direction from what the name might suggest: it takes a clean, digitally-generated PDF and makes it look like it came out of a physical flatbed scanner, adding page skew, grain noise, and a grayscale or color pass. It doesn't extract text or perform OCR - the output is still a PDF made of rendered page images, just styled to look scanned.
When you'd use this
Generating a realistic-looking "scanned" sample document to test an upload flow, OCR pipeline, or document-verification feature without needing an actual physical scanner.
Producing a mockup of a scanned form or receipt from a digitally created PDF for a demo or design reference.
What the controls do
Flatbed Skew sets the rotation angle applied to each rendered page. The live preview uses the exact angle you set; the final export applies a randomized skew per page within that range, so a multi-page document doesn't come out with every page tilted identically.
Scanner Noise controls the density of random per-pixel grain added after rendering - higher values add more visible speckling. Color Output Mode switches between a grayscale pass (with added contrast and brightness) and a lighter color-preserving pass.
Frequently asked questions
Does this convert a scanned document into editable text?
No - this tool doesn't do OCR or text extraction at all. It goes the other way: it takes a normal PDF and adds visual scan artifacts (skew, grain, color shift) to make it look like a physical scan.
Is my PDF uploaded to a server?
No. The file is read locally, rendered page-by-page on an in-browser canvas using pdf.js, and recompiled into the output PDF with jsPDF - the document itself is never transmitted anywhere. Only the pdf.js worker script, a static library file, is loaded from a CDN.
Why does the exported PDF look different from the live preview?
The preview only renders and processes the first page at a fixed skew angle. The full export processes every page individually, at a higher render scale, with a randomized skew per page - so the exported file will look slightly different (and more varied page-to-page) than the single-page preview.
