What this reader is for
It is a small, read-only viewer for the moments when you just need to look inside a PDF: a shared computer with no PDF software, a phone browser that handles attachments badly, or a quick check of a file before you send it. You can page through the document, zoom, copy the text of the page you are on, and have that text read aloud. It does not annotate, highlight, fill in forms, sign, search the whole document or edit anything.
Where the file is processed
When you choose a file, the code reads it with file.arrayBuffer() and passes the bytes to Mozilla's open-source PDF.js library (the pdfjs-dist package, version 6.3.289 in this project). PDF.js does the parsing and drawing, and its worker script runs in your browser. Both the library and the worker file are served by this site together with the page; they are not fetched from a third-party CDN. There is no code that sends your PDF over the network, so it is not uploaded or stored, and reloading or closing the tab removes it from memory. You can confirm this by watching the Network tab of your browser's developer tools while you open a file. Scripts that belong to the site as a whole, such as advertising and analytics, work independently and do not receive your document.
How zooming works
The starting scale is 1.2 times the PDF's native size, where one PDF point becomes one pixel, and the screen label calls that 100%. Each click on the plus or minus button changes the scale by 0.24, and the scale is clamped between 0.6 (50%) and 3.6 (300%). The table below was calculated while the site was built, using the same constants, for a portrait A4 page of 595.28 by 841.89 points, and it estimates the memory a canvas of that size needs at four bytes per pixel.
| Shown as | Internal scale | A4 canvas (px) | Memory (MB) |
|---|---|---|---|
| 50% | Γ0.60 | 357 Γ 505 | 0.7 |
| 60% | Γ0.72 | 429 Γ 606 | 1.0 |
| 80% | Γ0.96 | 571 Γ 808 | 1.8 |
| 100% | Γ1.20 | 714 Γ 1010 | 2.8 |
| 120% | Γ1.44 | 857 Γ 1212 | 4.0 |
| 140% | Γ1.68 | 1000 Γ 1414 | 5.4 |
| 160% | Γ1.92 | 1143 Γ 1616 | 7.0 |
| 180% | Γ2.16 | 1286 Γ 1818 | 8.9 |
| 200% | Γ2.40 | 1429 Γ 2021 | 11.0 |
| 220% | Γ2.64 | 1572 Γ 2223 | 13.3 |
| 240% | Γ2.88 | 1714 Γ 2425 | 15.9 |
| 260% | Γ3.12 | 1857 Γ 2627 | 18.6 |
| 280% | Γ3.36 | 2000 Γ 2829 | 21.6 |
| 300% | Γ3.60 | 2143 Γ 3031 | 24.8 |
At 100% an A4 page is drawn at about 714 by 1010 pixels; at 300% it grows to about 2143 by 3031 pixels, roughly 24.8 MB of canvas memory. Phones and older computers may render slowly, or fail, at the largest settings. The viewer does not adjust for high-density (Retina-type) displays, so text can look slightly soft at 100% on such a screen; one step of zoom-in usually restores crispness. The page sits in a scrollable frame, so a zoomed page is panned by scrolling that frame rather than the whole browser window.
Copying text and listening to a page
After a page is drawn, the code asks PDF.js for that page's text fragments and joins them with spaces, collapsing runs of whitespace into one. That means the copied text follows the order in which the PDF stores its text, which is not always the order you read on screen. Tables, two-column layouts and sidebars can come out interleaved, and original line breaks are gone. The panel under the canvas shows the text and its character count, and the Copy button copies the whole page's text to the clipboard. Reading aloud sends the same text to your browser's built-in speech synthesis at a fixed rate of 0.95. The voice and language come from whatever your browser and operating system provide, and the tool does not choose a language to match the document, so a page in a language your default voice does not cover may sound wrong. Turning the page cancels the speech, and the stop button ends it at once. If your browser has no speech synthesis, the two speech buttons are hidden.
When this is the wrong tool
- Scanned PDFs. A PDF that is only a picture of paper has no text layer, so copy and read-aloud have nothing to work with and the panel says that no text could be extracted. There is no OCR here.
- Password-protected files. There is no password prompt. The tool recognises the password error from PDF.js and tells you the file cannot be opened.
- One page at a time. Continuous scrolling, thumbnails, in-document search and bookmark navigation are not included. For long documents where you must find a word, use your browser's built-in viewer or a desktop reader.
- No annotation or forms. You cannot type into form fields, highlight, or add comments.
- Large files. The code sets no size limit, but the entire file is read into memory, so documents of several hundred megabytes, or a modest phone, may be slow or stall.
- Exact appearance. Files that rely on fonts that are not embedded, or on advanced transparency and graphics features, can look a little different from how a dedicated reader shows them. For print proofing or the final check of a legally important document, use a full viewer.
- Unknown sources. This page only displays pages and is not built to run scripts embedded in a PDF, but you should still be careful with files from senders you do not know when you download or forward them.
What to do next
If you only need some pages from the file, use thePDF merge and split tool to extract a page range into a new PDF. If you copied text and want to know how long it is, paste it into theword counter, and if you have two versions of a passage, the text diff checker shows what changed. Photos embedded in a document that has become too large can be reduced with theimage compressor before the document is rebuilt.
Frequently Asked Questions
Is my uploaded PDF saved anywhere?
No. It is opened only in your browser's memory and is not uploaded or stored. Refreshing the page removes the document.
Can I open password-protected PDFs?
Not at the moment. The tool has no place to enter a password, so it can open only PDFs that are not protected. If you know the password, open the file in another program and save an unprotected copy, where that is permitted.
Why doesn't text-to-speech or copying work on some pages?
A PDF that is a scan of a paper document stores each page as an image and contains no text data. You can still see the page, but there is nothing to copy or read aloud, and the text panel explains this.
Can I copy the text of the whole document at once?
No. Only the page you are viewing is copied. Move to the next page and copy again to collect more.
The read-aloud button is missing, or I hear nothing.
The speech buttons are hidden when the browser does not support speech synthesis. Even in browsers that do, there may be no voice installed for the language, or the device may be muted.
Why is the copied text in a strange order?
The tool joins the text pieces in the order stored inside the PDF. Documents laid out in columns or tables are often stored in an order that differs from the visual one, so check and tidy the text after pasting.