Some test text!

keyboard_arrow_down

Get started

Download PDFTron SDKIntegrate with GradleIntegrate manuallyRun samplesAdd PDFTron license keyQuick start - view a documentProGuardUpdate to latest versionTroubleshooting
keyboard_arrow_down

Document Viewer

OverviewShow a document in an ActivityShow a document in a FragmentViewer configurationDay and Night themesOpen from online URL
keyboard_arrow_down

Document Viewer components

PDFViewCtrlReflowFloating context menuCustomize floating context menuAnnotation toolbarAnnotation style editorCustomize annotation style editorPage sliderAnnotation listDocument outlineUser bookmark listList containerThumbnail browserAdd pages dialogRotate pages dialogView mode dialogCrop pages dialog
keyboard_arrow_down

Annotation and collaboration

ToolManager setupRead only modeDisable annotation creation/editingDefault annotation propertiesAnnotation propertiesEventsOverride annotation handlingShow and hide existing annotationsUndo and redoRealtime collaboration
keyboard_arrow_down

Advanced customization

Add a custom view to a pageCreate a custom toolPage coloring modePage fit modePage layout mode
keyboard_arrow_down

Conversion

Convert documents to PDFConvert HTML to PDF
keyboard_arrow_down

Search

Text search
keyboard_arrow_down

Other Frameworks

XamarinReact Native
keyboard_arrow_down

Advanced topics

Understand coordinatesDocument savingDocument lockingGenerate page thumbnailsTool class hierarchy
keyboard_arrow_down

FAQ

System RequirementsRun project in Android StudioRun project with source codePDFTron full vs. standardLocalizationIcon cheat sheetReduce size of APKEnable multidexOut of memory when rotating device multiple timesReduce memory consumptionDetachCurrentThread warning
keyboard_arrow_down

PDF Processing API

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
Text searchkeyboard_arrow_down

Text search

In this document
chevron_rightVia UI controls
chevron_rightVia API
chevron_rightHighlighting results
chevron_rightStopping a search
chevron_rightChanging the highlight colors
chevron_rightSearch results view

Text search can be done either via high or low level APIs. This tutorial will go through both.

linkVia UI controls

PDFTron provides a SearchToolbar and a FindTextOverlay as utilities for easy text search. To use these controls, here are a few steps:

  1. Add the controls to your layout, a simple example will be:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">
    <com.pdftron.pdf.controls.SearchToolbar
        android:id="@+id/searchtoolbar"
        android:visibility="gone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize"
        app:contentInsetStart="@dimen/second_keyline"
        android:background="?attr/colorPrimary"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:navigationIcon="@drawable/ic_arrow_back_white_24dp" />
    <com.pdftron.pdf.PDFViewCtrl
        android:id="@+id/pdfviewctrl"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:scrollbars="vertical|horizontal" />
    </LinearLayout>
    <com.pdftron.pdf.controls.FindTextOverlay
        android:id="@+id/find_text_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="gone"/>
    </RelativeLayout>
  2. Setup PDFViewCtrl and ToolManager

  3. Setup events handling

    
    

  1. Show the layout

    
    

Now when running the app, you will see a toolbar that allows you to enter search terms as well as an overlay on top of the PDFViewCtrl that navigates among search results.

linkVia API

PDFTron provides a number of APIs for finding text in PDF documents. One such example is PDFViewCtrl.findText(String, boolean, boolean, boolean, boolean, int). In order to facilitate the use of text search APIs, a tool class is provided that highlights text search results within the PDF document being viewed. Additionally, a view class is available to show a SearchView, where users can input their queries, change search settings and see the list of search results.

linkHighlighting results

You can find queries in a document and highlight the search results by using the TextHighlighter tool, call start(String) and specify the search query.



By default, search is done without matching case or matching whole words. In order to change this, use start(String, boolean, boolean, boolean). For example, the followings code searches for a specific query in a specific case and as its own word:



linkStopping a search

The TextHighlighter tool asynchronously searches for instances of the string or regex pattern. To stop a search, call stop(). To clear the highlighted text, call clear().

linkChanging the highlight colors

To change the color of highlights, use setHighlightColors(int, int, int, int). The following example shows what each argument represents:



linkSearch results view

SearchResultsView class enables users to easily search for a query and see the results.

To set up your layout for a SearchResultsView, add an element to your XML layout as follows:

<com.pdftron.pdf.controls.SearchResultsView
    android:id="@+id/searchResultsView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

Then, you need to set SearchResultsListener to receive a callback when

  • An item from the search results is clicked
  • A full-text search is started and result has not yet been ready
  • A search is found