PDFNinja

Repair PDF

5-strategy forensic recovery · 100% on-device

LOCAL PROCESSINGNO UPLOADZERO TELEMETRY

Drop your damaged PDF here

or click to browse files

SUPPORTS ALL PDF VERSIONS

Fully local. Damaged PDFs never leave this device. All 5 strategies run in-browser via WebAssembly — no server, no upload, no telemetry.

Recovery strategy

Handles Damage

Truncated downloads, broken xref tables, missing %%EOF, corrupt streams — all covered.

5 Strategies

Escalate from tolerant reparse all the way to full raster and text-only fallback.

Live Diagnosis

Instant header, trailer, xref and page-count report before you even start.

100% Private

Every strategy runs in your browser. No file ever hits a server.

How to Repair a PDF

1

Upload the damaged file

Drop the file or click to browse. It stays on your device.

2

Read the diagnosis

Header, trailer, xref and page-count status appear instantly.

3

Pick a strategy

Start with Rebuild. Escalate to Salvage → Raster → Deep Scan → Text if needed.

4

Download

Save the recovered PDF and open it in any reader.

Frequently Asked Questions

Why does my PDF fail to open?

Common causes: interrupted downloads (truncated file, no %%EOF), a rewritten xref table pointing to the wrong offsets, corrupted content streams, or non-PDF junk prepended by a broken upload.

Which strategy should I try first?

Always Rebuild XRef. It fixes ~80% of real-world damage without touching page content. Only escalate if it fails or the output looks wrong.

When should I use Raster Rescue?

When Rebuild and Salvage both fail, or when pages render as garbled text. It ignores the object graph entirely and rebuilds from rendered pixels — you lose selectable text but keep the visual document.

What is Deep Scan for?

Files that were cut off mid-download or have junk prepended (e.g., saved from a broken email). Deep Scan locates the real PDF boundaries at the byte level and trims everything outside them.

Is my file uploaded anywhere?

No. Every strategy runs locally in your browser via WebAssembly. Nothing is sent to a server.

Related Tools