How it works
Most online PDF tools upload your file to their servers. These don't. Here's how, and how you can check.
Your browser does the work
When you open a tool, your browser downloads the tool's code, the same way it downloads any web page. When you choose a file, that code reads it and processes it right there in the tab. The finished file is created in your browser's memory and saved when you click Download.
Heavy work runs in a background thread (a Web Worker), so the page stays responsive even with large files. That's also why speed depends on your device: a recent laptop handles a 50 MB PDF in seconds; an older phone takes longer.
Why your files can't be uploaded
Two things stop it, not just a promise:
- There's nowhere to upload to. PDF Toolkit is a set of static files. There is no application server behind it that could receive a file.
- The browser blocks it. Every page is served with a Content Security Policy containing
connect-src 'self'. That tells your browser to refuse any attempt by the page to send data to another website.
One page has a narrow, deliberate exception. Background Remover downloads its AI model from Hugging Face the first time; the photo itself is processed in a background thread whose own policy still blocks all outside connections.
Check it yourself
- Open a tool, then open your browser's developer tools (F12, or Cmd+Option+I on a Mac).
- Go to the Network tab and clear it.
- Choose a file and run the tool.
- Look at the requests. You'll see the page loading its own code files, and nothing that sends your file anywhere. Every request goes to this site, and none of them is an upload (a POST or PUT carrying data).
You can also load a tool page, switch off your internet connection, and use the tool. It keeps working.
What we can't promise
- Browser extensions you've installed can read pages you visit, including this one. That's true of every website.
- Some conversions (like PDF to Excel or Markdown) are best-effort. They work well on simple layouts and less well on complex ones.
- Very large files can exceed a phone's memory. A laptop or desktop handles more.
Credits
The tools are built on these open-source libraries, used under their licences:
- pdf-lib (@cantoo/pdf-lib) (MIT): Editing PDFs: merge, split, stamps, forms, encryption
- PDF.js (pdfjs-dist) (Apache-2.0): Rendering pages and reading text
- JSZip (MIT): ZIP downloads and Excel files
- jsdiff (diff) (BSD-3-Clause): Compare PDFs
- libheif (libheif-js) (LGPL-3.0): Reading HEIC photos. Loaded as a separate file; source at github.com/strukturag/libheif
- jSquash AVIF (libavif) (Apache-2.0 / BSD-2-Clause): Saving and reading AVIF images
- gifenc and gifuct-js (MIT): GIF Compressor
- Papa Parse (MIT): JSON to CSV
- fast-xml-parser (MIT): JSON to XML
- js-yaml (MIT): YAML and JSON Converter
- jose (MIT): JWT signature verification
- js-md5 (MIT): MD5 hashes
- qpdf (qpdf-wasm) (Apache-2.0): Compress PDF
- ONNX Runtime Web (MIT): Running the background removal model
- ormbg model by Schirrmacher (Apache-2.0): Background Remover (downloaded from Hugging Face on first use)
- docx (MIT): PDF to Word
- PptxGenJS (MIT): PDF to PowerPoint
- html2canvas-pro (MIT): HTML to PDF
- Next.js and React (MIT): The website itself