Skip to main content

Bookmark last view

Saves the current reading position by adding a bookmark at the first visible page, replacing any existing bookmark for that page.

(function () {
let doc = Api.GetDocument();
let visiblePages = doc.GetCurrentVisiblePages();

if (!visiblePages || visiblePages.length === 0) {
console.log("No visible pages found.");
return;
}

let targetPageIndex = visiblePages[0];
doc.GoToPage(targetPageIndex);
let targetParagraph = doc.GetCurrentParagraph();

if (!targetParagraph) {
console.log("Could not get paragraph on page index: " + targetPageIndex);
return;
}
let bookmarkName = "CurrentBookmarkForPage" + (targetPageIndex + 1);
let existingBookmarks = doc.GetAllBookmarksNames();
if (existingBookmarks && existingBookmarks.indexOf(bookmarkName) !== -1) {
doc.DeleteBookmark(bookmarkName);
console.log("Removed existing bookmark: " + bookmarkName);
}
let range = targetParagraph.GetRange();
range.AddBookmark(bookmarkName);
})();

Methods used: GetDocument, GetCurrentVisiblePages, GoToPage, GetCurrentParagraph, GetAllBookmarksNames, DeleteBookmark, GetRange, AddBookmark

Result

BookmarkLastView BookmarkLastView