Some test text!

Search
Hamburger Icon

Xamarin / Guides

User-defined bookmarks in Xamarin

This tutorial only applies to Xamarin.Android. See Xamarin.iOS equivalent here .
User-defined bookmarks are an Apryse specific feature that may not show in other PDF viewer applications. If you want to manage PDF bookmarks so that they can be processed in other standard PDF viewers, see the document outline guide .

The UserBookmarkDialogFragment displays a list of user-defined bookmarks that can be used to navigate the document.

User bookmark dialog

Show user bookmark dialog

To show a user bookmark dialog fragment in your activity, create a new instance of UserBookmarkDialogFragment by calling newInstance() and setting the PDFViewCtrl:

fun showBookmarksDialog(fragmentManager: FragmentManager, pdfViewCtrl: PDFViewCtrl): BookmarksDialogFragment {
    var bookmarksDialog = pdftron.PDF.Dialog.BookmarksDialogFragment.NewInstance();
    bookmarksDialog.SetPdfViewCtrl(pdfViewCtrl);
    List<DialogFragmentTab> tabs = new List<DialogFragmentTab>();
    var userBookmarksDialog = new DialogFragmentTab(
        Java.Lang.Class.FromType(typeof(UserBookmarkDialogFragment)), BookmarksTabLayout.TagTabBookmark, null, "User Bookmarks", "Bookmarks Dialog", null);
    tabs.Add(userBookmarksDialog);
    bookmarksDialog.SetDialogFragmentTabs(tabs);
    bookmarksDialog.SetStyle((int)DialogFragmentStyle.NoTitle, Resource.Style.PDFTronAppTheme);
    bookmarksDialog.Show(fragmentManager, "bookmarks_dialog");
    return bookmarksDialog;
}

Listener

You can set a listener to be notified when a user bookmark is clicked by calling setUserBookmarkListener(UserBookmarkDialogListener).

Read-only

If the document has write access, users can add new user bookmarks using floating action button. To specify whether the document is read-only call setReadOnly(boolean).

Import and export

It is possible to import and export user bookmarks in JSON format. Typical use case is to save and load the user bookmarks JSON from a server.

The user bookmark JSON is a dictionary with page indices as keys and the bookmark title as the values. For example: {"0":"Bookmark 1","2":"Bookmark 2"}. Behaviour is undefined otherwise. Note that the page indices will be 0-indexed similar to XFDF.

// import
BookmarkManager.ImportPdfBookmarks(PDFViewCtrl, String)
// export
BookmarkManager.ExportPdfBookmarks(PDFDoc)

Get the answers you need: Chat with us