Syncing reading position of pdfs

Use case or problem

When reading PDFs inside Obsidian on multiple devices, I’d like the reading position to sync. Currently, the position of each opened PDF is stored locally ( (in window.localStorage, under keys like pdfjs.history, at least on desktop). This information is not written to any file inside the vault, so it doesn’t get synced across devices. This means that when switching devices, I have to manually find where I left off in each PDF.

Proposed solution

Store the PDF reading positions in a file inside the vault (e.g., .obsidian/pdf-positions.json). That way, any sync system (Obsidian Sync, git, iCloud, etc.) will also sync this file, keeping the PDF reading position consistent across devices. This approach would follow the same conflict resolution as other vault files, depending on the sync method.

Current workaround (optional)

There is no practical workaround at the moment, as the position data is only stored locally inside Electron’s LocalStorage and can’t be synced manually.

Related feature requests (optional)

I searched the forum but couldn’t find any related request.

UPDATE

Using a dataviewjs snippet, I was able to print on iOS the value of the localStorage pdfjs.history key. It exists, but the fingerprints generated by PDF.js differ, so the built‑in pdfjs.history keys are not cross‑platform. A vault‑level file keyed by the relative path (or a full‑file hash) would avoid this mismatch.

Also, I’ve found a related request: PDF scroll position sync

1 Like