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