PSPDFKit 2.1 for Android
The PSPDFKit Android team has been working hard to bring you the next release – PSPDFKit 2.1 for Android – with many features and improvements.
Indexed Full-Text Search
This release adds powerful PDF indexing capabilities via the PSPDFLibrary
class. You can easily create a searchable index of all your PDF documents and then query that index within seconds. Our custom indexer can even search Chinese, Japanese, and Korean text.
Indexed Full-Text Search is an optional feature — contact our sales team for details. You can find more about this in our guide on document indexing and searching.
PDF Editing
PSPDFProcessor
is a convenient new API for performing document manipulation tasks such as splitting or merging documents, or flattening annotations. Possible use cases include:
-
Extracting pages into another document. You can specify any number of pages from the original document and write them to a new document.
-
Combining multiple documents into a single document. This can be achieved easily by loading a compound
PSPDFDocument
from multiple sources, then writing it back to a single file. -
Removing or flattening annotations. You can specify all annotations, only annotations of a specific type (for example, remove all highlights), or a particular set of annotations.
For more information, you can have a look at our our Document Processing guide or at the DocumentProcessingExample
inside the catalog app (which shows page extraction, compound document merging, annotation flattening, and annotation deletion).
Incremental Annotation Saving
Annotations can now be saved incrementally, which is much faster. Instead of rewriting the whole file, PSPDFKit now only writes out the parts of a document that have been changed. This is enabled by default.
There are a few exceptions where incremental saving is not possible, such as encrypted documents. As the encryption is applied to the file as a whole, the complete file needs to be written out before it’s encrypted.
Annotation List
The new annotation list was added to the existing PSPDFOutlineView
allowing users to quickly navigate annotations in the document. The annotation list is configurable, allowing you to display only the annotation types you need, or even hide the list completely. Have a look at the new enableAnnotationList
, disableAnnotationList
, and listedAnnotationTypes
setters on PSPDFActivityConfiguration
.
Migration to AppCompat-v7
While PSPDFKit always had optionally support for Google’s AppCompatActivity
by using the PSPDFAppCompatActivity
, version 2.1 goes one step further by making the AppCompatActivity
the default implementation of the PSPDFActivity
. This change comes with multiple benefits:
-
Better device support, since
AppCompatActivity
provides support for many of the newer Android features back to devices with Android API level 7. -
More frequent updates, since new versions of the
appcompat-v7
library are released more frequently than Android. -
Simplifies PSPDFKit, making it easier to get started — and also letting us focus on new features instead of duplicate maintenance.
If you have previously used the old PSPDFActivity
, you might find our AppCompat Migration Guide helpful.
Additional Improvements
A lot of work went into improvements, changes, and fixes to the API and the framework itself. Here is a short overview.
-
New text selection API with the easier to use
TextSelectionListener
and the possibility to select text programmatically. For more information, see our Text Selection Guide. -
Added
PSPDFActivity#getPSPDFFragment
for direct access to thePSPDFFragment
that is embedded in the activity. -
You can now lock document scroll and zoom by calling
PSPDFFragment#setScrollingEnabled(boolean enabled)
andPSPDFFragment#setZoomingEnabled(boolean enabled)
. -
Improved method overloads for simpler API usage. For example,
PSPDFActivity#showDocument(Context, DataProvider, PSPDFActivityConfiguration)
for loading a document from a data provider, without specifying the password parameter. -
And of course, bug fixes. Many thanks to all customers that helped us by sending bug reports and feedback.
The full list of changes can be found in the complete changelog for version 2.1.