Local PDF Studio (“the Extension”) is a client-side PDF manipulation tool that runs entirely inside your browser. This policy explains what data the Extension handles, where it is stored, and the only external service it contacts.
Summary
- The Extension does not collect, transmit, sell, or share any personal information or document content.
- Every PDF you open and every annotation you draw is processed locally on your device.
- The developer operates no servers, no analytics, no telemetry, and no advertising.
- By default the Extension makes no outbound network requests. The only requests it can make are ones you trigger yourself — opening a PDF link or clipping an image — and none of them goes to the developer or to a third party.
- If you turn on the optional “Use Studio for all PDFs” setting, the Extension downloads the PDF you navigated to (and only that PDF) on your own device, using your own browser session. That file is never sent anywhere else.
1. Data We Collect
None. The developer of Local PDF Studio does not collect, receive, or have access to any user data of any kind. There is no account system, no login, no usage tracking, and no error reporting service.
2. Data Stored on Your Device
The Extension stores the following data locally in your browser’s IndexedDB, on your own device only. It is never transmitted off the device.
| Data | Purpose | Location |
|---|---|---|
| PDF files you open or import | To allow you to view and edit them and to auto-save your session. A file that arrived password-protected is never auto-saved, so no unprotected copy is kept | Browser IndexedDB |
| Annotations, drawings, highlights, text, signatures, form entries, table-of-contents entries | To persist your edits across sessions | Browser IndexedDB |
| Session / undo history | To support undo, redo, and crash recovery | Browser IndexedDB |
| User preferences (tool settings, theme, etc.) | To remember your UI choices | Browser localStorage / IndexedDB |
You can delete this data at any time by removing the Extension, clearing its site data
from chrome://extensions, or clearing your browser’s storage.
Invoices you create are kept in memory only while the invoice editor is open, and are not stored in the browser; an invoice you open in the editor is saved like any other PDF. Every invoice PDF you download carries a copy of its fields and logo inside the file, so that Load invoice can fill the editor back in from it. That copy stays in the file, and goes wherever you send the file.
3. Outbound Network Connections
By default the Extension makes no outbound network connections, because
it contains no code that contacts the developer, an analytics service, or any other server
on its own. It requests no host permissions at install time. Its Content Security Policy
forbids loading or
executing remote code (script-src 'self'). Text recognition (OCR) is no
exception: the recognition engine and its English language model are packaged inside
the Extension and load from it, so recognizing the text of a scan downloads nothing and
sends nothing. The only network requests it can
ever make are the ones you trigger yourself, described in Sections 3.1 and 3.2 —
fetching a PDF link or an image you chose — and each one starts from something you
did: opening a PDF link with the redirect toggle on, or choosing an entry in the
right-click menu. Translation (Section 3.3) runs on Chrome’s own on-device model;
the Extension sends no text anywhere, and the one download involved is made by Chrome,
not by Extension code.
3.1 Optional: “Use Studio for all PDFs”
Settings → Browser contains an opt-in toggle that makes the Extension open web links
ending in .pdf instead of Chrome’s built-in PDF viewer. When you turn
it on:
-
Chrome asks you to grant the Extension permission to read data on the sites you visit
(
<all_urls>). This permission is required for the Extension to redirect PDF URLs; it is not used to read, record, or modify any other page. -
When you open a
.pdflink, the Extension’s background worker fetches that URL only, on your device, with the same cookies your browser would have sent. The bytes are stored in the Extension’s IndexedDB and handed to the viewer, exactly as if you had dragged the file in. - No URL, file, or metadata is sent to the developer or any third party.
You can turn the toggle off at any time; the permission can also be revoked from
chrome://extensions, which disables the feature automatically.
3.2 Right-click menu
The Extension adds three entries to the right-click menu on web pages. They run only when you click them:
-
Open in Local PDF Studio (on
.pdflinks) asks Chrome for permission to read that link’s origin, then fetches that URL only, exactly as described in 3.1. -
Append image as page (on images) downloads
that image only. If the image’s host blocks the download, the
Extension reads the image from the page you right-clicked, using Chrome’s one-time
activeTabgrant for that click. It does not read anything else on the page. - Add selection as note (on selected text) uses the text Chrome already includes in the click event, plus the page title and URL for attribution. No request is made.
The result is stored in the Extension’s IndexedDB “inbox” on your device until the app consumes it (unconsumed items are discarded after 24 hours). Nothing is sent anywhere.
3.3 Translate
Translate in the Document menu translates the open PDF with the translation model built into Chrome (Chrome 138 and later). The text of your document is handed to Chrome’s on-device Translator API on your computer and never leaves it; the Extension contacts no translation service and ships no model of its own.
- The first time you translate into a language, Chrome may download that language’s pack from Google, in the same way it does for its own “Translate this page” feature. That download is started by your click, performed and stored by Chrome outside the Extension, and it carries none of your document’s text. Once a pack is installed, translation works offline.
- If you see a banner offering a translation, the Extension has only run Chrome’s on-device language detector over the first page’s text; nothing is sent anywhere. You can turn the offer off in Settings → Editor → “Offer to translate”.
-
The translated PDF is produced on your device and saved only where you choose to
download it. The language you last translated into is kept in
localStoragewith your other preferences.
4. Data Sharing
The developer does not share user data with any third party, because the developer does not collect any user data.
No third party is involved in the operation of the Extension.
5. Limited Use
The Extension’s use of any data it handles is limited to providing and improving its single, user-facing purpose: local, client-side PDF viewing and editing. Specifically:
- User data is not used or transferred for serving advertisements, including personalized or retargeted ads.
- User data is not sold to advertising platforms, data brokers, or any third party.
- User data is not used to determine creditworthiness or for lending purposes.
- The Extension does not collect browsing history or activity from other tabs.
- No human — including the developer — has access to any user data, because no user data ever leaves your device.
6. Chrome Permissions
None of the Extension’s permissions is used to collect or transmit user data.
-
unlimitedStorage— Allows the browser to store large PDFs and session state in IndexedDB without being automatically evicted when disk space is low. -
storage— Remembers whether “Use Studio for all PDFs” is switched on. -
declarativeNetRequestWithHostAccess— Powers the opt-in redirect of.pdflinks (Section 3.1). Inactive until host access is granted. -
contextMenus— Adds the right-click entries described in Section 3.2, plus an “Open side reader” entry on the Extension’s own toolbar icon. -
sidePanel— Displays the side reader, a panel that shows the same locally stored session as the main viewer. It does not read or access any web page content. -
activeTabandscripting— Used only by “Append image as page”, only for the tab you right-clicked, and only to read that image when its host blocks a direct download. -
Optional host access (
<all_urls>) — Never requested at install. Asked for when you enable the redirect toggle, or per-origin when you open a link via the right-click menu.
7. Children’s Privacy
The Extension is not directed at children under 13 and does not knowingly collect information from anyone.
8. Security
- In transit: The only outbound connections the Extension makes (see Section 3) are the fetches you trigger yourself, and they are performed over HTTPS wherever the URL you chose is an HTTPS one. No connection is ever opened to the developer or to a third-party service, because the Extension contains no code that addresses one.
- At rest: User data (PDFs, annotations, signatures, history, preferences) is stored in your browser’s local IndexedDB and is protected by your operating system user account and browser profile security. The data never leaves your device, so it cannot be intercepted by the developer or any third party.
9. Changes to This Policy
This policy is published at https://nikola-radovic.github.io/local-pdf-studio/. If it changes in any material way, the updated version will be published at that same URL, with a new “Last updated” date. Continued use of the Extension after an update constitutes acceptance of the revised policy.
10. Contact
Questions about this policy can be sent to:
Nikola Radović