Another month, another version of PSPDFKit for Android - say hello to 2.7: new annotation types, improved reading and editing UI, and better customizability! This blog post outlines the biggest changes at a glance.

If you want to test version 2.7 right now, download our PDF Viewer for Android Beta on Google Play, which already features the latest updates.

Signature annotations

PSPDFKit for Android now supports adding signatures to the document. There are two provided modes. The “My signature” mode is intended for app owners who want their signatures saved and available for later use. The “Customer signature” mode intended for customers and other participants – it provides one-time signing and doesn’t save the signature.

Line annotations

As a result of our ongoing effort to bring you shape annotations, we now fully support LineAnnotation type both via API and the user interface. To create lines, select the line annotation type from the toolbar and draw a line on the PDF document similar to drawing ink annotations. Don’t forget that we also support various line styles and line ends in the annotation inspector.

Creating a LineAnnotation from code works just like with any other annotation type. The LineAnnotation has a constructor that accepts two points that define the line.

Copy
1
2
3
val page = 0
val lineAnnotation = LineAnnotation(page, PointF(100f, 100f), PointF(200f, 200f))
document.annotationProvider.addAnnotationToPage(lineAnnotation)
Copy
1
2
3
final int page = 0;
final LineAnnotation lineAnnotation = new LineAnnotation(page, new PointF(100f, 100f), new PointF(200f, 200f));
document.getAnnotationProvider().addAnnotationToPage(lineAnnotation);

More stamps (camera)

In this release, we have further extended the existing image and stamp annotation support with the ability to create image stamps from images captured with the device camera. We added a ready-to-use action to the annotation creation bar. Selecting the camera tool and tapping the document will open the camera app, allowing users to shoot a picture.

Regarding the API, we introduced the ImagePickerFragment, a host for handling lifecycle and callbacks for calling the camera and retrieving the reuslts. The newly added BitmapUtils helps to decode those results into a bitmap before adding them as annotations. For an example of how to use this API, see the DocumentProcessingExample in our catalog app.

Non-tinted password drawables

When opening encrypted PDF documents, PSPDFKit for Android will show a password input dialog with a tinted drawable. This version adds the possibility to turn off tinting, allowing usage of pre-colored drawables. By default, tinting is enabled and can be disabled by setting PasswordViewThemeConfiguration.Builder#iconTintingEnabled to false.

Copy
1
2
3
4
5
6
7
8
val passwordViewConfig = PasswordViewThemeConfiguration.Builder(context)
    .setIconResourceId(R.drawable.my_colored_password_drawable)
    .iconTintingEnabled(false)
    .build()

val configuration = PSPDFActivityConfiguration.Builder(context, YOUR_LICENSE)
    .passwordViewThemeConfiguration(passwordViewThemeConfiguration)
    .build()
Copy
1
2
3
4
5
6
7
8
PasswordViewThemeConfiguration passwordViewConfig = new PasswordViewThemeConfiguration.Builder(context)
    .setIconResourceId(R.drawable.my_colored_password_drawable)
    .iconTintingEnabled(false)
    .build();

PSPDFActivityConfiguration configuration = new PSPDFActivityConfiguration.Builder(context, YOUR_LICENSE)
    .passwordViewThemeConfiguration(passwordViewThemeConfiguration)
    .build();

Close button in property inspector

We noticed that closing the annotation property inspector was not always as intuitive as we would have liked it to be. That’s why this version introduces an omnipresent close button in the annotation inspector header. Tapping the button will immediately dismiss the inspector.

Scrollbars in documents

The PSPDFFragment now shows default Android scrollbars indicating the current scroll position inside the document, and the total scrollable range. Scrollbars are enabled by default, as it’s the expected behavior of most Android users. Scrollbars are fully customizable. You can apply all existing View attributes to change the orientation of scrollbars, their color, size, etc.

Furthermore, we added the DocumentScrollListener interface for accessing raw scrollbar values on the fragment. You can use this to implement your custom scroll indicator views, or even navigation widgets. If you’re not sure about the use case: Check out the VerticalScrollBarExample inside the catalog app, which shows how to use the new VerticalScrollBar for quick document navigation.

Updated build target - API 25

We bumped our build targets to Android API 25 (Nougat 7.1) and also upgraded the support libraries to 25.0.0. This allows us to fully support multi-window mode, document centric task handling, and also dynamic app shortcuts (as featured by our PDF Viewer for Android). Furthermore, RxJava was updated to 1.2.2, which contained a couple of performance enhancements.

Fixes, fixes, fixes

While introducing a lot of new features, we did not neglect existing framework components and APIs. This version also fixes issues around file downloads, annotation highlighting, rendering, input handling, and some more. For a full list of improvements and changes, have a look at our full list of changes in PSPDFKit 2.7 for Android or try out our app, PDF Viewer for Android.

PSPDFKit for Android

Download the free 60-day trial and add it to your app today.