For the complete documentation index, see llms.txt. This page is also available as Markdown.

Customize the Document Viewer UI

Customize the Document Viewer UI in Xamarin.Android

Customize the theme

The theme of PdfViewCtrlTabHostFragment2 can be set by calling the following method when creating the fragment using ViewerBuilder2:

// Add a viewer fragment to the layout container in the specified 
// activity, and returns the added fragment
public PdfViewCtrlTabHostFragment2 addViewerFragment(
        int fragmentContainer,
        AppCompatActivity activity,
        Android.Net.Uri fileUri,
        String password,
        int customTheme)
{

    // Create the viewer fragment
    PdfViewCtrlTabHostFragment2 fragment =
            ViewerBuilder2.WithUri(fileUri, password)
                    // Add custom theme here
                    .UsingTheme(customTheme)
                    .Build(activity) as PdfViewCtrlTabHostFragment2;

    // Add the fragment to the layout fragment container
    activity.SupportFragmentManager.BeginTransaction()
            .Replace(fragmentContainer, fragment)
            .Commit();

    return fragment;
}

Theme supplied to ViewerBuilder2.usingTheme(int) is recommended to extend PDFTronAppThemeBase. If you cannot extend PDFTronAppThemeBase and is extending an AppCompat theme, then you will need to define custom theme attributes for the theme to work properly. Custom attributes are listed in the table below. PDFTronAppThemeBase contains a number of attributes which can be used to define the style for certain UI components. A full list of theme attributes can be found below:

Attribute
Description

pt_toolbar_theme

Used to style the options menu toolbar. See ToolbarTheme.

pt_toolbar_popup_style

Used to style the popup menu in the toolbar. See ToolbarPopupTheme.

pt_toolbar_style

Used to style the options menu toolbar background. See ToolbarStyle.

quick_menu_item

Used to style the quick menu. See QuickMenuItem.

custom_bookmarks_tab_layout

Used to style the outline/user bookmark/annotation list dialog. See BookmarksTabLayoutStyle.

pt_stamp_tab_layout_style

Used to style the stamp dialog tab layout. See StampTabLayoutStyle.

pt_bottom_bar_style

Used to style the bottom navigation bar. See PTBottomBarTheme.

pt_preset_bar_style

Used to style the annotation preset bar. See PTPresetBarTheme.

pt_annotation_toolbar_style

Used to style the annotation toolbar. See PTAnnotationToolbarTheme.

pt_toolbar_switcher_dialog_style

Used to style the toolbar switcher popup dialog. See PTToolbarSwitcherDialogTheme.

pt_toolbar_switcher_button_style

Used to style the toolbar switcher menu button. See PTToolbarSwitcherButtonTheme .

pt_toolbar_tab_action_button_style

Used to style the tab action button. See TabActionButtonTheme .

pt_document_slider_style

Used to style the page slider. See DocumentSliderStyle.

pt_pdf_tab_layout_style

Used to style the document tabs. See PdfTabLayoutStyle.

pt_floating_nav_style

Used to style the floating action buttons. See DefaultFloatingButtonNavStyle.

pt_sound_dialog_style

Used to style the sound annotation dialog. See SoundDialogStyle.

pt_page_indicator_style

Used to style the page indicator. See PageIndicatorTheme.

pt_sticky_note_dialog

Used to style the sticky note dialog. See DialogStickyNote.

pt_create_signature_dialog_style

Used to style the signature creation dialog. See CreateSignatureDialogTheme.

pt_menu_editor_dialog_style

Used to style the toolbar editor dialog. See MenuEditorDialogTheme.

pt_annot_style_dialog_style

Used to style the annotation style dialog. See AnnotStyleDialogTheme.

pt_annotation_filter_dialog_style

Used to style the annotation filter dialog. See AnnotationFilterDialogTheme.

pt_create_stamp_dialog_style

Used to style the stamp creation dialog. See CreateStampDialogTheme.

pt_add_page_dialog_style

Used to style the add page dialog. See AddPageDialogTheme.

pt_tab_switcher_dialog_style

Used to style the tab switcher dialog. See TabSwitcherDialogTheme.

pt_outline_dialog_style

Used to style the outline dialog. See OutlineDialogTheme

A full list of attributes can be found in the styles.xml file in the Apryse Android SDK Tools package.

Customizing the default annotation toolbars

The built-in default toolbars can be customized using the ViewerConfig and ToolManagerBuilder classes. To hide a specific toolbar, call ViewerConfig.Builder.hideToolbars(String[]) with the toolbar's tag. For example to hide the annotate toolbar:

Hide annotation toolbar buttons

To hide certain tool buttons, you can disable tool modes using ToolManagerBuilder as described in this guide.

Customize the options toolbar

The options toolbar can be customized using a similar method as described in this guide, however the ViewerBuilder2 class will be used instead of ViewerBuilder.

Customize the Document Viewer UI in Xamarin.iOS

The following snippets assume you are using a PTDocumentController called documentController:

Hide the Toolbar Switcher

Hide (and show) the annotation toolbar

The toolbar can be programmatically hidden by setting the mode to view group, which is a special group and the only group where the toolbar is hidden:

The toolbar can be shown again by changing the group to any group other than view:

Remove toolbars from the switcher

Toolbars can be removed by removing them from the toolGroupManager's groups array. The following code removes the "Draw" and "Pens" toolbars:

Remove buttons from a toolbar

The example below shows how to remove the text highlight and text underline button from a toolbar.

Disabling a tool type entirely

If you want to disable a tool entirely, from all toolbars and the long press menu, please use the annotations permissions system.

Add a tool button to a toolbar

Create a new toolbar

The code below creates a new toolbar that contains a free hand, cloudy and image stamp tool.

Add a button with fully custom behavior

Your app may need a button that does not invoke one of the built in annotation tools. The following code will add a button that calls a selector.

If you want to toggle the items selection, flip its selected property:

Modify UINavigationBar Items

You can modify the navigation bar items. Here is an example of adding a new button (for the current size class):

Tools can also be added:

Note that in the example above, de-selecting the tool button item needs to be implemented by the app, by listening to the Tool Did Change notification.

Add and Remove Toolbar Items (iPhone UI)

These are the buttons that appear at the bottom of the screen.

Last updated

Was this helpful?