Automatically straighten crooked scanned PDF pages, improve OCR accuracy, and fine-tune the angle by hand. Runs entirely in your browser — nothing is uploaded.
Drop your PDF to straighten crooked pages
Click to browse or drag & drop
🔒 Your files never leave your device — detection and correction both run locally in your browser.
TL;DR
Step By Step
No install, no account — three steps in your browser tab.
Drag your scanned file into the box above, or click to browse. Nothing uploads to a server — the file is read directly by your browser.
Every page is analyzed automatically. Check the dashboard and per-page cards, fine-tune any angle with the slider, or skip pages that don't need correction.
Click "Straighten All & Download." Your corrected PDF — and an optional JSON processing report — downloads instantly with no watermark.
Why PDFcrest
Automatic detection with manual override, not a black box.
Every page gets its own detected angle and confidence score — a batch scan doesn't need to share one global rotation.
Not fully happy with an auto-detected angle? Drag the -15° to +15° slider and watch the before/after preview update live.
Detection and correction both run in your browser tab using pdf.js and pdf-lib. Your file is never transmitted anywhere.
Fast for a quick pass, Balanced for everyday scans, or High Precision for archival-quality accuracy — your choice, page by page.
Drag the divider on any page to compare the original scan against the corrected version before you commit to a download.
Pages that don't need correction are copied through untouched from the original file — only tilted pages get re-rendered.
Comparison
| Feature | PDFcrest | Adobe Acrobat | Typical Online Tool |
|---|---|---|---|
| Price | Free, unlimited | Subscription required | Free tier capped |
| Signup required | No | Account required | Often required |
| Per-page angle detection | Yes, with confidence score | No built-in deskew tool | Rarely available |
| Manual angle override | -15° to +15° live slider | N/A | Usually none |
| Before/after preview | Split-view comparison | N/A | Rarely available |
| File privacy | 100% browser-based | Desktop app or cloud | Server upload typical |
| Detection modes | Fast / Balanced / High Precision | N/A | Fixed, no options |
| Watermark on output | Never | Never | Common on free tiers |
Use Cases
Straighten phone-scanned lecture notes, journal articles, and library photocopies before archiving or citing them.
Clean up tilted contracts, filings, and evidence scans so they read cleanly and OCR reliably for e-discovery.
Digitize historical records and forms from flatbed and sheet-fed scanners without re-scanning misaligned batches.
Straighten patient forms and employee records so scanned files stay legible and privacy-compliant since nothing leaves the browser.
Fix crooked receipt and invoice scans in bulk before running them through OCR for expense tracking.
Correct book and periodical scans distorted by page curvature or hand positioning during digitization projects.
Workflow Recipes
Deskewing is rarely the only step — here's how it usually fits into a real scan-cleanup pipeline.
A page scanned sideways needs a 90° flip before a few degrees of tilt correction makes sense.
Cropping a still-tilted page trims an uneven margin — straighten first so the crop box lines up with the page edge.
Text recognition engines assume roughly horizontal lines — straightening first measurably improves extraction accuracy.
A stack from a sheet-fed scanner often mixes blank sheets with tilted pages — drop the empties, then straighten what's left.
Corrected pages are re-rendered as images — compressing afterward keeps email attachments and uploads small.
What People Say
"Scanned 40 pages of a contract with my phone and half were tilted. This straightened every page automatically and OCR worked so much better afterward."
Priya Nair
"The manual angle slider saved me on a couple of pages the auto-detect got slightly wrong. Before/after preview made it easy to check before downloading."
Daniel Wu
"Runs entirely in the browser, which mattered a lot since these were client files I couldn't upload anywhere. Straightened a whole box of scanned receipts."
Angela Ferreira
Related Searches
How It Works
"Skew" is the small rotation a page picks up when it isn't perfectly aligned with the scanner bed, the sheet-feeder rollers, or the camera in a phone-scanning app. A flatbed scanner tilts a page by a degree or two when it's placed even slightly off-square; automatic document feeders introduce skew when paper shifts as it's pulled through; phone cameras add skew from any angle between the lens and the page. None of this is usually visible to the naked eye at a glance — a 2-4° tilt looks almost normal on screen — but it's enough to measurably hurt OCR accuracy, since text-recognition engines are tuned to expect roughly horizontal lines of text.
PDFcrest's deskew tool finds that tilt using a technique called projection-profile analysis. Each page is converted to grayscale and reduced to pure black-and-white using Otsu's method, a standard algorithm that automatically finds the brightness threshold separating ink from background. From there, the tool tests a range of candidate rotation angles between -15° and +15°: for each candidate angle, it rotates the coordinates of every dark pixel and counts how many land in each horizontal row. When a candidate angle matches the page's true tilt, rows of text stack up sharply — lots of dark pixels in the rows that contain a text baseline, very few in the gaps between lines — which shows up as a high-variance row histogram. The angle that produces the sharpest, most peaked histogram is the detected skew. The search runs coarse-to-fine (a wide pass in large steps, then progressively narrower passes around the best candidate) so it converges quickly without brute-forcing every fraction of a degree from the start.
Once an angle is chosen, correcting it is comparatively simple: the page is rotated by the opposite angle around its own center, with the small triangular corners that rotation exposes filled in white to match a typical scanned page background. Pages that come back essentially flat (within 0.3°) are left as the original vector page rather than being redrawn as an image, so documents that are already straight lose no quality at all. The net effect for OCR is straightforward — text-recognition software segments a page into lines and characters far more reliably when those lines are actually horizontal, so straightening a page before running OCR (see the OCR PDF tool) typically produces cleaner, more complete extracted text than running OCR on the crooked original.
Under the Hood
These are the real constants and passes used by the detector running on this page — not marketing copy.
Binarize: gray = 0.299R + 0.587G + 0.114B
threshold = otsuThreshold(histogram)
Search: for angle in [-15° .. +15°]:
rotate dark-pixel coords by angle
bin into rows, score = variance(rowCounts)
bestAngle = argmax(score) // coarse → fine, 2-3 passes
Confidence = clamp( (bestScore - meanScore) / stdDevScore * 11, 3, 99 )
Correction = bestAngle // same sign — applied via same-size canvas rotation, white fill
Output = 200 DPI (2.78×), JPEG quality 0.92, flat pages kept as vector| Parameter | Value | Why |
|---|---|---|
| Search range | ±15° | Covers essentially all real-world flatbed/feeder/phone-scan tilt; matches the manual slider's range |
| "Already straight" threshold | 0.3° | Below this, rotating would add JPEG re-encoding noise for no visible benefit |
| Fast mode | maxDim 260px, 1 pass, 1.0° step | Quickest scan of the angle space for large batches |
| Balanced mode (default) | maxDim 380px, 2 passes (1.0° → 0.15°) | Good accuracy/speed trade-off for everyday scans |
| High Precision mode | maxDim 520px, 3 passes (0.75° → 0.1° → 0.02°) | Archival-quality accuracy; used automatically by the per-page "Recalculate" button |
| Output resolution | 200 DPI (2.78× scale) | Matches common OCR-readiness guidance without producing oversized files |
| Output encoding | JPEG, quality 0.92 | Balances file size and visual quality for rasterized scan pages |
FAQ
References & Further Reading
Last updated: