PDF Cross-Reference Table Viewer
Inspect the low-level cross-reference table of any PDF file. Every indirect object is listed with its object number, generation number, kind, /Type, and /Subtype. Filter by kind or PDF type, search, sort any column, and export the result as CSV — all processed privately in your browser.
Upload a PDF to inspect its cross-reference table.
Upload a PDF to view its xref table.
Why Use Our PDF Cross-Reference Table Viewer?
Full XRef Table View
Renders every indirect object from the PDF cross-reference table in a sortable, paginated table — object number, generation number, kind, /Type, and /Subtype.
Live Search & Sort
Search across object numbers, kinds, and PDF types in real time. Sort any column ascending or descending to quickly locate specific entries.
Kind & Type Filters
Click any kind tile (Stream, Dictionary, Array…) to filter the table instantly. Also filter by /Type value to isolate fonts, images, annotations, or any other object class.
Browser-Based & Private
All xref parsing runs locally in your browser using pdf-lib. Your PDF never leaves your device — safe for confidential and sensitive documents.
Common Use Cases for PDF Cross-Reference Table Viewer
PDF Generator Debugging
When building PDF libraries or document automation pipelines, verify that your code produces the correct number and types of indirect objects in the xref table.
Document Forensics
Inspect the raw xref to detect anomalies — unexpected streams, hidden objects, or suspicious dictionary entries that would not appear in a standard PDF viewer.
File Size Optimisation
Identify large stream counts, redundant objects, or unused indirect references that inflate file size before running optimisation passes.
Compliance Auditing
Verify that a PDF produced for PDF/A or PDF/UA archiving contains no disallowed object types such as embedded JavaScript streams or external resource references.
Research & Education
Explore how a real PDF is structured at the binary object level — ideal for students learning the ISO 32000 PDF specification or developers writing PDF parsers.
Repair Tool Pre-Scan
Before attempting to repair a corrupted PDF, scan its xref table to identify which object numbers are present, missing, or have non-zero generation numbers.
Understanding the PDF Cross-Reference Table
What is the PDF cross-reference table?
Every PDF file contains a cross-reference table (xref) that acts as an index of all indirect objects in the file. Each entry records an object number, a generation number, and a byte offset pointing to where that object begins in the file stream. This index allows PDF viewers to jump directly to any object without scanning the entire file sequentially. Modern PDF files can use either a traditional xref table (a plain-text section starting with xref) or a compressed cross-reference stream (a binary stream object introduced in PDF 1.5).
How our PDF Cross-Reference Table Viewer works
- Upload your PDF — the file is parsed entirely in your browser using pdf-lib. No data is sent to any external server.
- XRef enumeration — the viewer calls
context.enumerateIndirectObjects()to walk every entry in the cross-reference table. For each entry it reads the object number, generation number, and the type of the indirect object (dictionary, stream, array, string, number, boolean, or null). For dictionaries and streams it also reads the/Typeand/Subtypekeys to classify the object as a font, image, annotation, page, and so on. - Filter, sort, and export — browse the full table, filter by object kind or /Type value, search by object number, and export the filtered result as a CSV file for further analysis in spreadsheet tools.
What the columns mean
- Obj #: the unique object number identifying this indirect object within the file. Objects are numbered from 1 upward; object 0 is reserved.
- Gen: the generation number. This is 0 for most objects; incremented when an object is reused after deletion. Non-zero generation numbers in a live document are a forensics signal worth investigating.
- Kind: the primitive type — Stream, Dictionary, Array, String, Number, Boolean, or Null. Streams and Dictionaries are the most common and carry the most semantic information.
- /Type and /Subtype: high-level PDF type identifiers. Common values include Font, XObject (with Subtype Image or Form), Page, Annot, OCG, Catalog, and Pages.
Privacy, security & availability
The cross-reference table viewer runs entirely inside your local browser session. Your PDF is never uploaded to any server, making it safe for sensitive legal, medical, and financial documents. The tool is 100% free, requires no signup, and imposes no file size or page count limits.
Related Tools
JPG to PDF
Convert JPG images to PDF instantly - Free online JPG to PDF converter
PNG to PDF
Convert PNG images to PDF instantly - Free online PNG to PDF converter
SVG to PDF
Convert SVG vector graphics to PDF - Free online SVG to PDF converter
BMP to PDF
Convert BMP bitmap images to PDF instantly - Free online BMP to PDF converter
Frequently Asked Questions About PDF Cross-Reference Table Viewer
The cross-reference table (xref) is an index that maps every indirect object number in a PDF to its byte offset in the file. PDF readers use it to locate objects without scanning the entire file. Understanding the xref table is essential for PDF debugging, repair, optimisation, and forensics.
Every PDF object has a generation number starting at 0. When an object is deleted and its object number is reused, the generation number is incremented. Most objects in a live document have generation 0. Non-zero generation numbers can indicate a PDF that has been incrementally updated or repaired.
A Dictionary is a map of PDF name-value pairs that describes a resource, page, font, or other structure. A Stream is a Dictionary with an attached binary data block — used for compressed page content, image pixels, embedded fonts, and color profiles. Streams always contain a Dictionary as their header.
No. The entire xref parsing and rendering process runs locally in your browser using JavaScript. Your PDF file never leaves your device, making it safe for confidential documents.
Yes. Type the object number into the search field and the table will filter to show only entries whose object number, kind, or type contains that value. You can also click any kind tile to filter by object type instantly.
XRef is the type of a cross-reference stream — a compressed xref table stored as a PDF stream object rather than as a plain-text section. It was introduced in PDF 1.5 and is common in PDFs created by modern tools. These entries are part of the xref structure itself rather than document content.
Yes. Click "Export Filtered CSV" to download the current filtered and sorted view of the xref table as a CSV file. The export includes all visible columns: object number, generation number, kind, /Type, and /Subtype.
Yes. The tool is completely free to use with no registration required, no file size limits, and no page count restrictions.