How local PDF processing keeps documents on your device
FreePDF Tools is a static website. Its browser code reads a file you choose, performs the supported operation in browser memory and gives the result back through a local download.
The document path
- You select a PDF or image with the browser file picker. The page receives a temporary
Fileobject; it does not receive a filesystem path or general access to your device. - JavaScript reads that selected file into memory with the browser File API.
- A pinned copy of pdf-lib, PDF.js, JSZip or QPDF WebAssembly processes those bytes in the browser. The Unlock PDF engine runs in a dedicated Web Worker so its work does not block the page.
- The tool creates an in-memory
Blobfor the result and opens the browser's normal download flow. - Closing or refreshing the page releases the page state. The unlock worker is terminated after each attempt. FreePDF Tools does not create a document account or server copy.
assets/js/, and there is no application upload endpoint.What the network can still receive
Opening any website requires normal web requests for its public HTML, styles, scripts and images. The hosting provider can receive ordinary connection information such as IP address, request time and user agent. If advertising is enabled, the advertising provider may also receive data described in the Privacy Policy. Those requests load public site resources; the tool code does not attach the PDF or image you selected to them.
Self-hosted libraries
FreePDF Tools serves pinned copies of pdf-lib 1.17.1, PDF.js 6.2.108, JSZip 3.10.1 and QPDF 12.2.0 compiled by qpdf-wasm 0.3.0 from the same website origin. This avoids contacting a third-party code CDN when a tool opens and makes the exact deployed library files reviewable alongside the application code. Licence and notice files are included next to each library. QPDF and its browser wrapper are free, open-source components; there is no paid API or usage quota behind the unlock tool.
What offline mode stores
The progressive web app service worker caches public pages, styles, scripts, images and library code. This lets previously cached tools load without a connection. The cache list contains website URLs only. Selected files, document bytes, extracted text and output blobs are not passed to the service worker and are not intentionally written to IndexedDB or local storage.
Limits of the promise
Local processing reduces document exposure, but it does not make an unsafe device safe. Browser extensions, malware, shared download folders and operating-system backups are outside this website's control. Keep your browser updated, review sensitive results, and remove downloaded copies from shared devices. Also remember that removing visible text or cropping a page is not the same as secure redaction: hidden content can remain in the PDF.
How to check it yourself
- Open your browser developer tools and use the Network panel while processing a non-sensitive sample PDF. No document upload request should appear.
- Turn off the network after the site has cached, then open a tool and process a small sample locally.
- Review the relevant script in the public GitHub repository and compare the tool's stated limitations with its implementation.