PDF Stream Decoder
Inspect the raw internals of any PDF. The pdf stream decoder lists every stream object in the file, decompresses FlateDecode, LZW, ASCII85, and ASCIIHex filters, and displays the decoded PostScript-like operators - all locally in your browser, with no server upload required.
Drop a PDF here or click to browse
Unencrypted PDFs only
Upload a PDF to start inspecting its stream objects
Upload a PDF to inspect its content streams
Why Use Our PDF Stream Decoder?
Multi-Filter Stream Decoding
The pdf stream decoder automatically decompresses FlateDecode (zlib/deflate), LZWDecode, ASCII85Decode, and ASCIIHexDecode streams so you can read raw PDF operator content without any extra software.
Browse Objects by Number
Navigate the PDF object table and jump to any indirect object by number. Each stream object shows its dictionary metadata (Length, Filter, Subtype) alongside the decoded content.
100% Private - Runs in Your Browser
All PDF parsing and stream decoding runs locally in your browser using client-side JavaScript. Your PDF never leaves your device, keeping proprietary and confidential files completely secure.
Instant Developer Access, No Sign-Up
Upload any PDF and start inspecting streams in seconds - no account required, no file size limit, and completely free. Ideal for debugging, reverse engineering, and PDF development workflows.
Common Use Cases for PDF Stream Decoder
PDF Rendering Bug Investigation
Inspect the raw content stream of a page that renders incorrectly to identify malformed operators, missing resources, or encoding issues causing the rendering problem.
PDF Library Development
When building PDF generation or parsing libraries, use the pdf stream decoder to verify that your output streams contain the correct operators and parameters before testing in a viewer.
Embedded Content Inspection
Decode embedded XObject streams (forms, images, and patterns) to inspect their operator sequences and confirm that sub-content references the correct resources.
Filter Chain Debugging
Identify multi-step filter chains (e.g., FlateDecode + ASCII85Decode) in complex PDFs and decode each layer to verify the intermediate and final decoded content.
PDF Security Research
Examine content streams in suspicious PDFs to identify obfuscated JavaScript, embedded scripts, or unusual operator sequences that may indicate malicious content.
Data Extraction Prototyping
Use the decoded stream content to understand the operator layout of a PDF before building a parser that extracts text positions, font changes, or drawing commands programmatically.
Understanding PDF Stream Decoding
What is a PDF Content Stream?
Inside every PDF document, page content is encoded as one or more content streams - sequences of PostScript-like operators stored in compressed binary objects. These streams contain instructions for rendering text (BT/ET blocks), drawing paths (m, l, c, h), setting colors (sc, scn, g, k), displaying images (Do), and transforming the graphics state (q, Q, cm). Before decoding, streams are compressed using filters such as FlateDecode (zlib deflate), LZWDecode, ASCII85Decode, or chained combinations of these. A pdf stream decoder decompresses these filters and presents the raw operator text for human inspection.
How Our PDF Stream Decoder Works
- Upload: Drop your PDF into the tool. The raw binary is parsed in your browser to extract all indirect objects and their cross-reference entries - no server upload required.
- Browse: The object list shows every stream object with its object number, stream length, filter chain, and dictionary type. Filter by keyword to find specific objects.
- Decode: Select any object to decompress its stream. FlateDecode, LZWDecode, ASCII85, and ASCIIHex filters are applied in the correct order. The decoded content is displayed in a monospace viewer with copy and download options.
Supported Filters and Output
- FlateDecode: zlib/deflate compressed streams - the most common filter in modern PDFs. Decoded to raw operator text.
- LZWDecode: Legacy Lempel-Ziv-Welch compression used in older PDFs. Decoded to raw operator text.
- ASCII85Decode / ASCIIHexDecode: ASCII encoding wrappers for binary data. Decoded to the underlying bytes or operator text.
- Binary image filters: DCTDecode (JPEG), JPXDecode, CCITTFaxDecode, JBIG2Decode - flagged as binary image data; not rendered as text.
Privacy & Intended Audience
The pdf stream decoder is a developer and power-user tool intended for PDF debugging, library development, security research, and data extraction prototyping. All decoding runs locally in your browser - your PDF never leaves your device. Note: this tool reads the raw encoding layer of the PDF and is not a substitute for a full PDF specification viewer. Some complex filter chains or object stream compression (ObjStm) may not be fully resolved in all cases.
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 Stream Decoder
A PDF content stream is a sequence of operators and operands that describe the visual content of a page or XObject. It is stored as a compressed binary stream inside the PDF file. Operators like BT/ET mark text blocks, q/Q save and restore graphics state, cm sets transformation matrices, and Do invokes XObjects. Decoding a stream makes this human-readable.
The pdf stream decoder handles FlateDecode (zlib/deflate, the most common), LZWDecode, ASCII85Decode, and ASCIIHexDecode. Multi-filter chains (where one filter is applied after another) are decoded in order. Binary image stream data (JPXDecode, CCITTFaxDecode, DCTDecode) is flagged as binary rather than shown as text.
Some PDF streams contain compressed image data (JPEG, JBIG2, CCITT fax) or other binary content that is not human-readable even after decoding. The tool identifies these and shows a note rather than displaying raw binary bytes, which would be unreadable.
No. The entire pdf stream decoder runs locally in your browser using client-side JavaScript. Your PDF is never transmitted to any external server, making it safe for proprietary, confidential, and security-sensitive files.
The tool lists all stream objects in the PDF sorted by object number. Each entry shows the object type and dictionary metadata (including Subtype and Length). Page content streams are typically referenced by their page's /Contents entry. You can also use the "Search objects" input to filter by keyword.
No. Encrypted PDFs have their streams protected by the document's encryption key. The pdf stream decoder works on unencrypted PDFs only. Remove the encryption with a PDF unlock tool first, then use the stream decoder.
Yes, completely free. No registration, no file size limit, and no restrictions on how many PDFs or streams you inspect.