PDF debugger
See inside a PDF: its objects, streams and form fields. Your PDF stays in your browser.
Drop a PDF here
Or open an example (Form W-9). Your PDF stays in your browser.
What you can see
The object tree
Start at the trailer and open any object: the catalog, the pages, fonts, images and annotations. A reference takes you to the object it points to.
Streams, decoded
Read a page content stream as text, and see any stream or string as text, hex or Base64. Download fonts, images and other streams as files.
Form fields
A list of the PDF's form fields, with each field's full name, type, value and options: the names you fill the PDF with from code.
Encrypted PDFs
A PDF that only restricts editing opens straight away. For one that needs a password to open, the debugger asks for it.
Damaged files
When a PDF's cross-reference table is broken, the debugger rebuilds it, as PDF viewers do, and lists the problems it worked around.
Private
The PDF is read by code running in your browser. Nothing is uploaded, so you can open confidential documents.
Filling a PDF from code?
The Form fields view gives you the names to fill the PDF with. Upload the same PDF to DocSpring, and the PDF filling API fills it from your JSON. When a filled PDF looks wrong, the debugger shows you why.
More of the tools we use on strange PDFs: How to debug weird PDFs.
The debugger is adapted from pdf-debugger, an open source project by Yevhenii Hyzyla, and reads PDFs with the parser from Mozilla's PDF.js.
Questions about the PDF debugger
More free toolsWhat does a PDF debugger show?
A PDF is a tree of objects: dictionaries, arrays, names, numbers, strings and streams, joined by references. The debugger opens that tree from the trailer, so you can see how the file is built: its pages, fonts, images, annotations and form fields, and the PDF syntax of each object.
Is my PDF uploaded?
No. The debugger runs in your browser and reads the file there. Nothing from the PDF is sent to DocSpring or anyone else.
How do I find a PDF form's field names?
Open the PDF and choose Form fields. The table lists each field's full name, which is the name you fill it with from code, with its type, its value, and the values that check a box or pick an option. "Show in tree" opens the field's object.
Why does a filled PDF look different in another viewer?
A form field's value and the way it's drawn are stored separately. If the form sets NeedAppearances, each viewer draws the values itself. If the PDF also has an XFA form, Adobe Acrobat and Reader can show that instead of the fields. The Form fields view says when a PDF does either.
Can it open encrypted or damaged PDFs?
Yes. A PDF with only an owner password opens straight away, and for one that needs a password to open, the debugger asks for it. If the cross-reference table is broken, the debugger rebuilds it by scanning the file for objects, and lists the problems it found.
What is the debugger built on?
It's adapted from pdf-debugger, an open source project by Yevhenii Hyzyla, and reads PDFs with the parser from Mozilla's PDF.js. Their licenses are on our open source licenses page.
Fill your PDFs with an API
Upload a PDF form, send JSON, and get back the filled PDF. Test PDFs are free and unlimited.