What each tool actually does
55 tools, each doing one job, built from seventeen open-source libraries: Mozilla's pdf.js reads and draws PDF pages, pdf-lib writes and encrypts new ones, docx writes Word files, jsPDF typesets them, fflate makes and opens archives, PaddleOCR's PP-OCR models on ONNX Runtime read the text in a picture or a scan, transformers.js runs the Deep reader's GLM-OCR model behind the Pro door, and a Rust MP3 encoder compiled to WebAssembly handles the audio. Every one is listed, with its license, on the licenses page.
No tool downloads a library it does not need. Merging, splitting, compressing and password-protecting never load the page renderer at all, which is why they are roughly a third of the weight of the tools that draw pages.
- Redact draws every page as an image, paints your marks onto those pixels, and builds a new document from the images alone.
- Merge and split copy pages, with their fonts and images, into new documents. Nothing is re-drawn, so nothing loses quality.
- Compress re-encodes the photographs inside a document and leaves the text alone. It does not turn pages into pictures.
- Protect encrypts the document with AES-128 under the standard security handler, then re-opens the finished file to check that it is really protected.
- PDF to Word and PDF to Markdown read the positioned text a PDF stores and infer structure from size, weight and alignment — the same inference for both, so they cannot disagree.
- PDF to image uses the same drawing step as redaction and hands you the pictures.
- Images to PDF embeds JPEG and PNG data untouched into a new document.
- HTML to PDF parses markup as data and typesets it. It never renders your markup, so nothing in it can run.
- Translate PDF, Translate manga and Translate image read the words with the same reader the OCR tools use, or straight from a PDF's own text, and hand each block to the translator built into your browser. How the translation works is below.
Where the work happens
In your browser tab, on your device. These pages are static files served from a web host; there is no application server behind them and no endpoint that accepts a document — not a slow one, not a rate-limited one, not one that deletes after an hour. Each tool downloads its own code the first time you use it, and after that the file you choose is read by that code, in memory, on your machine.
The heavy work runs in a background thread, so the page stays responsive and a long document does not freeze the tab. If your browser cannot start that thread, the tool says so and runs in the page instead, more slowly.
What does leave this device
Three things do, and none of them is your document. The first is a page-view counter served by our own analytics at analytics.pagefabrica.com. Product measurement is limited to twenty-three property-free event names: work_started when you submit a tool, work_completed when it produces a result, the Deep OCR preview's six — pro_offer_clicked_a or pro_offer_clicked_b (which of two prices was shown when you opened the Pro door), pro_preview_started, deep_model_loaded, deep_work_completed and deep_unsupported — and the translation tools' fifteen — translate_started_pdf, translate_started_manga, translate_started_image, translate_text_ready_pdf, translate_text_ready_manga, translate_text_ready_image, translate_unsupported_pdf, translate_unsupported_manga, translate_unsupported_image, inplace_offer_clicked_pdf, inplace_offer_clicked_manga, inplace_offer_clicked_image, batch_offer_clicked_pdf, batch_offer_clicked_manga and batch_offer_clicked_image (the last word of each names the tool: PDF, manga or image). Every one is a name with no input or result properties; the tracker honours Do Not Track, and the compiled event bridge refuses every other name.
The second happens only if you open the Pro door on an OCR tool and start a Deep read: this browser then downloads the Deep reader's model — GLM-OCR, about 660 MB — from Hugging Face's servers, pinned to one published version and checked against digests this site carries. That is a download, not an upload: the request names the model files and nothing about you or your document, the same as fetching any library. The model is then kept in this browser's cache and read from there next time. AI OCR sets out both readers, what each costs and what each refuses.
The third happens only on the translation tools, and only in a browser that translates on the device — Chrome 138 or Edge 148 and newer, on a laptop or desktop. The first time you translate a pair of languages, your browser downloads the language pack for that pair from its own vendor. That is a request the browser makes, not this page, which this page cannot count and which carries nothing of your file: the translating is then done by the browser on this device, and the text it translates never leaves it. Nothing else leaves.
The “Requests off this site” count includes both. The number in the row of marks is measured in your own tab from the browser's resource timings, and it counts every request that left this origin including our own analytics. The Deep reader's download happens in a background thread whose requests the page's timings cannot see, so the reader counts them itself and reports them to the page, which adds them to the same number — a counter that hid the requests this site makes would be worth less than no counter at all. The language pack is the one request it cannot include: the browser fetches it outside the page, where no page can see it, which is why it is named here instead.
How the redaction check is performed
Self-check
- ✓︎Marked text absent
- ✓︎No selectable text
- ✓︎Annotations flattened
- ✓︎Page count unchanged
- ✓︎Marks solid black
No file is offered if one fails
After the redacted document has been built, it is opened again from its own bytes, exactly as a stranger receiving the file would open it. Then five things are measured:
- every phrase covered by a mark is searched for in the text of the finished file — the result must be zero matches;
- the finished file must yield no extractable text at all, on any page;
- it must contain no annotations, no form fields, no attachments and no document scripts;
- it must have the same number of pages it started with;
- each marked rectangle is sampled pixel by pixel in the finished page image and must be solid black.
If any of these fails, no download is offered at all.
How the password protection is checked
The password tool proves itself the same way, because a file somebody believes is protected and is not is worse than one that never claimed to be. After the document has been encrypted, the finished bytes are re-opened five times over:
- the file must declare standard PDF encryption in its own trailer;
- opening it with no password must fail;
- opening it with the password you chose must succeed;
- a run of the original page content, kept before anything was encrypted, must be absent from the finished bytes;
- it must have the same number of pages it started with.
If any of these fails, there is no download.
How the translation tools work
The words are read first, on this device. A PDF that carries real text gives its words up directly, with no download; a scanned page, a photograph or a manga page is read by the same neural reader the OCR tools use — PaddleOCR's PP-OCRv6, about sixteen megabytes the first time and cached afterwards. The reading comes back as blocks in reading order: paragraphs on a page, bubbles on a manga page, numbered on the picture so each one can be found again.
Each block is then translated by the translator built into your browser, which Chrome 138 and Edge 148 and newer offer on a laptop or desktop. It translates between thirty-nine languages, not every browser offers every pair, and the page asks the browser before it promises one. The first use of a pair downloads that pair's language pack from the browser's own vendor, as set out above. Where the browser has no translator — Safari, a phone, an older version — the tools still read the text and say plainly that the translating step is not available there. The reading is a guess and the translation is another, so both sides of every block are editable, and a corrected original can be translated again.
What comes back today is the text and its translation, to copy or to download as plain text or Markdown. Setting the translation back into the picture, re-lettering a manga page, a translated PDF with its layout kept, a bilingual PDF, a whole chapter and many pictures at once are not built. Each tool has buttons for them that show a price and then say, on the next screen, that the feature is in preview: nothing is charged, no card or account is asked for, and the press is counted as a vote. The votes decide which of them is built first, and the translation already on the screen is yours either way.
The thirty-nine languages: Arabic, Bengali, Bulgarian, Chinese (Simplified), Chinese (Traditional), Croatian, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Kannada, Korean, Lithuanian, Marathi, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Vietnamese.
What we deliberately leave out
Redaction removes what you mark. It cannot know what is sensitive, so a name you did not mark stays in the document — read the result before you send it. Because pages become images, the finished file is larger and its text can no longer be selected or searched.
Markdown and Word conversion need a text layer. Scanned pages hold a picture of text and cannot be converted by any means other than OCR, which those converters do not perform — OCR a PDF does, and gives the scan back searchable as well. Structure in a converted document is inferred from layout, so headings and tables are a good guess rather than a fact, and the layout itself — fonts, colours, columns, headers and footers — is not carried into Word at all.
Image conversion is limited by your device's memory. A long document at 300 dpi may fail on a phone; the tool will say so rather than produce a broken file.
Compression works on the photographs inside a document and nothing else, so a PDF of pure text has almost nothing to give up. When the saving is not worth a second copy, no file is offered and the reason is named.
Password protection is AES-128 under the PDF standard security handler at revision 4. It is not AES-256, and revision 6 AES-256 protection is not implemented here. If AES-256 is your requirement, use a current desktop PDF tool and verify its reported encryption mode.
The protection still depends on the password. Revision 4 uses legacy password derivation, so short or obvious passwords remain vulnerable to guessing. That is why the tool refuses an empty password, anything under six characters and short runs of digits, and why a long passphrase is the safer choice.
How to use the result
Treat the redaction check as what it is: a proof that the marked text is gone from the file, not a judgement that the file is safe to publish. Look at the finished document before sending it, and keep your original — the redacted copy is the one to share, not the one to archive.
If a tool gets something wrong, tell us what the document looked like. Do not send the document.