PDF Object Inspector (Developer Tool)
Every object, stream and revision of a PDF — the way a PDF developer sees it.
Object
Stream data
Overview
Signatures
Active content
Revisions and cross-reference sections
Trailer
Page tree
| Page | Object | Size | Rotate | Content streams |
|---|
Objects
An object number opens that object; words match keys, types and names.
| Object | Type | Kind | Stream size | Stored at | Revision |
|---|
About the PDF Object Inspector (Developer Tool)
Open a PDF and browse its internals as defined in ISO 32000-1 §7: the header and version, the trailer, every cross-reference section (tables, cross-reference streams and hybrid files), each incremental update with the objects it changed, the document catalog, the page tree and every object. Dictionaries are pretty-printed with clickable references, so you can follow /Parent, /Resources or /Contents from object to object.
Streams are decoded (Flate, LZW with PNG and TIFF predictors, ASCIIHex, ASCII85, RunLength), shown as text or hex, and content streams are split into operators with their meaning — re Rectangle, Tf Set text font and size. Raw and decoded streams can be downloaded, JPEG images previewed, and scripts, actions and attachments are listed so you can spot active content. The file is read in your browser and never uploaded.
How to use it
- Choose a PDF or drag it onto the box. The overview, revisions, trailer, pages and the object list appear straight away.
- Click any reference such as
12 0 R, a page or an object number to open that object. Back returns to the previous one. - For a stream, switch between Text, Operators and Hex, preview images, or download the data as stored or decoded.
- Search the object list by number (
12,12 0 R) or by a key, type or name (Font,/MediaBox,Helvetica), or filter it to pages, fonts, images or annotations.
Examples
<< /Type /Page /Parent 2 0 R /MediaBox [0 0 595.28 841.89] /Contents 5 0 R /Resources << /Font << /F1 7 0 R >> >> >>
Every N 0 R is a link to that object.
BT · Begin text object /F1 12 Tf · Set text font and size 72 770 Td · Move text position (Hello) Tj · Show text ET · End text object
Revision 1 · original file · covered by signature “Signature1” Revision 2 · update 1 · changed objects 3, 18–19
Changes saved as incremental updates leave the earlier revisions in the file; a signature covers the bytes up to the end of its revision.
Common uses
- Debugging a PDF generator: checking the objects, fonts and content streams it writes.
- Finding out why a PDF renders differently in two readers, or why a form field misbehaves.
- Seeing what changed in each incremental update — including after a digital signature.
- Checking a PDF from an unknown sender for JavaScript, launch actions or attachments before opening it in a full reader.
- Learning the PDF format with real files next to the specification.
How a PDF is put together
A PDF file is a header (%PDF-1.7), a body of numbered objects (12 0 obj … endobj), a cross-reference section that lists the byte offset of every object, and a trailer that names the document catalog (/Root). A reader starts at the end of the file: startxref gives the offset of the last cross-reference section, whose trailer may point (/Prev) to an earlier one.
Since PDF 1.5 the cross-reference can itself be a compressed stream, and small objects can be packed into object streams — this tool shows such objects as “in object stream 12”. A hybrid file has both a classic table and a cross-reference stream (/XRefStm) so that old readers still open it.
Incremental updates and signatures
Programs that save “in place” append the changed objects and a new cross-reference section to the end of the file instead of rewriting it. Each such update is a revision here, with the objects it added or changed and those it deleted. The older revisions stay inside the file and can still be read.
A digital signature covers the file from the first byte to the end of the revision it was added in (its /ByteRange). When a later revision exists, the document was changed after signing — that may be fine (for example filling in a later signature field) or not. The overview lists every signature field and which revision it covers.
Active content
The overview lists objects with JavaScript, launch actions, an open action, additional actions, embedded files, submit-form actions, links to other files, web links, XFA forms and rich media. Finding them doesn’t mean a file is harmful — forms often use scripts — but a document you didn’t expect to be interactive shouldn’t have any.
Limitations
- Encrypted PDFs show their structure, but strings and streams are encrypted and objects inside object streams can’t be read. Save an unprotected copy with Unlock PDF and inspect that.
- Image formats inside PDFs (JPEG 2000, JBIG2, CCITT fax) are not decoded; download them as stored. JPEG images and 8-bit grey, RGB and CMYK pixels are previewed.
- The operator view lists the first 2,000 operators of a stream (the first 50,000 are analysed); download the decoded stream for all of it.
- Damaged files are repaired the way readers do it — by scanning for objects — and the overview says so.
- This is a viewer: nothing in the file is changed.
Privacy
Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.
Frequently asked questions
Is my PDF uploaded?
No. The file is read and decoded by your browser on your device. Nothing is sent to MySmartCoPilot or anyone else.
Why are there objects that no page uses?
Objects can be left over from earlier revisions, belong to the document level (catalog, outlines, metadata, forms) or simply be unused. Writers that save incrementally never remove old objects; a full save (for example with PDF Compressor) drops the unused ones.
What does “free” mean in the cross-reference table?
A free entry marks an object number that isn’t in use — deleted in an update, or never used. Object 0 is always the head of the free list.
Why does a cross-reference entry point to byte 0?
Some writers list objects they never wrote with offset 0. PDF readers treat such an object as missing, and so does this tool.
Can I edit objects here?
No, it only reads. To change document properties use PDF Metadata Viewer & Editor.