Read a PDF. Extract its text. Strip its metadata.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
OmniViewer opens a .pdf — the
Portable Document Format that
started at Adobe and is now the ISO 32000 standard — right in your
browser. Drop the file and you can extract the text from every
page, inspect and strip the metadata it carries, walk its
objects, and read the raw bytes. There is no upload and no
server, and the parse runs in a background Web Worker so the page never freezes.
A PDF is index-then-seek. It is not a stream of pages but a tree of numbered objects, and a cross-reference table at the very end of the file records the byte offset of every one of them. The trailer points at that table, the table points at the catalog, and the catalog points at the page tree — so to read one page OmniViewer seeks straight to its object instead of scanning the file. For a multi-gigabyte PDF it reads only a bounded window at the head (the header and first objects) and the tail (the trailer and cross-reference), and the raw and hex views stay windowed over every byte.
A PDF leaks who made it: the trailer’s Info dictionary
(author, producer, creation and modification dates) and the catalog’s
XMP packet. Stripping those by appending an incremental
update would be fast, but the original bytes would still sit in the file, trivially
recoverable with strings. OmniViewer instead does a real
rewrite: every kept object is re-emitted into a fresh,
renumbered PDF with a new cross-reference table and a trailer that carries no
Info, the Info dictionary and every XMP stream physically gone. Page content is
copied byte-for-byte, so nothing is re-encoded.
For a byte-level walk through the format — objects, the cross-reference table and streams — see our deep dive into how a PDF works on the inside.
OmniViewer opens every file format, powered by the same viewing engine as fastjsonviewer.com and hugecsv.com.
No. OmniViewer is a static page with no server-side processing: your .pdf is read directly by your browser, and every tab — text, outline, metadata, objects and stats — runs locally in a Web Worker. The file never leaves your computer, including when you download a cleaned copy.
Yes — that is the Text tab. OmniViewer decodes each page’s content stream (the Tj and TJ text-showing operators) back into readable text through the font’s ToUnicode map or WinAnsi encoding, reconstructs the line breaks, and lets you read, copy or download it as plain text. Text drawn as vector outlines or stored only as scanned images has no text to extract — that is a property of the file, not a limit of the tool.
Yes, physically. Rather than appending a change that leaves the old data in the file, OmniViewer rewrites the PDF from scratch: every object is re-emitted into a fresh, renumbered document with a new cross-reference table and a trailer that has no Info dictionary, and every XMP metadata stream is dropped. The author, producer, dates and editing software are gone from the actual bytes — a search of the cleaned file will not find them. The page content is copied verbatim, so the document itself is unchanged.
A PDF records the byte offset of every object in a cross-reference table at the end of the file, so OmniViewer seeks straight to the objects it needs instead of reading the whole document. For a huge file it loads only a bounded window at the head and the tail, and reports when a tab (like full-document text) is working on a bounded prefix. The raw, hex and strings views stay windowed over every byte at any size.
A PDF is a set of numbered indirect objects — dictionaries, arrays, strings and streams — and the cross-reference table (a classic table or, since PDF 1.5, a compressed cross-reference stream) maps each object number to where it lives in the file. The Objects tab lists them with their type, byte offset (or the object stream they are packed into) and size, so you can see the document’s real structure. If the cross-reference is damaged, OmniViewer recovers the objects by scanning the file.
It will open and show the structure of an encrypted PDF, but its strings and streams are scrambled, so the text and metadata can’t be read without the password — OmniViewer detects this and tells you. The raw and hex views still show the file’s bytes.
No. OmniViewer parses the PDF in pure JavaScript — the tokenizer, cross-reference reader, object-stream and Flate/LZW decoders are all hand-written — so it works in any modern browser on Windows, Linux, macOS or a phone. No Acrobat, no Ghostscript, no command-line tools.