A PDF Reader That Runs in a Tab and Sends Nothing Home
Opens any PDF for reading with page controls, zoom between 0.4x and 3x, and arrow-key navigation, rendered by pdf.js. Nothing to install, no account, no telemetry, and no copy of your document anywhere but your own machine.
About the PDF Reader Web App
Desktop PDF software has become remarkably heavy for what it does. Installers run to hundreds of megabytes, background updaters sit in the system tray, subscription prompts interrupt reading, and several major readers phone home with usage data by default. For the common case — someone wants to read a document — almost none of that is necessary.
This opens a file and shows it to you. The controls are a previous and next button, a counter telling you where you are, and a pair of zoom buttons; the left and right arrow keys turn pages if you would rather not reach for the mouse. Zoom runs between 0.4 and 3 times in increments of 0.2, and each change re-renders the page at the new size rather than magnifying an existing image, so enlarging text on a dense page produces sharp type rather than a blurry one.
Key Features
- Opens instantly: There is nothing to install and no first-run setup, so the time from having a file to reading it is however long the page takes to load.
- Renders one page on demand: Only the current page is drawn, which is why a very long document opens without a pause while something indexes it.
- Sized to your screen automatically: The render scale takes account of how wide the reading area is, so the same document is legible on a laptop and on a phone without manual adjustment.
- Keyboard paging: Arrow keys move between pages, which makes reading a long document practical rather than a series of mouse clicks.
- No account and no tracking: There is no sign-in, no usage reporting and no upsell, because there is no service behind it to report to.
- The file stays where it is: pdf.js is served from this domain and runs in the tab, so opening a document creates no upload, no temporary server copy and no history anywhere but your own browser.
How to Use the PDF Reader Web App
- Open the tool and select the PDF you want to read.
- Press Open PDF — the document appears with the first page shown.
- Read using the arrow keys, or the previous and next buttons.
- Zoom in or out with the minus and plus controls until the type is comfortable.
How It Works
Pages are drawn onto a canvas by pdf.js at a scale derived from your zoom setting and the width of the reading area. Because the page is painted rather than laid out as live text, there are real limits to be aware of: you cannot select or copy text, the browser's find function will not search the document, there is no sidebar showing bookmarks even when the file has them, and there is no continuous scrolling — pages are turned rather than scrolled through.
It also does not remember where you stopped. Close the tab and the next visit starts at page one, which is a direct consequence of storing nothing about you or your files.
What the rendering approach does provide is a safer way to open a document from someone you do not know. The PDF format supports embedded JavaScript and automatic actions, and desktop readers have a long history of vulnerabilities in exactly that area. pdf.js parses the file inside the browser's sandbox and turns it into graphics — it is not an interpreter waiting to run what the document asks for.
When You Need It
Someone on a night shift needs to consult an equipment manual on a shared terminal where installing anything is out of the question and the machine is used by four other people across the week. A reader that needs no installation and leaves no file behind fits the situation exactly.
A person using a public library computer to read through a document about their own finances or a legal matter faces two problems at once: they cannot install a reader, and the obvious alternative — an online viewer that uploads the file — puts a personal document on someone else's server from a machine they do not control. Reading it in a tab that renders locally solves both, and closing the browser ends it.