Some test text!

Getting started

keyboard_arrow_down
Running samplesTry demo in your projectDownloading PDFTronIntegrating PDFTron via GradleManually integrating PDFTronUpgradingAdding PDFTron license keyUsing ProGuardTroubleshooting integration

Fundamentals

keyboard_arrow_down
Document lockingSaving PDF documentsUnderstanding coordinates

Basics

keyboard_arrow_down
Using an ActivityUsing a FragmentUsing PDFViewCtrlViewer configConverting and viewing other document typesConverting HTML to PDF

Viewer

keyboard_arrow_down
PDFViewCtrl color modesPDFViewCtrl page view modePDFViewCtrl page presentation modeGenerating thumbnails in PDF

Features

keyboard_arrow_down
Day/Night themesUndo and redoText searchAnnotation syncingRotating PDF pagesPDFViewCtrl read onlyUsing PDFViewCtrl with minimum memory

Tools

keyboard_arrow_down
Tools overviewSetting Up ToolManagerChanging and disabling toolsIntercepting annotation handlingToolManager eventsDefault annotation propertiesTool subclasses

Annotations

keyboard_arrow_down
Deleting annotationsAnnotation styleShow/hide annotations

UI components

keyboard_arrow_down
Quick menuAnnotation toolbarAnnotation style dialogThumbnail sliderAnnotations listOutline listUser bookmarks listBookmarks dialogPage thumbnails dialogAdd page dialogRotate pages dialogView mode dialogCrop page dialogReflow

Advanced

keyboard_arrow_down
Adding a custom view to a PDF pageCustom toolCustomizing quick menuCustomizing annotation style dialog

FAQ

keyboard_arrow_down
Running project in Android StudioSystem RequirementsPDFTron full vs. standardLocalizationIcon cheat sheetRunning sample with sourceReducing size of APKEnable multidexOut of memory when rotating device multiple timesDetachCurrentThread warning

PDF Processing API

keyboard_arrow_down
What is PDFNet?Opening a documentSerializing (saving) a documentWorking with pagesWorking with Page ContentWorking with BookmarksWorking with Interactive Forms (AcroForms)PDF SecurityLow-level PDF APIError handling
Using a Fragmentkeyboard_arrow_down

Using a Fragment

In this document
chevron_rightToolbar menu
chevron_rightCustomize toolbar menu
chevron_rightCustomize navigation icon
chevron_rightInteract with fragment
PdfViewCtrlTabHostFragment requires the full version of PDFTron library. See PDFTron full or standard?

All actions related to the PDF viewer are handled through the PdfViewCtrlTabHostFragment fragment. This fragment extends android.support.v4.app.Fragment and is responsible for showing document in tabs.

Please note that PdfViewCtrlTabHostFragment requires the com.pdftron:tools package.

First, make sure the following is in your <application> tag in AndroidManifest.xml.

<application
    ...
    android:largeHeap="true">
    ...
    <activity
        ...
        android:windowSoftInputMode="adjustPan" />
</application>
PdfViewCtrlTabHostFragment uses the AppCompat theme for material colors. Make sure that the value of android:theme in your activity tag also extends the AppCompat theme.

Displaying the PdfViewCtrlTabHostFragment in an activity is straightforward. Like any other fragment you should make an instance of the class and attach it to the activity. To create an instance of the host fragment you need to pass in a bundle that can be created using createBasicPdfViewCtrlTabBundle. The bundle specifies the document that should be shown when the host fragment is visible. For example, to open a document in the host fragment when you know the URI of the file (and its password if the file is password protected) you can call:



You can simply convert a file to a URI by:



Note that since we use the support version of android fragment, your activity must extend FragmentActivity and call getSupportFragmentManager() to get the FragmentManager.

If you would like to customize the UI of PdfViewCtrlTabHostFragment, you can use ViewerConfig builder. For example:



For details on customizing the UI interface and sample usage of ViewerConfig builder, check out the configuration tutorial.

linkToolbar menu

The default toolbar menu consists of menu items for

  • searching text in the current document
  • sharing the current document
  • setting up viewing mode
  • showing/hiding annotation toolbar
  • overflow menu

However, you can fully customize and control the toolbar menu as well as the navigation icon.

linkCustomize toolbar menu

In order to change the default toolbar menu items you need to create your own menu in menu resource folder and pass it to the host fragment through bundle:



linkCustomize navigation icon

To change the navigation icon, similar to the toolbar menu, you need to pass the desired icon to the host fragment through the bundle:



linkInteract with fragment

If you want to interact with the host fragment you should call addHostListener(TabHostListener) and override those methods that you are interested in. For example, you may want to override onToolbarOptionsItemSelected(MenuItem) when you add a new menu item, so when the item is clicked you can get a callback. As another example, you can get the callback when the navigation icon is clicked if you override onNavButtonPressed().

Here's an example that replaces the default navigation icon, and only keeps the annotation toolbar icon in the toolbar menu while adding a new menu item to show a toast when selected:



The fragment_viewer_simple.xml should be placed in menu resource folder and contain:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_annotation_toolbar"
        android:icon="@drawable/ic_mode_edit_white"
        android:title="@string/action_annotation_toolbar"
        app:showAsAction="ifRoom"/>
    <item
        android:id="@+id/action_show_toast"
        android:title="Show toast"
        app:showAsAction="never" />
</menu>

With this complete, you will see: