Follow us on Twitter for updates. Our blog highlights the best new features and changes.

Newest Release

2024.7.0 - 17 Oct 2024

Migration guide.

UI

  • Added

    Adds the ability to disable the stylus button on the AnnotationCreationToolbar using annotationCreationToolbar.setShouldShowStylusButton(false), which can be accessed via the OnContextualToolbarLifecycleListener#onPrepareContextualToolbar interface. (J#ANDR-812)

  • Added

    Adds the ability to move the crosshair in document comparison mode so you can easily select points all over the document for alignment. (J#ANDR-894)

  • Changed

    Improves free text annotation rendering when zooming in and out while using PLATFORM_RENDERING. (J#ANDR-835)

  • Changed

    Improves the default appearance of callout annotations. (J#ANDR-836)

  • Added

    Adds ContextualToolbarListener to configure menu items in the Compose DocumentView state. (J#ANDR-868)

  • Fixed

    Fixes an issue with missing text when adding new lines to a multiline callout annotation. (J#ANDR-841)

  • Fixed

    Fixes the overflow menu visibility in the Compose main toolbar if overflow menu items are empty. (J#ANDR-869)

  • Fixed

    Fixes issues with zooming performance on devices with more than 2 GB RAM. We now default most annotations to use AP stream rendering, which is more performant and does not have fidelity issues. This can be overridden using PdfFragment#setOverlaidAnnotationTypes and specifying the rendering strategy with setAnnotationOverlayRenderStrategy. (J#ANDR-884)

Model

  • Fixed

    Fixes back button behavior in the Compose wrapper. (J#ANDR-870)

  • Changed

    Reintroduces ProGuard to hide our internal APIs and reduce API misuse. If you have any ProGuard-related issues, contact us. (J#ANDR-810)

  • Removed

    Removes Builder classes from ElectronicSignatureOptions and SignatureOptions. Internally, these are migrated to Kotlin’s data class to remove the @AutoValue annotation. (J#ANDR-848)

  • Changed

    Upgrades various key c (J#ANDR-838)

    • Changed

      Android Gradle Plugin: 8.6.0

    • Changed

      Kotlin: 2.0.20

    • Changed

      Compose: 1.7.1

  • Fixed

    Fixes an issue when parsing timestamp policies with short OIDs in digital signatures. (J#SERVER-1231)

  • Fixed

    Fixes an issue where digitally signing a document may trigger an error in Adobe Acrobat about a modified page. (J#CORE-45204)

  • Fixed

    Fixes an issue where digitally signing with the SHA384 hashing algorithm didn’t work. (Z#116874)

  • Fixed

    Fixes an issue where form contents may be rotated after exporting and then importing from Instant JSON. (J#CORE-647)

  • Fixed

    Fixes an issue where form flags were overwritten when using the processor and NeedAppearances was set in the PDF. (J#CORE-45331)

  • Fixed

    Fixes an issue where handwritten signatures may show distorted in some page orientations. (J#ANDR-824)

  • Fixed

    Fixes an issue where some annotations may lose their font color when you export them to XFDF and import them again. (J#CORE-680)

  • Fixed

    Fixes an issue where the blend mode wasn’t read correctly. (J#CORE-691)

  • Fixed

    Fixes a rare crash due to concurrent access in the AnnotationFlatbufferWriter. (J#ANDR-895)

  • Fixed

    Fixes an issue where PDFs with millions of outline elements could exhaust the memory. (J#CORE-694)

Previous Releases

2024.6.1 - 18 Sep 2024

Patch release containing some important fixes for adding digital signatures on certain documents.

Model

  • Fixed

    Fixes an issue where PDF JavaScript may report an error when setting a custom value to a combo box form field. (J#CORE-675)

  • Fixed

    Fixes an issue where digitally signing a document may trigger an error in Adobe Acrobat about a modified page. (J#CORE-682)

  • Fixed

    Fixes an issue where some signatures with Long-Term Validation information may be incorrectly reported as invalid. (J#CORE-654)

  • Fixed

    Fixes an issue where the same font was embedded multiple times when entering diacritics, leading to a massive file size. (J#CORE-634)

2024.6.0 - 6 Sep 2024

Migration guide.

UI

  • Added

    Adds a pspdf__scaleListItemCheckColor attribute to set the color of the selected item check mark in the measurement scales list. (J#ANDR-822)

  • Added

    Adds the ability to set the line thickness to 0 in the UI. Internally, we set this to 0.5f, which is the thinnest we support in our backend. (J#ANDR-674)

  • Changed

    Exposes the PdfUi interface in the DocumentConnection. (J#ANDR-811)

  • Fixed

    Fixes a regression where selecting an annotation via the outline annotation list view causes a crash if the user does not have annotation editing licensed. (J#ANDR-815)

  • Fixed

    Fixes an issue where certain annotations that have separate alpha for fill and stroke color were displayed as opaque. Also adds an API to set the fill alpha independently from the overall alpha with Annotation#setFillAlpha. (J#ANDR-804)

  • Fixed

    Fixes an issue where text editing was immediately canceled when the UI was configured with vertical continuous scrolling. (J#ANDR-823)

  • Fixed

    Fixes an issue where the initial position of a page is incorrect if the previous page has a different orientation. (J#ANDR-672)

  • Fixed

    Fixes an issue where the pages were improperly laid out after a resize of the PdfFragment. (J#ANDR-817)

  • Fixed

    Fixes vertical centering of the displayed PDF page after the height of its containing view was changed. (J#ANDR-805)

Model

  • Added

    Adds git history to public example app repositories. Beginning with this release, people can see what has changed from the last release. (J#ANDR-620)

  • Added

    Adds the ability to reinitialize PdfFragment with PdfFragment#refreshPages when a document’s childViews (pages) are cleared. (J#ANDR-786)

  • Changed

    Improve evaluation experience. (J#CORE-667)

  • Changed

    Replaces the old simple example with the Compose wrapper example app, which can be found here https://github.com/PSPDFKit/pspdfkit-jetpack-compose-pdf-viewer. (J#ANDR-790)

  • Changed

    Upgrades NDK to 27 from 25. (J#ANDR-183)

  • Fixed

    Fixes a very rare potential corrupt file case when using PdfFragment#save. save is now blocking and safe. saveAsync has been added for original functionality, which doesn’t block the UI, and a spinner is shown during the saving process. (J#ANDR-541)

  • Fixed

    Fixes an issue where a PDF rendered incorrectly. (J#CORE-643)

  • Fixed

    Fixes an issue where annotations exported to XFDF and then imported again may lose their text color. (J#CORE-648)

  • Fixed

    Fixes an issue where converting a bitonal TIFF with a lot of pages consumed too much memory. (J#CORE-621)

  • Fixed

    Fixes an issue where opening image files with broken XMP/EXIF headers may crash the app. (J#CORE-665)

  • Fixed

    Fixes an issue where signatures on rotated documents were displayed incorrectly. (J#CORE-672)

  • Fixed

    Fixes an issue with highlight shape when adding text highlights on rotated pages. Text highlights now cover only the rectangle of the relevant text, without using curved edges. (J#ANDR-313, J#ANDR-314, J#ANDR-194)

2024.5.1 - 30 Aug 2024

  • Changed

    Improves the evaluation experience. (J#CORE-667)

2024.5.0 - 6 Aug 2024

Version 2024.5 is a routine release with a few upgrades, fixes, and small features, outlined below.

UI

  • Added

    Adds a pspdf__scaleListItemBackgroundColor attribute to set the color of the list item background of the measurement scales list. (J#ANDR-772)

  • Added

    Adds a feature to configure the hidden and visible state of the VerticalScrollbar view. (J#ANDR-750)

  • Fixed

    Fixes an issue where ink annotations can get clipped slightly when the tool is deselected. (J#ANDR-679)

  • Fixed

    Fixes an issue where the document text search was very slow after changing the search query string. (J#ANDR-618)

  • Fixed

    Fixes an issue where the saving spinner would never get dismissed when redaction saving failed. (J#ANDR-530)

  • Fixed

    Fixes an issue where the virtual keyboard was wrongly hidden during content editing. (J#ANDR-608)

  • Fixed

    Fixes an issue with the virtual keyboard in the context of a vertical continuous scrolling page configuration. (J#ANDR-419)

Model

  • Changed

    Updates HarfBuzz library to 9.0.0. (J#CORE-625)

  • Fixed

    Fixes a potential crash when clearing listeners in the DocumentView if it happens before the document has been loaded. (J#ANDR-753)

  • Fixed

    Fixes an case where a custom DataProvider that doesn’t support appending was writing with append during redaction application, in turn causing failed redaction. (J#ANDR-530)

Instant

  • Fixed

    Fix an issue where the Instant client incorrectly removes the path segment from a server URL when parsing it. (J#ANDR-757)

2024.4.0 - 22 Jul 2024

Migration guide. Version 2024.4 adds support for Android 15 and 16KB page sizes, better ink annotation rendering, and many more fixes, improvements, upgrades, and small features, which are outlined below.

It’s important to note that the deprecation period for the legacy digital signature APIs has passed, and users now have to use the new API. See the migration guide linked above for details.

UI

  • Added

    Adds a button to the date and time pickers to clear form fields with dates when said fields aren’t empty. (J#ANDR-436)

  • Added

    Adds the ability to fix the aspect ratio for free text annotations using the setKeepAspectRatioEnabled API. (J#ANDR-579)

  • Added

    Adds a feature to configure expanded and collapsed state of outline elements. (J#ANDR-546)

  • Added

    Adds a feature to update the style with the Material Theme for MainToolbar Composable. (J#ANDR-524)

  • Added

    Adds the eraser tool to the tools that are supported by the palm rejection mode. (J#ANDR-598)

  • Changed

    Changes the default state of the stylus to be disabled so that stylus-only input will be activated once an annotation has been made using the stylus and so that enableStylusOnDetection() in the configuration is set to true. (J#ANDR-542)

  • Changed

    Exposes AnnotationConfigurationRegistry in the DocumentConnection interface of our Jetpack Compose SDK. (J#ANDR-585)

  • Changed

    Moves the stylus button from the document settings to the toolbar during annotation creation and editing. (J#ANDR-582)

  • Changed

    Uses overlay paint with alpha instead of MULTIPLY blend mode for in-page search results to work better on documents with dark backgrounds. (J#ANDR-630)

  • Fixed

    Fixes UI layout issues after device rotation with certain activity configurations. (J#ANDR-652)

  • Fixed

    Fixes a rare crash caused by the annotation eraser tool. (J#ANDR-589)

  • Fixed

    Fixes a regression from 2024.2 where zooming out of the page at a scale of 1 always bounced the page to the same location instead of a location relative to the pinch gesture center point. (J#ANDR-597)

  • Fixed

    Fixes an error where ThumbnailGridView displayed the page thumbnails with an incorrect height after device rotation. (J#ANDR-651)

  • Fixed

    Fixes an issue where cloudy borders change size when first created and deselected. (J#ANDR-600)

  • Fixed

    Fixes an issue where deleting selected annotations did not properly exit the annotation editing mode. (J#ANDR-676)

  • Fixed

    Fixes an issue where ink annotation render changes drastically when the tool is deselected. (J#ANDR-220)

  • Fixed

    Fixes an issue where the PdfThumbnailGrid displayed the wrong amount of columns after a device rotation. (J#ANDR-583)

  • Fixed

    Fixes an issue where the size of an ellipse or rectangle annotation changes when you select and deselect it after setting the border style to/from cloudy. (J#ANDR-536)

  • Fixed

    Fixes free text annotation shrinking in size when deselected. (J#ANDR-599)

  • Fixed

    Fixes free text annotation wobble when zooming in and out of a page. (J#ANDR-599)

  • Fixed

    Fixes an issue where an annotation drawn on top of a LinkAnnotation doesn’t intercept a click event first. (J#ANDR-490)

  • Fixed

    Fixes a rare crash that happens when AnnotationCreatorInputDialogFragment is opened for some devices. (J#ANDR-542)

  • Fixed

    Fixes an issue where the annotation editing mode didn’t automatically exit when the current selection was deleted (and thus left the toolbar in an invalid state). (J#ANDR-625)

  • Fixed

    Fixes an issue where undoing the deletion of a custom stamp annotation didn’t restore its bitmap. (J#ANDR-544)

  • Fixed

    Fixes an issue where ink annotations can get clipped slightly when the tool is deselected. (J#ANDR-679)

Model

  • Added

    Adds a Catalog example to show how to detect when a document has been scrolled to the end and how to add a page after scrolling to the end. (J#ANDR-548)

  • Added

    Adds support for 16KB page size devices in Android 15. (J#ANDR-644)

  • Added

    Adds support for Android 15! (J#ANDR-660)

  • Added

    Adds support for RegExp.$1 to RegExp.$9 to allow accessing regular expression capturing groups from PDF scripts. (J#CORE-567)

  • Added

    Adds support for parsing custom colors in PDF JavaScript and converting color spaces by using the color.convert API. (J#CORE-580)

  • Changed

    Improves TIFF image document quality by respecting the embedded DPI values. (J#CORE-522)

  • Changed

    Improves the performance of the snapping tool with construction documents. (J#CORE-536)

  • Added

    Adds DataProvider support in compose DocumentView. (J#ANDR-653)

  • Removed

    Removes the deprecated legacy digital signatures code, as well as a few related classes and APIs. Full details in the migration guide. (J#ANDR-203)

  • Changed

    Renames the internal OutOfMemory thread to MemoryHandling to reduce confusion in stack traces. (J#CORE-581)

  • Changed

    Replaces the Uri API for output documents in the digital signatures signDocument API with a fully customizable DataProvider parameter. This can be used for encryption or any other file writing customizations that might be required when saving a signed document. (J#ANDR-488)

  • Changed

    Updates the Botan library to version 2.19.5. (J#CORE-633)

  • Changed

    Updates the HarfBuzz library to version 8.5.0. (J#CORE-583)

  • Changed

    Updates the STB library to version 2.30. (J#CORE-570)

  • Changed

    Updates Android Gradle Plugin from 8.2.1 to 8.5.1 and Gradle to 8.7. (J#ANDR-646)

  • Changed

    Updates various transitive dependencies: (J#ANDR-649)

    • Changed

      Kotlin 1.9.20 -> 1.9.24

    • Changed

      fragmentKtx 1.6.2 -> 1.8.1

    • Changed

      AppCompat 1.6.1 -> 1.7.0

    • Changed

      Material 1.11.0 -> 1.12.0

    • Changed

      ViewPager2 1.0.0 -> 1.1.0

    • Changed

      WebKit 1.1.0 -> 1.11.0

    • Changed

      Compose 1.5.4 -> 1.6.8

  • Fixed

    Fixes a crash when editing the content of some documents. (J#CORE-601)

  • Fixed

    Fixes a potential crash when accessing a ShapeAnnotationView Annotation object if the view has !=1 annotation associated. (J#ANDR-540)

  • Fixed

    Fixes an issue where OnAnnotationSelectedListener.onAnnotationSelectionFinished wasn’t called under certain circumstances. (J#ANDR-537)

  • Fixed

    Fixes an issue where a comment status may not show when a saved file is open in third-party software like Adobe Acrobat. (J#CORE-610)

  • Fixed

    Fixes an issue where, after redacting, some images were displaying wrong (e.g. black instead of white). (J#CORE-561)

  • Fixed

    Fixes an issue where changing to cloudy border style via the inspector resulted in a shape disappearing. (J#ANDR-536)

  • Fixed

    Fixes an issue where exporting and importing Instant JSON may incorrectly move annotations or forms. (J#CORE-589)

  • Fixed

    Fixes an issue where redaction didn’t handle certain text objects correctly, resulting in some displaced text. (J#CORE-612)

  • Fixed

    Fixes an issue where some digital signatures may incorrectly report as invalid. (J#CORE-597)

  • Fixed

    Fixes an issue where some digital signatures may not be validated correctly. (J#CORE-607)

  • Fixed

    Fixes an issue where the value property of the Field object in JavaScript may return an incorrect type in some cases. (J#CORE-582)

  • Fixed

    Fixes an issue where the date and time pickers weren’t added reliably. (J#CORE-520)

  • Fixed

    Fixes an issue where the line dash pattern was rendered differently from other PDF readers. (J#CORE-540)

  • Fixed

    Fixes an issue where the page labels may be incorrect in some documents. (J#CORE-560)

  • Fixed

    Fixes an issue where too many fonts were added to the PDF in certain rare circumstances, causing crashes. (J#CORE-605)

  • Fixed

    Fixes an issue where, in some cases, PDF JavaScript that changes the value of a form field wasn’t executed correctly. (J#CORE-590)

  • Fixed

    Fixes an issue where custom fonts aren’t loaded. (J#ANDR-613)

  • Fixed

    Fixes an issue where a signature image is incorrectly rotated on a rotated page. (J#ANDR-632)

2024.3.1 - 21 Jun 2024

A routine patch release focusing on the following issues reported by customers:

UI

  • Changed

    Exposes the AnnotationConfigurationRegistry in the DocumentConnection interface of our Jetpack Compose SDK. (J#ANDR-585)

  • Fixed

    Fixes an issue where the PdfThumbnailGrid displayed the wrong amount of columns after a device rotation. (J#ANDR-583)

  • Fixed

    Fixes an issue where the size of an ellipse or rectangle annotation changes when you select and deselect it after setting the border style to/from cloudy. (J#ANDR-536)

  • Fixed

    Fixes an issue where an annotation drawn on top of a LinkAnnotation does not intercept a click event first. (J#ANDR-490)

  • Fixed

    Fixes an issue where cloudy borders change size when first created and deselected. (J#ANDR-600)

Model

  • Changed

    Improves the performance of the snapping tool with construction documents. (J#CORE-536)

  • Fixed

    Fixes a potential crash when accessing a ShapeAnnotationView Annotation object if the view has !=1 annotation associated. (J#ANDR-540)

  • Fixed

    Fixes an issue where OnAnnotationSelectedListener.onAnnotationSelectionFinished wasn’t called under certain circumstances. (J#ANDR-537)

  • Fixed

    Fixes an issue where, after redacting, some images were displaying wrong (e.g. black instead of white). (J#CORE-561)

  • Fixed

    Fixes an issue where changing to cloudy border style via the inspector resulted in the shape disappearing. (J#ANDR-536)

  • Fixed

    Fixes an issue where exporting and importing Instant JSON may incorrectly move annotations or forms. (J#CORE-589)

  • Fixed

    Fixes an issue where the ‘value’ property of the ‘Field’ object in JavaScript may return an incorrect type in some cases. (J#CORE-582)

  • Fixed

    Fixes an issue where the line dash pattern was rendered differently from other PDF readers. (J#CORE-540)

  • Fixed

    Fixes an issue where the page labels may be incorrect in some documents. (J#CORE-560)

  • Fixed

    Fixes an issue where too many fonts were added to the PDF in certain rare circumstances, causing crashes. (J#CORE-605)

  • Fixed

    Fixes an issue where, in some cases, PDF JavaScript that changes the value of a form field was not executed correctly. (J#CORE-590)

  • Fixed

    Fixes an issue where some digital signatures may incorrectly report as invalid. (J#CORE-597)

  • Fixed

    Fixes an issue where some digital signatures may not be validated correctly. (J#CORE-607)

2024.3.0 - 5 Jun 2024

Migration guide. Version 2024.3 introduces snappier page transitions, as well as proper stylus handling and palm rejection. You can now draw annotations with the stylus while moving the page or switching pages with a finger. There are more bug fixes and improvements. See details below.

UI

  • Added

    Adds a configuration option to disable the annotation popup toolbar when you long-press a selected annotation (see annotationPopupToolbarEnabled). (J#ANDR-468)

  • Added

    Adds palm rejection handling on all devices. (J#ANDR-88)

  • Added

    Adds the ability to draw with a stylus and pan or scroll a document with a finger once the setting has been enabled. (J#ANDR-457)

  • Changed

    Exposes onDocumentScroll to the DocumentView composable, which can help with handling touch events on Compose container views containing a document. (J#ANDR-470)

  • Fixed

    Fixes a crash that might occur when the default MeasurementValueConfiguration has a fractional precision. (J#ANDR-497)

  • Fixed

    Fixes a gesture issue where zooming less than 100 percent of a page can cause it not to snap back to full width. (J#ANDR-468)

  • Fixed

    Fixes a regression where selecting a free text annotation would occasionally not display all the text until the bounding box is updated. (J#ANDR-460)

  • Fixed

    Fixes an issue on Samsung devices where you can’t scroll a page while in annotation editing mode. (J#ANDR-468)

  • Fixed

    Fixes an issue where the scrollbars aren’t displayed relative to the page after zooming in when using the jump transition. (J#ANDR-449)

  • Fixed

    Fixes an issue where zooming out of an already zoomed out page may cause the page to travel up or down. (J#ANDR-468)

  • Fixed

    Fixes an occasional issue where the popup toolbar doesn’t get dismissed properly. (J#ANDR-468)

  • Fixed

    Fixes an issue where the inspector view didn’t show a preview when switching the border style to CLOUDY. (J#ANDR-451)

  • Fixed

    Fixes an issue where an annotation drawn on top of a LinkAnnotation does not intercept a click event first. (J#ANDR-490)

Model

  • Added

    Adds the ability to toggle PSPDFKit view components from Compose’s DocumentView. (J#ANDR-407)

  • Changed

    Improves the PDFUIFragment Catalog example by showing how to hook into the document listener before the document is loaded. (Z#111597)

  • Changed

    Improves the content editing functionality in documents that contain tables. (J#CORE-506)

  • Changed

    Improves the logging system used in PSPDFKit for Android by making it more consistent. (J#ANDR-188)

  • Changed

    Exposes documentId and documentIdString in PdfDocument. (J#ANDR-446)

  • Changed

    Updates Annotation#toInstantJson() to use the Instant JSON protocol V2 instead of V1. (J#ANDR-463)

  • Changed

    Updates the HarfBuzz library to version 8.4.0. (J#CORE-559)

  • Fixed

    Fixes a memory leak in the context of device rotation. (J#ANDR-465)

  • Fixed

    Fixes an issue where an incorrect note icon may show on top of highlight annotations with comment replies. (J#CORE-527)

  • Fixed

    Fixes an issue where converting a stamp annotation with a custom AP stream to JSON returns null in onAnnotationCreated(). (J#ANDR-479)

  • Fixed

    Fixes an issue where deleting the value of a form field may incorrectly show the previous value in some situations. (J#CORE-531)

  • Fixed

    Fixes an issue where measurement labels on rotated pages weren’t exported correctly. (J#CORE-529)

  • Fixed

    Fixes an issue where pages could be rendered too small. (J#CORE-550)

  • Fixed

    Fixes an issue where pages could be rendered upside down. (J#CORE-545)

  • Fixed

    Fixes an issue where redaction annotations could not be applied by third-party software like Adobe Acrobat. (J#CORE-555)

  • Fixed

    Fixes an issue where text highlights were split when there was a tiny gap in a sentence. (J#CORE-510)

  • Fixed

    Fixes an issue where the email preset didn’t mark some email addresses for redaction. (J#CORE-514)

  • Fixed

    Fixes an issue where the redaction tool may redact a bigger area than necessary in some documents. (J#CORE-562)

  • Fixed

    Fixes an issue where the text in a callout annotation may appear in the wrong position. (J#CORE-466)

  • Fixed

    Fixes an issue where the text selection rectangle was too big, resulting in squashed text. (J#CORE-496)

  • Fixed

    Fixes an issue with PDF comparison when the content stream didn’t contain any stroke color commands. (J#CORE-533)

  • Fixed

    Fixes an issue where the page labels may be incorrect in some documents. (J#CORE-560)

Instant

  • Fixed

    Fixes a deadlock when syncing annotations on a certain document containing stamp annotations in PSPDFKit Instant. (J#ANDR-277)

2024.2.1 - 10 Apr 2024

UI

  • Fixed

    Fixes a regression where selecting a free text annotation would occasionally not display all the text until the bounding box is updated. (J#ANDR-460)

2024.2.0 - 9 Apr 2024

Welcome to the second major release of PSPDFKit for Android in 2024! We’ve fixed a lot of bugs (see below), and we added some great improvements and features:

  • Added

    Jetpack Compose!

    • Added

      New Jetpack Compose main toolbar! This makes it super easy to add and remove custom buttons and customize the toolbar however you want.

    • Changed

      We also migrated some of our UI to Jetpack Compose: the document information screen, and the settings menu.

  • Changed

    Annotation Multi-Selection!

    • Changed

      A new toolbar item has appeared! You can use it to select multiple annotations and group, move, copy, or resize them all at once! This brings us up to par with our iOS product, which also has this feature.

  • Changed

    We’ve cleaned up our SDK initialize API (refer to the migration guide linked below).

  • Changed

    Our free text and callout annotations now render much more cleanly and with better performance.

  • Changed

    We’ve expanded the customization options for measurement annotations.

  • Changed

    Loads more bug fixes and improvements — see the list below.

  • Changed

    Enjoy!

Migration guide.

UI

  • Added

    Adds FreeTextAnnotations to the list of annotations that obey the NOZOOM flag. (J#ANDR-365)

  • Added

    Adds an extra tab in the outline screen to view and open any PDF files embedded in an open document. This tab is only displayed if the document has embedded PDF files. (J#ANDR-403)

  • Added

    Adds annotation multi-selection and grouping functionalities. (J#ANDR-264)

  • Added

    Adds customization options for the lines and shapes used for measurement annotations. (J#ANDR-298)

  • Added

    Adds a new composable main toolbar, allowing users to easily customize it, including adding and removing custom buttons and text. (J#ANDR-289)

  • Added

    Adds the ability to auto save updated SettingsView configurations on exit, and removes the save button. (J#ANDR-344)

  • Added

    Adds style attributes for configuring margin and selection width in the PdfScrollableThumbnailBar. (J#ANDR-308)

  • Changed

    Enables scrolling with two fingers while in annotation creation mode and not zooming. (J#ANDR-401)

  • Removed

    Removes the deprecated SettingsModePicker from the codebase. SettingsDialog should be used instead. (J#ANDR-370)

  • Changed

    Replaces the document info view with a Jetpack Compose screen. (J#ANDR-345)

  • Changed

    Replaces the settings view with a Jetpack Compose screen. (J#ANDR-344)

  • Changed

    Improves the performance for compound undo/redo operations. (J#ANDR-380)

  • Fixed

    Fixes a rare crash when highlighting text on a rotated page after long-pressing a text block. (J#ANDR-368)

  • Fixed

    Fixes an issue where it wasn’t possible to input a comma as a decimal separator into form fields on certain Samsung devices. (J#ANDR-357)

  • Fixed

    Fixes an issue where snapping and guide helpers were incorrectly used for callout annotations. (J#ANDR-394)

  • Fixed

    Fixes an issue where the border of a free text annotation changes size when selected and deselected. (J#ANDR-410)

  • Fixed

    Fixes a bug where choosing only one SignatureCreationMode showed a blank screen. (J#ANDR-406)

  • Fixed

    Fixes a crash that happens when trying to add comments after long-pressing a piece of text while using Instant. (J#ANDR-420)

  • Fixed

    Fixes an issue where the inspector view didn’t show a preview when switching the borderstyle to CLOUDY. (J#ANDR-451)

  • Fixed

    Fixes render artifacts in free text and callout annotations when selected vs. deselected. (J#ANDR-294)

  • Fixed

    Fixes rotated callout annotation rendering. (J#ANDR-294)

  • Fixed

    Fixes the pop-up toolbar appearing away from the touch point when long pressing the page. (J#ANDR-414)

Model

  • Added

    Adds support for editing the content of PDF documents that use Type3 fonts. (J#CORE-478)

  • Removed

    Deprecates AnnotationEditingController.getCurrentlySelectedAnnotation. New methods getCurrentlySelectedAnnotations, getCurrentSingleSelectedAnnotation and hasCurrentlySelectedAnnotations should be used instead. The OnAnnotationSelectedListener interface got a new method onAnnotationSelectionFinished() which is called after all annotations of the current selection process have been selected. (J#ANDR-437)

  • Changed

    Organises the Jetpack Compose classes in a clearer package structure. This is a breaking API change. See migration guide for v2024.2. (J#ANDR-373)

  • Added

    Adds an API to rotate callout annotations programmatically by 90, 180, or 270 degrees. (J#ANDR-294)

  • Added

    Adds appearance stream generation for link annotations. This means any set borders will be rendered now. (J#CORE-483)

  • Added

    Adds one PSPDFKit.initialize method to rule them all. This takes InitializationOptions. All other initialize methods are deprecated and will be removed in 2025. (J#ANDR-142)

  • Added

    Adds the AnnotationViewsListener interface, which informs listeners about the EditText widget used to edit free text annotations. (J#ANDR-342)

  • Added

    Adds the ability to exclude certain annotations or annotation types from a page render call using PageRenderConfiguration. (J#ANDR-201)

  • Changed

    Updates the HarfBuzz library to version 8.3.1. (J#CORE-524)

  • Changed

    Ensures adding and removing annotations from a page programmatically now adds the operations to the undo stack. (J#ANDR-415)

  • Removed

    Removes useless rotation functions from the `FreeTextAnnotation rotation API in favor of one rotation function that takes a rotation parameter. (J#ANDR-294)

  • Removed

    Removes deprecated methods to do with accessing measurement scale/precision (can be replaced with the MeasurementValueConfiguration API) and isValidForEditing, which is replaced with isWritableAndCanSave. (J#ANDR-370)

  • Fixed

    Fixes an issue where Instant sync failed due to unsupported objects being received. (J#CORE-407)

  • Fixed

    Fixes a memory leak in PdfStaticThumbnailBar (used in PdfFragment) related to a layout listener. (J#ANDR-353)

  • Fixed

    Fixes a memory leak related to the NavigationBackStack when destroying and recreating PdfFragment’s in a view pager. (J#ANDR-393)

  • Fixed

    Fixes a potential crash when unparcelling document sources. (J#ANDR-391)

  • Fixed

    Fixes a potential crash when using PdfFragment if you don’t call PdfOutlineView#setDocument when a new document is loaded. We now continue and show a log error message. (J#ANDR-431)

  • Fixed

    Fixes a rare crash in certain PDF documents with JavaScript. (J#CORE-500)

  • Fixed

    Fixes an error message that may appear in the logs when using the snapping tool. (J#CORE-391)

  • Fixed

    Fixes an issue that was causing conflicts with duplicate files in external SDKs. (J#ANDR-367)

  • Fixed

    Fixes an issue with PDF comparison when the content stream didn’t contain any stroke color commands. (J#CORE-533)

  • Fixed

    Fixes an issue where annotations may be incorrectly selected in some cases. (J#CORE-464)

  • Fixed

    Fixes an issue where calling Field.value in a PDF JS script may return the wrong value. (J#CORE-450)

  • Fixed

    Fixes an issue where calling the PDF JS API field.setItems may not change the form’s value. (J#CORE-430)

  • Fixed

    Fixes an issue where extracted text was garbled due to incomplete reading order information in the PDF. (J#CORE-385)

  • Fixed

    Fixes an issue where intermittent rendering errors occurred while zooming in and out, resulting in incomplete page displays. (J#CORE-447)

  • Fixed

    Fixes an issue where listing embedded files in rare PDFs could cause a crash. (J#CORE-493)

  • Fixed

    Fixes an issue where opening a document with a digital signature may report additional changes. (J#CORE-473)

  • Fixed

    Fixes an issue where redacting some kind of documents may corrupt them. (J#CORE-375)

  • Fixed

    Fixes an issue where refreshing the LTV information of some signed documents may fail. (J#CORE-499)

  • Fixed

    Fixes an issue where shape annotations imported via Instant JSON may incorrectly show a black border. (J#CORE-392)

  • Fixed

    Fixes an issue where text blocks were split when encountering two or more narrow characters. (J#CORE-380)

  • Fixed

    Fixes an issue where text with the FL and FI ligatures wasn’t extracted correctly. (J#CORE-443)

  • Fixed

    Fixes an issue where the appearance of unsigned signature form fields may ignore some property changes, like their border width. (J#CORE-417, J#CORE-412)

  • Fixed

    Fixes an issue where the text selection of italic characters was too large. (J#CORE-444)

  • Fixed

    Fixes an issue where validating some documents with LTV information may incorrectly return that the revocation status couldn’t be checked. (J#WEB-1042)

  • Fixed

    Fixes an issue where deletion of all comments for an annotation caused the annotation to disappear. Also fixes a related crash when clicking on the bin icon to delete all comments for an annotation. (J#ANDR-371)

  • Fixed

    Fixes an issue where stamp annotations created using vector images have the wrong type when converted to Instant JSON. (J#ANDR-422)

  • Fixed

    Fixes an issue where text with negative font sizes caused the text to vanish in the content editor. (J#CORE-438)

  • Fixed

    Fixes an unnecessary annotation update on the comment layout dismissal. (J#ANDR-329)

2024.1.2 - 5 Mar 2024

This patch offers a crash fix for instant users with non-Latin names. There is also a fix for a crash that happens when the typing mode for signatures is opened.

UI

  • Fixed

    Fixes crash when opening the type signature screen. (J#ANDR-379)

Instant

  • Fixed

    Fixes an issue where JWT tokens with Base64 URL safe encoding in the payload part didn’t parse correctly. (J#CORE-492)

2024.1.1 - 12 Feb 2024

A few bugfixes here and there. Most notably J#ANDR-367 which can cause build failures if you are using R8 minify enabled.

UI

  • Fixed

    Fixes a rare crash when highlighting text on a rotated page after long-pressing a text block. (J#ANDR-368)

  • Fixed

    Fixes an issue where it wasn’t possible to input comma as decimal separator into form fields on certain Samsung devices. (J#ANDR-357)

Model

  • Fixed

    Fixes an issue where text with negative font sizes caused the text to vanish in the content editor. (J#CORE-438)

  • Fixed

    Fixes a memory leak in PdfStaticThumbnailBar (used in PdfFragment) related to a layout listener. (J#ANDR-353)

  • Fixed

    Fixes an issue that was causing conflicts with duplicate files in external SDKs. (J#ANDR-367)

  • Fixed

    Fixes an issue where the appearance of unsigned signature form fields may ignore some property changes, like their border width. (J#CORE-412)

  • Fixed

    Fixes unnecessary annotation update on the comment layout dismissal. (J#ANDR-329)

2024.1.0 - 23 Jan 2024

PSPDFKit for Android 2024.1! Welcome to our new versioning system. We have opted for yyyy.version.patch over semantic versioning. We have expanded on our Content Editing component with paragraph editing, resize text blocks, drag and drop, text alignment, line spacing, and more. Our Digital Signatures feature now has support for Long-Term-Validation for CAdES advanced digital signatures (B-LT). Jetpack Compose is getting some much needed attention. We have added more functionality such as annotation and document listeners, plus a new public example application. See https://github.com/PSPDFKit/pspdfkit-jetpack-compose-pdf-viewer. Check out the details below for all the many fixes and improvements we have made in this release. Enjoy!

UI

  • Added

    Adds dedicated section for Jetpack Compose samples in Catalog Example. (J#ANDR-216)

  • Added

    Adds the ability to change the color of the PDFActivity title overlay label. (J#ANDR-278)

  • Changed

    Extends the content editing feature with paragraph editing, which includes copying, pasting, creating, moving, resizing and deleting text blocks. (J#ANDR-65)

  • Added

    Adds customisation options for the lines and shapes used for measurement annotations. (J#ANDR-298)

  • Added

    Adds style attributes for configuring margin and selection width in the PdfScrollableThumbnailBar. (J#ANDR-308)

  • Fixed

    Fixes a bug in context with text form fields and input of decimal numbers. (J#ANDR-243)

  • Fixed

    Fixes a memory-leak within the DefaultBookmarkAdapter implementation. (J#ANDR-286)

  • Fixed

    Fixes an issue in the Compose DocumentView where we animate to the previously opened page instead of just opening it. (J#ANDR-303)

  • Fixed

    Fixes an issue where snapping was incorrectly applied to ink annotations. (J#ANDR-267)

  • Fixed

    Fixes an issue where zooming was disabled when creating shape annotations. (J#ANDR-113)

Model

  • API

    Adds API to add long term validation information to an existing digital signature to turn it into PAdES B-LT. (J#ANDR-283)

  • API

    Adds API to use a PrivateKey object for signing instead of PrivateKeyEntry as well as loading from PEM file helper function. (#42828)

  • API

    Adds TrustedKeyStore object which replaces the APIs to add and remove trusted certificates in the deprecated SignatureManager. Used for validating digital signatures. (J#ANDR-223)

  • Added

    Adds a dedicated example application to showcase our new and improved Jetpack Compose APIs. This can be found in the release zip under examples/jetpack-compose and here https://github.com/PSPDFKit/pspdfkit-jetpack-compose-pdf-viewer. (J#ANDR-58)

  • Added

    Adds digital signature Long-Term-Validaiton support to the document validation methods which will insert LTV data to the signature on validation if it can be retrieved. (J#ANDR-222)

  • Added

    Adds support for adding annotations programmatically with the Jetpack Compose DocumentView. (J#ANDR-207)

  • Added

    Adds a new example project to demonstrate new supported Jetpack Compose features. (J#ANDR-180)

  • Added

    Adds support for annotation listeners in the DocumentView composable. (J#ANDR-62)

  • Added

    Adds support for document listeners in the DocumentView composable. (J#ANDR-61)

  • Changed

    Changes API for the customSigning lambda in SigningManager.signDocument to take non-null hash algorithm string instead of nullable. (J#ANDR-245)

  • Changed

    Enables LTV (Long-Term-Validation) in PAdES signatures during the signing flow using SigningManager#signDocument creating a PAdES level B-LT digital signature. (J#ANDR-140)

  • Fixed

    Fixes file access permission in Catalog for Android 11+. (J#ANDR-192)

  • Changed

    Improves Document Editor performance when dealing with large documents. (#42927)

  • Changed

    Migrates all the example build scripts to .kts. (J#ANDR-292)

  • Removed

    Removes the usesClearTextTraffic permission from the Catalog app. This is no longer needed and causes the app to be flagged as a security risk. (#43073)

  • Changed

    Upgrades project to AGP 8.2 plus various internal dependencies to latest. (J#ANDR-272)

  • Fixed

    Fixes freetext annotation callout line ends when importing from XFDF. (J#CORE-297)

  • Fixed

    Fixes freetext callout rendering and rich text link render on rotated pages. (J#CORE-297)

  • Fixed

    Fixes vertical alignment of free text annotations when using rich text. (#42793)

  • Fixed

    Fixes a crash that may happen when parsing certain kinds of outlines. (J#CORE-356)

  • Fixed

    Fixes a crash while looking up character codes. (J#CORE-348)

  • Fixed

    Fixes a potential IllegalStateException in the DocumentCreationFragment in very rare situations. (J#ANDR-239)

  • Fixed

    Fixes a potential crash when generating AP streams. (J#CORE-364)

  • Fixed

    Fixes an issue signing some kind of pre-existing form fields. (J#CORE-327)

  • Fixed

    Fixes an issue where the cross-reference table may be invalid after saving a file. (J#CORE-321)

  • Fixed

    Fixes an issue with file paths when using Android SAF picker to choose a file save destination. (J#ANDR-261)

  • Fixed

    Fixes an issue with the instant Catalog example crashing in release mode. (J#ANDR-269)

  • Fixed

    Fixes scrolling issue in Compose DocumentView. (J#ANDR-206)

8.10.0 - 7 Dec 2023

UI

  • Added

    Adds an option to PdfConfiguration to control the automatic invocation of the note editor after a new note annotation was created. (J#ANDR-184)

  • Added

    Adds extra string translations for measurement tools. (J#ANDR-123)

  • Added

    Adds support for showing the signer’s timezone in the appearance of signed signature fields. (J#CORE-263)

  • Added

    Adds camera option on image field click event. (J#ANDR-137)

  • Fixed

    Fixes a bug which caused an IndexOutOfBoundException when updating the content of a text formfield. (J#ANDR-173)

  • Fixed

    Fixes an incorrectly thrown exception when adding a note to a measurement annotation. (J#ANDR-172)

  • Fixed

    Fixes bug in rendering cloudy annotations after drawing is finished. (J#ANDR-121)

  • Fixed

    Fixes a bug with text form fields and input of decimal numbers. (J#ANDR-243)

  • Fixed

    Fixes scrolling issue in Compose DocumentView. (J#ANDR-206)

Model

  • Added

    Adds an ignorePageRotation boolean parameter to the XfdfFormatter methods. (J#ANDR-152)

  • Changed

    Improves performance loading a document if automatic link extraction is enabled. (J#CORE-215)

  • Changed

    Updates the default signature watermark for signed documents. (J#WEB-308)

  • Changed

    Upgrades dependencies (J#ANDR-210, J#ANDR-122)

    • Changed

      Kotlin to 1.9.20

    • Changed

      Android Gradle Plugin to 8.1.3

    • Changed

      Compose 1.5

    • Changed

      Target & Compile SDK to 34

    • Changed

      And various other internal and transitive dependencies to the latest.

  • Changed

    Upgrades Harfbuzz to 8.2.2. (J#CORE-275)

  • Fixed

    Fixes an error ‘Assertion failed: Annotation ID is already known’ which may happen when opening a document. (J#WEB-233)

  • Fixed

    Fixes border style selection for shape annotations in Instant JSON when strokeDashArray is not present. (J#CORE-270)

  • Fixed

    Fixes rendering of tiling patterns when zooming. (J#CORE-195)

  • Fixed

    Fixes XFDF export of dashed borders when cloudy borders were previously set. (J#CORE-185)

  • Fixed

    Fixes Proguard consumer rules incorrectly trying to use optimize rules. (J#ANDR-167)

  • Fixed

    Fixes a bug where a paste operation created the wrong annotation. (J#ANDR-208)

  • Fixed

    Fixes a potential crash when showing the PopupToolbar and when initialising measurement tools. (J#ANDR-202)

  • Fixed

    Fixes a rare exception when the annotation font name property may be incorrectly stored in the PDF when non-UTF-8. (J#ANDR-132)

  • Fixed

    Fixes an issue where loading link annotations may incorrectly log an error. (J#CORE-281)

  • Fixed

    Fixes an issue where measurement properties weren’t correctly applied when importing XFDF. (J#CORE-225)

  • Fixed

    Fixes an issue where text annotations imported from XFDF may not render correctly. (J#CORE-279)

  • Fixed

    Fixes an issue where the wrong rich text was rendered. (J#CORE-315)

  • Fixed

    Fixes an issue with the util.scand and util.printd functions of the Adobe PDF JavaScript API, which in some cases returned the wrong result. (J#CORE-271)

  • Fixed

    Fixes package names for the new digital signature APIs. (#42536)

  • Fixed

    Fixes an issue with the instant Catalog example crashing in release mode. (J#ANDR-269)

  • Fixed

    Fixes an issue with file paths when using Android SAF picker to choose a file save destination. (J#ANDR-261)

  • Fixed

    Fix file access permission in Catalog for Android 11+. (J#ANDR-192)

  • Fixed

    Fixes freetext annotation callout line ends when importing from XFDF. (J#CORE-297)

8.9.1 - 2 Nov 2023

Emergency patch release to fix an issue with one of our cross-platform product’s license key handling.

Model

  • Fixed

    Fixes a bug with cross-platform initialization. (J#ANDR-191)

8.9.0 - 5 Oct 2023

See the announcement post.

Migration guide.

UI

  • Added

    Adds a confirmation dialog when calibrating a measurement scale as clearer UX to show a scale was added to the list. (J#ANDR-12)

  • Added

    Adds date and time picker support for form fields. (J#ANDR-87)

  • Added

    Adds resize-to-fit-text functionality to the FreeTextAnnotation class. (J#ANDR-89)

  • Fixed

    Fixes an issue with freetext annotations, where the text was painted over with the background color. (J#ANDR-93)

  • Fixed

    Fixes vertical positioning of popup toolbars. (J#ANDR-124)

  • Fixed

    Fixes and issue where selecting small amounts of text with the redaction tool causes the text to stop getting selected. (J#ANDR-105)

Model

  • Added

    Adds new, simpler APIs for Digital Signatures, SigningManager. Providing PAdES level B-B (basic CAdES advances signing) and B-T (basic + timestamping) signatures. (J#ANDR-19)

    • Changed

      See our Catalog examples DigitalSignatureExample and ManualSigningExample for examples on how to use the new API.

    • Changed

      See the migration guide for details on migrating from our previous signature APIs.

  • Changed

    Improves low memory logging and OS signal handling. (#41805)

  • Changed

    Improves (reduces) memory usage on pages with a lot of vector graphics. (J#CORE-210)

  • Changed

    Updates the HarfBuzz library to 8.2.1. (J#CORE-229)

  • Fixed

    Fixes broken Kotlin API docs which can be accessed here https://www.nutrient.io/api/android/kdoc/. (#41683)

  • Fixed

    Fixes an issue where embedded files were not transferred when using the PdfProcessor. (J#CORE-205)

  • Fixed

    Fixes an issue where some color was lost when redacting documents. (J#CORE-201)

  • Fixed

    Fixes an issue where the font name was incorrectly inherited in certain form hierarchies. (J#CORE-69)

  • Fixed

    Fixes an issue with dependency clash when upgrading to Jetpack Compose 1.5+. (J#ANDR-94)

Instant

  • Fixed

    Fixes the unsetting of annotation flags via Instant JSON. (J#CORE-183)

8.8.1 - 1 Sep 2023

UI

  • Fixed

    Fixes an error where a stamp annotation wasn’t rendered under certain circumstances. (#41776)

  • Fixed

    Fixes bug where multi-line free-text annotations are being cut off at the bottom. (J#ANDR-38)

  • Fixed

    Fixes bug where the PDFOutlineView occasionally crashes when hiding. (J#ANDR-35)

  • Fixed

    Fixes crash where the initialisation of the MeasurementScaleView caused a crash even when measurement tools deactivated. (J#ANDR-84)

  • Fixed

    Fixes the QR code scanner in the InstantExample. (#41733)

Model

  • Added

    Adds a WavWriter class which can be used to extract audio data from sound annotations and other audio sources. (#41680) Also adds a Catalog example to show how it works SoundAnnotationDataExtractionExample.

  • Fixed

    Fixes a crash when trying to use the calibration tool and the tool is not enabled in the toolbar. (J#ANDR-55)

  • Fixed

    Fixes an issue where rich text was converted to plain text incorrectly, missing content after new lines. (J#CORE-136)

Instant

  • Fixed

    Fixes fetching of image annotation assets upon initial opening of Instant document. (J#CORE-12)

8.8.0 - 14 Aug 2023

See the announcement post.

Migration guide.

Measurement Tools Improvements

  • Added

    Adds support to store and select from multiple measurement scales per document. (#41035)

  • Added

    Adds the ability to view measurements in fractional precision. (#40085)

  • Added

    Adds support for naming scales. (#40563)

  • Added

    Adds a new UI button to access measurement scales. (#40563)

  • Added

    Adds a new calibration tool to help create scales. (#40563)

  • Added

    Adds numerous shape drawing helpers to help draw angular lines and align points to other parts of the shape. (#40563)

  • Changed

    Improves measurement unit rendering by enabling fractions such as “¹⁵⁄₁₆” instead of “15/16”, and “²” instead of “sq” as well as better formatting for feet, inches, and yards. (#40960)

UI

  • Added

    Adds a double click to close a polygon or polyline and finishes drawing the current shape. (#40347, #40090)

  • Added

    Adds a red x hint to snap close a polyline or a polygon during creation. (#40495)

  • Added

    Adds helper guides and snapping to the line shape drawing UI to make it easier for users to draw horizontal, vertical, and diagonal lines. (#40594)

  • Added

    Adds shape drawing helpers to make it easier to line up points to other points on the shape. (#40746)

  • Added

    Adds bold and italic style button in the ContentEditingStylingBar are now disabled if they would change the style to a font without a matching characteristics. (#39937)

  • Changed

    Improves performance of annotation scale and resize code. (#40018)

  • Changed

    Improves UI by hiding the PdfOutlineView and the PdfDocumentInfoView whenever the user interface is being hidden. (#39542)

  • Changed

    Updates the styling and behaviour of the RedactionView button. (#40796)

  • Fixed

    Fixes a bug where free text annotation text can be clipped by the border when resizing if the border is thicker than 1. (#40018)

  • Fixed

    Fixes bug related to rendering of FreeTextAnnotations with multiple lines. (#40660)

  • Fixed

    Fixes not being able to shrink a free text annotation easily in the UI. (#40018)

Model

  • Added

    Adds additional flags invisible, readOnly, locked, toggleNoView and lockedContents to the flags property of annotations in InstantJSON. (#41335)

  • Added

    Adds support for OpenType collection fonts (.otc). (J#CORE-91)

  • Added

    Adds support for digitally signing a document and include a certificate chain. (#40352)

  • Changed

    Improves AP stream generation to generate more optimal text rendering commands. (J#CORE-101)

  • Changed

    Improves the performance of the snapping feature in complex documents. (#40414)

  • Changed

    Improves embedding of OpenType CFF fonts. (#40481)

  • Changed

    Improves our example applications’ dependency handling using Version Catalogs as well as simplifying the structure by removing the shared module. (#40007)

  • Changed

    Improves text rendering, particularly for languages that do not use the Latin alphabet. (#39812)

  • Changed

    Applies patch to libtiff to fix CVE-2023-2731. (#40657)

  • Removed

    Removes duplicate Java code examples that are also in Kotlin from the Catalog app. Also removes language preference option. (#40081)

  • Changed

    Updates HarfBuzz to 8.0.1. (J#CORE-129)

  • Changed

    Updates the Botan library to version 2.19.3. (#40107)

  • Changed

    Updates the measurement snapping threshold from 20dp to 4dp. (#40917)

  • Changed

    Changes the enum name FloatPrecision to MeasurementPrecision. (#40085)

  • Fixed

    Fixes an issue if the content editor is used on a page without a font dictionary. (#40803)

  • Fixed

    Fixes a potential crash in the Android font subsystem by switching to the more battle-tested Linux font subsystem. (#40587)

  • Fixed

    Fixes a potential crash when parsing the reading order in an invalidly tagged PDF. (#40419)

  • Fixed

    Fixes a rare crash that can happen when importing Instant JSON if an annotation has a non-default blend mode. (#39457)

  • Fixed

    Fixes an issue when redacting images with a mask referencing a color. (#41558)

  • Fixed

    Fixes an issue where ‘borderColor’ wasn’t serialized for ‘pspdfkit/text’ annotations. (#40905)

  • Fixed

    Fixes an issue where certain PDF documents couldn’t be opened in Adobe Acrobat after flattening some form annotations. (J#CORE-79)

  • Fixed

    Fixes an issue where exporting custom stamp annotations to XFDF and then importing them cause them to show blurry. (J#CORE-113)

  • Fixed

    Fixes an issue where images could be inverted when redacting JBIG2 images. (#40341)

  • Fixed

    Fixes an issue where processing would endless loop on malformed PDFs. (#40388)

  • Fixed

    Fixes an issue where redaction annotations applied on pages with rotation may not appear correctly. (#25007)

  • Fixed

    Fixes an issue where sometimes the wrong font is used when applying changes in the content editor. (#40663)

  • Fixed

    Fixes an issue where the ‘updatedAt’ field in annotations wasn’t preserved correctly when importing JSON. (#37490)

  • Fixed

    Fixes an issue where the bold or italic attribute of a font got lost when saving changes from the content editor. (#40663)

  • Fixed

    Fixes an issue where the cloudy border effect was set when importing InstantJSON annotations. (#40472)

  • Fixed

    Fixes an issue where validating some digital signatures created by DocuSign may incorrectly report additional changes. (#39972)

  • Fixed

    Fixes small signatures not being detected correctly on large signature form fields. (#40900)

Instant

  • Added

    Adds API to export Instant JSON in V1 format. See DocumentJsonFormatter.exportDocumentJson(document, outputStream, InstantJsonVersion.V1). (#40611)

  • Fixed

    Fixes an issue where the text highlight popup bar showed disabled buttons incorrectly in Instant. (#40058)

8.7.3 - 13 Jun 2023

UI

  • Fixed

    Fixes a bug where the back arrow during search is not pointing in the right direction when the layout is in RTL mode. (#40281)

  • Fixed

    Fixes a bug which caused the back button in inspector detail views to be hidden. (#39953)

  • Fixed

    Fixes strikeout and underline buttons missing from the text highlight popup toolbar on non-tablet devices and adds a Catalog example to show how to configure it, TextHighlightPopupCustomisationExample. (#40060)

Model

  • Fixed

    Fixes a potential race condition when accessing font data in our core library. (#40587)

  • Fixed

    Fixes an issue where text in multi line form field was cut off after two newlines. (#40504)

  • Fixed

    Fixes library size increase due to shipping of unstripped OCR library. (#40614)

  • Fixed

    Fixes the unstripped NDK library symbol files that are shipped in the SDK release zip. These can now be used to symbolicate stack traces for libpspdfkit.so crashes. (#40614)

  • Fixed

    Fixes a crash that occurred when the thumbnail bar was set to PINNED mode. (#40411)

8.7.2 - 15 May 2023

UI

  • Added

    Adds support for the displayPageLabels configuration option to the modular search view and the bookmarks view. (#33658)

  • Changed

    Improves calculation of the cursor position when editing a text-block in the Content Editor. (#40014)

  • Changed

    Content editing inspector views can now be properly dismissed by touching outside of their view. (#40053)

  • Fixed

    Fixes Settings dialog radio buttons misalignment when using a non-PSPDFKit theme. (#39970)

  • Fixed

    Fixes a bug in the CustomFragmentExample where the current page was not updated in the bookmark view. (#39955)

  • Fixed

    Fixes a bug with uri write permission on Android 11 devices. (#40236)

  • Fixed

    Fixes the occasional wrong calculation of the vertical position of submenu toolbars. (#40277)

Model

  • Added

    Adds line spacing for multiline form elements and free text annotations to match that of other platforms and external PDF viewer applications. (#39224)

  • Changed

    Invalidate caches after the document is loaded in PdfFragment to avoid unsaved annotations from showing in the thumbnail bar. (#38764)

  • Fixed

    Fixes a Content Editing crash in the Simple example app to do with a missing transitive dependency androidx.fragment:fragment-ktx. (#40168)

  • Fixed

    Fixes a bug where the annotation toolbar did not have any menu items for large screens. (#40013)

  • Fixed

    Fixes a crash when entering Content Editor in a document containing Type 3 fonts. (#3)

  • Fixed

    Fixes an issue with Full-Text Search queries containing , characters. (#39309)

Instant

  • Changed

    Retains the current text selection that is visible when an inspector window is displayed during content editing. (#39974)

  • Fixed

    Fixes syncing annotations from the server failing after not handling a 502 error correctly. (#40288)

8.7.1 - 19 Apr 2023

Model

  • Fixed

    Fixes a build issue where the kotlinx-serialization-json dependency could not be downloaded. (#40029)

8.7.0 - 18 Apr 2023

This release adds the Content Editor component. You can learn more in the announcement post. If you’d like to add this component to your license, please contact our sales team to receive a quote.

Migration guide.

UI

  • Added

    Adds missing default annotation tools to the default Image Document configuration. (#39837)

  • Removed

    Removes the popup toolbar which allows users to view Note Annotation comments. Clicking the Note Annotation now navigates straight to the annotation details if no annotation editing license is available. (#39577)

  • Changed

    Updates the annotation creation toolbar to show measurements after drawing buttons as well as a more consistent grouping when operating in both landscape and portrait orientation. (#39661)

  • Fixed

    Fixes a bug where form field rounding does not work when loading an XFDF file in onDocumentLoaded(). (#39738)

Model

  • Fixed

    Fixes an issue where some annotations added to a document are not correctly exported to Instant Document JSON. (#39014)

  • Fixed

    Fixes privacy concern with PSPDFKit storing system clipboard data whenever clipboard changes. Now we only copy the data when we are trying to paste an annotation. (#30691)

Instant

  • Added

    Adds measurement tools to Instant for Android. (#39720)

  • Changed

    Updates the Instant demo links to point to the correct Server example URL. (#39720)

8.6.0 - 23 Mar 2023

Migration guide.

UI

  • Fixed

    Fixes a bug where the height in dp set in a custom style for the ContextualToolbar was not converted to px. (#39526)

Model

  • Added

    Adds support for a fontSize property for redaction annotations in Instant JSON, which sets the size of the redaction overlay text. (#39017)

  • Added

    Adds PSPDFKit OCR library debug symbols in the release package for customers to use in the event of crashes. (#39331)

  • Changed

    Improves the appearance of the overlay text in redacted documents, adjusting their font size much better to fill the available space. (#3017)

  • Removed

    Removes deprecated parts of the SDK: (#38427)

    • Changed

      SignatureFormElement#getOverlappingInkSignature replaced by SignatureFormElement#getOverlappingSignature().

    • Changed

      Legacy PKCS7 constructor.

    • Changed

      Legacy PKCS7SignatureContents constructors.

    • Changed

      PdfThumbnailGrid#setOnDocumentSavedListener replaced by addOnDocumentSavedListener(OnDocumentSavedListener).

    • Changed

      PdfDrawable#getPDFToPageTransformation and PdfDrawable#updatePDFToViewTransformation replaced by getPdfToPageTransformation and updatePdfToViewTransformation.

  • Changed

    Upgrades RxJava from 2 to 3. (#38838)

    • Changed

      You will need to add or upgrade the transitive dependencies for rxjava and rxandroid to: implementation 'io.reactivex.rxjava3:rxjava:3.1.6' implementation 'io.reactivex.rxjava3:rxandroid:3.0.2'

  • Changed

    Upgrades the HarfBuzz library to version 7.0.1. (#36924)

  • Changed

    Upgrades Android Gradle Plugin to 7.4.2, Kotlin to 1.8.10, and NDK to 25.2.9519653. (#39251)

    • Changed

      If you are manually integrating PSPDFKit, this change means you will need to change the transitive dependency for otlin-stdlib from org.jetbrains.kotlin:kotlin-stdlib to org.jetbrains.kotlin:kotlin-stdlib-jdk8.

    • Changed

      NDK upgrade means our debug symbols are back to providing full debug information after a regression in NDK v24.

  • Fixed

    Fixes a crash when using a non-PSPDFKit theme and opening the SettingsDialog. (#39044)

  • Fixed

    Fixes a potential crash in low memory situations. (#39373)

  • Fixed

    Fixes an issue where a background image was accidentially reverted when redacting on certain PDF pages. (#39342)

  • Fixed

    Fixes the LineIntent and PolylineIntent missing keys and subsequent error messages. (#39084)

  • Fixed

    Fixes the maximum file name length when saving a document using the sharing UI. (#38794)

8.5.1 - 2 Mar 2023

UI

  • Added

    Adds an extra styling attribute, pspdf__loading_view_background_color, to customise the background colour of the LoadingView used in the PdfFragment. (#38043)

  • Added

    Adds the ability to customise the height of the contextual toolbar using the attribute pspdf__contextualToolbarHeight. (#38418)

  • Changed

    Improves the default User Interface design with better icons, colors, and uniformity across the toolbars. (#37954)

  • Fixed

    Fixes a bug where the SDK did not pick the set colour for electronic signatures. (#35706)

  • Fixed

    Fixes a bug where using cursor keys while editing text triggered a page navigation. (#38722)

  • Fixed

    Fixes issue where the PdfOutlineView could not have a custom width. (#37794)

  • Fixed

    Fixes the search highlight drawable’s default behaviour of overlapping of extra characters by updating the default padding for search results to 0dp. This value can still be customized in SearchResultHighlighter and by using pspdf__searchResultPadding and pspdf__searchResultAnnotationPadding style items. (#32848)

Model

  • Changed

    Improves UI performance of the Catalog home screen by reducing unnecessary recomposition of Composables. (#37992)

  • Changed

    Improves onTrimMemory behaviour by running in coroutine scope. (#34467)

  • Changed

    Improves text parsing and text selection. (#38089)

  • Removed

    Removes un-maintained lint-checks module in favour of providing Catalog examples and website guides for SDK usage instructions. (#38391)

  • Changed

    Updates Android Gradle plugin version to 7.4.0. (#38375)

  • Changed

    Updates Harfbuzz to 6.0.0. (#38024)

  • Changed

    Updates deprecated EditTextPreference with androidx.preference. (#38428)

  • Fixed

    Fixes a crash caused by interacting with Note annotations when both Annotation Editing and Electronic Signature license features are missing. (#39095)

  • Fixed

    Fixes a crash when opening the settings dialog in the Simple example app. (#38834)

  • Fixed

    Fixes an issue where applying a redaction annotation may incorrectly invert the colors of certain documents. (#38722)

  • Fixed

    Fixes an issue where memory usage was very high when searching large documents. (#37893)

  • Fixed

    Fixes an issue where saving a PDF file with a indirect null object could cause a crash. (#39127)

  • Fixed

    Fixes an issue where the file size increased too much after adding emojis. (#38393)

  • Fixed

    Fixes an issue where the package versions in README.html were not updated correctly when creating the release package. (#38181)

  • Fixed

    Fixes an issue where the redaction tool may incorrectly displace text in some situations. (#38642)

  • Fixed

    Fixes an issue where the unicode checkmark character wasn’t rendered correctly. (#36785)

  • Fixed

    Fixes displaying the current page on rotation when configuration.page() and .restoreLastViewedPage(true) are used together. (#37699)

  • Fixed

    Fixes janky .java file formatting throughout the codebase including public facing code and examples. (#29084)

  • Fixed

    Fixes some issues where the redaction tool may incorrectly remove more vector graphics than strictly necessary. (#38295)

  • Fixed

    Fixes the InlineMediaExample Catalog example YouTube links behaviour by starting the YouTube API service in the manifest. (#38953)

  • Fixed

    Fixes the redaction button moving up the screen each time the user exits full screen mode. (#36079)

8.5.0 - 12 Jan 2023

See the announcement post.

UI

  • Added

    Adds two presets for the settings dialog which allow to quickly switch between two common vertical and horizontal view configurations. (#35295)

  • Added

    Adds a popup toolbar which allows users to view Note Annotation comments if no annotation editing license is available. (#34780)

  • Changed

    Improves small screen device experience by showing settings view as a fullscreen dialog. (#34055)

  • Changed

    Improves the annotation toolbar appearance. (#35152)

  • Changed

    Updates the appearance of the PdfThumbnailBar. (#34977)

  • Fixed

    Fixes an initialization issue in the annotation inspector with the line-end property of the freetext callout annotation. (#36824)

  • Fixed

    Fixes an issue where full-color items where not displayed correctly in contextual toolbars because tinting couldn’t be disabled. (#19009)

    • Changed

      Improves CustomAnnotationCreationToolbarExample adding a full-color item and showcasing how to disable tinting.

  • Fixed

    Fixes the release build variants for example apps Catalog and Simple. (#35923)

Model

  • Added

    Adds Hebrew localization. (#36047)

  • Added

    Adds a ImageDocumentView composable for loading image documents. (#36881)

  • Added

    Adds support for converting multi-image TIFF files to multi page PDFs. (#36108)

  • Added

    Adds support for serializing and deserializing annotations with measurement info to the XFDF format. (#36936)

  • Added

    Adds support for the non-standard imagedata XFDF element in stamp annotations. (#36518)

  • Changed

    Improves calculation of line height when a line is wrapped in a multi-line text form. (#36385)

  • Changed

    Improves compatibility with other PDF software when rendering multi-line form field text. (#37072)

  • Changed

    Improves error handling in the DocumentSharingController to catch a possible ActivityNotFoundException. (#37494)

  • Changed

    Changes the “showAsAction” value for default menu items and adds interface OnPrepareDefaultMenuItemListener for customising these values. (#35283)

  • Changed

    Exposes the instant record group of an annotation with Annotation#getInstantRecordGroup(). (#36993)

  • Changed

    Implements two new methods FormProvider#removeFormElementFromPage(FormElement) and FormProvider#removeFormElementFromPageAsync(FormElement) for deleting form fields. (#34318)

  • Added

    Adds and incorporates a new icon set. (#35290)

  • Changed

    Updates libexpat to version 2.5.0. (#37257)

  • Changed

    Updates Android Gradle plugin version to 7.3.1. (#36148)

    • Changed

      Updates compile SDK and target SDK to version 33, Compose extension to version 1.3.2, Compose to version 1.3.0, Kotlin version to 1.7.20 and Kotlin Coroutines to version 1.6.4.

  • Changed

    Updates PDFium to version c3451daffa0e96af95b856406668e6188cb139d0. (#36256)

  • Changed

    Updates SQLite to version 3.39.3. (#36337)

  • Changed

    Updates the HarfBuzz library to 5.2.0. (#36547)

  • Changed

    Updates the HarfBuzz library to version 5.1.0. (#35186)

  • Changed

    Updates ktlint and spotless to the latest versions improving public Kotlin code formatting and best practices. (#37512)

  • Fixed

    Fixes a crash while redacting documents containing the ’ PDF operator. (#36778)

  • Fixed

    Fixes an exception when importing annotations with measurement information from Instant JSON. (#36537)

  • Fixed

    Fixes an issue generating PDFs from HTML when checkboxes are defined and customer stylesheets are referenced in the HTML head. (#34453)

  • Fixed

    Fixes an issue when using undo/redo on shape annotations could throw an exception if Measurements are not licensed. (#37678)

  • Fixed

    Fixes an issue where JPEG2000 images were rendered blurry. (#37829)

  • Fixed

    Fixes an issue where form field flags weren’t preserved correctly when repairing form fields. (#33878)

  • Fixed

    Fixes an issue where passing a new license key does not reinitialise license features, and therefore may cause an exception from a license feature mismatch between Android and our Core C++ library. (#37822)

  • Fixed

    Fixes an issue where paths in content may not be rendered. (#35988)

  • Fixed

    Fixes an issue where redacting certain documents may render some document pages blank. (#35776)

  • Fixed

    Fixes an issue where redaction draws invalid black boxes on the page. (#37863)

  • Fixed

    Fixes an issue where sharing a PDF to Google Drive did not open up the Drive app dialog. (#36095)

  • Fixed

    Fixes an issue where specific PDFs could cause a crash when you quickly switch between pages. (#37498)

  • Fixed

    Fixes an issue where temporary files could have been written into /. (#36239)

  • Fixed

    Fixes an issue where text selection wasn’t working properly on PDFs with corrupted fonts. (#32468)

  • Fixed

    Fixes an issue where the font information for annotations wasn’t loaded correctly. (#36933)

  • Fixed

    Fixes an issue with custom font paths where subfolders in assets are not picked up correctly. (#36366)

  • Fixed

    Fixes an issue where the package versions in README.html were not updated correctly when creating the release package. (#38181)

  • Fixed

    Fixes crashes related to font loading in specific documents. (#36284)

Instant

  • Fixed

    Fixes an issue where syncing of a newly created annotation in a fresh document would sometimes not work. (#37552)

  • Fixed

    Fixes the Annotation Eraser tool not appearing in the annotation toolbar when using PSPDFKit Instant for Android. (#37952)

8.4.1 - 30 Sep 2022

UI

  • Changed

    Improves the label for area measurements in the annotation inspector. (#35726)

  • Changed

    Improves Dark Theme example in the Catalog app adding a new customized style for pspdf__popupToolbarStyle. (#36338)

  • Changed

    Updates sample PDFs in Catalog app. (#32347)

  • Fixed

    Fixes a potential crash during the SystemFontManager initialization. (#36444)

  • Fixed

    Fixes an issue where the measurement text view could cause a ViewRootImpl$CalledFromWrongThreadException. (#36280)

Model

  • Changed

    Avoids a crash if the NativeTextParser cannot be obtained. (#36445)

  • Fixed

    Fixed a crash by avoiding to create zero-sized bitmaps. (#36429)

  • Changed

    Updates libexpat to version 2.4.9. (#36612)

  • Fixed

    Fixes a crash after a null clipboard data was received. (#36446)

  • Fixed

    Fixes a license issue validating or adding annotations with measurement information via Instant JSON. (#36660)

  • Fixed

    Fixes a rare crash when trying to refresh a FreeTextAnnotation with an invalid scaling value. (#36447)

  • Fixed

    Fixes an issue where AP streams weren’t reliably generated for form text fields. That resulted in other readers potentially not showing the text. (#36236)

  • Fixed

    Fixes an issue where certain documents could cause a crash when opening them. (#36272)

  • Fixed

    Fixes an issue where font styles weren’t always discovered correctly. (#35955)

8.4.0 - 18 Aug 2022

See the announcement post.

UI

  • Added

    Adds a Catalog example showcasing the new PSPDFKit for Android Measurement Tools. Includes example measurements and logic for processing them and listening for newly created measurements. (#35452)

  • Added

    Adds a measurement value display above the magnifier as a helpful way of observing the currently edited measurement value while drawing. This fixes the issue of the magnifier or finger obscuring the measurement value on the page. (#34650, #35200, #35349)

  • Added

    Adds new style attribute to the PSPDFKit.MeasurementTools style to customize the background color of the pop up view. (#35821)

  • Added

    Adds annotation inspector support for configuring page scale used for measurement annotation tools. (#33914)

  • Added

    Adds annotation inspector support for floating point precision used in measurement tools. (#33579)

  • Added

    Adds support for calibrating the length of a distance annotation in order to help set the page scale based on a known distance. (#34156, #34396)

  • Added

    Adds support for the Android magnifier to appear when creating and editing measurements to help with making more precise measurements. (#34110)

  • Added

    Adds the Measurement Tools feature including distance, perimeter, and area (elliptical, rectangular, polygonal) measurements. (#33967)

  • Added

    Adds the distance measurement tool used to measure the distance of a line on the page. (#33579, #34204, #34316, #34627, #34933, #35150, #35064)

  • Added

    Adds the perimeter measurement tool in the annotation toolbar used to measure cumulative line distances. (#34596, #35061, #35064)

  • Added

    Adds the polygonal area measurement tool in the annotation toolbar used to measure the area of custom-drawn shapes. (#35024, #35064)

  • Added

    Adds the rectangular and elliptical area measurement tools in the annotation toolbar. These can be used to help measure round or box shaped objects on the PDF. (#34991, #34962)

  • Changed

    Improves the measurement magnifier behavior by increasing zoom amount and hiding the edit handle that is currently being touched so as to better see the measurement point. (#35533)

  • Changed

    Implements displaying the measurement value in the Annotation Editing Inspector. (#35726)

  • Changed

    Updates annotation inspector z-order picker icon tint to dark blue. (#35526)

  • Changed

    Updates minimum supported API version for the native magnifier to API 29 from API 28 in order to support the measurement tools value text to be displayed above it. (#35246)

  • Changed

    Updates the Catalog examples list with new sections “Industry Examples” and “Components”, and updates some of the Catalog PDF assets. (#35618)

  • Changed

    Updates the default annotation toolbar groups to make room for, and add, measurement annotation tools. (#33447)

  • Changed

    Updates the support magnifier (used on APIs < 29) to match the rounded corners of the native magnifier. (#35624)

  • Fixed

    Fixes an issue where lines with a length less than 1 are still counted as valid. (#35716)

Model

  • Added

    Adds API to get measurement information on the base Annotation class: getMeasurementInfo. (#34538)

  • Added

    Adds API to set scale and precision on a ShapeAnnotation programmatically, thus making them measurement annotations. (#35390)

  • Added

    Adds new LineAnnotation, PolylineAnnotation, PolygonAnnotation, CircleAnnotation, and SquareAnnotation constructors for creating measurement annotations programmatically. (#35071)

  • Added

    Adds new license feature flag, “Measurement Tools”, checked when configuring the annotation toolbar, creating/editing measurements, and other measurement API calls. (#34495, #34531)

  • Added

    Adds support for storing and retrieving measurement annotation data inside the document. (#34351)

  • Changed

    Updates the minimum required Android SDK version for native magnifier support to API 29 from API 28. Users with pre API 29 devices will rely on the support magnifier. (#35246)

  • Fixed

    Fixes an issue where measurement text was not getting rendered when drawing shapes very quickly. (#35419)

8.3.0 - 2 Aug 2022

See the announcement post.

UI

  • Added

    Adds PlaygroundExample to the Catalog app that shows how to customize the behavior of the PdfActivity. (#35206)

  • Added

    Adds new construction example to the Catalog app that shows how to better configure PSPDFKit to display a building floor plan. (#33433)

  • Added

    Adds new example ContainedPadesSignaturesExample to the Catalog app showcasing how to embed PKCS7 container as a PAdES Advanced Digital Signature. (#33251)

  • Added

    Adds new menu item to the main toolbar that shows document info view. (#34480)

  • Added

    Adds new circle, line, line arrow, polyline, square, and polygon icons to Annotation Creation and Annotation Editing Toolbars. (#35271)

  • Fixed

    Fixes a crash when a full-page rendering was requested with a width or height of zero. (#32871)

  • Fixed

    Fixes an issue affecting the scrubber bar where, on certain devices, the scrolling may lead to a crash. (#32551)

  • Fixed

    Fixes an issue with Jetpack Compose where the annotation inspector appears only once. (#33556)

  • Fixed

    Fixes an issue with the annotation overlay implementation where the page loading spinner was not hidden correctly after a page was rendered. (#35424)

  • Fixed

    Fixes permission errors when saving external files on Android 12 and higher. (#34928)

  • Fixed

    Fixes the External Document examples in the Catalog to properly open documents from Google Drive. (#35248)

  • Changed

    Updates visual appearance for the document tab bar. (#34865)

Model

  • Added

    Adds support for PAdES (ETSI.CAdES.detached) signing method. (#33251)

    • Changed

      Implements FilterSubtype to specify the format to use when creating the signasture.

    • Removed

      Deprecates PKCS7SignatureContents constructors in favor of new ones where the filter subtype can be explicitly set.

    • Removed

      Deprecates method PKCS7#create(byte[], KeyStore.PrivateKeyEntry, HashAlgorithm) in favor of a new one where the filter subtype can be explicitly set.

  • Changed

    Improves XFDF serialization of ink annotations by including their variant. (#34354)

  • Changed

    Improves error reporting when an invalid license key is entered. (#33758)

  • Changed

    Changes the default color for annotation note to yellow, to match PSPDFKit for Web and iOS. (#34145)

  • Changed

    Changes the stamp annotation creation so that if only one StampItem is available, the stamp picker dialog is skipped and the annotation is created with the only item available. (#34282)

  • Fixed

    Fix insufficient Android 12 uri permission handling in ContentResolverDataProvider. (#35578)

  • Fixed

    Fix package name for SignatureBitmapStorage class that was erroneously set to a wrong one. (#35273)

  • Changed

    Overloads the method AbstractPdfSearchView#performSearch(String, EnumSet<CompareOptions>) adding a new parameter to customize the compare options when performing a search action. (#35217)

  • Removed

    Removes the RECORD_AUDIO permission from the Android manifest file that was erroneously added in a previous release. To delve more into the topic refer to the Audio Recording Permission section of our guides. (#34424)

  • Changed

    Updates boost to 1.79.0. (#34723)

  • Fixed

    Fixes a crash on Android 12 and higher when trying to persist Uri permissions for internal files. (#35535)

  • Fixed

    Fixes the error “The timestamp token couldn’t be parsed” that may appear with some digital signature timestamps. (#35394)

  • Fixed

    Fixes an issue in the Catalog app where Kotlin examples were launched instead of Java examples. (#35103)

  • Fixed

    Fixes an issue when importing a InstantDocument JSON where both a form field and a form annotation were modified at the same time. (#35454)

  • Fixed

    Fixes an issue where dates weren’t parsed correctly due to the parser being too strict. (#34079)

  • Fixed

    Fixes an issue where form fields were showing NaN (not a number) if the form value could not be formatted correctly. This returns an empty string now and shows an error message in the console. (#34017)

  • Fixed

    Fixes an issue where having huge amounts of data on the clipboard can cause a DeadSystemException. (#34487)

  • Fixed

    Fixes an issue where the PdfSearchViewModular visibility state is not initialized correctly, thus breaking the isShown() method. (#34391)

  • Fixed

    Fixes an issue where the dialog for adding notes was transparent and causing glitches if the property COLOR was disabled. (#34055)

  • Fixed

    Fixes an issue where the file size of the PDF grew a lot when entering Arabic text into form fields. (#35381)

  • Fixed

    Fixes an issue where the swipe gesture wasn’t applied correctly for the horizontal paginated layout on several PDF documents. (#31886)

  • Fixed

    Fixes an issue where the wrong text was highlighted when searching. (#33867)

  • Fixed

    Fixes corruption of CMYK colorspace images in PDFs after redaction. (#34453)

  • Fixed

    Fixes the query of potential document sharing targets for devices running Android 11 and higher. (#34542)

  • Fixed

    Fixes an issue affecting Android API 29 and upwards where saving a document reusing the same filename may lead to a document saved with the wrong extension. (#35728)

8.2.1 - 6 May 2022

Model

  • Fixed

    Fixes a crash when trying to setup a database which violated a unique constraint. (#34027)

  • Fixed

    Fixes an issue when accessing a SQLite database concurrently. (#34027)

  • Changed

    Improves cache handling of forms in case of exceptions by logging the message instead of crashing the process. (#34027)

  • Changed

    Updates the Zlib library to version 1.2.12. (#34305)

  • Changed

    Updates the Freetype library to version 2.12.1. (#34326)

  • Fixed

    Fixes an issue where retrieving annotations from the AnnotationProvider using object numbers was returning an empty list although matching annotations were available. (#34270)

8.2.0 - 20 Apr 2022

See the announcement post.

UI

  • Added

    Adds a “Remove Signature” button to the SignatureInfoDialog. (#33113)

  • Added

    Adds a cloudy annotation item to the default annotation creation toolbar. (#32909)

  • Changed

    Defaults border style to BorderStyle.SOLID for Polygon annotation. (#31998)

  • Removed

    Removes initial permission check from External Document example and shows request permission dialog with extensive info. (#16772)

  • Fixed

    Fixes a problem where some form fields with JavaScript formatting scripts may be incorrectly formatted with thousands separators. (#32596)

  • Fixed

    Fixes a problem where the Sign overlay of unsigned signatures may incorrectly appear in some situations. (#32310)

  • Fixed

    Fixes a problem where the outline elements of some documents did not point to the correct page. (#32970)

  • Fixed

    Fixes a problem with the SaveAs file picker not allowing to specify a new filename. (#33023)

  • Fixed

    Fixes font size calculations for freetext annotation font scaling. (#33229)

Model

  • Added

    Adds getSelectedPages() method to PdfThumbnailGrid. (#33032)

  • Added

    Adds more detailed logging for signature verification errors during development of custom signing implementations. (Z#28856)

  • Added

    Adds new methods removeAllDocuments and removeAllDocumentsExceptVisible to the DocumentCoordinator class. (#19494)

  • Added

    Adds support for validating RSA-PSS digital signatures. (#33006)

  • Changed

    Improves PdfDocument#getPageBox method where returned values are now normalized. Widths and heights, may no longer be less than 0. (#32764)

  • Changed

    Avoids a NoSuchElementException if DocumentView is destroyed before it had finished layout. (#33841)

  • Changed

    Ensures invalidateCacheForPage does not need to be called to refresh the page render after removing a signature with removeSignature. (#33095)

  • Changed

    Includes in the downloadable binary release the unstripped NDK symbols into the unstrippedNativeLibs folder. (#32864)

  • Changed

    Includes support for new page boundaries bleed box and trim box exposing two new types PdfBox.BLEED_BOX and PdfBox.TRIM_BOX. (#33749)

  • Changed

    Updates Duktape to version 2.7.0. (#33161)

  • Changed

    Updates Kotlin Standard library to version 1.6.10. (#34031)

  • Changed

    Updates Android Gradle plugin to version 7.1.2. (#34031)

  • Changed

    Updates Compose to version 1.1.1. (#34031)

  • Changed

    Updates Kotlin Coroutines to version 1.6.1. (#34031)

  • Changed

    Updates ReLinker to version 1.4.4. (#34031)

  • Changed

    Updates Android Material library to version 1.5.0. (#34031)

  • Changed

    Updates Activity Compose to version 1.4.0. (#34031)

  • Changed

    Updates Lifecycle Kotlin runtime to version 2.4.1. (#34031)

  • Changed

    Updates SQLite3 to version 3.38.0. (#33239)

  • Changed

    Updates XMP toolkit to version 2022.02. (#32824)

  • Changed

    Updates libtiff to version 4.3.0. (#33050)

  • Changed

    Updates the Harfbuzz library to version 4.2.0. (#33765)

  • Changed

    Updates the license contained in the binary release, switching in favor of a markup file that contains a link to a PDF document in PSPDFKit website. (#33673)

  • Changed

    Upgraded the androidx.appcompat dependency to the latest stable version 1.4.1. (#32967)

  • Fixed

    Fixes a crash on getShadowBitmap() where the RenderScript object might not yet be initialized. (#33668)

  • Fixed

    Fixes a crash when deserialising image annotations from JSON that references an incompatible existing annotation from the PDF. (Z#28946, #32861)

  • Fixed

    Fixes a crash when flattening note annotations in compound documents. (#33041)

  • Fixed

    Fixes a crash when rendering a specific type of documents on multiple threads at the same time. (#33110)

  • Fixed

    Fixes an issue running OCR on a page that contains an image with no text. (#31709)

  • Fixed

    Fixes an issue when trying to run OCR on a blank page. (#33771)

  • Fixed

    Fixes an issue where PdfFragment#handleDocumentLoadingError(Throwable, boolean) may have a null throwable leading to a crash. (#33903)

  • Fixed

    Fixes an issue where onPageChanged is called twice when changing page for the first time. (#19365)

  • Fixed

    Fixes an issue where adding a digital signature may invalidate previous ones because of some spurious rounding-related changes to the page boxes. (#32952)

  • Fixed

    Fixes an issue where an old trailer was loaded in PDFs with hybrid cross-reference tables causing old information to be shown. (#32243)

  • Fixed

    Fixes an issue where calling SignatureFormField#removeSignature() may not clear the signed signature appearance. (#32965)

  • Fixed

    Fixes an issue where certain form fields weren’t repaired correctly. (#33878)

  • Fixed

    Fixes an issue where font lookup might cause a crash because fonts weren’t correctly initialized yet. (#33593)

  • Fixed

    Fixes an issue where form buttons weren’t able to import images with buttonImportIcon if they were located on pages other than the first. (#33364)

  • Fixed

    Fixes an issue where imported stamp annotations wouldn’t be modified. (#33030)

  • Fixed

    Fixes an issue where read-only signature fields may incorrectly show a “Sign” overlay. (#32310)

  • Fixed

    Fixes file permission handling in the document editor which caused the popup of a dialog with wrong information about the permission status. (#32755)

  • Fixed

    Fixes issues surrounding rendering Devanagari script. (#33753)

  • Fixed

    Fixes libtiff CVEs CVE-2022-0561 and CVE-2022-0562. (#33480)

  • Fixed

    Fixes manual initialization so we do not automatically default to trial mode if the user fails to initialize manually. (#33577)

  • Fixed

    Fixes parsing of page labels with indirect objects in the number tree. (#33657)

8.1.2 - 4 Mar 2022

Model

  • Changed

    Updates libexpat to 2.4.6. (#33300)

  • Fixed

    Fixes a rare crash that happened when loading fonts. (#33110)

  • Fixed

    Fixes an occasional crash in the DocumentView when trying to clean up toolbars with an uninitialized toolbar coordinator. (#33304)

8.1.1 - 15 Feb 2022

UI

  • Changed

    Improves Catalog performance by minimising Jetpack Compose recomposition. (#32817)

  • Fixed

    Fixes the certificate identifier name getting truncated in the SignaturePickerFragment. (#32717)

Model

  • Added

    Adds a more descriptive error when trying to sign documents with keys stored in the Android KeyStore. (#32913)

  • Added

    Adds support for additional manifest parameters to allow for disabling automatic initialization and proper custom font initialization. (#32330, #30651)

  • Changed

    Updates Expat library to 2.4.4. (#32841, #32790)

  • Changed

    Updates STB library to 2.27. (#32326)

  • Changed

    Updates the Android Gradle Plugin used by all example apps to version 7.1.0. (#32839)

  • Fixed

    Fixes an issue where the user is incorrectly prompted if the changes should be discarded when exiting the DocumentEditor with unsaved changes. (#5905, #32557)

  • Fixed

    Fixes a NullPointerException when calling DocumentView#removeListeners() before the documentPopupToolbarCoordinator initialization. (#31762)

  • Fixed

    Fixes a glyph rendering issue when new lines are used in form fields. (#31733)

  • Fixed

    Fixes an issue where objects were rendered with the wrong color due to non-compliant color values. (#30102)

  • Fixed

    Fixes an issue where the redaction tool may leave some old PDF object references if the page contents are an array of content streams. (#32926)

  • Fixed

    Fixes null pointer access violation if clipboard data cannot be accessed on Android 12. (#32661)

  • Changed

    Upgrades the androidx.appcompat dependency to the latest stable version 1.4.1. (#32967)

8.1.0 - 25 Jan 2022

UI

  • Fixed

    Fixes StampAnnotation flags not being properly applied to layout parameters. (#27426, #31848)

  • Fixed

    Fixes a crash when putting data on the clipboard without the necessary permission. (#31692, #29215)

  • Fixed

    Fixes ink signature annotations getting alpha blended into form field backgrounds when they are excluded from the annotation overlay view. (#31474)

Model

  • Added

    Adds support for searching form field contents when the option to search annotation contents is enabled. (#26502)

  • Removed

    Deprecated setOnDocumentSavedListener and introduced addOnDocumentSavedListener/removeOnDocumentSavedListener, because overwriting the default implementation with setOnDocumentSavedListener broke the document editor. (#31550)

  • Changed

    Updates the HarfBuzz library to 3.1.0. (#31771)

  • Changed

    Upgrades UID generation for the MemoryDataProvider from SHA1 to SHA256. (#28673)

  • Fixed

    Fixes PdfThumbnailGrid.setDocumentEditorSaveAsEnabled and setDocumentEditorExportEnabled being ignored if set before the thumbnail grid was shown. (#31678, #31789)

  • Fixed

    Fixes a bitmap retention issue that could lead to out-of-memory situations in documents with many shape annotations. (#31154)

  • Fixed

    Fixes a crash in PDFActivity when creating an options menu with incomplete PDF-parameters. (#32271, #28906)

  • Fixed

    Fixes a crash when trying to calculate tab ordering for documents. (#24082)

  • Fixed

    Fixes a crash when trying to dismiss a SignatureFragment while a fragment transaction is already in progress. (#32301, #28906)

  • Fixed

    Fixes a crash when trying to open an invalid URI in an external activity. (#32270, #28906)

  • Fixed

    Fixes a crash when trying to render an empty bitmap. (#32359, #28906)

  • Fixed

    Fixes a stability issue accessing the file system that can happen in rare situations. (#32467)

  • Fixed

    Fixes an issue where persisting dates or times in forms may be off by one hour in some situations. (#32201)

  • Fixed

    Fixes an issue with file access when loading custom fonts when instantiating AnnotationCreationSpecialModeHandler. (#27712)

  • Fixed

    Fixes importing of Instant Document JSON containing image annotations onto a rotated page. (#32021)

  • Fixed

    Fixes importing of Instant Document JSON containing multiple radio buttons of the same label. (#31855)

  • Fixed

    Fixes importing of Instant Document JSON where image annotations have been moved. (#31945)

  • Fixed

    Fixes memory leak when closing documents with form fields. (#31557)

  • Fixed

    Fixes rendering black when a screen annotation with image is tapped. (#31584)

  • Fixed

    Fixes the annotation image picker not working on Android API 30+. (#31915)

8.0.2 - 30 Nov 2021

UI

  • Fixed

    Fixes the current page of the DocumentState not being kept in sync with the open document. (#31689)

  • Fixed

    Fixes an issue where manual document alignment for the document comparison feature would produce incorrect results for rotated pages. (#31681)

Model

  • Changed

    Exposes the getExportValue method for the CheckBoxFormElement type. (#25122)

  • Changed

    Handles exception when dispatching tap onto form element before a page is ready. (#30274)

  • Fixed

    Fixes a Magnifier issue where onDetachedFromWindow calls would crash the application under certain conditions. (#31700)

  • Fixed

    Fixes an issue where annotations weren’t always rendered in the correct z-order. (#31671)

  • Fixed

    Fixes an issue where the appearance stream of unsigned signature fields wasn’t rendered. (#31015)

Instant

  • Changed

    Improves the behavior of reauthentication before accessing the document of an InstantDocumentDescriptor. (Z#27871)

  • Changed

    Improves the level of detail in log messages when failing to access the record store to help diagnosing obscure I/O errors. (#31815)

8.0.1 - 25 Oct 2021

Model

  • Fixed

    Fixes a crash when restoring the ElectronicSignatures dialog from parcel data on low memory devices. (#31602)

  • Fixed

    Fixes a memory leak when validating digital signatures. (#31520)

  • Fixed

    Fixes an issue where setting event.value inside a validation script may not work as expected. (#31286)

8.0.0 - 7 Oct 2021

See the announcement post.

This release adds the Electronic Signatures and built-in support for Jetpack Compose via the DocumentView composable function. If you’d like to add Electronic Signatures to your license, please contact our sales team to receive a quote. To learn more about the breaking changes introduced with the new APIs, check out our migration guide for this release.

UI

  • Added

    Adds built-in support for Jetpack Compose via the DocumentView composable function. (#30779)

  • Added

    Adds support for Electronic Signatures.

    • Added

      Adds a new signing UI with the ElectronicSignatureFragment, along with associated APIs, as part of the Electronic Signatures component. (#29282)

    • Added

      Adds new public ID R.id.pspdf__menu_option_signature for a signature creation button in the main toolbar. (#28065)

    • Added

      Adds new styleable attributes pspdf__signatureIcon and pspdf__signatureIconActivated for the signature creation button in the main toolbar.

    • Added

      Adds new configuration option PdfActivityConfiguration#isSignatureButtonPositionForcedInMainToolbar(boolean) to set the signature creation button position in the main toolbar.

  • Added

    Adds automatic free text annotation font resizing when scaling the annotation using the bottom right corner scale handle. (#29382)

  • Added

    Adds document alignment feature to improve the existing document comparison functionality. (#30461)

    • Added

      Adds DocumentComparisonDialog class that can be used to align two versions of a document and generate a comparison between them.

    • Changed

      Updates the existing DocumentComparisonExample to showcase the new document comparison and alignment features.

  • Changed

    Improves precision of scrolling and zooming operations within PdfFragment as well as precision of calculations performed by ViewProjection. (#31214)

  • Removed

    Removes PdfActivityToolbarApi class which was not used by PSPDFKit for Android. (#30836)

  • Fixed

    Fixes PdfActivity immersive mode inset handling on API 29+ devices. (#30190)

  • Fixed

    Fixes a crash that could happen when navigating to a page containing a newly created LinkAnnotation. (#30232)

  • Fixed

    Fixes ink signature annotations getting alpha blended into form field backgrounds when they are excluded from the annotation overlay view. (#31474)

  • Fixed

    Fixes the isCopyPasteEnabled configuration option not being respected. (#30654)

Model

  • Changed

    Improves rendering non-latin text (like Arabic) when selecting specific fonts. (#30517)

  • Changed

    Reduces memory consumption when encoding JPEG images. (#31205)

  • Changed

    Reduces memory consumption when PDF objects need compressing. (#31317)

  • Removed

    Renames methods on PdfDrawable to follow the SDK-wide camel casing convention. (#31186)

    • Removed

      Deprecates updatePDFToViewTransformation() and getPDFToPageTransformation().

    • Added

      Adds updatePdfToViewTransformation() and getPdfToPageTransformation().

  • Changed

    Updated FreeType to version 2.11.0. (#30900)

  • Changed

    Updated libjpeg-turbo to 2.2.1. (#30900)

  • Changed

    Updates HarfBuzz to 3.0.0. (#31113)

  • Changed

    Updates our compile SDK version to Android API level 30. (#30316)

  • Fixed

    Fixes a potential race condition when validating a digital signature and adding a trusted certificate happens at the same time. (#31305)

  • Fixed

    Fixes an assertion if the rotation property was removed from an annotation. (#31173)

  • Fixed

    Fixes a potential crash on certain devices when rotating the device. (#30871)

  • Fixed

    Fixes a problem where a PDF table of contents (outline) may link to the wrong page. (#30070)

  • Fixed

    Fixes a rare crash that may happen when rendering a PDF. (#29843)

  • Fixed

    Fixes a very occasional crash when parsing stamp annotations that contained images references to invalid indirect objects. (#31093)

  • Fixed

    Fixes an issue where XFDF annotations like lines without an explicit width attribute were not rendered. In these cases, we now mimic Acrobats behavior and imply a line width of 1 pt. (#30291, Z#25968)

  • Fixed

    Fixes an issue where a digital signature may incorrectly report a certificate validation error. (#30521)

  • Fixed

    Fixes an issue where fonts were not correctly included in the PDF resulting in wrongly rendered free text annotations. (#30115)

  • Fixed

    Fixes an issue where highlight annotations used the wrong blend mode after importing with Instant JSON. (#30537)

  • Fixed

    Fixes possible undefined behavior validating digital signature data. (#31179)

  • Fixed

    Fixes signature form fields not being included when using a license purchased after April 2021. (#30950)

Instant

  • Added

    Adds support for Instant Document Permissions. (#29789)

Examples

  • Added

    Adds Catalog examples for Electronic Signatures and splits out the Digital Signature and Electronic Signature examples. (#30878)

  • Changed

    Updates the custom signing UI examples to use the new Electronic Signatures UI. (#30561)

7.0.0 - 13 Jul 2021

See the announcement post.

Migration guide.

UI

  • Added

    Adds configurable minimum annotation size through PdfConfiguration.Builder#setMinimumAnnotationSize(). (#20200)

  • Changed

    Improves API documentation for custom annotation selection background. (#27677)

  • Changed

    Improves the Annotation Selection Layout example where the custom configuration for the annotation selection layout was lost after a page rotation. (#27678)

  • Changed

    Updates the main toolbar icons for creating note annotations, showing outline section, printing, showing the reader view, opening settings, and creating a new signature. (#28669)

  • Fixed

    Fixes PdfActivity immersive mode inset handling on API 29+ devices. (#30190)

  • Fixed

    Fixes an issue where calling AnnotationProvider#hasUnsavedChanges() on the UI thread leads to ANR. (#28656)

  • Fixed

    Fixes an issue where callout annotation text was rendered incorrectly. (#27600)

  • Fixed

    Fixes an issue where ink annotation bounding boxes were incorrectly rotated. (#27148)

  • Fixed

    Fixes an issue where read-only ink annotations that were created while the eraser tool was active could be erased. (#27944)

  • Fixed

    Fixes an issue where switching tabs while having annotation selected could result in duplicated annotations. (#29875)

  • Fixed

    Fixes an issue where tapping outside page bounds while an annotation tool was selected would end the annotation editing mode. (#28633)

  • Fixed

    Fixes an issue where the app would crash when requesting camera access from the system. (#27609)

  • Fixed

    Fixes an issue where the selection UI could display the wrong bounding box for programmatically created annotations on rotated pages. (#28242)

  • Fixed

    Fixes an issue where the WebView wouldn’t be properly finished after dismissing a LinkAnnotation. (#28965)

  • Fixed

    Fixes a crash that could happen when navigating to a page containing a newly created LinkAnnotation. (#30232)

Model

  • Added

    Adds a new method to set custom fonts for typed signatures Signature#setAvailableFonts(LinkedHashSet<Font>) (#28416)

    • Added

      Adds a new method to retrieve the available fonts to pick from when typing a signature. By default a set of four fonts is provided: Caveat, Pacifico, Marck Script, Meddon.

  • Added

    Adds support for blend mode in all annotations when using Instant JSON. If blendMode is not specified, it defaults to normal. (#29582)

  • Added

    Adds the ability to open TIFF images as Image Documents. (#28776)

  • Changed

    Changes minSdkVersion from API 19 (KitKat) to API 21 (Lollipop). (#24917)

  • Changed

    Updates FreeType to 2.10.4.179. (#28676)

  • Changed

    Updates HarfBuzz to 2.8.0. (#28598)

  • Changed

    Updates libjpeg-turbo to 2.0.90. (#27771)

  • Changed

    Updates the Botan library to 2.18.0. (#29123)

  • Fixed

    Fixes an issue where calling PdfDocument#saveIfModified() would not save the document back to the original file if the document was previously saved to an external file using PdfDocument#saveIfModified(outputPath). (#29776)

  • Fixed

    Fixes a problem where a document signed with a timestamp would not validate correctly. (#29380)

  • Fixed

    Fixes a problem where an ECDSA signature in IEEE 1363 format would not validate correctly. (#29380)

  • Fixed

    Fixes a rendering issue for specific documents that have font resources with /Widths that are to small to render. (#28103)

  • Fixed

    Fixes an issue when setting form field datetimes that have JavaScript formatting. (#27939)

  • Fixed

    Fixes an issue where JavaScript code was not executed correctly. (#29283)

  • Fixed

    Fixes an issue where OCR would fail if no text is on the page. Now the call returns successfully. (#29527)

  • Fixed

    Fixes an issue where an invalid digital signature would return the same error code more than once. (#27512)

  • Fixed

    Fixes an issue where certain timestamps would not be preserved because of an incorrect sanitization step. (#27720)

  • Fixed

    Fixes an issue where deleting a note annotation could incorrectly print an error message to the log. (#28240)

  • Fixed

    Fixes an issue where form fields were not interactive after a document with JavaScript was merged with another document. (#28052)

  • Fixed

    Fixes an issue where importing a ‘goToRemote’ without a page index would fail. (#29616)

  • Fixed

    Fixes an issue where importing unknown actions using Instant JSON failed. (#29814)

  • Fixed

    Fixes an issue where loading from a checkpoint for a document failed in certain instances. (#27576)

  • Fixed

    Fixes an issue where negative values didn’t include thousand separators when being formatted by AFNumber_Format in JavaScript. (#28188)

  • Fixed

    Fixes an issue where not all data was shown on a small amount of documents containing hybrid cross-reference streams. (#28713, #24258)

  • Fixed

    Fixes an issue where paths could accidentally be filled in, even though only the border should have been painted. (#28699)

  • Fixed

    Fixes an issue where redactions of paths could fail with Coordinate outside allowed range if the path coordinates were very large. (#29791)

  • Fixed

    Fixes an issue where some digital signatures with indefinite length structures were not validated correctly. (#26983)

  • Fixed

    Fixes an issue where some saved documents contained a xref table with more than one subsection. This may have caused problems if the document was signed multiple times, for example. (#28755)

  • Fixed

    Fixes an issue where some signatures with timestamps couldn’t be parsed correctly and returned an error. (#28642)

  • Fixed

    Fixes an issue where text extracted from an image using OCR was not selectable on the macOS Preview.app. (#28329)

  • Fixed

    Fixes an issue where the bounding box of automatically generated link annotations wasn’t large enough. (#27608)

  • Fixed

    Fixes an issue where the framework would write unnecessary entries to the PDF trailer dictionary. (#28755)

  • Fixed

    Fixes an issue where the signature description was cut off in narrow signature fields. (#27540)

  • Fixed

    Fixes an issue with OCR where no text was found if the text on the page was relatively large. (#29512)

  • Fixed

    Fixes an issue where the Instant JSON would contain redundant data after removing a form field. (#29671)

  • Fixed

    Fixes a crash that could happen when opening documents and image documents at the same time in different threads. (#29468)

Instant

  • Added

    Adds support for the Instant Comments component. (#28345)

  • Added

    Adds support for specifying blend mode for shape annotations in Instant JSON. (#29081)

  • Added

    Adds support for the (optional) creator_name claim in JWTs: All annotations and comments created in the InstantPdfFragment displaying the InstantPdfDocument for a JWT containing this claim will reflect its value as their creator. (#29507)

  • Fixed

    Fixes a lock inversion that could lead to a deadlock. (#29743)

  • Fixed

    Fixes an issue where flattened Instant Comments on rotated pages didn’t correctly display text. (#28272)

6.6.2 - 19 May 2021

UI

  • Fixed

    Fixes an issue affecting freetext annotations where text justification was not set correctly for Arabic languages. (#29327)

Model

  • Changed

    Changes PSPDFKit.initialize method to allow passing a null value as licenseKey to allow trialing the SDK. (#27297)

6.6.1 - 6 May 2021

Model

  • Changed

    Updates Expat to 2.2.10. (#27472)

  • Changed

    Updates OpenJPEG to version 2.4.0. (#27917)

  • Fixed

    Fixes an issue in the text parser where space characters were being omitted from the returned text. (#28886)

  • Fixed

    Fixes an issue where selectedResultIndex from saved state exceeds the search results’ upper bounds causing an IllegalArgumentException. (#27665)

  • Fixed

    Fixes a problem where the ‘name’ property of the PDF JS ‘field’ object may not return a correct value when the field is part of a hierarchy. (#27770)

  • Fixed

    Fixes an issue where a cache miss in the annotation cache could lead to a crash when using compound documents. (#25594)

  • Fixed

    Fixes an issue where calculating the tab order failed with database is locked or similar SQLite errors. (#24082)

  • Fixed

    Fixes an issue where list boxes would not render text when a item is selected if there was no DA field present. (#28536)

UI

  • Fixed

    Fixes an additional issue where the signature description was cut off in narrow, short signature fields. (#27540)

  • Fixed

    Fixes an issue where custom scale handle drawables would be shown in the wrong corner on rotated pages. (#27679)

  • Fixed

    Fixes an issue where pages sizes were calculated incorrectly after resizing the PdfFragment causing overlay view sizes to be wrong. (#27864)

  • Fixed

    Fixes a NullPointerException that could be thrown due to a race condition after calling PdfFragment#notifyLayoutChanged(). (#22744)

6.6.0 - 11 Jan 2021

See the announcement post.

Migration guide.

UI

  • Added

    Adds support for setting bold and italic fonts via FreeTextAnnotation#setFontName(). (#25843)

  • Added

    Improves annotation selection UI customization by introducing AnnotationSelectionViewThemeConfiguration. (#26212)

    • Added

      Adds AnnotationSelectionController#getAnnotationSelectionViewThemeConfiguration() to get the theme configuration used to customize the annotation selection view.

    • Added

      Adds AnnotationSelectionController#setAnnotationSelectionViewThemeConfiguration(AnnotationSelectionViewThemeConfiguration) to set a theme configuration to customize the annotation selection view.

    • Added

      Adds new Java example AnnotationSelectionViewStylingActivity that shows how to customize the annotation selection layout.

  • Fixed

    Fixes an issue affecting some foreign languages where the inline search layout had the wrong spacing when no results were found. (#24577)

  • Fixed

    Fixes an issue where internal usage of specific resource identifiers on com.pspdfkit.R would lead to crashes when using PSPDFKit inside a dynamic feature module. (#26984)

  • Changed

    Improves documentation for custom annotation selection background as this feature is not supported by callout annotations. (#27677)

  • Fixed

    Fixes an issue where callout annotation text was rendered incorrectly. (#27600)

  • Fixed

    Fixes an issue where ink annotations’ bounding boxes were incorrectly rotated. (#27148)

  • Fixed

    Fixes an issue where the app would crash when requesting camera access from the system. (#27609)

Model

  • Added

    Adds a new document signature integrity status for when the digital signature type that is being validated is not supported. (#25030)

  • Added

    Adds constant field WidgetAnnotation.FONT_SIZE_AUTO which can be used with setFontSize() to enable automated font sizing for form fields. (#25595)

  • Added

    Adds diagnostic information to SigningFailedException. (Z#22316)

  • Added

    Adds method WidgetAnnotation#setFontSize() to set the font size for text form fields. (#23522)

    • Changed

      Renames WidgetAnnotation#getTextSize() to getFontSize(). The old method is now deprecated and will be removed with PSPDFKit 7 for Android.

  • Added

    Adds new version of sqlite3 used in full text search. Upgrading from version 3.27.0 to 3.34.0. (#27459)

  • Added

    Adds support for finding the correct form field type in non-conforming PDF files. (#26459)

  • Added

    Adds support for parsing multiple certificates inside a single .pem file. (#26396)

  • Added

    Adds support for validating PAdES B digital signatures. (#25153)

  • Added

    Adds the option to change the vertical text alignment for FreeTextAnnotations and WidgetAnnotations: (#23523)

    • Added

      Adds FreeTextAnnotation#set/getVerticalTextAlignment() to set and get the vertical text alignment.

    • Added

      Adds WidgetAnnotation#set/getVerticalTextAlignment() to set and get the vertical text alignment.

  • Changed

    Improves font selection process for bold and italic fonts. (#26719)

  • Changed

    Improves how certificate expiration in digital signatures is handled. (#27047)

  • Changed

    Improves performance loading some documents with broken internal links (named destinations). (#24398, #26099)

  • Changed

    Improves performance with path drawing by removing unnecessary path operations. (#25922)

  • Changed

    Improves rendering performance of documents with lots of image patterns. (#26186)

  • Changed

    Improves simplified and traditional Chinese font selection. (#26674)

  • Changed

    Digital signatures don’t show framework version numbers when inspected using third party software. (#26183)

  • Changed

    Reduces the memory required to load PDF documents by 15% to 35%, depending on the document. (#27182)

  • Removed

    Removes DeviceYearClass dependency that has been now deprecated, and adds an in-house implementation that does not require a third-party library to optimize the default configuration. (#24036)

  • Changed

    Updates Botan to 2.17.1. (#26794)

  • Changed

    Updates Duktape to 2.6.0. (#26435)

  • Changed

    Updates Kotlin to 1.4.21. (#26805)

  • Changed

    Updates the Android Gradle Plugin used by all example apps to version 4.1.1. (#26806)

  • Fixed

    Fixes a problem where signing a document again after filling a form field may invalidate existing digital signatures. (#25637)

  • Fixed

    Fixes a problem where some DER-encoded signatures may not be validated correctly. (#25757)

  • Fixed

    Fixes a problem where the signature reason, name or location may not appear correctly if they contain non-ASCII characters. (#26671)

  • Fixed

    Fixes an assert that was triggered by malformed documents that contained fonts that were not indirect objects. (#26450)

  • Fixed

    Fixes an issue in the Document Editor when adding an item to a imported page. (#25837)

  • Fixed

    Fixes an issue where OCR could not be performed on a certain image due to an incorrect render scale. (#26118)

  • Fixed

    Fixes an issue where an app would crash on trying to load an embedded file in a PDF document created using multiple data providers. (#26023)

  • Fixed

    Fixes an issue where appearance streams weren’t re-generated when using the processor even though ‘NeedAppearances’ was set in the PDF. (#26123)

  • Fixed

    Fixes an issue where documents with high object numbers were identified as corrupt. (#26062)

  • Fixed

    Fixes an issue where form calculation was triggered when setting an empty string on a form field that didn’t have a value. (#26345)

  • Fixed

    Fixes an issue where importing annotation appearance streams from XFDF would not work. (#25100)

  • Fixed

    Fixes an issue where partially redacted curved path objects may be misdrawn. (#26698)

  • Fixed

    Fixes an issue where paths overdraws resulting in incorrect shapes. (#27330)

  • Fixed

    Fixes duplication of newly created pages in the Document Editor. (#26074)

  • Fixed

    Fixes rendering a wrong color if the color was using a ICC color profile and the color was out of bounds. (#26535)

  • Fixed

    Fixes text clipping for form fields exceeding their maxLen due to programmatic changes. (#26340)

  • Fixed

    Fixes the PDF JavaScript function getNthFieldName to return the FQN of the form field. (#26144)

  • Fixed

    Fixes an issue where loading from a checkpoint for a document failed in certain instances. (#27576)

  • Fixed

    Fixes an issue where the signature description was cut off in narrow signature fields. (#27540)

6.5.3 - 27 Oct 2020

PSPDFKit 6.5.3 is a security patch release fixing a single CVE in one of our dependencies.

  • Fixed

    Fixes CVE-2020-15999 in upstream dependency Freetype. (#26610)

6.5.2 - 24 Sep 2020

UI

  • Added

    Adds new style attributes to the PSPDFKit.AnnotationSelection style to customize annotation selection UI: (#25552)

    • Added

      Adds style attributes to change the drawable for each of the eight annotation scale handles: pspdf__topLeftScaleHandleDrawable, pspdf__topCenterScaleHandleDrawable, pspdf__topRightScaleHandleDrawable, pspdf__centerLeftScaleHandleDrawable, pspdf__centerRightScaleHandleDrawable, pspdf__bottomLeftScaleHandleDrawable, pspdf__bottomCenterScaleHandleDrawable, pspdf__bottomRightScaleHandleDrawable.

    • Added

      Adds pspdf__rotationHandleDrawable style attribute to change the drawable of the rotation handle.

    • Added

      Adds pspdf__backgroundDrawable to change the background drawable of the annotation selection layout.

  • Changed

    Improves performance of Reader View feature by only starting the reflow process when the view is shown and cancelling it when the view is hidden. (#24400)

  • Fixed

    Fixes an issue related to tabbed documents where under certain conditions switching document may lead to an ANR. (#24693)

  • Fixed

    Fixes an issue where PdfFragment could become unresponsive when opening PDF documents with many pages and forms. (#25911)

  • Fixed

    Fixes an issue where the blending between the selected text element background color and the document background was not calculated correctly for colors with transparency. (#24156)

  • Fixed

    Fixes an issue where the input EditText inside the custom stamps dialog would use the wrong input type and accept multi-line text. (#25871)

  • Fixed

    Fixes an issue where the keyboard was not correctly hidden when a free text annotation was selected but not in writing mode. (#25886)

  • Fixed

    Fixes an issue where the zoom level of protected documents was not calculated correctly. (#24934)

Model

  • Added

    Adds support for PEM format PKCS#1 private keys for use with digital signatures. (#24919)

  • Changed

    Improves Processor behavior when license doesn’t include the forms component. (#24604)

  • Changed

    Improves font rendering in forms with Chinese, Japanese, Korean and Thai characters. (#24337)

  • Changed

    Improves log reducing noise in the OCR Library by removing unnecessary log messages in release mode. (#25532)

  • Changed

    Enhances the flattening of note annotations by rendering the root comment rather than the note icon. (#22673)

  • Changed

    OCR now uses NEON and AVX intrinsics for better performance. (#24870)

  • Changed

    Updates HarfBuzz to version 2.7.2. (#25717)

  • Fixed

    Fixes FTS queries with three or more words when searching for an exact match when using the unicode tokenizer. (#25068)

  • Fixed

    Fixes a crash that could happen as a result of a race condition when form fields were repaired and the page was rendered at the same time. (#24885)

  • Fixed

    Fixes a crash that could happen when creating form fields. (#25806)

  • Fixed

    Fixes a problem where some certificates with CRL distribution point extensions may not be validated correctly. (#24660)

  • Fixed

    Fixes an issue where appearance streams of form field widgets weren’t preserved correctly. (#25550)

  • Fixed

    Fixes an issue where Bézier paths were drawn incorrectly when a miter limit was set. (#25758)

  • Fixed

    Fixes an issue where form elements were included in the page rendering which shouldn’t have been. (#25799)

  • Fixed

    Fixes an issue where form fields may not be editable in some cases. (#23123)

  • Fixed

    Fixes an issue where image annotations could not be imported from XFDF files. (#25100)

  • Fixed

    Fixes an issue where text form fields weren’t displayed correctly after flattening due to their appearance stream being wrong in the original document. (#24918)

  • Fixed

    Fixes an issue where the digital signature advanced properties contained the signature creator twice. (#25611)

  • Fixed

    Fixes an issue where warning messages were displayed in other readers when flattening a signature form field. (#25923)

  • Fixed

    Fixes duplicate string occurrences when copy and pasting from documents with duplicate content. (#25108)

  • Fixed

    Fixes form field JavaScript actions in the generated documents when merging two or more documents together. (#25603)

  • Fixed

    Fixes the placement of the popup annotation linked to a note annotation. When a note annotation is moved, the popup annotation will now follow the location and is always placed within the bounds of the page. (#24468)

  • Fixed

    Fixes the saving of small shapes with large line widths. Shapes with these characteristics in documents saved by PSPDFKit will now be visible on any reader. (#25531)

Examples

  • Added

    Adds new AnnotationSelectionViewStylingExample that shows how to customize the annotation selection layout. (#25552)

  • Added

    Adds new PdfFromImageExample which shows how to convert image files to PDF files using the PdfProcessor. (#24996)

6.5.1 - 28 Jul 2020

UI

  • Changed

    Improves scrolling to page in continuous mode so that the scrolling goes to the beginning of the page, not the middle. (#24364)

  • Fixed

    Fixes an issue where document scrollbars were not visible when using PdfFragment inside a custom activity. (#24174)

  • Fixed

    Fixes an issue where paste option is available on document long-press even if disabled by PdfConfiguration. (#24685)

  • Fixed

    Fixes an issue where selecting a form field from a different page programmatically, would not switch page or would not show keyboard if the page was switched manually. (#24364)

Model

  • Changed

    Improved handling of native references which could previously lead to performance issues in documents with with large numbers of annotations. (#23587)

  • Fixed

    Fixes a problem where signing a document with existing digital signatures may invalidate them. (#24780)

  • Fixed

    Fixes an issue last viewed PdfFragment page restoration would crash if DocumentDataStore would not be properly initialized. The exception is now logged since it’s not critical for the work of the PdfFragment. (#22428)

  • Fixed

    Fixes an issue where objects rendered with the Overlay blend mode didn’t always render correctly. (#24298)

  • Fixed

    Fixes an issue where our text parser returned descending characters from the line above the intended search area. (#24709)

  • Fixed

    Fixes an issue where text with word or character spacing is shifted after redaction has been applied. (#24476)

6.5.0 - 30 Jun 2020

See the announcement post.

UI

  • Added

    Adds values-v21/dark_theme.xml which holds API 21+ theme overrides for PSPDFKit.Theme.Dark. (#24511)

    • Changed

      Sets android:navigationBarColor to @color/pspdf__dark_status_bar on API 21+, to darken the navigation bar when using the dark theme without immersive mode.

Model

  • Added

    Adds support for OCR (optical character recognition) processing. (#24247)

    • Added

      Adds a new Maven artifact com.pspdfkit:pspdfkit-ocr that can be added as dependency to an app for integrating OCR capabilities.

    • Added

      Adds multiple Maven artifacts com.pspdfkit:pspdfkit-ocr-[language] which can be added as dependencies to an app to enable OCR for a particular language. Currently supported languages are croatian, czech, danish, dutch, english, finnish, french, german, indonesian, italian, malay, norwegian, polish, portuguese, serbian, slovak, slovenian, spanish, swedish, turkish, and welsh.

    • Added

      Adds enum class com.pspdfkit.document.processor.ocr.OcrLanguage which lists all languages that are currently supported for performing OCR on.

    • Added

      Adds method performOcrOnPages(Set<Integer>, OcrLanguage) to PdfProcessorTask.

    • Added

      Adds OcrExample to Catalog app.

  • Changed

    Updates GSL to version 3.1.0. (#24480)

  • Changed

    Updates HarfBuzz to version 2.6.7. (#24477)

  • Fixed

    Fixes an issue where resolving broken named references inside PDF dictionaries could lead to crashes. (#24599)

  • Fixed

    Fixes a very rare crash on certain documents when multiple pages were rendered at the same time. (#24598, #24626)

  • Fixed

    Fixes an endless loop while trying to repair form field. (#23901, #24597)

  • Fixed

    Fixes an issue where umlauts were displayed wrong in certain documents because the wrong encoding was used when shaping the text. (#24465)

6.4.0 - 8 Jun 2020

See the announcement post.

Migration guide.

UI

  • Added

    Adds new Reader View component for displaying reflowed PDF content. (#23959)

    • Added

      Adds com.pspdfkit.ui.PdfReaderView that can be added to any view hierarchy for displaying reflowed document content.

    • Added

      Adds an instance of PdfReaderView to PdfActivity which is accessible via a new primary toolbar action with the ID R.id.pspdf__menu_option_reader_view. The reader view toolbar action is disabled by default, and can be enabled using PdfActivityConfiguration.Builder#enableReaderView(boolean).

    • Added

      Adds a ReaderViewExample to the Catalog which demonstrates how to configure and use PdfReaderView inside a PdfActivity instance.

  • Added

    Adds a warning toast message when saving a digitally signed document fails using the default DocumentSigningListener. (#24166)

  • Fixed

    Fixes an issue where calling PdfFragment#zoomTo(Rect, int, long) wouldn’t precisely zoom to the given rect on the page in continuous scroll mode. (#23566)

  • Fixed

    Fixes an issue where color selection buttons in the signature picker dialog were not displayed. (#24121)

  • Fixed

    Fixes an issue where high-res page rendering is not working properly on Android devices running API < 24. (#24069)

  • Fixed

    Fixes an issue where shape annotations could be drawn outside of the page. (#23873)

Model

  • Added

    Adds the OfficeToPdfConverter which allows you to perform conversion from office documents to PDF documents using a remote PSPDFKit Server instance. (#24201)

  • Added

    Adds support for file:///android_asset/ URIs when using SignatureGraphic.fromBitmap(android.net.Uri). (#24081)

  • Changed

    Improves quality of fallback font rendering. (#24136)

  • Changed

    Improve style sheet parsing to recognize font names better. (#23968)

  • Removed

    Removes framework internal PageLayout class from public API. (#24318)

  • Changed

    Updates PdfProcessorTask#mergePage() to auto-rotate the page to match the rotation of the destination page. (#23858)

  • Fixed

    Fixes a dangling pointer upon destruction of PSPDFKit. (#24387)

  • Fixed

    Fixes a possible UntaggedSocketViolation strict mode violation that could be emitted by the internal framework code. (#23688)

  • Fixed

    Fixes a problem where the asset name of a screen annotation would not be decoded correctly in some cases. (#24269)

  • Fixed

    Fixes a problem where the font name of a free text annotation would not be decoded correctly in some cases. (#24269)

  • Fixed

    Fixes an issue where flattening of form fields on pages with an offset artbox would cause a visual shift of form elements. (#23385)

  • Fixed

    Fixes an issue where combo boxes with attached JavaScript actions would fail to execute the attached actions when changing their value. (#23120)

  • Fixed

    Fixes an issue where non-latin text wouldn’t render correctly. (#23287)

  • Fixed

    Fixes an issue where properties of Annotation instances which were created using the XfdfFormatter.parseXfdf() method would be reset upon adding the annotations to a PdfDocument using AnnotationProvider#addAnnotationToPage(). (#24030)

  • Fixed

    Fixes an issue where text was rendered incorrectly when the ‘comb’ option was used. (#24395)

  • Fixed

    Fixes an issue where wrong characters were displayed in multi-line form fields. (#23317)

  • Fixed

    Fixes edits to the page binding not being saved in certain documents. (#24115)

  • Fixed

    Fixes warnings that were logged due to unused FlatBuffers properties. (#24412)

Instant

  • Added

    Adds a new error code to InstantErrorCode for the case where syncing fails due to the size of the sync payload exceeding the server limit: PAYLOAD_SIZE_LIMIT_EXCEEDED. (#23293)

  • Fixed

    Fixes an issue where receiving and decoding yet unsupported annotation types could lead to a crash. (#23752)

Examples

  • Added

    Adds HideRevealAnnotationsCreationExample that shows how to add two special annotations that can be used to obscure the document. (#23544)

  • Added

    Adds TeacherStudentExample that shows how to swap between documents and sync view state, annotations, and bookmarks. (#23546)

  • Added

    Adds BookmarkHighlightingExample showing how to render a bookmark indicator on the thumbnail bar and thumbnail grid. This uses the PDF drawable API to render the indicator. (#23796)

  • Added

    Adds PersistentAnnotationSidebarExample showing how to put a list of all annotations in a persistent sidebar next to a PdfUiFragment. (#24401)

  • Changed

    Updates the Android Gradle Plugin used by all example apps to version 3.6.3. (#23995)

6.3.0 - 13 Apr 2020

See the announcement post.

UI

  • Added

    Adds support for changing the background color and hiding the sign here overlay that is shown in signature form fields. (#14685)

    • Added

      Adds Pdf[Activity]Configuration#showSignHereOverlay() to enable and disable the sign here overlay arrow being shown.

    • Added

      Adds PdfActivityConfiguration#enableMagnifier() to enable and disable the magnifier being shown.

    • Added

      Adds new style attribute pspdf__signHereOverlayBackgroundColor to control the background color of the sign here arrow. This should be added to pspdf__FormSelection style.

  • Added

    Adds support for keeping multiple PdfFragments in the same view hierarchy. (#23619)

  • Added

    Adds PdfUiFragmentBuilder#pdfFragmentTag() to configure a custom tag to be used for the internally hosted PdfFragment.

  • Added

    Adds activityClass() to PdfActivityIntentBuilder and InstantPdfActivityIntentBuilder that accept Kotlin’s KClass type as activity class. (#23681)

  • Changed

    Improves multimedia UI by adding the black background to the videos and by not allowing overlapping control bars. (#19279)

  • Changed

    Improves search performance by filling the page cache with already parsed pages. (#15947)

  • Fixed

    Fixes an issue where undo/redo did not revert/reapply the last action after importing a document in Document Editor. (#23361)

    • Added

      Adds method PdfDocumentEditor#addPages(int, List<NewPage>) to allow Document Editor to import multiple pages to a destination index.

  • Fixed

    Fixes a possible NullPointerException that could be emitted while quickly switching between opened tabs. (#23440)

  • Fixed

    Fixes a potential IllegalStateException that could have been thrown when trying to render the image of a recycled page view. (#23591)

  • Fixed

    Fixes an issue where “Accepted” and “Rejected” stamps border size changed slightly when rotated. (#19404)

  • Fixed

    Fixes an issue where Redo command might have failed after importing a document in Document Editor. (#23362)

  • Fixed

    Fixes an issue where PdfFragment could get stuck while loading password protected document. (#23521)

  • Fixed

    Fixes an issue where annotation inspector did not save properties of edited callout annotations to annotation preferences. (#23441)

  • Fixed

    Fixes an issue where document outline and document info views were not updated after switching documents. (#23427)

  • Fixed

    Fixes an issue where items in the annotation list were displayed in the wrong order. (#23469)

  • Fixed

    Fixes an issue where the soft keyboard did not hide after dismissing the note editor by tapping outside of its dialog window. (#23650)

  • Fixed

    Fixes an issue where under certain conditions a crash could occur when the password view was displayed in a Xamarin Forms application. (#23300)

  • Fixed

    Fixes an issue where it was possible to create invisible redaction annotations. (#19716)

Model

  • Added

    Adds KDoc support available offline in the binary release. (#16045)

  • Added

    Adds new getTargetFormFieldsAsync() method to AbstractFormAction. (#16968)

  • API

    The id passed in for MenuItem that contains submenuIds now always contains group to differentiate it from simple items. (#23262)

    • Changed

      Existing ids (pspdf__annotation_creation_toolbar_item_markup, pspdf__annotation_creation_toolbar_item_drawing, etc.) were kept and a warning is emitted if they are used. This warning will be replaced by an exception in the next major release PSPDFKit for Android 7.0.

    • Changed

      For your own menu item groupings make sure to pass in the newly added ids when creating items with sub item.

    • Added

      Added ids pspdf__annotation_creation_toolbar_group_markup, pspdf__annotation_creation_toolbar_group_drawing, pspdf__annotation_creation_toolbar_group_writing, pspdf__annotation_creation_toolbar_group_multimedia, pspdf__annotation_creation_toolbar_group_undo_redo. pspdf__annotation_editing_toolbar_group_undo_redo, pspdf__annotation_editing_toolbar_group_copy_cut, pspdf__annotation_editing_toolbar_group_inspector, pspdf__annotation_editing_toolbar_group_edit_share, and pspdf__document_editing_toolbar_group_more.

  • API

    Deprecates OnTextSelectionPopupToolbarShowListener. This class will be removed with PSPDFKit 7 for Android. (#23487)

  • Changed

    Updates Kotlin to 1.3.71. (#23832)

  • Changed

    Updates NDK to version 21.0.6113669. (#23426)

  • Changed

    Updates ReLinker to 1.4.1. (#23633)

  • Changed

    Updates RxJava to 2.2.7 and RxAndroid to 2.1.1. (#23518)

  • Changed

    Updates PdfUiFragment to internally use the child fragment manager, this fixes a crash that could happen in our react-native wrapper. (#23673)

  • Changed

    Updates the Android Gradle Plugin to 3.6.2. (#23449)

  • Removed

    Improves consumer proguard rules. (#23658)

    • Removed

      Removes -renamesourcefileattribute SourceFile rule since it caused issues with some bug reporting solutions.

    • Changed

      Ignores Proguard warnings for com.pspdfkit.internal.

  • Fixed

    Fixes a potential issue resulting in data loss after saving. (#23474, #23485)

  • Fixed

    Fixes an issue flattening form fields correctly when the ArtBox of the page contains an offset. (#23385)

  • Fixed

    Fixes an issue that caused a crash when rendering certain pages from multiple threads. (#23209, #23339)

  • Fixed

    Fixes an issue where document save listener was not notified when saving image documents. (#23472)

  • Fixed

    Fixes an issue where loading multiple unavailable documents into the DocumentCoordinator could lead to crash. (#23705)

  • Fixed

    Fixes an issue where multiple form elements that are related to the same form field could not be targeted as a group in JavaScript actions, as described by the PDF Reference. (#22755)

  • Fixed

    Fixes an issue where shared image documents were empty. (#23416)

    • Changed

      Document save methods of the image document’s PdfDocument now throw UnsupportedOperationException. Use saveIfModified() on the ImageDocument instance instead.

  • Fixed

    Fixes an issue where spacing between words was far too large. (#23439)

  • Fixed

    Fixes an issue where the HTML-to-PDF converter could not be initialized on devices using the AOSP WebView instead of Chromium. (#23776)

  • Fixed

    Fixes an issue where the JNI’s limit of a maximum number of 65k global references could lead to a crash due to not releasing annotation objects requested through user interaction or through API calls. (#23587)

  • Fixed

    Fixes an issue where values of text form fields were only visible after being selected. (#23652)

  • Fixed

    Fixes internal form initialization and caching logic that could lead to a deadlock when changing form values while the forms were initializing. This could happen in multiple scenarios, for example when importing Document JSON or changing form values via JavaScript. (#23617)

  • Fixed

    Fixes potential document corruption when incremental saving encrypted documents. (#23689)

  • Fixed

    Fixes some rare stability issues when filling a form document with JavaScript scripts. (#23443)

Instant

  • Added

    Adds support for stamp annotations in Instant. (#19737)

  • Added

    Adds detailed error message when Instant connection fails. (#23574)

  • Fixed

    Fixes an issue where documents shared from Instant did not contain annotations. (#23377)

Examples

  • Added

    Improves Kotlin examples coverage in Catalog. (#11429)

    • Changed

      Shows language badges (Kotlin or Java) next to each example in the examples list.

    • Added

      Adds a configuration option to the Catalog preferences for choosing the preferred programming language. Kotlin is now the default preferred language.

    • Added

      Adds Kotlin version for most existing examples.

  • Changed

    Improves the structure of Catalog and Instant examples. (#23534)

    • Changed

      Renames the Instant example package to com.pspdfkit.instant.example. Renames the Catalog package to com.pspdfkit.catalog.

    • Changed

      Extracts shared example code into a module named shared which is now used by both of these examples.

6.2.0 - 20 Feb 2020

See the announcement post.

Migration guide.

  • Changed

    Updates the Android Gradle Plugin to 3.5.3. (#23079)

UI

  • Removed

    Deprecates setPdfView(), performApplyConfiguration(), getPdfParameters() and getHostingActivity() in PdfActivity and PdfUiFragment. These symbols were never meant for public usage and will be removed with the next major version. (#22933)

  • Removed

    Moves internal PdfUiImpl from public package com.pspdfkit.ui to obfuscated internal package as it was never meant for public usage. If you were using it, please contact our support with your specific use case. (#22999)

    • Removed

      Deprecates PSPDFKitViews#getFragment(), use getPdfFragment() defined on either PdfActivity or PdfUiFragment.

  • Added

    Adds UI indication if the current font of a freetext annotation is not supported on the current device. (#22155)

    • Changed

      Font#getDefaultTypeface() is now nullable. A null value indicates that this font isn’t supported on the current device.

  • Added

    Adds localized strings for British English (en-rGB locale). (#23092)

  • Added

    Adds support for undoing the removal of annotations after using the “Clear All” button inside the annotation list. (#20310)

    • Added

      Adds PdfOutlineView#setUndoManager() to configure the undo manager that is used for tracking annotation removals.

  • Changed

    Improves animations when scrolling to search results in inline search. (#22921)

  • Added

    Improves document loading and UI performance. (#23166)

    • Changed

      Improves performance when zooming pages with multiple ink or stamp annotations.

    • Changed

      Improves document loading times for larger documents when the license supports digital signatures.

    • Added

      Adds PdfDocument#getDocumentSignatureInfoAsync() to retrieve the signature info in a non-blocking manner. PdfDocument#getDocumentSignatureInfo() should no longer be called on the main thread.

  • Changed

    Improves document loading performance when having the redaction UI disabled using the PdfActivityConfiguration.Builder#setRedactionUiEnabled(). (#22927)

  • Changed

    Improves page rendering performance. (#22298)

    • Changed

      Increases priority for rendering visible pages.

    • Changed

      Optimizes time to prepare annotation overlay.

    • Changed

      Delays display of page loading view. This improves feeling when switching to pages that are rendered fast or have cached rendering.

  • Fixed

    Improves property inspector behavior. (#22072)

    • Changed

      PropertyInspectorCoordinatorLayout now internally uses bottom sheet implementation from the material components library.

    • Fixed

      Fixes property inspector in immersive mode.

    • Removed

      Deprecates setResizable() and isResizable() in PropertyInspector. Property inspector does not support resizing anymore.

  • Changed

    Improves share dialog by automatically sanitizing the initial document name. (#23240)

  • Changed

    Changes the type of dates shown inside the annotation list from annotation creation dates to annotation last modified dates. This change is done to align behavior with PSPDFKit for iOS and PSPDFKit for Web. (#22373)

  • Changed

    Multiple annotation defaults were changed to be consistent with PSPDFKit for other platforms (Web and iOS). This includes default line thickness, text size, cloudy border intensity and eraser thickness defaults. (#22611)

  • Changed

    Sound annotations recording is now disabled when microphone is not available on the device. (#23215)

  • Changed

    Updates the icon for creating note annotations. (#23052)

  • Changed

    Updates tooltips and accessibility labels in the annotation creation toolbar. (#22839)

    • Changed

      “Highlight” is now called “Text Highlight”

    • Changed

      “Strike Out” is now called “Strikethrough”

    • Changed

      “Text: Callout” is now called “Callout”

    • Changed

      “Ink: Pen” is now called “Drawing”

    • Changed

      “Ink: Highlighter” is now called “Freeform Highlight”

    • Changed

      “Ink: Magic” is now called “Magic Ink”

    • Changed

      “Line: Arrow” is now called “Arrow”

  • Fixed

    Fixes a crash that could occur when using the navigation buttons after removing pages from a document using the document editor and saving it in place. (#22969)

  • Fixed

    Fixes a possible IllegalArgumentException that could have been thrown when saving document info when page binding was unknown. (#23273)

  • Fixed

    Fixes an issue where JavaScript function buttonImportIcon did not scale imported images correctly. (#22967)

  • Fixed

    Fixes an issue where annotations that were being created were rendered behind already added annotations instead of on top of them. (#22619)

  • Fixed

    Fixes an issue where callout annotations would be rendered incorrectly after rotating the page using the document editor. (#22911)

    • Fixed

      Fixes an issue where editing rotated callout annotations would break their layout.

  • Fixed

    Fixes an issue where long-pressing a page which was not readily loaded would sometimes cause a crash. (#22973)

  • Fixed

    Fixes an issue where making changes in the document info view and saving them in a document provided by a non writable data provider would lead to a crash. (#23205)

    • Changed

      The editing button is now hidden in the document info view when we detect that the current document is not writable.

  • Fixed

    Fixes an issue where opening a tab that has the inline search view open would also open the keyboard again. (#23088)

  • Fixed

    Fixes an issue where some strings were not translated correctly if the locale was not supported on the device. (#23271)

  • Fixed

    Fixes an issue where text in multiline free-text annotations could be cut-off until selected. (#22982)

  • Fixed

    Fixes an issue where the thumbnail grid performance would degrade when it was loaded alongside other views. (#23098)

  • Fixed

    Fixes an issue where touching the screen with a second finger while annotating would remove the current drawing. (#23283)

  • Fixed

    Fixes a possible IllegalStateException that could be thrown in PdfThumbnailGrid after enabling user interface. (#23373)

Model

  • API

    Moves private PSPDFKit API’s from package com.pspdfkit.framework to package com.pspdfkit.internal, as well as from com.pspdfkit.instant.framework to com.pspdfkit.instant.internal respectively. (#22985)

  • Added

    Adds custom lint check to ensure that android:configChanges is not configured for PdfActivity classes. (#22543)

  • Added

    Adds support for HTML-to-PDF conversion. (#22660)

    • Added

      Adds HtmlToPdfConverter as an entry point for this API.

    • Changed

      This feature requires HTML to PDF Conversion enabled in your license.

  • Added

    Adds stricter validation to digital signature containers created externally. (#23011)

  • Added

    Adds support for incrementally saving encrypted documents. (#22722)

  • Added

    Adds support for the JavaScript function ‘doc.gotoNamedDest’. (#18957)

  • Added

    Adds support for validating digital signatures created by DocuSign. (#22191)

  • Changed

    Improves license check error messages to be more user friendly. (#12904)

  • Changed

    Improves performance of JPEG decoding by enabling SIMD instructions. (#22797)

  • Changed

    Improve compatibility with macOS 10.15 Preview for annotation notes in the sidebar. (#22791)

  • Fixed

    Fixes PDF Javascript when scripts are encoded in UTF-16. (#23044)

  • Fixed

    Fixes a problem where encrypted documents could not be digitally signed correctly. (#22722)

  • Fixed

    Fixes a problem where some PDF pages may not be rendered correctly. (#22767)

  • Fixed

    Fixes a rare problem where the application may terminate unexpectedly after loading a document or setting a form field value. (#22924)

  • Fixed

    Fixes an issue that caused a blank page after flattening annotations on a certain document. (#22279)

  • Fixed

    Fixes an issue where PdfDocument#wasModified() incorrectly returned false after Document JSON import. (#19378)

  • Fixed

    Fixes an issue where characters weren’t escaped correctly when exporting XFDF. (#22844)

  • Fixed

    Fixes an issue where low-res rendering got triggered after the page has been recycled, leading to the crash. (#22972)

  • Fixed

    Fixes an issue where opening a certain document with form fields caused a crash. (#23001)

  • Fixed

    Fixes an issue where popup annotations were positioned incorrectly. (#22730)

  • Fixed

    Fixes an issue where some PDF JavaScript calculations did not work correctly. (#23043)

  • Fixed

    Fixes an issue where text on form fields was occasionally rendered with incorrect rotation on rotated pages. (#22854)

  • Fixed

    Fixes an issue where the file size optimization algorithm didn’t run. (#22809)

  • Fixed

    Fixes an issue where multiple JavaScript functions (for example mailDoc) did not parse their arguments correctly. (#23257)

  • Fixed

    Fixes an issue with creating a Submit Form action from JSON without action flags. (#22784)

  • Fixed

    Fixes empty text form fields not rendering their background color. (#23263)

  • Fixed

    Fixes an issue where document checkpointing would not work when the UID of the document contained symbols that are not allowed in paths. (#12893)

Examples

  • Added

    Adds catalog example that shows how to create a filterable thumbnail grid by combining the custom view logic with PDF processor. (#23192)

  • Fixed

    Fixes an issue with the AesDataProvider when reopening a document right after saving it. (#23190)

  • Fixed

    Fixes the VerticalScrollbarExample not working correctly with larger documents. (#22952)

  • Fixed

    Fixes the Instant example not working on API 28 and up because android:usesCleartextTraffic was set to false. (#22908)

6.1.1 - 15 Jan 2020

UI

  • Changed

    Improves clipping behavior of free text annotations with overflowing content. (#22218)

  • Changed

    Improves thumbnail size calculation when the pspdf__usePageAspectRatio theme attribute in the tab bar style is true by allowing every thumbnail to be a different size. (#22378)

  • Fixed

    Fixes a MissingWebViewPackageException that could be thrown when invoking PdfMediaDialog when the system WebKit package was not installed. (#22712)

  • Fixed

    Fixes a possible NullPointerException that could be thrown when invoking UriAction for Youtube links without the Youtube Android Player library. (#22686)

  • Fixed

    Fixes an issue where an unhandled IndexOutOfBoundException could have been thrown when clicking on a drop down form field that was containing only a single item. (#22863)

  • Fixed

    Fixes an issue where pages would not be restored when android:configChanges was configured on the PdfActivity. (#22684)

Model

  • Changed

    Improves InputStreamDataProvider by making sure it is thread safe. (#22568)

  • Changed

    Improves complex script text rendering. (#22573)

  • Changed

    Improves the error message that is produced when a failure occurs while restoring the last viewed page of a document. (#22428)

  • Fixed

    Fixes a possible crash when using document with huge number of annotations (10 thousands). (#19761)

  • Fixed

    Fixes an issue where a form field element appearance stream was regenerated accidentally. (#21618)

  • Fixed

    Fixes an issue where text is not displayed in small freetext annotations. (#22514)

  • Fixed

    Fixes an issue where the application could crash if loading password protected documents in quick succession. (#22662)

  • Fixed

    Fixes an issue with form calculations if one of the form fields contained multiple form elements. (#22675)

  • Fixed

    Fixes the LicenseFeature enum being obfuscated. (#22850)

Instant

  • Changed

    Disables annotation rotation when using Instant since it is not yet fully supported by Instant nor Web. (#22606)

  • Fixed

    Fixes a deadlock that could occur when changes were accumulated while a sync was already in progress. (#22703)

6.1.0 - 16 Dec 2019

See the announcement post.

Migration guide.

  • Changed

    PSPDFKit is now built with Gradle 5.6.4. (#22566)

  • Changed

    Updates the Android Gradle Plugin to 3.5.2. (#22565)

  • Changed

    Updates the AppCompat library to version 1.1.0. (#22143)

  • Changed

    Updates the target SDK version from 28 to 29. (#21645)

Private APIs

This release adds a linter check that will warn developers when using PSPDFKit’s private APIs, i.e. classes, methods or fields which are parts of the com.pspdfkit.framework Java package. Usage of private APIs is unsupported and will break starting with PSPDFKit 6.2 for Android in early 2020. If you are receiving linter warnings about private API usage after updating to 6.1, or if you are not sure whether your app is using private APIs, please reach out to our customer support team at https://support.nutrient.io/hc/en-us/requests/new or via mail to [email protected].

For more information on private API usage, see our online guide at https://www.nutrient.io/guides/android/announcements/unsupported-internal-symbols/.

UI

  • Removed

    Deprecates DefaultEmbeddedFileSharingController, use DefaultDocumentSharingController instead. (#22382)

  • Removed

    Deprecates multiple methods inside DocumentSharingIntentHelper. (#22379)

    • Removed

      Deprecates DocumentSharingIntentHelper.createChooser() since its functionality regressed on devices running Android 10. Use Intent#createChooser() together with an implicit Intent instead.

    • Removed

      Deprecates DocumentSharingIntentHelper.queryMailToActivities(). Use DocumentSharingIntentHelper#queryIntentActivities() using an Intent having Intent#ACTION_SENDTO and a mailto: URI.

  • Added

    Adds UI for changing the eraser tool thickness. (#15695)

    • Changed

      The size of the eraser tool is no longer scaled when changing the zoom level of the page. This makes erasing at higher zoom levels more precise than before.

    • Added

      Adds new pspdf__eraserOutlineColor style attribute to configure the outline of the eraser tool while erasing.

  • Added

    Adds OverlayViewProvider which allows you to overlay views on a page. (#9176)

    • Added

      Adds PdfFragment#addOverlayViewProvider() and PdfFragment#removeOverlayViewProvider() to add and remove custom OverlayViewProvider.

    • Added

      Adds OverlayLayoutParams to control positioning of overlaid views on the page.

  • Added

    Adds AnnotationOverlayRenderStrategy which allows you to control how annotations are rendered when displayed in annotation overlay mode. (#19540)

    • Added

      Adds PdfFragment#setAnnotationOverlayRenderStrategy() for setting the current render strategy.

    • Added

      Adds Strategy#PLATFORM_RENDERING which tells PSPDFKit to render an annotation using a custom view. This is the default and used for most annotation types out of the box.

    • Added

      Adds Strategy#AP_STREAM_RENDERING which tells PSPDFKit to display an annotation by rendering its AP stream. While this is slower than platform rendering, it can be used when precise PDF rendering is required.

    • Changed

      Updates AnnotationOverlayExample with an ability to control overlay render strategy.

  • Added

    Adds support for custom document outlines. (#22058)

    • Added

      Adds PdfOutlineView#setDocumentOutlineProvider() for setting a DocumentOutlineProvider.

    • Added

      Adds OutlineElement#Builder for creating OutlineElement instances programmatically.

  • Added

    Adds support for Google TalkBacks forward and backward navigational gestures. (#22109)

  • Added

    Adds support for fill color property when creating and editing ink annotations. (#22203)

  • Added

    Adds requirePdfFragment() to PdfActivity and PdfUiFragment as @NonNull variant of the getPdfFragment() method. This method always returns instance of the PdfFragment or throws an exception if it is not yet initialized. (#21765)

  • Added

    Adds onPrepareFormElementSelection() to OnFormElementSelectedListener that can be used to prevent form element selection by returning false from this method. (#22062)

  • Added

    Adds support for multi-line bookmark titles. (#20712)

  • Added

    Adds onSignatureUiDataCollected() method to the SignaturePickerFragment.OnSignaturePickedListener. You can use it to retrieve the raw drawing data for the created signature. Data is inside the SignaturePickerFragment.SignatureUiData object and contains pressure list, point sequences, touch radii, etc. (#22176)

  • Changed

    Improves performance when quickly scrolling through document pages. (#22067)

  • Changed

    Improves scrolling behaviour when in paginated mode by making it harder to accidentally change pages. (#21809)

  • Added

    The file picker which is used when saving a document after redaction now pre-fills the default file name. (#22254)

    • Added

      Adds overload for FilePicker#getDestinationUri() that gives control over the default file name that is used by the system file picker.

    • Fixed

      Fixes an issue where the document title returned by ContentResolvedDataProvider would be the file name including the file extension.

  • Fixed

    Fixes an issue where annotations that were being created were rendered behind already added annotations instead of on top of them. (#22619)

  • Fixed

    Fixes a crash that would happen when adding and removing annotation replies. (#22456)

  • Fixed

    Fixes a possible NullPointerException that could be thrown when creating annotation eraser preview in annotation inspector. (#22441)

  • Fixed

    Fixes a possible exception caused by accessing getAnnotationPreferences() or getAnnotationConfiguration() in PdfFragment before views were created. (#22485)

  • Fixed

    Fixes a possible unhandled NullPointerException when accessing NavigationBackStack while initializing PdfActivity. (#22430)

  • Fixed

    Fixes an issue where the Android share sheet was truncated on API 29. (#22360)

  • Fixed

    Fixes an issue where the transparency of a stamp annotation loaded from a PNG image would be discarded upon sharing. (#22381)

  • Fixed

    Fixes an issue where changing an activity configuration via setConfiguration() while the document was still loading could lead to showing an empty view instead of resuming the document loading. (#22524)

  • Fixed

    Fixes an issue where coordinate conversions on ViewProjection did not consider the document view scroll positions. (#22297)

  • Fixed

    Fixes an issue where custom title set via DocumentDescriptor#setTitle() was not displayed in the document title view. (#22460)

  • Fixed

    Fixes an issue where the text size of free text annotations would shrink when rotating the device. (#22115)

  • Fixed

    Fixes an issue where image stamps could get distorted when resized immediately after rotating. (#21870)

  • Fixed

    Fixes an issue where page rendering could get stuck if the page contained small annotations. (#21590)

  • Fixed

    Fixes an issue where the title of a tab could falsely change after rotating the device. (#22163)

  • Fixed

    Fixes an issue where text in auto-sized free text annotations would be cut off when changing the border thickness to small values. (#22455)

  • Fixed

    Fixes an issue where the modular search would not restore search results after changing the device orientation. (#21914)

  • Fixed

    Fixes an issue where toolbar items would appear black on API 19. (#22544)

  • Fixed

    Fixes an ArrayIndexOutOfBoundsException which would happen in apps targeting API 29 when saving edited document inside the document editor. (#22594)

  • Fixed

    Fixes class loading issue that could happen during a configuration change. (#22326)

Model

  • API

    Hides the default constructor of the DocumentJsonFormatter class which only exposes static methods. (#22308)

  • Added

    Adds Annotation#getUuid() to access the UUID which is auto-generated for each annotation. (#21899)

  • Added

    Adds custom linter rule to warn when using experimental APIs. (#22016)

  • Added

    Adds support for Image Documents with transparency. (#18907)

  • Added

    Adds support for redaction annotations to Instant JSON. (#21389)

  • Changed

    Improves font selection to prefer fonts which are already part of the document in more cases. (#22530)

  • Changed

    Improves memory usage while searching documents containing many annotations. (#22367)

  • Changed

    Improves performance of the Redaction component so that big documents are redacted quicker. (#22102)

  • Changed

    Updates Duktape to version 2.5.0. (#22476)

  • Changed

    Updates HarfBuzz to version 2.6.2. (#21686)

  • Fixed

    Fixes ISO8601 timezone support in instant json. (#21148)

  • Fixed

    Fixes a crash related to multi-threading and font loading. (#22387)

  • Fixed

    Fixes a possible ExceptionInInitializerError that could be thrown when loading system fonts. (#22447)

    • Added

      Adds Font constructor for creation directly from default typeface.

    • Changed

      Marks result of Font#getDefaultFontFile() as @Nullable. Fonts created directly from default typeface do not have any font files.

    • Changed

      Hides font picker in annotation inspector in unlikely case where fonts could not be loaded from the system.

  • Fixed

    Fixes a rare situation where setting form field flags may cause a deadlock. (#19942)

  • Fixed

    Fixes an issue where annotation additional actions may not be deserialized correctly. (#21983)

  • Fixed

    Fixes an issue where certain high resolution images weren’t rendered. (#22322)

  • Fixed

    Fixes an issue where certificates with multivalue RDNs may not be parsed correctly. (#22221)

  • Fixed

    Fixes an issue where deleting or moving of pages in a PDF did not update the document outline. (#21620, #22048)

  • Fixed

    Fixes an issue where signature graphics created from transparent PNG lost alpha information. (#22386)

  • Fixed

    Fixes an issue where some filled form fields would not show their content correctly. (#22100)

  • Fixed

    Fixes an issue where text entered in certain form fields was rendered incorrectly. (#21700)

  • Fixed

    Fixes an issue where the redaction tool would not work correctly when selecting text in specific document. (#22486)

  • Fixed

    Fixes stability issues related to color space management. (#21529)

  • Fixed

    Fixes widget annotation rotation property persistence when coming from instant JSON. (#21552, #21621)

Instant

  • Changed

    Reduces network traffic when loading additional layers of the same document. (#21787)

  • Changed

    Updates OkHttp dependency to 4.2.1. (#21881)

Examples

  • Changed

    Cleans up simple example app. (#22400)

  • Fixed

    Fixes an issue where DownloadedFilesObserverService in catalog could open documents after saving. (#22266)

6.0.3 - 7 Nov 2019

UI

  • Added

    Adds PersistentTabsExample that shows how to persist opened tabs of a PdfActivity inside the user’s shared preferences. (#22080)

  • Added

    Adds getCustomTitle() method to DocumentDescriptor. Use this method to retrieve custom document title set via setTitle(). (#22103)

  • Changed

    Improves annotation inspector reveal animation when keyboard is visible. (#20117)

  • Changed

    Enables setting the default signer certificate that will be used in the signature dialog. You can set it via #defaultSigner(String) in PdfActivityConfiguration.Builder and PdfConfiguration.Builder by providing the signer string identifier. (#21855)

  • Changed

    Updates the annotation creation menu item icon so it better fits with the material design. (#21997)

  • Fixed

    Fixes an issue where ImageDocumentUtils#isImageUri() returned false for file-based Uris that had an image extension. (#22081)

  • Fixed

    Fixes an issue where custom fonts provided when initializing PSPDFKit were not handled correctly. (#22041)

    • Fixed

      Fixes an issue where custom fonts were not rendered inside FreeTextAnnotations.

    • Changed

      Custom fonts are now included in font picker inside annotation inspector.

  • Fixed

    Fixes an issue where highlighted page in thumbnail bar was set to 0 after rotating page. (#21076)

  • Fixed

    Fixes an issue where the PdfActivity did not properly save the view state when using PdfActivity#setConfiguration(). (#21536)

Model

  • Added

    Adds hasBorder() method to BorderStylePreset that returns true if the preset represents visible border. (#22205)

  • Changed

    Increases image size limits. (#22029)

  • Changed

    StampAnnotation#toInstantJSON() now checks whether annotation has contents and throws an exception when it does not, i.e. when annotation title, stamp type and bitmap are null or empty. (#21581)

  • Fixed

    Fixes PdfUiFragment not implementing PdfActivityComponentsApi and missing those methods in its API. (#22036)

  • Fixed

    Fixes an issue if a TrueType font collection has more than 32 fonts. (#22148)

  • Fixed

    Fixes an issue where form repairs were done too eagerly. (#20786)

  • Fixed

    Fixes an issue where some properties of a widget annotation were not persisted when the document was saved. (#21546)

  • Fixed

    Fixes an issue where using a big size for the digital signature container may abort the digital signing process. (#22130)

Instant

  • Fixed

    Fixes an issue where text could disappear after changing to unsupported font on other Instant clients (Web, Windows or iOS). (#22054)

6.0.2 - 16 Oct 2019

  • Changed

    PSPDFKit is now built with Gradle 5.6.2. (#21072)

  • Changed

    Updates the Android Gradle Plugin to 3.5.1. (#21782)

UI

  • Changed

    Improves PdfActivity by adding support for selecting annotations and form elements using only the keyboard. (#21312)

  • Fixed

    Fixes an issue where it wasn’t possible to enter certain symbols into form fields with date format. Input type for form elements with DATE or TIME as TextInputFormat has been changed from InputType#TYPE_CLASS_DATETIME to InputType#TYPE_CLASS_TEXT. We did this change because we can’t guarantee that date-time input type will allow entering all symbols that are required by certain JavaScript date-time formats. (#21812)

  • Fixed

    Fixes an issue where screen timeout set via UI or setScreenTimeout was reset when changing activity configuration. (#20122)

Model

  • Added

    Adds support for printing array structures from JavaScript code inside a PDF. (#19063)

  • Fixed

    Fixes a crash when using the processor on certain documents with very deep object hierarchies. (#21674)

  • Fixed

    Fixes a performance regression when rendering with an ICC based color space. (#21776)

  • Fixed

    Fixes a rare deadlock when rendering certain documents. (#21856)

  • Fixed

    Fixes a regression that caused certain link annotations to not work. (#21709)

  • Fixed

    Fixes a rendering error where the font ArialMT wasn’t selected correctly. (#21744)

  • Fixed

    Fixes an issue where a digital signature applied to a certain kind of document may not show correctly in third party PDF readers. (#18943)

  • Fixed

    Fixes an issue where page click causes a crash due to the missing page state. (#21548)

  • Fixed

    Fixes issues with transparent image stamp annotations created from PNG files. (#11996)

Instant

  • Fixed

    Fixes a possible crash when loading annotations failed in certain Instant documents. (#21617, Z#15606)

  • Fixed

    Fixes an issue where free-text annotations synced via Instant could have their bounding boxes clipped. (#21396)

6.0.1 - 04 Oct 2019

UI

  • Changed

    Improves signature validation messages for signatures with expired certificates. (#21335)

  • Changed

    Prevents scrolling when tapping the edge on a zoomed page to improve user experience. (#21663)

  • Fixed

    Fixes a crash that could happen when the state of the PageLayout was accessed after it was recycled. (#21645)

  • Fixed

    Fixes a possible NullPointerException when accessing context in LinkAnnotationHighlighter. (#21610)

  • Fixed

    Fixes a visual glitch in outline tabs icons after changing page binding. (#21438)

  • Fixed

    Fixes an issue where compound hide action lead to glitchy transition for affected annotations. (#21570)

  • Fixed

    Fixes an issue where free-text callout line end was displayed incorrectly. (#21672)

  • Fixed

    Fixes an issue where the ANNOTATION_NOTE was ignored for freetext annotations. (#21090)

  • Fixed

    Fixes an issue where the redaction button was not hidden when redacting to a new file. (#21517)

Model

  • Fixed

    Fixes an issue when using multi-threaded rendering. (#18582)

  • Fixed

    Fixes an issue where documents using certain kind of fonts may cause the app to be terminated unexpectedly. (#21626)

  • Fixed

    Fixes an issue where the z-index wasn’t preserved when flattening annotations. (#21385)

6.0.0 - 20 Sep 2019

See the announcement post.

Migration guide.

  • Changed

    Update Kotlin to 1.3.50. (#21380)

  • Changed

    Updates Botan to version 2.11.0. (#20549)

  • Changed

    Updates Duktape to version 2.4.0. (#20954)

  • Changed

    Updates the Android Gradle Plugin to 3.5.0. (#21070)

UI

  • Added

    Adds PdfUiFragment which provides the same UI and API as the PdfActivity but as a fragment that can be included as part of another activity. The PdfUiFragment is considered experimental and the API may change or be removed in future framework releases. (#20981)

    • Added

      Adds PdfUiFragmentBuilder to create new PdfUiFragment instances.

    • Added

      Adds PdfUi, an interface containing methods that are shared by both the PdfActivity as well as the PdfUiFragment.

    • Removed

      Removes PdfActivityApi, this was replaced by PdfUi.

  • Added

    Adds support for free text annotations to automatically scale based on the content that is entered. By default they automatically scale both horizontally as well as vertically. (#20614)

    • Added

      Adds AnnotationTextResizingConfiguration to control in which direction free text annotations can scale automatically.

  • Added

    Adds UI for annotation z-index reordering. (#21264)

    • Added

      Adds reordering annotations in the annotation outline view.

    • Added

      Adds buttons for reordering annotations to the inspector. When the reordering happens, the position of the annotation on the page is briefly shown.

    • Added

      Adds PdfActivityConfiguration.Builder#setAnnotationListReorderingEnabled(boolean) to set whether reordering annotations in the annotation list is enabled.

    • Added

      Adds AnnotationConfiguration.Builder#setZIndexEditingEnabled() so you can enable/disable z-index editing for the particular annotation type.

  • Added

    Adds support for rotating stamps with custom appearance stream generators. (#20871)

    • Added

      Adds isRotationEnabled() and setRotationEnabled() method to AnnotationSelectionController to control whether the rotation handle should be displayed.

  • Added

    Adds default interface methods for the DocumentListener interface. (#21189)

  • API

    Adds new methods for converting between normalized PDF coordinates and raw PDF coordinates. (#20945)

    • Added

      Adds PdfDocument#getPdfProjection() to retrieve an instance of PdfProjection.

    • Added

      Adds PdfProjection#toRawPoint(PointF, int) to map a normalized PDF point to a raw PDF point.

    • Added

      Adds PdfProjection#toNormalizedPoint(PointF, int) to map a raw PDF point to a normalized PDF point.

    • Added

      Adds PdfProjection#toRawRect(RectF, int) to map a normalized PDF rect to a raw PDF rect.

    • Added

      Adds PdfProjection#toPdfRect(Rect, int) to map a raw PDF rect to a normalized PDF rect.

    • Added

      Adds PdfProjection#getNormalizedToRawTransformation(int) to return a transformation matrix for converting normalized page coordinates to raw page coordinates.

    • Added

      Adds PdfProjection#getRawToNormalizedTransformation(int) to return a transformation matrix for converting raw page coordinates to normalized page coordinates.

    • Added

      Adds PdfFragment#getViewProjection() to retrieve an instance of ViewProjection.

    • Added

      Adds ViewProjection#toPdfPoint(PointF, int) to convert a point in view coordinate space to a point in normalized PDF coordinate space.

    • Added

      Adds ViewProjection#toViewPoint(PointF, int) to convert a point in normalized PDF coordinate space to a point in view coordinate space.

    • Added

      Adds ViewProjection#toPdfRect(RectF, int) to convert a rect in view coordinate space to a rect in normalized PDF coordinate space.

    • Added

      Adds ViewProjection#toViewRect(RectF, int) to convert a rect in normalized PDF coordinate space to a rect in view coordinate space.

    • Added

      Adds ViewProjection#getPageToViewTransformation(int, Matrix) to return a transformation matrix for converting normalized page coordinates to view coordinates.

    • Added

      Adds ViewProjection#getViewToPageTransformation(int, Matrix) to return a transformation matrix for converting view coordinates to normalized page coordinates.

    • Removed

      Deprecates PdfFragment#getPageToViewTransformation(int, Matrix, boolean). Use ViewProjection#getPageToViewTransformation(int, Matrix) instead.

    • Removed

      Deprecates PdfFragment#getPageToViewTransformation(int, Matrix). Use ViewProjection#getPageToViewTransformation(int, Matrix) instead.

    • Removed

      Deprecates PdfFragment#convertViewPointToPdfPoint(PointF, int). Use ViewProjection#toPdfPoint(PointF, int) instead.

    • Removed

      Deprecates PdfFragment#convertPdfPointToViewPoint(PointF, int, boolean). Use ViewProjection#toViewPoint(PointF, int) instead.

    • Removed

      Deprecates PdfFragment#convertPdfPointToViewPoint(PointF, int). Use ViewProjection#toViewPoint(PointF, int) instead.

    • Removed

      Deprecates PdfFragment#convertViewRectToPdfRect(RectF, int). Use ViewProjection#toPdfRect(RectF, int) instead.

    • Removed

      Deprecates PdfFragment#convertPdfRectToViewRect(RectF, int). Use ViewProjection#toViewRect(RectF, int) instead.

  • Added

    Adds new theme attributes to configure tab bar appearance. (#16644)

    • Added

      Adds new theme attribute pspdf__tabBarStyle to configure the tab bar style.

    • Added

      Adds new style attribute pspdf__tabColor to control the color of the tab items.

    • Added

      Adds new style attribute pspdf__tabIndicatorColor to control the color of the selected tab indicator.

    • Added

      Adds new style attribute pspdf__tabTextColorSelected to control the color of the selected tab text.

    • Added

      Adds new style attribute pspdf__tabTextColor to control the color of the tab text when not selected.

    • Added

      Adds new style attribute pspdf__tabIconColorSelected to control the color of the selected tab icon.

    • Added

      Adds new style attribute pspdf__tabIconColor to control the color of the tab icon when not selected.

    • Added

      Adds new style attribute pspdf__tabBarHeight to control the height of the tab bar.

    • Added

      Adds new style attribute pspdf__tabBarMinimumWidth to control the minimum width of a single tab item.

    • Added

      Adds new style attribute pspdf__tabBarMaximumWidth to control the maximum width of a single tab item.

    • Added

      Adds new style attribute pspdf__tabBarTextSize to control the text size of the tab items.

  • Changed

    Improves annotation editing coordination when annotation overlay is disabled. (#21377)

  • Changed

    Improves audio view appearance by putting it into a ‘floating’ container. (#20890)

  • Changed

    Improves performance by making password and document loading error views lazy. (#21274)

  • Changed

    Improves keyboard support in the PdfActivity by making the tab order of UI views more reliable. (#21247)

  • Fixed

    Fixes a visual glitch in outline tabs icons after changing page binding. (#21438)

  • Fixed

    Fixes an issue where accessing the internal state of a recycled page view lead to a crash. (#21386)

  • Fixed

    Fixes an issue where PdfFragment could not load documents after it was recreated inside a ViewPager. (#21421)

  • Fixed

    Fixes an issue where created annotations disappeared in certain cases when immersive mode was active. (#21252)

  • Fixed

    Fixes an issue where form elements would not be fillable if their corresponding widget annotation would have the AnnotationFlags#READONLY flag set. (#21051)

  • Fixed

    Fixes an issue where no error message was displayed when clicking on a link annotation having an invalid URI. (#20840)

  • Fixed

    Fixes an issue where opening and closing the keyboard in immersive mode applies the wrong inset to PdfFragment. (#20959)

  • Fixed

    Fixes an issue where resizing free text annotations could result in unhandled NullPointerExceptions to be thrown. (#20980)

  • Fixed

    Fixes an issue where text form elements that were configured as not scrolling would not automatically update their text size. (#20720)

  • Fixed

    Fixes possible incorrect thumbnail bar padding when using the immersive mode. (#20873)

  • Fixed

    Fixes a possible crash that could occur when changing pages while having annotations selected. (#21468)

  • Fixed

    Fixes an issue on API 19 device, where low-resolution renderings of pages were not refreshed on recycled page views. (#21485)

  • Fixed

    Fixes an issue where closing a document immediately after changing the page could result in a NullPointerException. (#21443)

  • Fixed

    Fixes an issue where the animate parameter of ToolbarCoordinatorLayout#displayContextualToolbar() and ToolbarCoordinatorLayout#removeContextualToolbar() was ignored and the animation was always shown. (#21075)

Model

  • API

    Removes all previously deprecated symbols. (#20504)

    • Removed

      Removes PdfFragment#getAnnotationDefaults(). Use PdfFragment#getAnnotationConfiguration() instead.

    • Removed

      Removes PdfFragment#setAnnotationDefaultsProvider(). Use AnnotationConfigurationRegistry#put() instead.

    • Removed

      Removes PSPDFKit#setLoggingEnabled(). To disable logging, remove all loggers via PdfLog#removeAllLoggers(). Alternatively implement custom logging policy by setting multiple custom Loggers via PdfLog#setLoggers(Logger...).

    • Removed

      Removes AnnotationDefaultsManager. Replaced by the AnnotationConfigurationRegistry.

    • Removed

      Removes AnnotationDefaultsProvider. Replaced by AnnotationConfiguration.

    • Removed

      Removes com.pspdfkit.annotations.defaults.AnnotationProperty. Use com.pspdfkit.annotations.configuration.AnnotationProperty instead.

    • Removed

      Removes AnnotationAggregationStrategyDefaultsProvider. Use AnnotationAggregationStrategyConfiguration instead.

    • Removed

      Removes AnnotationDefaultsAlphaProvider. Use AnnotationAlphaConfiguration instead.

    • Removed

      Removes AnnotationDefaultsBorderStyleProvider. Use AnnotationBorderStyleConfiguration instead.

    • Removed

      Removes AnnotationDefaultsColorProvider. Use AnnotationColorConfiguration instead.

    • Removed

      Removes AnnotationDefaultsFillColorProvider. Use AnnotationFillColorConfiguration instead.

    • Removed

      Removes AnnotationDefaultsFontProvider. Use AnnotationFontConfiguration instead.

    • Removed

      Removes AnnotationDefaultsLineEndTypeProvider. Use AnnotationLineEndsConfiguration instead.

    • Removed

      Removes AnnotationDefaultsNoteIconProvider. Use AnnotationNoteIconConfiguration instead.

    • Removed

      Removes AnnotationDefaultsOutlineColorProvider. Use AnnotationOutlineColorConfiguration instead.

    • Removed

      Removes AnnotationDefaultsOverlayTextProvider. Use AnnotationOverlayTextConfiguration instead.

    • Removed

      Removes AnnotationDefaultsPreviewProvider. Use AnnotationDefaultsProvider instead.

    • Removed

      Removes AnnotationDefaultsRepeatOverlayTextProvider. Use AnnotationOverlayTextConfiguration instead.

    • Removed

      Removes AnnotationDefaultsTextSizeProvider. Use AnnotationTextSizeConfiguration instead.

    • Removed

      Removes AnnotationDefaultsThicknessProvider. Use AnnotationThicknessConfiguration instead.

    • Removed

      Removes AnnotationDefaultsStampProvider. Use StampAnnotationConfiguration.Builder instead.

    • Removed

      Removes EraserDefaultsProvider. Use EraserToolConfiguration.Builder instead.

    • Removed

      Removes FileAnnotationDefaultsProvider. Use FileAnnotationConfiguration.Builder instead.

    • Removed

      Removes FreeTextAnnotationDefaultsProvider. Use FreeTextAnnotationConfiguration.Builder instead.

    • Removed

      Removes InkAnnotationDefaultsProvider. Use InkAnnotationConfiguration.Builder instead.

    • Removed

      Removes LineAnnotationDefaultsProvider. Use LineAnnotationConfiguration.Builder instead.

    • Removed

      Removes MarkupAnnotationDefaultsProvider. Use MarkupAnnotationConfiguration.Builder instead.

    • Removed

      Removes NoteAnnotationDefaultsProvider. Use NoteAnnotationConfiguration.Builder instead.

    • Removed

      Removes RedactionAnnotationDefaultsProvider. Use RedactionAnnotationConfiguration.Builder instead.

    • Removed

      Removes ShapeAnnotationDefaultsProvider. Use ShapeAnnotationConfiguration.Builder instead.

    • Removed

      Removes StampAnnotationDefaultsProvider. Use StampAnnotationConfiguration.Builder instead.

    • Removed

      Removes AnnotationPreferencesManager#getBorderStyle(). Use BorderStylePreset#getBorderStyle() on border style preset returned via AnnotationPreferencesManager#getBorderStylePreset().

    • Removed

      Removes AnnotationPreferencesManager#setBorderStyle(). Use BorderStylePreset set via AnnotationPreferencesManager#setBorderStylePreset().

    • Removed

      Removes AnnotationPreferencesManager#getBorderDashArray(). Use BorderStylePreset#getDashArray() on border style preset returned via AnnotationPreferencesManager#getBorderStylePreset().

    • Removed

      Removes AnnotationPreferencesManager#setBorderDashArray(). Use BorderStylePreset set via AnnotationPreferencesManager#setBorderStylePreset().

    • Removed

      Removes PdfConfiguration.Builder#textSharingEnabled(). Use PdfConfiguration.Builder#setEnabledShareFeatures() with ShareFeatures#TEXT_SELECTION_SHARING, ShareFeatures.NOTE_ANNOTATION_SHARING and ShareFeatures.FREE_TEXT_ANNOTATION_SHARING instead.

    • Removed

      Removes PdfConfiguration.Builder#embeddedFileSharingEnabled(). Use PdfConfiguration.Builder#setEnabledShareFeatures() with ShareFeatures#EMBEDDED_FILE_SHARING instead.

    • Removed

      Removes PdfConfiguration.Builder#sharingNoteEditorContentEnabled(). Use PdfConfiguration.Builder#setEnabledShareFeatures() with ShareFeatures#NOTE_EDITOR_CONTENT_SHARING instead.

    • Removed

      Removes PdfConfiguration.Builder#setSignatureSavingEnabled(). Use PdfConfiguration.Builder#signatureSavingStrategy() instead.

    • Removed

      Removes PdfConfiguration.Builder#setCustomerSignatureFeatureEnabled(). Use PdfConfiguration.Builder#signatureSavingStrategy() instead.

    • Removed

      Removes PdfConfiguration#isTextSharingEnabled(). Use PdfConfiguration#getEnabledShareFeatures() and check if ShareFeatures#TEXT_SELECTION_SHARING is enabled.

    • Removed

      Removes PdfConfiguration#isEmbeddedFilesSharingEnabled(). Use PdfConfiguration#getEnabledShareFeatures() and check if ShareFeatures#EMBEDDED_FILE_SHARING is enabled.

    • Removed

      Removes PdfConfiguration#isSharingNoteEditorContentEnabled(). Use PdfConfiguration#getEnabledShareFeatures() and check if ShareFeatures#NOTE_EDITOR_CONTENT_SHARING is enabled.

    • Removed

      Removes PdfConfiguration#isSignatureSavingEnabled(). Use PdfConfiguration#getSignatureSavingStrategy() instead.

    • Removed

      Removes PdfConfiguration#isCustomerSignatureFeatureEnabled(). Use PdfConfiguration#getSignatureSavingStrategy() instead.

    • Removed

      Removes PdfActivityConfiguration.Builder#sharingNoteEditorContentEnabled(). Use PdfActivityConfiguration.Builder#enabledShareFeatures() with ShareFeatures#NOTE_EDITOR_CONTENT_SHARING instead.

    • Removed

      Removes PdfActivityConfiguration.Builder#enableShare(). Use PdfActivityConfiguration.Builder#enabledShareFeatures() with ShareFeatures.all() instead.

    • Removed

      Removes PdfActivityConfiguration.Builder#disableShare(). Use PdfActivityConfiguration.Builder#enabledShareFeatures() with ShareFeatures.none() instead.

    • Removed

      Removes PdfActivityConfiguration.Builder#setSignatureSavingEnabled(). Use PdfActivityConfiguration.Builder#signatureSavingStrategy() instead.

    • Removed

      Removes PdfActivityConfiguration.Builder#setCustomerSignatureFeatureEnabled(). Use PdfActivityConfiguration.Builder#signatureSavingStrategy() instead.

    • Removed

      Removes PdfActivityConfiguration#isShareEnabled(). Use PdfActivityConfiguration#getEnabledShareFeatures() instead.

    • Removed

      Removes ThumbnailBarMode#THUMBNAIL_BAR_MODE_DEFAULT. Use ThumbnailBarMode#THUMBNAIL_BAR_MODE_FLOATING instead.

    • Removed

      Removes PdfProcessorTask#addPdfToPage(). Use PdfProcessorTask#mergePage() instead.

    • Removed

      Removes SearchOptions.Builder(Context). Use no parameter constructor instead.

    • Removed

      Removes TextSearch(Context, PdfDocument, PdfConfiguration). Use TextSearch(PdfDocument, PdfConfiguration) instead.

    • Removed

      Removes Signer#OnSigningCompleteCallback.

    • Removed

      Removes Signer#signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback). Use Signer#signFormField(SignerOptions) instead.

    • Removed

      Removes Signer#signFormField(SignerOptions, OnSigningCompleteCallback). Use Signer#signFormField(SignerOptions) instead.

    • Removed

      Removes Signer#signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream). Use Signer#signFormFieldAsync(SignerOptions) instead.

    • Removed

      Removes SignaturePickerFragment#setSignaturePickerOrientation(). Pass in the desired SignatureOptions to SignaturePickerFragment#show() instead.

    • Removed

      Removes SignaturePickerFragment#showSignaturePicker(). Use SignaturePickerFragment#show() instead.

    • Removed

      Removes AnnotationCreationController#getBorderStyle(). Use border style via BorderStylePreset#getBorderStyle() returned by AnnotationCreationController#getBorderStylePreset().

    • Removed

      Removes AnnotationCreationController#setBorderStyle(). Set in a border preset via AnnotationCreationController#setBorderStylePreset(BorderStylePreset).

    • Removed

      Removes AnnotationCreationController#getBorderDashArray(). Use dash array via BorderStylePreset#getDashArray() returned by AnnotationCreationController#getBorderStylePreset().

    • Removed

      Removes AnnotationCreationController#setBorderDashArray(). Set in a border preset via AnnotationCreationController#setBorderStylePreset(BorderStylePreset).

  • Added

    Adds ContainedSignaturesSigner that simplifies usage of contained digital signatures. (#21309)

  • Added

    Adds support for extracting and attaching binary Instant JSON attachments. (#15851)

    • Added

      Adds Annotation#hasBinaryInstantJsonAttachment() to check whether the annotation has an attachment.

    • Added

      Adds Annotation#fetchBinaryInstantJsonAttachment() to get an existing attachment.

    • Added

      Adds Annotation#attachBinaryInstantJsonAttachment() to create a new attachment.

  • Added

    Adds support for redaction annotations to Instant JSON. (#21389)

  • Added

    Adds support for rendering Emojis in FreeText annotation and forms. (#20629)

  • Added

    Adds support for reordering annotations based on the z-index. (#21235)

    • Added

      Adds AnnotationProvider#moveAnnotation[Async](int pageIndex, int fromZIndex, int toZIndex).

    • Added

      Adds AnnotationProvider#moveAnnotation[Async](@NonNull Annotation annotation, int zIndex).

    • Added

      Adds AnnotationProvider#moveAnnotation[Async](@NonNull Annotation annotation, @NonNull AnnotationZIndexMove zIndexMove)``, where AnnotationZIndexMovecan be one of the following actions:MOVE_TO_FRONT, MOVE_FORWARD, MOVE_BACKWARD, MOVE_TO_BACK`.

    • Added

      Adds AnnotationProvider#getZIndex(@NonNull Annotation annotation).

    • Added

      Adds OnAnnotationUpdatedListener#onAnnotationZOrderChanged(int pageIndex, @NonNull List<Annotation> oldOrder, @NonNull List<Annotation> newOrder) that you can use to catch the annotation z-index changes.

  • Changed

    Improves JPEG2000 with transparency support. (#20483)

  • Changed

    Improves consumer Proguard configuration for use with R8. (#20745)

  • Changed

    Improves font rendering and fixes several edge cases. (#20930)

  • Changed

    Improves handling and documentation of custom digital signature sizes. Now cases where the signature size exceeds the reserved size in a document will be informed correctly. (#21304)

  • Changed

    Improves memory usage on complex documents. (#20970)

  • Changed

    Improves the stability of some PDF form operations. (#21032)

  • Changed

    Improves the validation of Instant JSON payloads so that case differences in properties are tolerated. (#21145)

  • Changed

    Improves handling of broken AcroForm dictionaries. (#21121)

  • Changed

    Changes AnnotationProvider#getAllAnnotationsOfType() to be a blocking call instead of async. (#20525)

  • Changed

    Strengthens the validation of Instant JSON format in some corner cases. (#20748)

  • Fixed

    Fixes an issue where text after signing had incorrect characters after looking at it in another viewer. (#20930)

  • Fixed

    Fixes a bug in redaction rendering where the font size wasn’t consistent. (#21088)

  • Fixed

    Fixes a bug where measuring annotation selection layout could lead to a crash. (#20961)

  • Fixed

    Fixes a problem where some dates may be incorrectly formatted as Sunday. (#20363)

  • Fixed

    Fixes an issue when importing XFDF files in specific documents. (#21271)

  • Fixed

    Fixes an issue where a document with too many annotations would cause a crash by exceeding the global JNI reference count. (#20977)

  • Fixed

    Fixes an issue where images with the lighten blend mode didn’t get rendered correctly. (#20642)

  • Fixed

    Fixes an issue where loading a document would fail if it contained JPEG2000 images not specifying a color space. (#21311)

  • Fixed

    Fixes pasted rotated vector stamps being double rotated which resulted in clipping. (#20916)

  • Fixed

    Fixes some stability issues when fonts are loaded from a document. (#21042)

  • Fixed

    Fixes some use cases where PDFs with JavaScript validation scripts may not work as expected. (#21291)

  • Fixed

    Fixes page indices being incorrect after the first data provider when exporting Instant JSON from a document with multiple data providers. (#20343)

  • Fixed

    Fixes a possible NullPointerException that could occur when changing pages while having free-text annotation selected. (#21459)

Instant

  • Removed

    Instant library has been merged with PSPDFKit for Android. (#20364)

    • Removed

      Removes com.pspdfkit:pspdfkit-instant artefact from the PSPDFKit’s maven repo and pspdfkit-instant.aar from the distribution package.

    • Removed

      Removes PSPDFKitInstant and PSPDFKitInstantInitializationProvider. Instant is now initialized together with PSPDFKit.

    • Changed

      InstantClient now checks for OkHttp dependency and throws an error if it is missing. If you wish to use Instant add implementation "com.squareup.okhttp3:okhttp:3.11.0" to dependencies block of your build file.

  • Fixed

    Fixes an issue where InstantAnnotationProvider has been obfuscated in release builds. (#20997)

  • Fixed

    Fixes an issue with transparent strokeColor in Instant JSON. (#21391)

Examples

  • Added

    Adds DownloadedFilesObserverService to catalog app to speed-up opening custom files when running on Android emulator. If you wish to open a file, just drop it on the Android emulator with the catalog running. (#20846)

  • Fixed

    Fixes an issue where direct launching of Catalog examples could lead to initialization errors. (#21188)

5.5.1 - 8 Aug 2019

UI

  • Fixed

    Fixes an issue where clicking on signed signature form fields would not display the signature info dialog if the form field was marked as read only. (#20766)

  • Fixed

    Fixes an issue where document saving callbacks were not called after PdfFragment was destroyed. (#20774)

  • Fixed

    Fixes an issue where redactions were not correctly displayed in the annotation list. (#20738)

  • Fixed

    Fixes an issue where thumbnails in thumbnail bar were too wide if the first page was wider than the others. (#20740)

Model

  • Removed

    Deprecates OnSigningCompleteCallback and signFormField() method that used it in Signer. (#20815)

  • Added

    Adds support for contained digital signatures. (#20493)

    • Added

      Adds prepareFormFieldForSigningAsync() to Signer. Use this method to reserve space in a signature form field so that it can be signed later.

    • Added

      Adds embedSignatureInFormFieldAsync() to Signer. Use this method to embed a digital signature in a document that has been already prepared for signing.

    • Added

      Adds SignatureContents interface. SignerOptions now has signatureContents property that represents raw content that should be embedded as a digital signature in the document.

    • Added

      Adds PKCS7 that implements PKCS7 cryptographic container and PKCS7SignatureContents that wraps the PKCS7 container as a signature contents.

    • Added

      Adds getHashForDocumentRange() to PdfDocument to hash part of the document indicated by the byte range of the prepared signature.

    • Added

      Adds ContainedSignaturesExample that shows how to build custom Signer for signing a document using the PKCS7 cryptographic container.

  • Added

    Adds new DocumentSaveOptions#setRewriteAndOptimizeFileSize() method to enable additional file size optimizations when saving documents. (#20831)

  • Changed

    Improves performance when parsing documents with many links. (#20786)

  • Fixed

    Fixes an issue that may prevent that a document with some restrictions is digitally signed. (#20741)

  • Fixed

    Fixes an issue where PSPDFKit always changed the PDF version to 1.7. (#20596)

  • Fixed

    Fixes an issue where rotating pages using the document editor would always reset the page binding setting to left edge. (#20732)

5.5.0 - 26 Jul 2019

See the announcement post.

Migration guide.

PSPDFKit is now built with Android Gradle Plugin 3.4.2 and Gradle 5.5.1.

UI

  • Added

    Adds enableMagnifier() to PdfConfiguration.Builder to control whether the magnifier should be shown when the text selection handles are touched. (#20246)

  • Added

    Adds form elements to the annotation outline view. (#19989)

    • Changed

      The “Clear All” button will now also clear data entered into form elements.

    • Added

      Adds new pspdf__form_type_text_field, pspdf__form_type_button, pspdf__form_type_choice_field, and pspdf__form_type_signature_field string resources.

  • Added

    Adds support for navigating between pages by tapping the edges of the page. (#16500)

    • Added

      Adds Pdf[Activity]Configuration.Builder#scrollOnEdgeTapEnabled() to control whether navigating by tapping the page edges is enabled.

    • Added

      Adds Pdf[Activity]Configuration.Builder#animateScrollOnEdgeTaps() to control whether these navigation events are animated.

    • Added

      Adds Pdf[Activity]Configuration.Builder#scrollOnEdgeTapMargin() to control how big the area that accepts touches on the page edge is.

  • Added

    Adds support for the UI to display documents with a right edge binding from right to left. (#20327)

    • Added

      Adds page binding setting to document info view.

    • Added

      Adds support for the PdfActivity to automatically update when the page binding of the current document changes.

  • Added

    Adds the floating thumbnail bar - a new thumbnail bar layout that is not pinned to the bottom but displayed as a floating card. (#19999)

    • Added

      Adds ThumbnailBarMode#THUMBNAIL_BAR_MODE_FLOATING used to select floating thumbnail bar via PdfActivityConfiguration.Builder#setThumbnailBarMode().

    • Added

      Adds ThumbnailBarMode#THUMBNAIL_BAR_MODE_PINNED used to select pinned (old) thumbnail bar via PdfActivityConfiguration.Builder#setThumbnailBarMode().

    • Removed

      Deprecates ThumbnailBarMode#THUMBNAIL_BAR_MODE_DEFAULT. The ThumbnailBarMode#THUMBNAIL_BAR_MODE_FLOATING is now used as a default value.

    • Added

      Adds PdfThumbnailBar#setThumbnailBarMode() to set the mode dynamically on the ThumbnailBar.

    • Added

      Adds PdfStaticThumbnailBar.LayoutStyle enum that defines two possible layout styles for the static thumbnail bar (FLOATING and PINNED). Also adds setLayoutStyle() and getLayoutStyle() respectively.

    • Changed

      Static and pinned thumbnail bars won’t interfere anymore with the new Android Q gestural navigation as there’s room left on the bottom when gestural navigation is enabled.

  • Changed

    Improves PdfActivity and PdfFragment startup performance by initializing all views lazily on their first use. (#20001)

  • Changed

    Improves animations speed of fling gesture. (#20674)

  • Changed

    Improves configuration resolving for annotation tool variants inside AnnotationConfigurationRegistry. (#20623)

    • Changed

      Pen variant now defaults to default ink variant configuration.

  • Changed

    Improves text selection magnification by keeping the magnifier view entirely inside the screen. (#20221)

  • Removed

    Removes transparent fill color from annotation inspector for redaction annotations. (#20321)

  • Changed

    Updates localized strings and adds Welsh language localization. (#20713)

  • Changed

    PdfOutlineView now loads its content lazily when displayed for the first time. (#20234)

  • Fixed

    Fixes an issue where bottom audio view got stuck after switching tabs. (#20340)

  • Fixed

    Fixes an issue where annotation list showed duplicate entries and did not hide loading indicator after annotation loading has finished. (#20698)

  • Fixed

    Fixes an issue where page previews were not correctly invalidated when applying redactions to the current document. (#20322)

  • Fixed

    Fixes an issue where sound annotation recording button had wrong grouping on small devices. (#20354)

  • Fixed

    Fixes an issue where thumbnail bar was not being shown on some phones in landscape mode, when Android Q gestural navigation was enabled. (#20700)

  • Fixed

    Fixes an issue where undo/redo did not work correctly in some cases for sound annotations and image stamps. (#20439)

  • Fixed

    Fixes an issue where undoing changes made to annotation replies was not working correctly. (#20327)

  • Fixed

    Fixes multiple activity leaks inside PdfFragment. (#20517)

  • Fixed

    Fixes stuttering animation when showing inspector for listbox and combobox form fields. (#20338)

Model

  • Removed

    Deprecates AnnotationProvider#getAllAnnotationsOfType() in favor of AnnotationProvider#getAllAnnotationsOfTypeAsync(). (#20525)

    • Changed

      AnnotationProvider#getAllAnnotationsOfType() will be made into a blocking call in PSPDFKit for Android 6.0.

  • Added

    Adds PdfDocument#setPageBinding() to configure the page binding of the document. (#20327)

    • Added

      Adds PageBinding enum with all possible page bindings.

  • Added

    Adds support for exporting and importing callout freetext annotations using JSON. (#18202)

  • Added

    Adds support for preserving the Instant JSON id in the PDF. (#20572)

  • Added

    Adds support for rotating image stamps. (#19643)

  • Added

    Adds support for serializing and deserializing border properties of link annotations. (#20359)

  • Added

    Adds suppot for vertical alignment in single-line form fields when exporting or printing PDF files. (#19882)

  • Changed

    Improves rendering of non ASCII text. (#20189)

  • Changed

    Improves rendering of text in appearance streams. (#19877)

  • Changed

    Improves consumer Proguard configuration for use with R8. (#20745)

  • Changed

    PSPDFKit now preserves the appearance stream when a stamp annotation is rotated to avoid distorting it. (#15898)

  • Fixed

    Fixes a problem where overriding the digital signature reserved size may corrupt the signature appearance. (#20496)

  • Fixed

    Fixes an assertion when importing annotations outside the page range using XFDF. (#20424)

  • Fixed

    Fixes an issue reading media boxes. (#20592)

  • Fixed

    Fixes an issue where DocumentListener set on PdfFragment or PdfActivity was not called when calling PdfDocument#save() on the document directly. (#20470)

  • Fixed

    Fixes an issue where form fields with calculation order may not be flattened correctly by the processor. (#20434)

  • Fixed

    Fixes an issue where some documents with dropdown fields may show an arrow when the document is flattened. (#9539)

  • Fixed

    Fixes very occasional text rendering problems. (#20155)

  • Changed

    Updates NDK to version 20.0.5594570. (#20429)

  • Changed

    Updates Expat to version 2.2.7. (#20545)

  • Changed

    Updates libpng to version 1.6.37. (#19851)

  • Changed

    Updates openjpeg to version 2.3.1. (#20647)

Instant

  • Fixed

    Fixes a crash that would occur after applying an InstantJSON update to a document where the changes contained form field updates. (#20152)

  • Fixed

    Fixes an issue where annotations could not be removed after syncing updates from Instant. (#20684)

5.4.2 - 26 Jun 2019

UI

  • Added

    Adds new pspdf__usePageAspectRatio attribute to thumbnail bar style. (#20245)

    • Changed

      When enabled this will use the pspdf__thumbnailHeight and aspect ratio of your document to determine the pspdf__thumbnailWidth.

  • Fixed

    Fixes an issue inside PdfThumbnailGrid where deleting all pages and adding a new one may cause a crash. (#20333)

  • Fixed

    Fixes an issue where calling PdfFragment#enterAnnotationCreationMode() multiple times may cause visualization issues of the contextual toolbars. (#20172)

  • Fixed

    Fixes an issue where document insets were calculated wrong when form editing bar was displayed. (#20149)

  • Fixed

    Fixes an issue where it was possible to edit form element while its associated WidgetAnnotation was not editable (i.e. having flags READONLY, LOCKED or LOCKEDCONTENTS). (#20238)

  • Fixed

    Fixes an issue where it wasn’t possible to undo sound annotations deletion. (#20308)

  • Fixed

    Fixes an issue where annotation inspector could grow taller than the screen size rendering it unusable. (#20309)

  • Fixed

    Fixes an issue where some PropertyInspectorViews were restored twice reporting wrong values in the UI. (#20305)

    • Added

      Adds PropertyInspectorView#isViewStateRestorationEnabled() to determine whether to save the state by calling the View#saveHierarchyState and View#restoreHierarchyState to restore it. Defaults to false.

  • Fixed

    Fixes an issue where switching pages would cause the selected annotation tool variant to be lost. (#20371)

  • Fixed

    Fixes an issue where text form fields were not scrolled into view when displaying soft keyboard in immersive mode. (#20251)

  • Fixed

    Fixes an issue where the redaction UI would reappear after clearing all redactions. (#20323)

  • Fixed

    Fixes an issue where the tab bar was cut off in immersive mode. (#20341)

  • Fixed

    Fixes an issue where the text selection popup performance degraded while using it. (#20326)

  • Fixed

    Fixes an issue where using the “Clear All” option in the annotation list would not update the page thumbnails. (#20330)

  • Fixed

    Fixes an issue where exporting pages from Document Editor may cause a crash when the page index is not the first. (#20331)

Model

  • Changed

    Improves loading performance for documents with complex outlines. (#20279)

  • Changed

    Improves the deletion behavior for note annotations with associated popup annotations. The latter used to become “orphaned”. (#19853)

  • Added

    Improves the document loading performance by parsing outline asynchronously. (#20171)

    • Changed

      Improves PdfDocument#getOutline() that now parses outline on first use. This operation could take a while and should not be executed on the main thread.

    • Added

      Adds PdfDocument#getOutlineAsync() for parsing outline asynchronously.

    • Added

      Adds PdfDocument#hasOutline() that is resolved while loading document. Use this method to check whether outline is present in the document without parsing the whole outline.

  • Changed

    Improves the performance when loading documents with many link annotations and form fields. (#20171)

  • Changed

    Improves automatic repair of AcroForms when loading documents with a large number of annotations. (#19990)

  • Fixed

    Fixes an issue where AnnotationConfiguration#builder() had no implementation for sound annotation configuration. (#20292)

  • Fixed

    Fixes an issue where exiting annotation editing mode via toolbar, would call OnAnnotationEditingModeChangeListener#onExitAnnotationEditingMode() twice. (#20172)

  • Fixed

    Fixes an issue where proguard consumer file was missing some rules that might cause a crash on release builds. (#20286)

  • Fixed

    Fixes an issue where some documents signed with invisible signatures could not be validated correctly. (#20277)

Instant

  • Fixed

    Fixes an issue where “Save as” share action did not work with Instant documents. (#20140)

  • Fixed

    Fixes an issue where annotations could not be removed in Instant documents. (#20337)

Examples

  • Fixed

    Fixes an infinite recursion when requesting external storage permission in Document Tabs Example in Catalog app. (#20339)

  • Fixed

    Fixes an issue in Annotation Creation example of Catalog app where the annotation creator was always overridden even if already set. (#20253)

5.4.1 - 29 May 2019

UI

  • Added

    Adds error handling for XFDF parsing in XfdfExample. (#20049)

  • Changed

    Updates the default color palettes provided when creating and editing annotations. (#19843)

  • Changed

    XfdfExample now shows how to export all annotations in the document. (#20050)

  • Fixed

    Fixes an issue in CustomAnnotationInspectorExample where custom annotation color picker indicated incorrect selected color. (#20069)

  • Fixed

    Fixes an issue where background color and border color were not displayed correctly for free text annotations while in night mode. (#20037)

  • Fixed

    Fixes an issue where in some cases FreeTextAnnotation preferences were not saved correctly. (#20032)

  • Fixed

    Fixes an issue where slider picker text values were not applied after leaving inspector. (#20043)

  • Fixed

    Fixes an issue where text form fields could cause a NullPointerException. (#20084)

  • Fixed

    Fixes an issue where some simple signatures were distorted before adding them to the document. (#20090)

  • Fixed

    Fixes an issue with the contextual toolbars where clicking on the close button multiple times might cause a potential crash. (#20048)

Model

  • Added

    Adds support to use LeakCanary 2 with PSPDFKit. (#20020)

  • Fixed

    Fixes an issue that lead to the Custom Stamp Annotations example crashing when started. (#20044)

  • Fixed

    Fixes an issue where JavaScript API doc.getField() could get into a state where it wasn’t possible to retrieve newly created form fields. (#20027)

  • Fixed

    Fixes an issue where closing the Image Document example might lead to crashes. (#20041)

  • Fixed

    Fixes an issue where displaying the PopupToolbar close to the edge of the screen lead to animation artifacts when opening and closing the overflow menu. (#20033)

  • Fixed

    Fixes an issue where the AesDataProvider provided with the Catalog sample app was not compatible with multithreaded rendering. (#19994)

Instant

  • Fixed

    Fixes NoClassDefFoundError that occurred while creating InstantClient. (#20031)

5.4.0 - 23 May 2019

See the announcement post.

PSPDFKit is now built with Android Gradle Plugin 3.4.1 and Gradle 5.4.1. This release adds a new transitive dependency to androidx.palette:palette:1.0.0.

UI

  • API

    Existing API for controlling annotation editing defaults and preferences has been replaced. (#19252)

    • Changed

      All interfaces and classes in package com.pspdfkit.annotations.defaults have been deprecated in favor of new annotation configuration API in com.pspdfkit.annotations.configuration.

    • Added

      Adds AnnotationConfigurationRegistry which manages a list of AnnotationConfigurations for each annotation type or tool. Can be retrieved via PdfFragment#getAnnotationConfiguration().

    • Added

      Adds <AnnotationType>Configuration for each annotation type (or multiple similar types in case of MarkupAnnotationConfiguration and ShapeAnnotationConfiguration) that extends annotation configuration interfaces supported by that annotation type.

    • Added

      Adds static interface method builder() to all of these annotation type configuration interfaces that return builders for each configuration type. This makes configuration less verbose compared to manual implementations of annotation configurations.

    • Added

      Adds AnnotationConfigurationExample showing how to use this new API.

    • Changed

      Note: If you wish to access static configuration builder methods (<AnnotationType>Configuration#builder()) from your Kotlin code, your Kotlin compiler must target Java 8.

  • Added

    Adds a new UI for picking colors allowing users to specify custom colors. (#7333)

    • Added

      Adds androidx.palette:palette:1.0.0 as a new dependency.

    • Added

      Adds customColorPickerEnabled() configuration to AnnotationColorConfiguration, AnnotationFillColorConfiguration, and AnnotationOutlineColorConfiguration.

    • Added

      Adds setCustomColorPickerEnabled() to AnnotationColorConfiguration.Builder, AnnotationFillColorConfiguration.Builder, and AnnotationOutlineColorConfiguration.Builder.

    • Added

      Adds getRecentlyUsedColors() and setRecentlyUsedColors() to PSPDFKitPreferences.

    • Added

      Adds CustomColorPickerInspectorDetailView which provides a UI for the user to select predefined colors as well as entering their own.

    • Removed

      Removes ColorPickerInspectorDetailView.ColorPickerListener use ColorPickerInspectorView.ColorPickerListener instead.

  • Added

    Adds a new improved UI for displaying bookmarks to make it easier to associate a given bookmark with a page. (#19109)

    • Added

      Adds onBookmarkAdded()´ method to BookmarkProvider.BookmarkListener`.

  • Added

    Adds magnifier widget when selecting text to make text selection more precise by unobscuring the area covered by the finger. Uses system magnifier on API 28+ and a custom magnifier implementation on older versions of Android. (#19273)

  • Added

    Adds options to clear all annotations and delete single annotations to annotations outline view. (#19568)

    • Added

      Adds PdfOutlineView#setAnnotationEditingEnabled() to control whether this new feature is enabled.

    • Added

      Adds style attributes pspdf__annotationsBarBackgroundColor, pspdf__annotationsBarIconColor, pspdf__annotationsDeleteIcon, pspdf__annotationsDeleteIconColor, pspdf__annotationsEditIcon, and pspdf__annotationsDoneIcon to control how the new bottom bar in the annotation outline view is displayed.

  • Added

    Adds options to create underline and strike out annotations to text selection popup on larger devices. (#19963)

  • Added

    Adds cloudy border effects for square, circle and polygon annotations. (#9684)

    • Added

      Adds setBorderEffect() and setBorderEffectIntensity() to Annotation. Use these to set cloudy effect as well as its intensity programmatically.

    • Added

      Adds overrides to BorderStylePreset constructors that accept border effect and its intensity as parameters. Default preset and available presets in annotation inspector can be configured via AnnotationBorderStyleConfiguration.

    • Removed

      Deprecates border style and border dash array properties from AnnotationPreferences and AnnotationCreationController. Use border style preset properties defined on both of these interfaces instead.

  • Added

    Adds support for sound annotations. (#11587)

    • Added

      Adds SoundAnnotation model class.

    • Added

      Adds full UI support for playing and recording audio annotations, presented as an AudioView displayed above thumbnail bar.

    • Added

      Adds AudioModeManager, available via PdfFragment#getAudioModeManager(), for controlling sound annotation playback and recording.

    • Added

      Adds SoundAnnotationConfiguration that provides control over audio recording parameters.

    • Added

      Adds AudioExtractor for extracting audio tracks from media files.

  • Added

    Adds annotation tool variants. (#10227)

    • Added

      Adds AnnotationToolVariant class which you can use to define the annotation tool variants.

    • Added

      Adds PdfFragment#enterAnnotationCreationMode() overload that has a AnnotationToolVariant as parameter. This can be used to start annotation creation mode with the specified annotation tool and annotation tool variant.

    • Added

      Adds a circular style indicator icon that displays the color and thickness defaults of the tool if to be selected.

    • Added

      Adds AnnotationCreationToolbar.ItemToAnnotationToolMapper class that you can register on AnnotationCreationToolbar via setItemToAnnotationToolMapper().

    • Added

      Adds CustomAnnotationCreationToolbarExample to the Catalog showcasing how to implement custom tool variants to the annotation creation toolbar properly.

    • Added

      Adds PdfFragment#getActiveAnnotationTool() and PdfFragment#getActiveAnnotationToolVariant() that will return currently active annotation tool and variant.

    • API

      Ink item has been replaced with pen and highlighter variations, thus R.id.pspdf__annotation_creation_toolbar_item_ink has been removed from the framework, and pspdf__annotation_creation_toolbar_item_ink_pen and pspdf__annotation_creation_toolbar_item_ink_highlighter have been added.

    • API

      Style attributes are updated to match new styles. Also, the one that controls ink icon has been removed (pspdf__inkIcon).

  • Changed

    Improves document scrolling performance. (#19600)

  • Changed

    Improves text hit detection making selecting small text easier. (#12254)

  • Fixed

    Fixes an issue where TTS was not properly cancelled upon leaving the PdfActivity. (#19873)

  • Fixed

    Fixes an issue where UI chrome covered document when using UserInterfaceViewMode#USER_INTERFACE_VIEW_MODE_VISIBLE. (#19939)

  • Fixed

    Fixes an issue where media annotations with autoplay flag started playing whenever any annotation on their page changed. (#19978)

  • Fixed

    Fixes an issue where text markup annotations could be dragged after selected via long-press gesture. (#19919)

  • Fixed

    Fixes an issue where the PdfTextSelectionPopupToolbar was flickering while changing text selection. (#19962)

  • Fixed

    Fixes an issue where exiting the annotation editing mode would discard changes from calling setContents() on an edited FreeTextAnnotation while in editing mode. (#19231)

Model

  • Changed

    Updates the Android Gradle Plugin to 3.4.1. (#19789)

    • Changed

      Updates to Gradle 5.4.1.

    • Changed

      Updates all example sources to Android Gradle Plugin 3.4.1.

    • Changed

      Replaced Proguard with R8 for code optimization and minification.

  • Added

    Adds PdfConfiguration#allowMultipleBookmarksPerPage() to allow you to configure whether users can add multiple bookmarks for a single page or not. (#19447)

  • Added

    Adds SignatureAppearance#Builder#setSignatureWatermark() to allow you set a custom watermark for a signature appearance. (#19438)

  • Added

    Adds support for the Doc.documentFileName JavaScript API. (#18775)

  • Changed

    Improves exception message that is thrown when creating form fields with non-unique fully qualified names. (#20010)

  • Changed

    Improves performance of pages which hold lots of objects. (#19396)

  • Changed

    Improves performance when executing JavaScript actions on form fields with complex interdependent validation logic. (#19661)

  • Changed

    Improves results from PdfLibrary when the exact phrase matches are requested, and a tokenizer other than the default porter tokenizer is used. (#19685)

  • Changed

    Improves the performance of some JavaScript calculation scripts. (#19234)

  • Changed

    Embedded goto actions will go to the specified page instead of going to the first page of the embedded target document. (#10963)

  • Changed

    Improved automatic repair of AcroForms to support more document errors. (#19834)

  • Changed

    Update libjpeg-turbo to 2.0.2. (#18973)

  • Changed

    Updates the Botan library version to 2.10.0. (#19767)

  • Fixed

    Fixes a potential crash when processing large documents under low-memory conditions. (#19768)

  • Fixed

    Fixes an issue creating form fields where some fields could not be retrieved later by their original keys. (#19945)

  • Fixed

    Fixes an issue in the redaction of documents with monochrome inline images. (#19579)

  • Fixed

    Fixes an issue when sharing a document that resulted in blank pages. (#19267)

  • Fixed

    Fixes an issue where “No document set” was displayed in certain circumstances when resuming destroyed PdfActivity without a redaction license. (#19777)

  • Fixed

    Fixes an issue where QuadPoints of link annotations were saved to the PDF incorrectly. (#19427)

  • Fixed

    Fixes an issue where DocumentListener#onPageUpdated() was not called in certain circumstances. (#19781)

  • Fixed

    Fixes an issue where annotations created by Apple Preview may not be copied and pasted correctly. (#19154)

  • Fixed

    Fixes an issue where configuration changes while signing a document could lead to a crash. (#19281)

  • Fixed

    Fixes an issue where image annotations were not added when the permission dialog was shown before. (#19589)

  • Fixed

    Fixes an issue where in rare circumstances pasting content from Microsoft Word would throw an unhandled exception. (#19842)

  • Fixed

    Fixes an issue where link annotations may not work correctly after a document is exported. (#19222)

  • Fixed

    Fixes an issue where malformed widget annotations weren’t correctly attached to the form. (#19581)

  • Fixed

    Fixes an issue where read-only checkboxes may not be rendered correctly. (#19506)

  • Fixed

    Fixes an issue where some JPX images may not render correctly. (#18648)

  • Fixed

    Fixes an issue where text edited in form fields was incorrectly set in other form fields as well. (#19236)

  • Fixed

    Fixes an issue where the fillColor property was ignored in Instant JSON for polyline annotations. (#19443)

  • Fixed

    Fixes an issue where the redaction text may not be correctly added in some scenarios. (#19703)

  • Fixed

    Fixes an issue with text markup alignment on accented characters. (#18214)

Instant

  • Fixed

    Fixes an issue where multiple authentication requests for the same layer could be running concurrently. Under certain circumstances, this could cause multiple concurrent sync requests for the same layer, too. (#18698)

Examples

  • Added

    Adds new MergeDocumentsExample showing how to use the document processor to merge documents. (#19300)

  • Fixed

    Fixes a broken link in the Instant Catalog example. (#19822)

5.3.1 - 11 Apr 2019

UI

  • Added

    Adds showPageTemplatesLast setting to NewPageDialog#show, NewPageDialog#restore, and DialogNewPageFactory() which, if set to true, diplays custom page templates after page patterns provided by default. (#19433)

  • Added

    Adds style attribute pspdf__itemRippleBackgroundColor to the pspdf__ThumbnailGrid styleable, to change the ripple color for the ThumbnailGrid item selection. (#19111)

  • Changed

    Improves performance when editing line, polyline and polygon annotations. (#19483)

  • Changed

    Size of created ink signatures is now relative to page size. (#19497)

  • Fixed

    Fixes an issue where DocumentListener#onPageUpdated was not being called after creating ink signatures. (#19512)

  • Fixed

    Fixes an issue where OnAnnotationUpdatedListener#onAnnotationUpdated was called repeatedly when modifying line, polyline and polygon annotations. (#19384)

  • Fixed

    Fixes an issue where changes made to callout lines could not be properly undone. (#19091)

  • Fixed

    Fixes an issue where ink annotations would not be visible if leaving the page before exiting the annotation creation mode. (#19509)

  • Fixed

    Fixes an issue where malformed URIs were not properly managed and were leading to a crash when opening image documents. (#19432)

  • Fixed

    Fixes an issue where minimal size of free-text annotations with thick border and/or large text size was too small. (#19294, #19297)

  • Fixed

    Fixes an issue where stamps and free text annotations added to rotated pages were not working properly. (#19327)

Model

  • Added

    Adds NewPage#hasPdfPageSource and NewPage#hasPatternSource to help determine the source of the new page created using NewPageDialog. (#19510)

  • Changed

    Improves the performance of documents with JavaScript interactivity in many common scenarios. (#19119)

  • Changed

    Optimizes storage size of magic ink template file. (#19453)

  • Changed

    Reverts AndroidX Recycler View to a stable version 1.0.0. (#19455)

  • Fixed

    Fixes a problem where a form field that is made visible by a JavaScript script may not show its formatted appearance. (#19119)

  • Fixed

    Fixes a rare issue when parsing outlines. (#19469)

  • Fixed

    Fixes an issue where border width and border dash array of free-text annotations were not serialized properly to Instant JSON. (#19409)

  • Fixed

    Fixes an issue where entering text after a PDF document script has executed may not work correctly. (#19119)

  • Fixed

    Fixes an issue where free-text annotation with border was always rendered with non-transparent color. (#19097)

  • Fixed

    Fixes an issue where stamps with custom ap streams were added with the wrong rotation on rotated PDF pages. (#19351)

5.3.0 - 26 Mar 2019

See the announcement post.

Migration guide.

UI

  • Removed

    Deprecates PdfFragment#setAnnotationDefaultsProvider(). Use methods defined on AnnotationDefaultsManager that can be retrieved via PdfFragment#getAnnotationDefaults(). (#19124)

  • Added

    Adds a new Magic Ink tool that recognizes drawn shapes and converts them to shape annotations. (#18925)

  • Added

    Adds support for configuring the preview shown by video annotations using coverMode and coverImage options. (#18206)

  • Added

    Ink drawing is now automatically split into ink annotations based on strokes timing and distance between drawn points. (#13019)

    • Added

      Adds new defaults provider AnnotationAggregationStrategyDefaultsProvider that can be implemented for ink annotations to control ink splitting strategy.

  • Changed

    Improves PdfActivity startup time by optimizing PdfOutlineView creation and configuration. (#19121)

  • Changed

    Improves annotation hit detection by using the actual shape of annotations instead of their bounding boxes to check if they have been selected. (#8782)

  • Changed

    Improves zooming behavior of stamp annotations with NOZOOM flag by moving their zoom anchor point to the annotation center. (#18983)

  • Fixed

    Fixes an issue where adding a new signature to the signature form field followed by the device rotation, would not invoke OnAnnotationUpdatedListener#onAnnotationCreated() callback. (#18948)

  • Fixed

    Fixes an issue where note editor for stamp annotations had transparent color. (#19094)

  • Fixed

    Fixes an issue where stamp annotations with NOZOOM flag were rendered incorrectly at high zoom levels. (#19166)

  • Fixed

    Fixes the top and bottom paddings for the settings view picker mode view. (#19257)

Model

  • API

    Adds methods for converting Signature into JSONObject and vice-versa: (#18794)

    • Added

      Adds static creator Signature#fromJson() (with or without a specified id) that parses the provided JSONObject and creates a respective Signature.

    • Added

      Adds Signature#toJson() method that converts the given Signature to the JSONObject.

  • Added

    Adds FontStyle to Instant JSON widget annotations. (#18083)

  • Added

    Adds OnSignaturePickedListener#onSignatureCreated() to allow you to get notified when a new signature was created. (#19001)

  • Added

    Adds a customData property to Annotation. This property can be used to store user-specified data related to Annotations. (#18927)

  • Added

    Adds async method executeDocumentLevelScriptsAsync() to JavaScriptProvider. (#18892)

  • Added

    Adds support for modifying form fields and annotation widgets to Instant Document JSON. (#18771)

  • Changed

    Improves startup performance of PSPDFKit. (#19138)

  • Changed

    Improves the performance of documents with JavaScript interactivity in many common scenarios. (#19119)

  • Changed

    Loading PDF actions is now more reliable. (#18843)

  • Changed

    Update ICU to version 63.1. (#18974)

  • Changed

    Update libpng to 1.6.36. (#18972)

  • Changed

    Update zlib to 1.2.11. (#18975)

  • Changed

    Updates AndroidX Recycler View to 1.1.0-alpha02. (#19100)

  • Changed

    Updates build system dependencies. (#18912)

    • Changed

      Updates Gradle to 5.2.1.

    • Changed

      Updates the Android Gradle Plugin to 3.3.1.

  • Fixed

    Fixes an issue where form fields that were made visible using JavaScript would not show their formatted appearance. (#19119)

  • Fixed

    Fixes an issue exporting Instant shape annotations with transparent stroke colors. (#19120)

  • Fixed

    Fixes an issue when drawing a path using a pattern with alpha transparency. (#19148)

  • Fixed

    Fixes an issue when rendering text with an overlay blend mode. (#19151)

  • Fixed

    Fixes an issue when setting transparent colors in annotations. (#19120)

  • Fixed

    Fixes an issue where adding pages with forms using the PdfProcessor resulted in no AcroForms dictionary being added to the resulting document. (#18517)

  • Fixed

    Fixes an issue where asynchronous layout callbacks were sometimes executed after onStop causing a crash. (#19206)

  • Fixed

    Fixes an issue where documents could get opened with outdated changes after saving. (#18845)

  • Fixed

    Fixes an issue where entering text after a PDF document script has executed didn’t work correctly. (#19119)

  • Fixed

    Fixes an issue where some layers were hidden incorrectly. (#14439)

  • Fixed

    Fixes an issue where some memory may be leaked after running a script. (#19016)

  • Fixed

    Fixes an issue where using PdfDocument#save(path) would result in corrupt digital signatures in the output document. (#18689)

  • Fixed

    Fixes an issue with instant ink annotation not being sent to clients. (#19325)

  • Fixed

    Fixes rendering of free text annotations with vertical alignment. (#19145)

Examples

  • Added

    Improves Catalog app example list. (#19193)

    • Changed

      Catalog app now uses RecyclerView instead of ListView.

    • Added

      Adds sticky headers for section titles.

    • Changed

      Displays a toast with the class name when an example is long pressed.

  • Changed

    Improves Catalog app startup performance and adds splash screen. (#19162)

5.2.1 - 28 Feb 2019

UI

  • Fixed

    Fixes AutoCAD SHX Text comments being displayed. (#15690)

  • Fixed

    Fixes a potential usage of a recycled bitmap in PdfThumbnailBar. (#18885)

  • Fixed

    Fixes an issue where ImageDocumentExample in the Catalog was stuck on loading screen when opened multiple times. (#18844)

  • Fixed

    Fixes an issue where FormsJavaScriptExample in the Catalog app launched multiple instances of FormsJavaScriptActivity at the same time. (#18883)

  • Fixed

    Fixes an issue where contextual toolbars were not updating their internal state when receiving calls to ContextualToolbar#setDraggable(boolean). (#18800)

  • Fixed

    Fixes an issue where deleting annotation notes would trigger unhandled exceptions when using licenses without Replies feature. (#18955)

  • Fixed

    Fixes an issue where filling text form fields wasn’t possible while JavaScript was disabled. (#19008)

  • Fixed

    Fixes an issue where redactions created using the redaction tool did not remove text from the page. (#18841)

  • Fixed

    Fixes an issue where rotating the device while adding an image stamp prevented the stamp from being added. (#18802)

  • Fixed

    Fixes an issue where the current selection of pages in the document editor was not restored after orientation changes. (#16730)

  • Fixed

    Fixes an issue where items in contextual toolbars did not have a selection feedback after the toolbar had been repositioned. (#19065)

  • Fixed

    Fixes an issue where the item representing ‘More items’ in the contextual toolbar was not styled with the correct colors by R.attr#pspdf__contextualToolbarStyle. (#18661)

  • Fixed

    Fixes an issue with SignaturePickerOrientation.AUTOMATIC and SignaturePickerOrientation.LOCKED_LANDSCAPE where SignaturePickerDialog was shown rotated even when the device was already in landscape mode. (#18801)

  • Fixed

    Fixes an issue with highlight annotations where the opacity was not updated correctly when modified and the highlighted text was aggregated into another annotation. (#18895)

  • Fixed

    Fixes volume rocker navigation not working properly in double page mode. (#18827)

Model

  • Fixed

    Fixes an issue where a form field with custom formatting was not formatted correctly after it was exported and re-imported as XFDF. (#18791)

  • Fixed

    Fixes an issue where hiding form field via JavaScript did not work. (#18882)

  • Fixed

    Fixes an issue where removing default menu items from the PdfActivity in onGenerateMenuItemIds or onCreateOptionsMenu caused the application to crash. (#18837)

  • Fixed

    Fixes an issue where the image of a push button may be displaced in some cases. (#18932)

Instant

  • Fixed

    Fixes an issue where changing annotation properties inside note editor could change unrelated annotations. (#18954)

5.2.0 - 06 Feb 2019

Migration guide.

UI

  • API

    Improves handling custom menu items in the main menu toolbar of PdfActivity. (#6056)

    • API

      Removes PdfActivityMenuManager class.

    • API

      Removes PdfActivity#getActivityMenuManager() method.

    • Added

      Adds onGenerateMenuItemIds() method to the PdfActivity that you can override to provide a custom menu item order.

    • Changed

      Updates the CustomActionsActivity example in the catalog with a new way to handle custom menu items.

    • Changed

      onPrepareOptionsMenu() no longer clears menu items added in onCreateOptionsMenu(). You should use onCreateOptionsMenu() to create your custom menu items and use onPrepareOptionsMenu() only to modify state of these items when the menu gets shown.

  • Added

    Adds support for defining custom signature storages. (#18144)

    • Added

      Adds SignatureStorage interface which you can implement to create your own signature storage.

    • Added

      Adds DatabaseSignatureStorage which is our default signature storage implementation that uses SQLite.

    • Added

      Adds PdfFragment#[set/get]SignatureStorage for setting and retrieving the default signature storage. It is the signature storage that will be used when the signature picker is displayed.

  • Added

    Adds PdfFragment#setDocumentInteractionEnabled() and PdfActivity#setDocumentInteractionEnabled() to control whether the document view will accept inputs or not. (#18135)

  • Added

    Adds PdfFragment#setUserInterfaceEnabled() and PdfActivity#setUserInterfaceEnabled() to control whether the UI will accept inputs or not. (#16791)

  • Added

    Adds PdfLibrary.get(path, tokenizer) to specify the tokenizer to use for full text search. (#18054)

    • Added

      Adds PORTER_TOKENIZER and UNICODE_TOKENIZER constants to specify the tokenizer.

  • Added

    Adds isFormElementClickable() to OnFormElementClickedListener that can be used to prevent clicks on form elements. (#16305)

    • Changed

      Extends CustomInkSignatureExample with an example of how to disable click handling for signature fields.

  • Added

    Adds support for customizing tab bar titles when showing multiple documents by using DocumentDescriptor#setTitle(String). Includes example in Catalog app Tabbed Documents showing how to customize a tab bar title. (#18593)

  • Changed

    Improves automatic font size calculation for text widgets. (#18095)

  • Changed

    Improves copy and paste by making sure pasted annotations have a unique name. (#18525)

  • Changed

    Improves tab bar items by fully displaying the title and adopting ellipsis only when text length goes over 480dp. (#18677)

  • Changed

    Annotation replies are now created with HIDDEN flag set. This fixes an issue where they were incorrectly rendered in thumbnails. (#17349)

  • Changed

    Sets minimum size for resizable catalog activities. See <layout> tag of the MainActivity declaration in AndroidManifest.xml of the catalog app. (#18406)

  • Fixed

    Fixes an issue where annotation note icon did not move together with annotations. (#16976)

  • Fixed

    Fixes an issue where delete button in annotation replies editor did not delete annotation replies for non-note annotations. (#16977)

  • Fixed

    Fixes an issue where it wasn’t possible to input comma as decimal separator into form fields. (#17605)

  • Fixed

    Fixes an issue where redo was prevented when undoing text while editing free-text annotation. (#18478)

  • Fixed

    Fixes an issue where scaling down and the scaling up ink annotations causes the line width to get thicker. (#18645)

  • Fixed

    Fixes an issue where scrollable thumbnail bar was not changing page when a thumbnail was tapped. (#18511)

  • Fixed

    Fixes an issue where squiggly, underline and strikeout annotations could get displayed with opaque white background in annotation overlay. (#18737)

  • Fixed

    Fixes an issue where stamps could not be rotated correctly. (#18488)

  • Fixed

    Fixes an issue where text form fields with automatic text size did not fit to field width while editing. (#18594)

  • Fixed

    Fixes an issue where text selection highlight color had low contrast on inverted pages. (#18742)

  • Fixed

    Fixes an issue where view focus inside the reply editor was not handled properly on OnePlus devices running Oxygen OS. (#18480)

Model

  • API

    Adds control over PSPDFKit’s logging. (#16502)

    • Added

      Adds PdfLog as an entry point for the new logging API.

    • Changed

      You can now achieve custom logging behavior by implementing PdfLog.Logger interface and registering this logger using addLogger() or setLoggers() methods in PdfLog.

    • Removed

      Deprecates PSPDFKit#setLoggingEnabled(). Use PdfLog#removeAllLoggers() or custom Logger that ignores all messages.

    • Changed

      PSPDFKit now logs all messages with priority higher than info (info, warn, error and assert) to LogCat by default. You can prevent this changed behavior by disabling logging or by stripping all calls to PdfLog logging methods with proguard.

  • Added

    Adds support for multithreaded rendering. Multithreaded rendering takes full advantage of multiple CPUs available on the device. This improves page rendering performance in most cases. (#18209, #18274)

    • Added

      Adds setMultithreadedRenderingEnabled() to PdfConfiguration.Builder and PdfActivityConfiguration.Builder to control whether multithreaded rendering should be enabled for loaded documents.

    • Added

      Adds multithreadedRenderingEnabled parameters to open methods in PdfDocumentLoader to control whether multithreaded rendering should be enabled for loaded document.

  • Added

    Adds SignatureAppearance to configure how digital signatures look. (#18438)

    • Added

      Adds SignatureGraphic to embed a custom graphic into the digital signature.

    • Added

      Adds overloads to Signer#signFormField[Async]() that take a SignatureAppearance.

    • Added

      Adds Pdf[Activity]Configuration#signatureAppearance() to configure the appearance for every signature added.

  • Added

    Adds SignatureMetadata for attaching additional metadata to digital signatures. (#18733)

    • Added

      Adds PdfFragment#setSignatureMetadata() for setting the metadata to use when signing via the provided UI.

    • Added

      Adds SignatureSignerDialog.Builder#signatureMetadata() for setting the metadata to use when signing.

    • Added

      Adds SignerOptions for use with Signer#signFormField[Async]().

    • Removed

      Deprecates overloads of Signer#signFormField[Async]() that don’t take SignerOptions, use the new overloads using SignerOptions instead.

  • Added

    Adds Annotation#getCopy() method to allow creating copies of annotations programatically. (#18193)

  • Added

    Adds support for cloudy borders in shape annotations and free text annotations via Instant JSON. (#18547)

  • Added

    Adds support for the doc.removeField JavaScript API. (#18621)

  • Changed

    Improves initial text parsing performance. (#18534)

  • Changed

    Improves performance when looking up fonts. (#17981)

  • Fixed

    Fix an issue in full-text search that could cause a deadlock during indexing. (#18750)

  • Changed

    Update SQLite to 3.26.0. (#18462)

  • Changed

    Updates Kotlin to 1.3.20. (#18668)

  • Changed

    Updates the Botan library to version 2.9.0. (#18271)

  • Changed

    Starts using app name in JavaScript alerts. (#18529)

  • Fixed

    Fixes a bug where annotations parsed from XFDF would be displayed incorrectly on a rotated page. (#17603)

  • Fixed

    Fixes a potential NullPointerException caused by invoking a method on an internal copy/paste handler. (#18446)

  • Fixed

    Fixes a problem importing/exporting color values. This could lead to unnecessary appearance stream regeneration. (#18428)

  • Fixed

    Fixes an issue where calling DocumentJSONFormatter#importDocumentJson(PdfDocument, DataProvider) and its asynchronous companion would seemingly succeed when the JSON to be applied was (partially) invalid. (#18630)

  • Fixed

    Fixes an issue where fragment transaction would be committed after the parent component saves its state, causing an app to be in an illegal state. (#18420)

  • Fixed

    Fixes an issue where listeners set on SignaturePickerFragment were replaced by the framework under certain circumstances. (#18625)

  • Fixed

    Fixes an issue where sharing documents with digital signatures causes the signatures to get corrupted. (#18250)

  • Fixed

    Fixes an issue with Image Documents when images have an orientation. (#17791)

  • Fixed

    Fixes an issue with Image Documents when saving back to an already rotated image. (#18483)

  • Fixed

    Fixes text markup annotations being created incorrectly on rotated pages with text that appears the right way up. (#18219, Z#11941)

5.1.2 - 17 Jan 2019

UI

  • Changed

    Hides annotation inspector button in the annotation creation toolbar when creating note annotations. (#18269)

  • Fixed

    Fixes an issue where annotation creation mode is exited when changing pages. (#18252)

  • Fixed

    Fixes an issue where note annotation editor buttons were not working properly after activity was stopped. (#18247)

  • Fixed

    Fixes an issue where note annotation editor background color did not reflect annotation color. (#18246)

  • Fixed

    Fixes an issue where the text selection toolbar overlaps the selected text when immersive mode is enabled. (#18258)

  • Fixed

    Fixes an issue where PdfActivity wasn’t correctly restoring its state during activity recreation. (#18425)

Model

  • Fixed

    Fixes an issue that could lead to errors when loading image documents from files with corrupted XMP data. (#18110)

  • Fixed

    Fixes an issue where redaction of a monochrome image could unexpectedly change its color. (#18176)

  • Fixed

    Fixes an issue where searching and navigating specific documents could lead to high memory use. (#18118)

Instant

  • Fixed

    Fixes an exception that could be thrown when loading Instant documents in multi-window mode. (#18484)

Examples

  • Fixed

    Fixes a crash inside the “Custom Inline Search” Catalog example. (#18486)

5.1.1 - 20 Dec 2018

UI

  • Changed

    Disables the rotation handle for stamp annotations with custom appearance stream generators since rotation is not supported yet. (#18013)

  • Fixed

    Fixes an issue where PdfFragment#scrollTo() would also zoom out the page instead of just scrolling to the specified location. (#17816)

  • Fixed

    Fixes an issue where the digital certificate selection was erroneously shown when adding ink signatures outside of a form field. (#18014)

  • Fixed

    Fixes an issue where the signing dialog is not rotated to landscape when ´SignatureSavingStrategy.NEVER_SAVE` is set. (#18020)

  • Fixed

    Fixes asymmetric vertical padding on the settings mode picker which resulted in UI glitches when hiding specific settings. (#13497)

  • Fixed

    Fixes a possible NullPointerException that could occur when switching out of signature creation mode. (#18153)

  • Fixed

    Fixes an issue where copying a PdfActivityConfiguration using its Builder’s copy constructor would alter fields in the resulting copy. (#18158)

Model

  • API

    BookmarkProvider#[add/remove]Bookmark[Async]() now throws an exception if there was an error while modifying the bookmark list. (#17710)

    • Changed

      Changes BookmarkProvider#addBookmark() to return a boolean indicating if the bookmark was added.

  • Added

    Adds PdfFragment#getImageDocument() for retrieving a loaded ImageDocument instance. (#18131)

  • Fixed

    Fixes an issue where redacting certain kinds of vector graphics may incorrectly redact part of the background. (#18071)

  • Fixed

    Fixes an issue where the JavaScript method Doc.print may not work correctly. (#18111)

  • Fixed

    Fixes an issue which could cause broken path renderings in specific edge-case scenarios. (#18145)

  • Fixed

    Fixes some visualization issues with markup annotations, specially on rotated pages. (#12927, #16794, #17889, #18002, #18024)

Instant

  • Fixed

    Fixes an issue where Proguard would fail when applied on an app integrating Instant. (#18100)

5.1.0 - 13 Dec 2018

See the announcement post.

Migration guide.

UI

  • Added

    Adds free-form redaction support to the existing redaction tool for redacting images and annotations from a page. (#17413)

  • Added

    Adds PdfThumbnailGrid.OnDocumentSavedListener that gets notified whenever the document gets saved inside the document editor. (#17401)

    • Added

      Adds setOnDocumentSavedListener() to PdfThumbnailGrid for setting the listener.

  • Added

    Adds unified configuration for all supported sharing features. (#16544)

    • Added

      Adds setEnabledShareFeatures() to PdfActivityConfiguration.Builder and PdfConfiguration.Builder.

    • Removed

      Deprecates isShareEnabled() in PdfActivityConfiguration. Use PdfConfiguration#getEnabledShareFeatures() instead.

    • Removed

      Deprecates enableShare() and disableShare() in PdfActivityConfiguration.Builder. Use PdfActivityConfiguration.Builder#setEnabledShareFeatures() instead.

    • Removed

      Deprecates isTextSharingEnabled(), isEmbeddedFilesSharingEnabled and isSharingNoteEditorContentEnabled() in PdfConfiguration. Use PdfConfiguration#getEnabledShareFeatures() instead.

    • Removed

      Deprecates textSharingEnabled(), embeddedFileSharingEnabled() and sharingNoteEditorContentEnabled in PdfConfiguration.Builder. Use PdfConfiguration.Builder#setEnabledShareFeatures() instead.

  • Added

    Adds getter to return redaction button width. (#17697)

    • Fixed

      Fixes an issue where redaction button was overlapping forward history button.

    • Changed

      Improves redaction button alignment in portrait and landscape.

    • Changed

      Implements OnRedactionButtonVisibilityChangedListener for receiving calls when redaction collapses or expands.

  • Added

    Adds message that is shown when using the document editor with redactions in the document. (#17559)

  • API

    Improves signing dialog by adding options that control the visibility of ‘Store signature’ checkbox and a signer chip (used to select the signer when digitally signing the document). (#15544)

    • Added

      Adds SignatureSavingStrategy enum that declares the strategy when saving the signature. The ‘Store Signature’ checkbox is shown only if SignatureSavingStrategy.SAVE_IF_SELECTED is set.

    • Added

      Adds SignatureCertificateSelectionMode enum that controls how adding the certificate is presenter in the UI. It can show the certificate selection dropdown always, never or only when certificates are available.

    • Changed

      SignatureSavingStrategy is set via signatureSavingStrategy() in PdfConfiguration.Builder and PdfActivityConfiguration.Builder.

    • Changed

      SignatureCertificateSelectionMode is set via signatureCertificateSelectionMode() in PdfConfiguration.Builder and PdfActivityConfiguration.Builder.

    • Removed

      Deprecates setSignatureSavingEnabled() in PdfConfiguration.Builder and PdfActivityConfiguration.Builder.

    • Removed

      Deprecates setCustomerSignatureFeatureEnabled() in PdfConfiguration.Builder and PdfActivityConfiguration.Builder.

  • API

    Updates the SignaturePickerFragment API to reflect new changes implemented in #15544, which adds new parameters to the signature UI, as whether to show ‘Store signature’ button or not, etc. (#18079)

    • Added

      Adds SignatureOptions that define stuff like signature saving strategy, signature picker orientation etc. Use SignatureOptions.Builder to build it.

    • Added

      Adds additional SignaturePickerFragment#show() method that takes in the SignatureOptions object, through which you can configure the signing UI.

    • Added

      Adds SignaturePickerFragment#dismiss() method which you can use to hide the SignaturePickerFragment.

    • Removed

      Deprecates SignaturePickerFragment#showSignaturePicker(). The picker fragment should not be added manually with the tag anymore. You should just use SignaturePickerFragment#show() to show the picker and SignaturePickerFragment#restore() to restore it. The framework would take care of the actual fragment retrieval.

    • Removed

      Deprecates SignaturePickerFragment#setSignaturePickerOrientation(), use SignatureOptions for that.

  • Added

    Improves PdfActivity by allowing it to be started without loading a document. (#16601)

    • Added

      Adds PdfActivityIntentBuilder.emptyActivity() to start a PdfActivity with no document loaded.

    • API

      PdfActivity#getFragment() and PSPDFKitViews#getFragment() are now @Nullable since no PdfFragment is created when starting the activity without an document.

  • Changed

    Improves PdfFragment by allowing editing existing annotations without setting an author name first. (#17972)

  • Changed

    Improves document opening performance by making loading of PdfDrawables asynchronous. (#17648)

  • Removed

    Removes color name from the color and icon picker in the note editor. (#17701)

  • Fixed

    Fixes a potential NullPointerException in PdfScrollableThumbnailBar. (#17828)

  • Fixed

    Fixes a potential NullPointerException on pages with video content. (#17861)

  • Fixed

    Fixes a potential UnsatisfiedLinkError that could be thrown when accessing StampType class. (#17702)

  • Fixed

    Fixes a potential crash that could occur when undoing rotated annotations. (#17862)

  • Fixed

    Fixes an issue where PdfProcessorTask with large number of operations could cause a StackOverflowError. (#17847)

  • Fixed

    Fixes an issue where annotation defaults for AnnotationTool.NOTE were not applied to the new note editor UI. (#17669)

  • Fixed

    Fixes an issue where current state of the viewed document (page, zoom level etc.) has been lost after reloading the document when saving document editor changes. (#17368)

  • Fixed

    Fixes an issue where deselecting annotations by clicking on non-editable annotations was not working properly. (#18034)

  • Fixed

    Fixes an issue where dynamically added videos with autoplay enabled were not playing after opening the page. (#17875)

  • Fixed

    Fixes an issue where exif metadata was sometimes not correctly loaded when adding image stamps, causing them to be rotated the wrong way around. (#11750)

  • Fixed

    Fixes an issue where rotations could not be perfomed on stamp annotations after saving. (#17768)

  • Fixed

    Fixes an issue where the toolbar shown when longpressing the page could randomly flicker. (#18010)

Model

  • Added

    Adds support for text search compare options. (#13736, #13729)

    • Added

      Adds compareOptions() method to SearchOptions.Builder for configuring compare options.

    • Added

      Adds CompareOptions enum with all supported compare options.

      • Changed

        CASE_INSENSITIVE enables case insensitive search.

      • Changed

        DIACRITICS_INSENSITIVE enables diacritics insensitive search.

      • Changed

        SMART_SEARCH enables smart search that ignores white-spaces, hyphens and resolves typographic quotes or apostrophes.

      • Changed

        REGULAR_EXPRESSION enables regular expression search.

  • API

    Changes XfdfFormatter#writeXfdf[Async]() to throw an exception when annotations that are not attached to the document are passed in. (#17786)

  • API

    Deprecates constructors of TextSearch and SearchOptions.Builder accepting Context. Use overloaded constructors without this parameter. (#17646)

  • Added

    Adds OutputStreamAdapter which allows you to use any WritableDataProvider in place of an OutputStream. (#16532)

    • Added

      Adds DirectWritingStrategy for use with OutputStreamAdapter.

    • Added

      Adds TempFileWritingStrategy for use with OutputStreamAdapter.

  • Added

    Adds compatibility of PSPDFKit and Instant Javadoc .jar files with Android Studio 3.2.1 and newer. (#17850)

  • Added

    Adds support for page bookmarks in compound documents. (#11008)

  • Added

    Adds support for stamp and free text annotation rotation in Instant JSON. (#18019)

  • Changed

    Improves compatibility with forms on malformed PDFs. (#17707)

  • Changed

    Improves handling of malformed documents when parsing the extended graphics state. (#18057)

  • Changed

    Improves the PdfActivityConfiguration returned by ImageDocumentLoader#getDefaultImageDocumentActivityConfiguration() by disabling annotations tools that do not work for image documents. (#17775)

  • Changed

    Replaces support libraries with AndroidX. (#17830)

  • Changed

    The redaction feature now deletes annotations and form fields that intersect with a redact annotation. (#17390)

  • Changed

    Updates Kotlin to 1.3.0. (#17784)

  • Changed

    Updates RxJava to 2.2.4. (#17902)

  • Fixed

    Fixes PdfActivity#isImageDocument() returning false for image documents in certain cases when switching tabs. (#17524)

  • Fixed

    Fixes a crash parsing text on a very small number of documents. (#18032)

  • Fixed

    Fixes a potential exception that could occur when resolving system fonts on some devices. (#17647)

  • Fixed

    Fixes a problem where some text in a PDF document may be redacted incorrectly. (#17699)

  • Fixed

    Fixes an issue applying redactions on encrypted documents. (#17722)

  • Fixed

    Fixes an issue opening certain documents with invalid IRT fields. (#17797)

  • Fixed

    Fixes an issue that may happen after copying a page using the document editor. (#17825)

  • Fixed

    Fixes an issue when opening a rotated Image Document. (#17791)

  • Fixed

    Fixes an issue where XMP metadata was corrupted when saving password protected documents. This enables saving bookmarks into password protected documents. (#17238)

  • Fixed

    Fixes an issue where PdfLibrary would return incorrect results when searching within documents that contained Unicode surrogate pairs (like Emoji) in their text. (#3292)

  • Fixed

    Fixes an issue where changing the button caption property of a button from JavaScript code may not change the button appearance. (#17719)

  • Fixed

    Fixes an issue where it wasn’t possible to reset annotation rotation to 0 which as causing issues when undoing stamp rotations. (#17867)

  • Fixed

    Fixes an issue where squiggly annotations may not be created correctly on rotated pages. (#17950)

  • Fixed

    Fixes an issue where text could not be selected in certain documents. (#17759)

  • Fixed

    Fixes an issue where the Javascript VM init sequence prevented errors from bubbling up to the user. (#17745)

  • Fixed

    Fixes an issue where the overlay text of a redaction may not be in the correct place in some cases. (#17695)

  • Fixed

    Fixes an issue where the signature overlay may show incorrect text in non-Western languages. (#17918)

  • Fixed

    Fixes an issue where underline annotations may not work correctly on rotated pages. (#14252)

  • Fixed

    Fixes an occasional issue when rendering text. (#17747)

  • Fixed

    Fixes issue where digitally signing a document would save changes to original document even when auto save was disabled. (#17696)

  • Fixed

    Fixes issues when importing annotations on rotated pages using InstantJSON. (#17814)

  • Fixed

    Fixes some issues creating highlight annotations on documents with rotated pages. (#18006)

Instant

  • Added

    Adds support for image stamp annotations. (#17691)

Examples

  • Changed

    Bumps Android Gradle Plugin version of all example apps to 3.2.1. (#17818)

5.0.2 - 29 Nov 2018

UI

  • Fixed

    Improves redaction button placement. (#17697)

    • Fixed

      Fixes an issue where redaction button was overlapping forward history button.

    • Changed

      Improves redaction button alignment in portrait and landscape.

    • Changed

      Implements OnRedactionButtonVisibilityChangedListener for receiving calls when redaction collapses or expands.

  • Changed

    Improves document opening performance by making loading of PdfDrawables asynchronous. (#17648)

  • Fixed

    Fixes a potential UnsatisfiedLinkError that could be thrown when accessing StampType class. (#17702)

  • Fixed

    Fixes an issue where rotations could not be perfomed on stamp annotations after saving. (#17768)

  • Fixed

    Fixes a potential NullPointerException in PdfScrollableThumbnailBar. (#17828)

  • Fixed

    Fixes an issue where PdfProcessorTask with large number of operations could cause a StackOverflowError. (#17847)

  • Fixed

    Fixes a potential NullPointerException on pages with video content. (#17861)

  • Fixed

    Fixes a potential crash that could occur when undoing rotated annotations. (#17862)

  • Fixed

    Fixes an issue where dynamically added videos with autoplay enabled were not playing after opening the page. (#17875)

Model

  • Added

    Adds compatibility of PSPDFKit and Instant Javadoc .jar files with Android Studio 3.2.1 and newer. (#17850)

  • Fixed

    Fixes an issue where underline annotations may not work correctly on rotated pages. (#14252)

  • Fixed

    Fixes PdfActivity#isImageDocument() returning false for image documents in certain cases when switching tabs. (#17524)

  • Fixed

    Fixes a potential exception that could occur when resolving system fonts on some devices. (#17647)

  • Fixed

    Fixes an issue applying redactions on encrypted documents. (#17722)

  • Fixed

    Fixes a potential issue when rendering images. (#17737)

  • Fixed

    Fixes an occasional issue when rendering text. (#17747)

  • Fixed

    Fixes an issue where text could not be selected in certain documents. (#17759)

  • Fixed

    Fixes an issue where it wasn’t possible to reset annotation rotation to 0. (#17867)

    • Changed

      This caused an issue with undoing stamps rotation.

  • Fixed

    Fixes issue where digitally signing a document would save changes to original document even when auto save was disabled. (#17696)

5.0.1 - 14 Nov 2018

UI

  • Added

    Adds missing public theme attribute pspdf__redactionIcon for styling the icon of the redaction view. (#17585)

  • Added

    Adds support for video and gallery playback from the local device file system. (#17433)

  • Added

    Adds support for adding signatures inside the PdfFragment in hosting activities that are configured to handle orientation changes themself (e.g. using android:configChanges="orientation" inside the manifest). (#17152)

  • Changed

    Improves performance while entering text using a non-latin font into form fields. (#17593)

  • Fixed

    Fixes an exception that occured when using PdfThumbnailGrid from within Fragment. (#17396)

  • Fixed

    Fixes an issue inserting Emoji, Arabic or East Asian text in form fields. (#17574)

  • Fixed

    Fixes an issue where locked, hidden, or read-only ink annotations could be erased with the eraser tool. (#17367)

  • Fixed

    Fixes an issue where wrong recycling of bitmaps could in some situations lead to unhandled NullPonterExceptions. (#17556)

Model

  • Fixed

    Fixes a crash that could happen when trying to generate the appearance stream of a push button. (#17627)

  • Fixed

    Fixes an issue where memory was leaked in certain situations. (#17610)

  • Fixed

    Fixes crash that could happen when changing text in multiline form field. (#17649)

Examples

  • Added

    Adds DynamicMultimediaAnnotationsExample showing how to dynamically add videos and galleries to PDF documents. (#17433)

5.0.0 - 7 Nov 2018

See the announcement post.

This release features two new components - Redaction and Comparison. If you would like to add either to your license, ping our sales team to receive a quote.

Below is a summary of the API changes in this release. For a full list, with our suggested migration strategy for each API that has been changed or removed, please see the migration guide.

UI

  • API

    PSPDFKit now ships with public.txt that contains all Android resources that are considered part of its public API. If lint starts emitting warnings in your code, you should stop using (#3809) these resources immediately because they could be removed in future versions.

  • Added

    Extends PdfActivityIntentBuilder with an ability to open multiple tabs in a single PdfActivity. (#17151)

    • Added

      Adds fromDocumentDescriptor() factory method for creating intent builder with multiple documents that should be displayed as tabs.

    • Added

      Adds visibleDocument() that can be used to control which document should be visible when PdfActivity starts.

    • Changed

      contentSignatures() and passwords() now throw IllegalStateException when used with image documents or when using document descriptors via the factory method mentioned above.

  • Added

    Adds pspdf__popupToolbarStyle style attribute for styling the popup toolbars (text selection, pasting text, etc.), the supported attributes are: (#17440)

    • Changed

      pspdf__backgroundColor for setting the background color of the popup toolbar

    • Changed

      pspdf__itemTint for setting the tint (icon and/or text color) of the toolbar items when they’re enabled

    • Changed

      pspdf__itemTintDisabled for setting the tint (icon and/or text color) of the toolbar items when they’re disabled

  • Added

    Adds document import feature to Document Editor. (#14868)

    • Added

      Adds support for Intent#ACTION_OPEN_DOCUMENT and Intent#ACTION_CREATE_DOCUMENT to DefaultFilePicker#getDestinationUri(String).

  • Added

    Improves default themes and styles. (#16089)

    • Changed

      Dark theme now uses white text instead of colored accent for easier readability.

    • Changed

      Styles for PSPDFKit views now pick android:colorBackground and android:colorForeground from your theme as defaults for background and foreground colors.

    • Added

      Adds MainToolbar that uses pspdf__MainToolbarStyle from your theme for easy toolbar theming. Take a look at pspdf__MainToolbar styleable for all supported attributes.

    • Removed

      Removes theme attributes pspdf__mainToolbarTextColor, pspdf__mainToolbarTheme and pspdf__mainToolbarPopupTheme. Use pspdf__textColor, pspdf__toolbarTheme and pspdf__tolbarPopupTheme in the pspdf__mainToolbarStyle instead.

    • Added

      Adds pspdf__contextualToolbarStyle to theme for contextual toolbars styling. Take a look at pspdf__ContextualToolbar styleable for all supported attributes.

    • Removed

      Removes theme attributes pspdf__contextualToolbarBackground and pspdf__contextualToolbarSubmenuBackground. Use pspdf__backgroundColor and pspdf__submenuBackgroundColor in the pspdf__ContextualToolbarStyle instead.

    • Changed

      Icon colors of all contextual toolbars now default to pspdf__iconColor and pspdf__iconColorActivated that can be set in the pspdf__ContextualToolbarStyle.

  • Changed

    Improves document scrolling performance by delaying the high-res page rendering until the scrolling has stopped. (#17031)

  • Changed

    Improves signature handling by preventing overlapping signatures on signature form fields. (#16827)

  • Changed

    Improves the rendering support of push buttons. (#16507)

  • Changed

    Improves user experience while filling form fields that did not specify font size. (#17037)

  • Changed

    Cleans up naming scheme of styles that are part of default themes. (#14958)

    • Changed

      Renames all styles with the name scheme pspdf__styleName defined in styles.xml to PSPDFKit.StyleName.

    • Changed

      Renames all styles with the name scheme PSPDFKit.Theme.Dark.StyleName defined in dark_theme.xml to PSPDFKit.StyleName.Dark.

  • Changed

    Moves NavigationBackStack to com.pspdfkit.ui.navigation. (#16851)

  • Removed

    Removes EventBus and all events and commands defined in Events and Commands. (#9274)

    • Removed

      Removes Events.OnZoomScaleFactorChanged, use DocumentListener#onDocumentZoomed() instead.

    • Removed

      Removes Events.OnPageChanged, use DocumentListener#onPageChanged() instead.

    • Removed

      Removes Commands.ClearSelectedAnnotations, use PdfFragment#clearSelectedAnnotations() instead.

    • Removed

      Removes Commands.SelectAnnotation, use PdfFragment#setSelectedAnnotation() instead.

    • Removed

      Removes Commands.ToggleActionBarIconsVisibility.

    • Removed

      Removes Commands.ExecuteAction, use PdfFragment#executeAction() instead.

    • Removed

      Removes Commands.ShowPage use PdfFragment#setPageIndex() instead.

    • Removed

      Removes Commands.ToggleSystemBars, use PdfActivity#setUserInterfaceVisible() instead.

    • Removed

      Removes Commands.SearchSelectedText, requests for searching selected text are now handled by OnSearchSelectedTextListener that can be set via TextSelectionController#setOnSearchSelectedTextListener.

    • Removed

      Removes Commands.ShowAnnotationEditor, use showAnnotationEditor() defined in AnnotationCreationController and AnnotationEditingController instead.

  • Removed

    Removes PSPDFKit#updateInternalUIContext(). (#17039)

  • Fixed

    Fixes an issue where PdfFragment#isImageDocument() returned false for image documents loaded from non-parcelable sources. (#17524)

  • Fixed

    Fixes an issue where annotation overlay mode was enabled even when annotation editing was disabled by configuration or license. (#16941)

  • Fixed

    Fixes an issue where annotation views added to overlay during initialization state weren’t measured correctly. (#17099)

  • Fixed

    Fixes an issue where clicks outside of the page triggered both DocumentListener#onDocumentClick() and DocumentListener#onPageClick() instead of just triggering onDocumentClick(). (#16892)

  • Fixed

    Fixes an issue where creation of ink signature in portrait mode could result in IllegalStateException. (#16819)

  • Fixed

    Fixes an issue where edited form value could disappear for a while after leaving form editing mode. (#17024)

  • Fixed

    Fixes an issue where form elements were not extracted to annotation overlay when annotation editing was disabled. (#17518)

  • Fixed

    Fixes an issue where it wasn’t possible to enter text into non-scrollable, multiline form fields. (#17471)

  • Fixed

    Fixes an issue where markup submenu in annotation creation toolbar did not remember last selected annotation tool. (#17378)

  • Fixed

    Fixes an issue where note editor did not handle annotation flags correctly. (#16693)

  • Fixed

    Fixes an issue where pages with invalid annotations on them were not rendered. (#16990)

  • Fixed

    Fixes an issue where returning false from DocumentListener#onDocumentClick() did not consume the event. (#16890)

  • Fixed

    Fixes an issue where state restoration inside PdfThumbnailGrid would throw an exception when having targetSdkVersion set to 28. (#16983)

  • Fixed

    Fixes an issue which could keep annotation views from properly being measured when continuous scrolling was configured while annotation overlay mode was active. (#17295)

  • Fixed

    Fixes an unhandled NullPointerException that was thrown by the note editor when editing annotations without creation date. (#17391)

Model

  • API

    All method parameters annotated with @NonNull now throw an IllegalArgumentException when receiving a null as argument. (#14266)

  • API

    Converts BookmarkProvider from a class into an interface. To retrieve an implementation use PdfDocument#getBookmarkProvider(). (#16868)

    • Changed

      Renames BookmarkProvider#isDirty() to BookmarkProvider#hasUnsavedChanges().

    • Removed

      Removes BookmarkProvider#prepareToSave(), this is handled automatically by the framework.

  • API

    Converts DocumentPdfMetadata and DocumentXmpMetadata from a class to an interface. To retrieve an implementation use PdfDocument#getPdfMetadata() and PdfDocument#getXmpMetadata(). (#16936)

    • Removed

      Removes DocumentPdfMetadata#clearDirty() and DocumentXmpMetadata#clearDirty(), this is handled automatically by the framework.

    • Changed

      Renames DocumentPdfMetadata#isDirty() and DocumentXmpMetadata#isDirty() to hasUnsavedChanges().

  • API

    Converts FormProvider from a class to an interface. To retrieve an implementation use PdfDocument#getFormProvider(). (#16847)

    • Changed

      Renames FormProvider#isDirty() to FormProvider#hasUnsavedChanges().

  • API

    Converts PdfDocument from a class into an interface. Use PdfDocumentLoader#openDocument() and associated methods to retrieve an implementation. (#14261)

    • Changed

      Renames PdfDocument#getPDFVersion() to getPdfVersion().

    • Added

      Adds PdfDocumentLoader class which contains methods to obtain PdfDocuments.

    • Removed

      Removes PdfDocument#openDocument() and associated methods.

  • API

    Removes DocumentDataStore from the public API to improve the framework security. (#17248)

  • API

    Annotation#setSubject() no longer has an effect on the appearance of StampAnnotations, use the new setStampType() and setTitle() methods instead. (#15895)

    • Added

      Adds getStampType() and setStampType() to StampAnnotation.

    • Added

      Adds getTitle() and setTitle() to StampAnnotation.

    • Changed

      Changes com.pspdfkit.annotations.StampType from an enum to a class found at com.pspdfkit.annotations.stamps.StampType.

    • Changed

      Renames StampType.fromSubject() to fromName().

    • Changed

      Renames StampType#getSubject() to getName().

    • Added

      Adds StampType#isStandard().

    • Changed

      Renames StampAnnotation#getSubtext() and StampAnnotation#setSubtext() to getSubtitle() and setSubtitle().

    • Added

      Adds StampPickerItem.fromStampType().

    • Changed

      Renames StampPickerItem.fromSubject() to fromTitle().

    • Changed

      Renames StampPickerItem.Builder.withLocalizedSubject() to withTitle().

    • Changed

      Renames StampPickerItem.Builder.withSubtext() to withSubtitle().

    • Changed

      Renames StampPickerItem.Builder.withDateTimeSubtext() to withDateTimeSubtitle().

    • Changed

      Renames StampPickerItem#getSubject() to getStampType() and changes return type to StampType.

    • Changed

      Renames StampPickerItem#getLocalizedSubject() to getTitle().

    • Changed

      Renames StampPickerItem#getSubtext() to getSubtitle().

    • Changed

      Renames PredefinedStampType.fromSubject() to fromName().

    • Changed

      Renames PredefinedStampType#getSubject() to getName().

    • Added

      Adds PredefinedStampType#getStampType().

  • Removed

    Deprecates PdfProcessorTask#addPdfToPage(), use new method mergePage() instead. (#17150)

  • Added

    Adds Font#getDefaultTypeface() to retrieve the Typeface without causing additional disk I/O. (#16932)

    • Changed

      Ensures that Fonts can only be created from background threads, throwing an IllegalStateException if created from the main thread.

  • API

    Removes all previously deprecated symbols. (#16895)

    • Removed

      Removes com.pspdfkit.annotations.xfdf.XfdfFormatter use com.pspdfkit.document.formatters.XfdfFormatter instead.

    • Removed

      Removes InstantPdfFragment.newInstance(String, String, String, PdfConfiguration) use newInstance(String, String, PdfConfiguration) instead.

    • Removed

      Removes InstantPdfActivityIntentBuilder.fromInstantDocument(Context, String, String, String) use fromInstantDocument(Context, String, String) instead.

    • Removed

      Removes InstantPdfActivity.showInstantDocument(Context, String, String, String, PdfActivityConfiguration) use showInstantDocument(Context, String, String, PdfActivityConfiguration) instead.

    • Removed

      Removes InstantDocumentDescriptor#getAuthenticationToken() use getJwt() instead.

    • Removed

      Removes InstantClient#openDocument(String, String) use openDocument(String) instead.

    • Removed

      Removes InstantClient#openDocumentAsync(String, String) use openDocumentAsync(String) instead.

    • Removed

      Removes InstantClient#getInstantDocumentDescriptor(String) use getInstantDocumentDescriptorForJwt(String) instead.

    • Removed

      Removes InstantPdfDocument#updateAuthenticationToken(String) use reauthenticateWithJwt(String) instead.

    • Removed

      Removes InstantPdfDocument#updateAuthenticationTokenAsync(String) use reauthenticateWithJwtAsync(String) instead.

    • Removed

      Removes InstantPdfDocument#setAutomaticSyncEnabled(boolean) use setListenToServerChanges(boolean) and setDelayForSyncingLocalChanges(long) instead.

    • Removed

      Removes AnnotationSyncCoordinator#setAutomaticSyncEnabled(boolean) use setListenToServerChanges(boolean) and setDelayForSyncingLocalChanges(long) instead.

    • Removed

      Removes AnnotationManager.OnAnnotationUpdatedListener use AnnotationProvider.OnAnnotationUpdatedListener instead.

    • Removed

      Removes SignatureSignerDialog.show(FragmentManager, PdfDocument, SignatureFormField, Signer, DocumentSigningListener) use show(FragmentManager, Options, DocumentSigningListener) instead.

    • Removed

      Removes SignatureSignerDialog.show(FragmentManager, PdfDocument, SignatureFormField, Signer, BiometricSignatureData, DocumentSigningListener) use show(FragmentManager, Options, DocumentSigningListener) instead.

    • Removed

      Removes ComboBoxFormConfiguration.Builder#setSelectedIndexes(List) use setSelectedIndex(Integer) instead.

    • Removed

      Removes DocumentSharingProcessor use DocumentSharingProviderProcessor#prepareDocumentForSharing(Context, PdfDocument, PdfProcessorTask, String) instead.

    • Removed

      Removes DocumentSharingProvider#deleteTemporaryFile(Context, Uri) use deleteFile(Context, Uri) instead.

    • Removed

      Removes PdfProcessorTask(PdfDocument) use PdfProcessorTask.fromDocument(PdfDocument) instead.

    • Removed

      Removes PdfProcessorTask(NewPage) use PdfProcessorTask.newPage(NewPage) instead.

    • Removed

      Removes Signer#signFormFieldAsync(SignatureFormField, KeyStore.PrivateKeyEntry, OutputStream) use signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream) instead.

    • Removed

      Removes Signer#signFormFieldAsync(SignatureFormField, KeyStore.PrivateKeyEntry, BiometricSignatureData, OutputStream) use signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream) instead.

    • Removed

      Removes Signer#signFormField(SignatureFormField, KeyStore.PrivateKeyEntry, OutputStream) use signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback) instead.

    • Removed

      Removes Signer#signFormField(SignatureFormField, KeyStore.PrivateKeyEntry, BiometricSignatureData, OutputStream) use signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback) instead.

    • Removed

      Removes MemorySigner#signFormFieldAsync(SignatureFormField, OutputStream) use signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream) instead.

    • Removed

      Removes MemorySigner#signFormField(SignatureFormField, OutputStream) use signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback) instead.

    • Removed

      Removes MemorySigner#getSigningKeyPair().

    • Removed

      Removes PdfFragment.PARAM_DOCUMENT_PATHS, PdfFragment.PARAM_IMAGE_DOCUMENT_PATH, PdfFragment.PARAM_PASSWORDS, and PdfFragment.PARAM_CONTENT_SIGNATURES.

    • Removed

      Removes PdfFragment#setCustomPdfSource(DataProvider, String) use setCustomPdfSource(DocumentSource) instead.

    • Removed

      Removes PdfFragment#setCustomPdfSources(List, List) use setCustomPdfSources(List).

    • Removed

      Removes PdfFragment#[register/unregister]DrawableProvider() use PdfFragment#[add/remove]DrawableProvider() instead.

    • Removed

      Removes PdfThumbnailGrid#[add/remove]OnDocumentEditingModeChangeListener() use DocumentEditingManager#[add/remove]OnDocumentEditingModeChangeListener() instead.

    • Removed

      Removes PdfThumbnailGrid#[add/remove]OnDocumentEditingPageSelectionChangeListener() use DocumentEditingManager#[add/remove]OnDocumentEditingPageSelectionChangeListener() instead.

    • Removed

      Removes AnnotationProvider#prepareForSave() this call is no longer necessary.

    • Removed

      Removes AnnotationProvider#clearDirty() this call is no longer necessary.

    • Removed

      Removes AnnotationProvider#isDirty() use hasUnsavedChanges() instead.

    • Removed

      Removes PdfConfiguration#annotationReplyFeatureEnabled(boolean) use annotationReplyFeatures(AnnotationReplyFeatures) instead.

    • Removed

      Removes PdfConfiguration#isAnnotationReplyFeatureEnabled() use getAnnotationReplyFeatures() instead.

    • Removed

      Removes PdfActivityConfiguration#annotationReplyFeatureEnabled(boolean) use annotationReplyFeatures(AnnotationReplyFeatures) instead.

    • Removed

      Removes RichMediaExecuteAction#getScreenAnnotationPageIndex().

    • Removed

      Removes RichMediaExecuteAction#getScreenAnnotationObjectNumber() use getRichMediaAnnotationObjectNumber().

    • Removed

      Removes RenditionAction#getScreenAnnotationPageIndex().

  • Added

    Adds new Redaction component. (#16922)

    • Added

      Adds RedactionAnnotation to mark parts of the document that should be redacted.

    • Added

      Adds new tool to mark text in the document for redaction.

    • Added

      Adds PdfProcessorTask#applyRedactions() to apply all created RedactionAnnotations.

    • Added

      Adds DocumentSaveOptions#setApplyRedactions() to allow applying redactions as part of the regular document saving.

  • Added

    Adds PDF Comparison component for visual comparison of pages of different documents. (#16598)

    • Added

      Adds PdfProcessorTask#changeStrokeColorOnPage() for adjusting color of all strokes on a page.

    • Added

      Adds PdfProcessorTask#mergePage() that supports BlendMode for merging 2 colored pages. This method can be used to produce comparison page by blending 2 pages that have strokes colored with different colors.

    • Added

      Adds LicenseFeatures#COMPARISON that can be retrieved via PSPDFKit#getLicenseFeatures().

    • Added

      Adds DocumentComparisonExample that shows how to compare documents using this new API.

  • Added

    Adds better support for annotations with custom appearance streams. (#15658)

  • Added

    Adds new initializer option to add additional font directories. (#13991)

  • Added

    Adds support for util.scand, a JavaScript API that can be used from PDF documents to parse dates from strings. (#17480)

  • Changed

    Improves the performance of documents with a lot of JavaScript calculations. (#11925, #16490)

  • Changed

    Allows creation of PagePdf from already loaded PdfDocument instances. (#17150)

  • Changed

    Changes the format of the InstantJSON bookmark format. The id is now saved in pdfBookmarkId and skippedBookmarkIds has been renamed to skippedPdfBookmarkIds. (#17400)

  • Fixed

    Fixed an issue where the wrong encoding was used for the Symbol font. (#17245)

  • Changed

    Upgrades Java source and target versions to 1.8. (#17007, #17149)

  • Fixed

    Fixes occasional rendering issues on OnePlus devices. (#16541)

  • Fixed

    Fixes ContentResolverDataProvider not reporting the correct title for documents. (#17417)

  • Fixed

    Fixes a crash that may happen when you add form fields with certain kinds of JavaScript scripts. (#17472)

  • Fixed

    Fixes a possible NullPointerException when passing null to PredefinedStampType#fromSubject(). Parameter is now marked as @Nullable and properly checked for null. (#17046)

  • Fixed

    Fixes an issue in Document Editor where importing documents without storage permissions was failing silently. (#17032)

  • Fixed

    Fixes an issue looking up destinations in a names tree. This could lead to unresolvable link/outline destination. (#17206)

  • Fixed

    Fixes an issue that caused problems saving new annotations in particular documents. (#16717)

  • Fixed

    Fixes an issue where Document JSON skipped object numbers for created annotations. This could lead to problems where unrelated annotations could get ignored after importing the JSON file. (#17425)

  • Fixed

    Fixes an issue where JavaScript dependent calculations may not be executed after a syntax error. (#17025)

  • Fixed

    Fixes an issue where JavaScript form field validation erroneously used the previous value. (#16462)

  • Fixed

    Fixes an issue where calling StampAnnotation#getBitmap() on newly created image stamp annotations would return an empty bitmap. (#17455)

  • Fixed

    Fixes an issue where documents with a large number of form fields failed to display editing options. (#16911)

  • Fixed

    Fixes an issue where on some devices running Android API 27, saving documents using Downloads content provider was throwing an exception. (#17087)

  • Fixed

    Fixes an issue where some PDF pages could not be inserted as attachments for images. (#16729)

  • Fixed

    Fixes an issue where the wrong message is return when a certificate is expired. (#16727)

  • Fixed

    Fixes an issue with JPEG2000 images. (#14850)

  • Fixed

    Fixes an issue with document checkpointing after saving fails. (#16600)

  • Fixed

    Fixes rendering of image stamps when applied to rotated pages. (#17380)

  • Fixed

    Fixes stamp annotation rotation, free text annotation rotation, and free text annotation text insets being transformed on pages that have a rotation set in the PDF. (#15890)

Instant

  • API

    Converts InstantPdfDocumentfrom a class into an interface. Use InstantClient#openDocument() and associated methods to retrieve an implementation. (#14261)

    • Changed

      Renames InstantPdfDocument#getPDFVersion() to getPdfVersion().

  • Added

    Adds support for shape annotations and ink signatures. (#17270)

  • Fixed

    Fixes a bug that deleted all local layers of a document instead of just the layer backing a document descriptor. (#17264)

  • Fixed

    Fixes a deadlock that could occur when deleting a layer or all loaded data. (#17257)

  • Fixed

    Fixes an issue that could cause open file descriptors to be leaked when deleting the local data for a layer, document, or the entire Instant client. (#17303)

Examples

  • Added

    Adds JavaScript calculator example to Catalog app. This example showcases a calculator application implemented completely inside a PDF using JavaScript. (#17512)

  • Added

    Adds QR code scanning option to connect to Instant Demo. (#16624)

  • Added

    Adds a new custom-fonts example application that shows how to bundle custom fonts for rendering within an application. (#17057)

  • Added

    Adds the new PSPDFKit 5 for Android Quickstart guide to the Catalog app. (#17405)

  • Fixed

    Fixes an issue related to multidex configuration that could cause Catalog app startup issues. (#17069)

4.8.1 - 27 Sep 2018

UI

  • Changed

    Enhances calculation of free text callouts when changing font face. (#16733)

  • Changed

    The signature picker dialog will now restore the activity’s original orientation after being dismissed. (#15556)

  • Changed

    Reverse portrait orientation is now properly restored when returning from full-screen video view. (#16756)

  • Fixed

    Fixes DocumentListener#onPageClick() not reporting the correct annotation when multiple annotations overlap. (#16770)

  • Fixed

    Fixes an issue where Document Editor was erroneously instantiated multiple times leading to wrong page operation results. (#16784)

  • Fixed

    Fixes an issue where pspdf__backgroundColor theme attribute was lost after changing configuration with retained PdfFragment. (#16914)

  • Fixed

    Fixes an issue where annotation or form selection is restored while the fragment is being destroyed, causing a crash. (#16480)

  • Fixed

    Fixes an issue where clicking on paste button in text selection popup toolbar could result in IllegalStateException. (#16764)

  • Fixed

    Fixes an issue where documents that were saved to a ContentResolverDataProvider could return stale data after being reloaded. (#16753)

  • Fixed

    Fixes an issue where forms in rotated documents are rendered rotated the wrong way. (#15549)

  • Fixed

    Fixes an issue where it was possible to paste annotations from another document even when cross document copy/pasting was disabled in configuration. (#16748)

  • Fixed

    Fixes an issue where it wasn’t possible to input decimal separators to form fields with number format. (#16825)

  • Fixed

    Fixes an issue where items in annotation creation toolbar with custom grouping rule (CustomAnnotationCreationToolbarGroupingRule) in our catalog app were not selectable. (#16793)

  • Fixed

    Fixes an issue where signing documents with existing digital signatures made previous signatures invalid. (#16852)

  • Fixed

    Fixes an issue where stamp background disappeared after returning back from annotation note editor. (#15989)

  • Fixed

    Fixes an issue where the undo/redo buttons of the document editor were not enabled in some cases. (#16757)

  • Fixed

    Fixes an issue with resizing free text callouts in corners. (#16734)

Model

  • Fixed

    Fixes a possible ConcurrentModificationException thrown while initializing PSPDFKit. (#16831)

  • Fixed

    Fixes an issue when extracting link annotations. (#16854)

  • Fixed

    Fixes an issue where JavaScript scripts that hold a strong local reference to event.target would not work correctly. (#16507)

  • Fixed

    Fixes an issue where document JSON wasn’t imported correctly on rotated PDF pages. (#16534)

  • Fixed

    Fixes an issue where image documents could not be opened from URIs without read permission for the filesystem. (#16686)

  • Fixed

    Fixes an issue where not all form fields were listable immediately after opening a document. (#16479)

  • Fixed

    Fixes an issue where programmatic annotation content changes would not be reflected in rendered free text annotation. (#16487)

  • Fixed

    Fixes an issue where some document outlines were not be persisted correctly after using the document processor. (#16688)

  • Fixed

    Fixes an issue where some documents with JavaScript would become unresponsive for a great amount of time. (#16886)

4.8.0 - 5 Sep 2018

See the announcement post.

Important: PSPDFKit now ships with x86_64 native libraries. This considerably increases its size. Please follow the framework size guide article for more information on how to reduce size of your apps by filtering native libraries for certain ABIs. (#6086)

UI

  • Added

    Adds support for document tabs. (#9399)

    • Added

      Adds PdfDocumentCoordinator that manages multiple documents in PdfActivity and coordinates switching between these documents. It can be retrieved via PdfActivity#getDocumentCoordinator().

    • Added

      Adds DocumentDescriptor for describing loaded documents in PdfDocumentCoordinator together with their state.

    • Added

      Adds PdfTabBar that displays tabs for documents managed by PdfDocumentCoordinator.

    • Added

      Adds setTabBarHidingMode() to PdfActivityConfiguration.Builder for controlling when to display tabs bar or to disable it altogether.

    • Added

      Adds DocumentTabsExample that showcases how to use PdfDocumentCoordinator in PdfActivity to display tabs.

    • Changed

      Adapts DocumentSwitcherExample to use the PdfDocumentCoordinator API for faster document switching compared to previous solution.

    • Removed

      Deprecates EventBus parameter in PSPDFKitViews#setDocument().

    • Removed

      Deprecates setCustomPdfSource() and setCustomPdfSources() accepting DataProvider in PdfFragment, use newly provided methods with the same name that accept DocumentSource instead.

  • Added

    Adds FreeTextAnnotation#setFontName() and getFontName() to get and set the font used for the annotation. (#16217) Adds new inspector control to select the font of free text annotations.

  • Added

    Adds setPageLoadingDrawable() to PdfFragment. This method sets loading drawable that will be displayed until document is loaded and all visible pages are rendered. (#16330)

  • Added

    Adds navigation between pages using volume buttons. Option can be enabled with PdfActivityConfiguration.Builder#volumeButtonsNavigationEnabled(true). (#15406)

  • Added

    Adds support for drawing behind notch on Android P. (#16565)

  • Added

    Adds support for rendering widget annotations in overlay mode. (#14463)

  • Fixed

    Fixed an issue where parts of the document view hierarchy were illegally retained when replacing the displayed document inside of PdfFragment. (#16614)

  • Fixed

    Fixes an issue where clicking on undo/redo button in annotation editing toolbar did not trigger undo. (#16694)

  • Fixed

    Fixes an issue where document title overlay was not updated after changing title in the document info view. (#16653)

  • Fixed

    Fixes an issue where free text annotations could not be scaled correctly when annotation rotation was disabled. (#16567)

  • Fixed

    Fixes an issue where ink signatures overlapping form fields could not be selected. (#16273)

  • Fixed

    Fixes an issue where stamp annotations sometimes didn’t get rendered in overlay mode after scrolling to page. (#16147)

  • Fixed

    Fixes markup annotations not being rendered behind all other annotations while overlay mode is active. (#15845)

  • Fixed

    Fixes an issue where disabling the document info view wasn’t retained when creating new PdfActivityConfiguration from already existing configuration. (#16651)

Model

  • Added

    Adds PSPDFKit.getLicenseFeatures() to allow you to check the currently enabled license features. (#15725)

  • Added

    Adds SignatureFormField#removeSignature() to remove the attached digital signature. (#16294)

  • Added

    Adds isImageDocument for PdfFragment and PdfActivity to indicate whether the displayed document is an image or not. (#16661)

  • Added

    Adds missing nullability annotations to FormElementConfiguration and its subclasses. (#16205)

  • Added

    Adds new Document Editor API. (#15877)

    • Added

      Adds PdfDocumentEditor interface the public editor API.

      • Added

        Adds #saveDocument(Context, DocumentSaveOptions) for saving a document in place.

      • Added

        Adds #saveDocument(Context, OutputStream, DocumentSaveOptions) for saving a document to a given output stream.

      • Added

        Adds #exportPages(Context, OutputStream, Set<Integer>, DocumentSaveOptions) for exporting a set of pages to a given output stream.

      • Added

        Adds #addPage(int, NewPage) for adding a new page to a given index.

      • Added

        Adds #removePages(Set<Integer>) for removing a set of pages from the document.

      • Added

        Adds #rotatePages(Set<Integer>, int) for rotating a set of pages of a given angle.

      • Added

        Adds #duplicatePages(Set<Integer>) for duplicating a given set of pages.

      • Added

        Adds #movePages(Set<Integer>, int) for moving a set of pages to a given destination index.

      • Added

        Adds #importDocument(Context, DocumentSource, int) for importing a document source to a given index.

      • Added

        Adds #canUndo for checking if undo operation is possible.

      • Added

        Adds #canRedo() for checking if redo operation is possible.

      • Added

        Adds #getRotatedPageSize(int) to return the page size of a given page already rotated.

      • Added

        Adds #renderPageToBitmap(int, Bitmap, PageRenderConfiguration) for rendering a given page into a Bitmapbuffer.

      • Added

        Adds #setPageLabel(int, String) for setting a new page label for a specific page.

      • Added

        Adds #beginTransaction() to begin a new batch of document editor operations.

      • Added

        Adds #isTransactionActive() to check if there is currently an active document editor transaction.

      • Added

        Adds #discardTransaction() to discard the current batch of document editor operations.

      • Added

        Adds #commitTransaction() to end a bach of document editor operations and commit them immediately.

    • Added

      Adds PdfDocumentEditorFactory for creating document editor instances.

    • Added

      Adds EditingChange to represent a change that happened because of an operation performed by the document editor that can be undone/redone.

    • Added

      Adds EditingOperation to specify the kind of change done by the editing operation.

    • Added

      Adds PdfThumbnailGrid#getDocumentEditor to return thumbnail grid document editor.

    • Added

      Adds PdfThumbnailGrid#isDocumentEditorEnabled() to check if document editor is enabled.

    • Added

      Adds PdfDocumentEditorFactory.createForDocument(PdfDocument) to create a new instance of Document Editor.

    • Added

      Adds FilePicker to retrieve a destination Uri when required for saving and exporting operations.

    • Added

      Adds PdfThumbnailGrid#getFilePicker() to obtain current file picker, if not specified default Android SAF picker is provided.

    • Added

      Adds PdfThumbnailGrid#setFilePicker(FilePicker) to set a file picker to use during a saving process.

    • Removed

      Removes DefaultDocumentEditorListener and PdfDocumentEditorListener use a custom file picker instead.

    • Removed

      Removes DocumentEditor interface. All Document Editor API placed in PdfDocumentEditor interface.

    • Removed

      Removes PSPDFKitView#setPdfDocumentEditorListener(PdfDocumentEditorListener)

    • Removed

      Removes PdfThumbanilGrid#setPdfDocumentEditorListener

    • Removed

      Removes PdfThumbnailGrid#onFileChooserResult this is now managed by default file picker.

    • Removed

      Deprecates PdfThumbnailGrid#addOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener) use DocumentEditingManager#addOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener) instead.

    • Removed

      Deprecates PdfThumbnailGrid#removeOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener) use DocumentEditingManager#removeOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener) instead.

    • Removed

      Deprecates PdfThumbnailGrid#addOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener) use DocumentEditingManager#addOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener) instead.

    • Removed

      Deprecates PdfThumbnailGrid#removeOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener) use DocumentEditingManager#removeOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener) instead.

  • Added

    Adds popup toolbar for text selection and pasting. (#8520)

    • Added

      Adds PopupToolbar class which represents a generic popup toolbar similar to the Android framework text selection bar.

    • Added

      Adds TextSelectionPopupToolbar which is a PopupToolbar implementation for the text selection process. Handled inside the document view.

    • Added

      Adds PdfActivityConfiguration.Builder#textSelectionPopupToolbarEnabled(true|false) for controlling whether the text selection popup toolbar is enabled or not. If enabled, PdfActivity won’t show the old text selection toolbar. If disabled, PdfActivity will show a contextual text selection toolbar whereas the fragment won’t display a popup toolbar.

    • Added

      Adds OnPreparePopupToolbarListener that you can register on the fragment via PdfFragment#setOnPreparePopupToolbarListener() to get a callback before each of the toolbars is displayed. Use this to change menu items before the toolbar becomes visible.

    • Added

      Adds PopupToolbarMenuItem which represents a single popup toolbar menu item. The menu item specifies an ID, title and whether it’s enabled or not.

  • Added

    Adds support for setting supported form flags on created form fields. (#15543)

    • Added

      Adds setReadOnly() and setRequired() to FormElementConfiguration builders.

    • Added

      Adds setSpellCheckEnabled() and setMultiSelectionEnabled() to ComboBoxFormConfiguration builder.

    • Added

      Adds setMultiLine(), setPassword(), setSpellCheckEnabled(), setScrollEnabled() and setMaxLength() to TextFormConfiguration builder.

  • Changed

    Improves document password support and compatibility with third-party readers. (#15951)

  • Changed

    Ensures that the processor always encrypt documents using the 128-bit AES algorithm if the user didn’t change the defaults. (#15946)

  • Added

    Moves the document info view from its separate dialog to the outline view (PdfOutlineView) and adds new navigation view used to navigate between outline view components. (#15986)

    • Added

      Adds PdfOutlineView#[add/remove]OnDocumentInfoViewModeChangeListener() for adding/removing the listener for document info mode changes.

    • Added

      Adds PdfOutlineView#[add/remove]OnDocumentInfoViewSaveListener() for adding/removing the listener for document info value changes being saved to the document.

    • Added

      Adds theming via XML for the document info view, using the outline view styleable (pspdf__OutlineView):

    • Added

      Adds attributes for styling new navigation view:

    • Added

      Adds pspdf__navigationTabOutlineIcon for setting the tab icon for outline view.

    • Added

      Adds pspdf__navigationTabBookmarksIcon for setting the tab icon for bookmarks view.

    • Added

      Adds pspdf__navigationTabAnnotationsIcon for setting the tab icon for annotation list view.

    • Added

      Adds pspdf__navigationTabDocumentInfoIcon for setting the tab icon for document info view.

    • Added

      Adds pspdf__navigationTabIconsColor for setting the color for tab icons in the navigation bar.

    • Added

      Adds pspdf__navigationTabIconsColorSelected for setting the color for the selected tab icon in the navigation bar.

    • Added

      Adds pspdf__navigationTabBackgroundColor for setting the background color of the whole navigation view.

    • Added

      Adds attributes for styling document info view:

    • Added

      Adds pspdf__documentInfoGroupTitleTextColor for setting the text color for the document info group title.

    • Added

      Adds pspdf__documentInfoItemTitleTextColor for setting the text color for the document info item title.

    • Added

      Adds pspdf__documentInfoItemValueTextColor for setting the text color for the document info item value.

    • Added

      Adds pspdf__documentInfoItemValueHintTextColor for setting the text color for the document info value hint.

    • Added

      Adds pspdf__documentInfoGroupIconColor for setting the icon color for the document info group icons.

    • Added

      Adds pspdf__documentInfoContentIcon for setting the icon for the ‘Content’ group in document info view.

    • Added

      Adds pspdf__documentInfoChangesIcon for setting the icon for the ‘Changes’ group in document info view.

    • Added

      Adds pspdf__documentInfoSizeIcon for setting the icon for the ‘Size’ group in document info view.

    • Added

      Adds pspdf__documentInfoFabBackgroundColor for setting the background color for the document info FAB.

    • Added

      Adds pspdf__documentInfoFabIconColor for setting the icon color for the document info FAB.

    • Added

      Adds pspdf__documentInfoFabEditIcon for setting the ‘Edit’ icon for the document info FAB.

    • Added

      Adds pspdf__documentInfoFabDoneIcon for setting the ‘Done’ icon for the document info FAB.

    • API

      Removes PdfOutlineView styling setters and getters. The UI should be changed exclusively through XML themes:

    • API

      Removes [set/get]BackgroundColor().

    • API

      Removes [set/get]ListSelector().

    • API

      Removes [set/get]DefaultTextColor().

    • API

      Removes [set/get]BookmarksBarIconColor().

    • API

      Removes [set/get]BookmarksBarBackgroundColor().

    • API

      Removes [set/get]BookmarksAddIcon().

    • API

      Removes [set/get]BookmarksEditIcon().

    • API

      Removes [set/get]BookmarksDoneIcon().

    • API

      Removes [set/get]GroupIndicatorIconColor().

    • API

      Removes [set/get]BookmarksDeleteIcon().

    • API

      Removes [set/get]BookmarksDeleteIconColor().

    • API

      Removes [set/get]BookmarksDeleteBackgroundColor().

  • Changed

    Updates clipRect() usage to be compliant with the new restrictions on Android P. (#16592)

  • Fixed

    Fixes a problem where calling InkAnnotation#isSignature() on annotations created from signatures returned false. (#15907)

  • Fixed

    Fixes a problem where creating a new page with fractional size caused problems when drawing on it using the PageCanvas API. (#16030)

  • Fixed

    Fixes a problem where some XFA forms with JavaScript may show an alert message when the document is open. (#16000)

  • Fixed

    Fixes a race condition when opening compound documents made up of a large amount of documents. (#16274)

  • Fixed

    Fixes an issue exporting document pages with a rare outline configuration. (#15923)

  • Fixed

    Fixes an issue where DocumentInfoView was trying to calculate document size using wrong document source. (#16443)

  • Fixed

    Fixes an issue where calling save() methods on a PdfDocument backed by an image document would not trigger saving of metadata to the original image file. (#16077)

  • Fixed

    Fixes an issue where the blend mode of ink annotations may not be persisted correctly. (#16376)

  • Fixed

    Fixes an issue where the digital signature validation UI may incorrectly inform about an expired certificate. (#16605)

  • Fixed

    Fixes a performance problem with documents that contain large clipping paths. (#16481)

  • Fixed

    Fixes a problem rendering documents with particular fonts. (#16361)

  • Fixed

    Fixes a problem with XFDF on rotated pages. (#16560)

  • Fixed

    Fixes an issue when entering text with non-latin characters. (#16626)

  • Fixed

    Fixes an issue when loading checkpoint files. (#16277)

Instant

  • Added

    Adds support for bookmarks to Instant Document JSON. (#16165)

Examples

  • Changed

    Hitting enter or submitting the search inside the Catalog app examples will now focus the first example inside the results. (#16604)

4.7.2 - 9 Aug 2018

UI

  • Fixed

    Fixes an issue where FreeTextAnnotations stopped being editable when overlay mode is deactivated. (#16375)

  • Fixed

    Fixes an issue where FreeTextAnnotations were rendered with a white background despite no background being set. (#16392)

  • Fixed

    Fixes an issue where rotation handle visible outside of page bounds did not respond to touches. (#15726)

  • Fixed

    Fixes an issue where visible page rectangle was not restored correctly after changing configuration in PdfActivity. (#16426)

  • Fixed

    Fixes an issue where annotations were not added in the correct order when adding them in quick succession. (#16208)

Model

  • Fixed

    Fixes an issue where OnFormElementClickedListener#onFormElementClicked wasn’t called when clicking on signature form fields. (#16289)

  • Fixed

    Fixes an issue where deleting note annotations from the editor could crash when the license did not have annotation replies enabled. (#15891)

  • Fixed

    Fixes an issue where not all form fields were immediately listable after opening certain documents. (#16279)

  • Fixed

    Fixes an issue where created form elements could not be retrieved from FormProvider. (#15930)

  • Fixed

    Fixes an issue where the framework would occasionally crash when application was paused while searching. (#16248)

  • Fixed

    Fixes an issue where border style and blend mode set on annotation could not be reset to their default values. (#16440)

Example

  • Added

    Adds ManualSigningExample to catalog app showing how to manually sign documents without signature picker UI. (#16295)

4.7.1 - 25 Jul 2018

UI

  • Added

    Adds handling for NamedActionType#INFO to PdfActivity, showing document info dialog when executed. (#15983)

  • Fixed

    Fixes an issue where changes made to image file loaded as ImageDocument in PdfActivity or PdfFragment were not propagated to other image apps in the system. (#15943)

    • Added

      Adds ImageDocumentUtils#refreshMediaStore() to request Android’s media scanner to rescan an image file in the media database. Use this method after saving file-backed ImageDocument to make sure that other image apps will pick up the changes.

    • Added

      Adds ImageDocumentUtils#isImageUri() that can be used to check whether the content returned by resolving an Uri has an image MIME type.

  • Fixed

    Fixes an issue where configuration options set on PdfConfiguration were ignored when wrapping activity configuration via ImageDocumentLoader#getDefaultImageDocumentActivityConfiguration(). (#15963)

    • Added

      Adds getDefaultImageDocumentConfiguration(PdfConfiguration) to ImageDocumentLoader to create configuration for image documents from existing PdfConfiguration.

    • Changed

      Return values of getDefaultImageDocumentConfiguration() and getDefaultImageDocumentActivityConfiguration() in ImageDocumentLoader are now marked as @NonNull.

  • Fixed

    Fixes an issue where form validation error message displayed in form editing bar had incorrect height in immersive mode. (#16103)

  • Fixed

    Fixes an issue where it wasn’t possible to re-select between form elements and annotations. (#15962)

  • Fixed

    Fixes an issue where shape annotations with BlendMode.MULTIPLY would not render properly if PdfConfiguration#invertColors() was used. Now instead, shape annotations will use BlendMode.SCREEN for inverted colors. (#15990)

Model

  • Added

    Adds support for RichMediaExecuteActionType. (#15648)

  • Added

    Adds support for calling PdfActivity#setConfiguration before onCreate is called to set configuration without causing an activity restart. (#15926)

  • Added

    Adds support for creating NamedAction, GoToEmbeddedFileAction, HideAction, ResetFormAction and SubmitFormAction. (#15235)

    • Added

      Adds getFieldNames() to ResetFormAction and SubmitFormAction that returns list of form field names that should be targeted by the action.

    • Added

      Adds shouldExcludeFormFields() to ResetFormAction and SubmitFormAction that indicates whether form fields targeted by the action should be included or excluded from the action execution.

  • Fixed

    Fixes an issue where annotations that were parsed from XFDF were not saved to the document after adding them. (#15953)

  • Fixed

    Fixes an issue where calling JavaScript function AFSpecial_Keystroke with certain arguments could cause an infinite loop on some devices. (#16126)

  • Fixed

    Fixes an issue where setting and retrieval of lines on an InkAnnotation would fail for detached annotations when not using ArrayList. (#16015)

Example

  • Added

    Adds XfdfExample to Catalog app that shows how to import/export annotations to/from XFDF file format. (#15954)

  • Changed

    Extends ExternalDocumentExample in the Catalog app to allow opening both PDF and image files. (#16053)

4.7.0 - 9 Jul 2018

See the announcement post.

UI

  • Added

    Adds document info view for displaying information about the document that’s being viewed: (#15850)

    • Added

      Adds document info view enabling and disabling, see enableDocumentInfoView() and disableDocumentInfoView() in PdfActivityConfiguration.Builder

    • Added

      Adds document info icon to the toolbar and PdfActivity#showDocumentInfoDialog() for programmatic invocation.

    • Added

      Adds OnDocumentInfoViewModeChangeListener listener for entering and exiting editing mode in document info view.

    • Added

      Adds PdfActivity#setOnDocumentInfoViewModeChangeListener() that lets you set the aforementioned listener.

    • Added

      Adds PdfDocumentInfoView class that is a pure document info view without the toolbar that you can embed in your custom components.

    • Added

      Adds PdfDocumentInfoDialog which contains PdfDocumentInfoView connected with a toolbar for switching editing modes.

  • Added

    Adds PdfThumbnailGrid customization options for editing FAB icon color. (#15809)

    • Fixed

      Fixes ThumbnailGridItemView not using pspdf__selectionCheckBackgroundColor

  • Added

    Adds bookmark drag handle icon and color as customizable theme parameters for pspdf__OutlineView. (#15869)

  • Added

    Adds new annotation tool for creating FreeTextAnnotations setup as call outs. (#15840)

Model

  • Added

    Adds support for document JavaScript execution. (#15245)

    • Added

      Adds JavaScriptProvider that handles all JavaScript related operations. It can be retrieved via PdfDocument#getJavaScriptProvider().

    • Added

      Adds support for creation and execution of JavaScriptAction.

    • Added

      Adds setJavaScriptEnabled() to PdfConfiguration.Builder and PdfActivityConfiguration.Builder. Use this method to control whether JavaScript execution should be enabled in PdfFragment or PdfActivity.

    • Added

      Adds JavaScriptActionsExample, JavaScriptFormFillingExample and FormsJavaScriptExample to catalog app that demonstrates basic usage of JavaScript.

  • Added

    Adds support for additional actions for widget annotations and form fields. Additional actions are executed for predefined trigger events like clicking on the annotation, selecting/deselecting annotations, calculating, formatting or validating form fields. (#15841)

    • Added

      Adds setAdditionalAction(), getAdditionalAction() and getAdditionalActions() for setting and getting additional actions for WidgetAnnotation.

    • Added

      Adds setAdditionalAction() to FormElementConfiguration.Builder to configure additional actions for created form elements.

  • Added

    Adds consumer Proguard rules needed for RxJava to properly function on API 19. (#15829)

  • Added

    Adds localized strings for unnamed image document title. (#15515)

  • Added

    Adds support for automatically resizing FreeTextAnnotations based on their text using FreeTextAnnotationUtils#resizeToFitText. (#12998)

  • Added

    Adds support for setting text justification, and callouts to FreeTextAnnotations. (#9609)

    • Added

      Adds setIntent, setTextInsets, setCallOutPoints, setLineEnd, and setTextJustification to FreeTextAnnotation.

  • Changed

    Improves image document saving performance. (#15540)

  • Added

    Added the ability to print image documents. (#15375)

  • Fixed

    Fixes a rare issue adding page references with the document editor. (#14705)

  • Fixed

    Fixes an issue where a new digital signature could not be created in some documents. (#15683, #15702)

  • Fixed

    Fixes an issue where bookmarks may not be saved correctly in certain documents. (#15826)

  • Fixed

    Fixes background being rendered incorrectly for rotated FreeTextAnnotations. (#15639)

4.6.1 - 14 Jun 2018

UI

  • Added

    Adds enableAnnotationRotation and disableAnnotationRotation configuration options to allow changing visibility of rotation functionality. (#15510)

  • Added

    Adds configuration parameters for enabling/disabling sharing action in the note editor. (#15620)

    • Added

      Adds PdfConfiguration.Builder#sharingNoteEditorContentEnabled(boolean)

    • Added

      Adds PdfActivityConfiguration.Builder#sharingNoteEditorContentEnabled(boolean)

  • Added

    Adds AnnotationReplyFeatures to provide more granular control of the annotation reply UI. (#14883)

    • Removed

      Deprecates PdfConfiguration#isAnnotationReplyFeatureEnabled and PdfConfiguration.Builder#annotationReplyFeatureEnabled, use PdfConfiguration#getAnnotationReplyFeatures and PdfConfiguration.Builder#annotationReplyFeatures instead.

  • Changed

    Allows opening embedded PDF files if the application integrating PSPDFKit defines view PDF action. (#15611)

  • Fixed

    Fixes a potential crash that could occur after rotating device while a video was playing. (#14789)

  • Fixed

    Fixes an issue where annotations were not visible when being created inside onDocumentLoaded(). (#13255)

  • Fixed

    Fixes an issue where long-pressing on the annotation selection handle triggered document long-press event. (#15341)

  • Fixed

    Fixes retention of PdfActivity inside PdfDocument which could lead to memory leakage and OOMs. (#15518)

Model

  • API

    Change return type of Signature#toInkAnnotation() overrides from Annotation to InkAnnotation. (#15509)

  • Added

    Adds getExportValue() to RadioButtonFormElement. (#15535)

  • Added

    Improves SignaturePickerDialog APIs. (#15513)

    • Added

      Adds method SignaturePickerDialog.restore() for passing over a callback to the dialog after a configuration change happened.

    • Added

      Adds SignaturePickerDialogIntegrationExample and SignaturePickerDialogIntegrationKotlinExample to Catalog app which show how to manually integrate the SignaturePickerDialog into an activity.

    • API

      SignaturePickerDialog.show() will now throw an IllegalArgumentException if null is passed as argument for @NonNull parameters.

  • Changed

    Image quality for JPEG now used in Image Documents. (#15499)

  • Changed

    Improves PdfDocument Javadoc for saving methods with DocumentSaveOptions parameter. (#15514)

  • Fixed

    Fixes an issue where closing documents with smart form tab orders could cause a crash. (#15580)

  • Fixed

    Fixes an issue where a form field could be rendered more times than necessary. (#15528)

  • Fixed

    Fixes an issue with ImageDocumentExample where recent changes to the image document were not properly loaded when reopening the example. (#15507)

  • Fixed

    Fixes an issue with image documents where annotation changes in certain conditions were not properly saved. (#15604)

  • Fixed

    Fixes growing of image document file size after save. (#15479)

Instant

  • Added

    Adds support for annotation notes. (#15573)

4.6.0 - 31 May 2018

See the announcement post.

UI

  • Added

    Adds support 360° rotation of stamps and free text annotations. (#15325)

    • Added

      Adds setRotation, getRotation, and adjustBoundsForRotation to FreeTextAnnotation and StampAnnotation.

    • Added

      Adds rotation handle to selected annotations.

  • Added

    Adds PdfDocument#setRotationOffset to allow the user to temporarily set a custom rotation for the page. (#9400)

    • Added

      Adds RotatePageExample to the Catalog app.

  • Added

    Adds an ability to share image annotations. (#15115)

    • Added

      Adds DocumentSharingManager#shareBitmap() as helper for sharing Bitmaps using the Android sharing framework.

    • Added

      Adds “Share” action to the annotation editing toolbar of image annotations.

  • Added

    Adds integration of image stamp annotations with system clipboard. (#14875)

    • Changed

      Bitmaps in system clipboard can now be pasted as image stamp annotations.

    • Changed

      Puts the bitmap of copied image stamp annotation into system clipboard for pasting them to other apps.

  • Added

    Adds SignaturePickerOrientation to allow users to choose the screen orientation SignaturePickerFragment should use. (#13896)

  • Added

    Adds setEnableNoteAnnotationNoZoomHandling() to PdfActivityConfiguration.Builder and PdfConfiguration.Builder that can be used to disable displaying note annotations as if they had no-zoom flag enabled. (#13131)

  • Fixed

    Fixes a StackOverflowError caused when displaying a UnitSelectionEditText having the default value larger than the maximum allowed value. (#15082)

  • Fixed

    Fixes a potential crash that could occur when activity handled its orientation changes. (#15164)

  • Fixed

    Fixes an issue where annotation rendering was not updated after calling PdfFragment#notifyAnnotationHasChanged() when annotation overlay was enabled. (#15047)

  • Fixed

    Fixes an issue where annotations could disappear when switching to eraser. (#15157)

  • Fixed

    Fixes an issue where creation of markup annotations stopped working after undo. (#15172)

  • Fixed

    Fixes an issue where selected annotation was reselected when calling PdfFragment#setSelectedAnnotation(). (#15291)

Model

  • API

    The Annotation#getName() property is now automatically initialized with a unique type 4 UUID for each newly created annotation. (#15419)

  • Added

    Adds support for embedded files and file annotations. (#9613)

    • Added

      Adds EmbeddedFile that represents a single embedded file.

    • Added

      Adds FileAnnotation that represents an annotation holding an embedded file.

    • Added

      Adds EmbeddedFilesProvider for managing embedded files of a document. It can be retrieved by calling PSPDFDocument#getEmbeddedFilesProvider().

    • Added

      Adds UI support for adding notes to file annotations and for sharing their file contents.

  • Added

    Adds support for image document loading. (#14270)

    • Added

      Adds ImageDocument interface.

    • Added

      Adds ImageDocumentLoader helper class for loading an ImageDocument from a DocumentSource.

    • Added

      Adds PdfActivity#showImage() for opening a PdfActivity for a passed image document.

    • Added

      Adds PdfFragment#newImageInstance(Uri, PdfConfiguration) and PdfFragment#newImageInstance(DataProvider, PdfConfiguration) for creating a new fragment that displays an image document.

    • Added

      Adds ImageDocumentExample in the catalog app that shows how to open an image document from the assets folder.

  • Added

    Adds PageTemplate which can be used with NewPageDialog to provide additional templates when adding new pages to documents. (#9842)

  • Added

    Adds ability to define custom page patterns. Changes PagePattern from enum to final class. (#14974)

  • Added

    Adds canvas support to PdfProcessor. (#14664)

    • Added

      Adds NewPage#fromCanvas() for creating new pages with content drawn via canvas API.

    • Added

      Adds NewPage.Builder.withPageItem(PageCanvas) for drawing content on pages.

    • Added

      Adds PdfProcessorTask#addCanvasDrawingToPage() that can be used to merge canvas drawing with existing pages.

    • Added

      Adds new Catalog app example DocumentFromCanvasExample.

  • Added

    Adds support for annotation blending modes. These can be set using Annotation#setBlendMode() (#15416)

  • Added

    Adds DefaultBookmarkAdapter and DefaultOutlineViewListener to make integration of PdfOutlineView with PdfFragment easier. (#14370)

  • Added

    Adds SharingOptionsProvider which can be set using PdfActivity#setSharingOptionsProvider. This allows you to provide ShareOptions without displaying a DocumentSharingDialog. (#12699)

  • Added

    Adds PdfOutlineView integration with PdfFragment example to CustomFragmentActivity. (#15360)

  • Added

    Adds pageIndex parameter to PagePdf constructors allowing creation of PagePdf objects referencing any page in the document instead of the first page. (#15266)

  • Added

    Adds async version of AnnotationProvider#createAnnotationFromInstantJson(). (#15163)

  • Added

    Adds factory methods fromDocument(), newPage() and empty() to PdfProcessorTask and deprecates its constructors. (#14986)

  • Added

    Adds support for GoToEmbeddedAction that allows jumping to PDF file that is embedded in the document. (#14596)

  • Added

    Adds CopyToClipboardActivity to catalog that shows how to implement “Copy to clipboard” share action for shared images. (#15109)

  • Added

    Adds DocumentSharingProviderProcessor that provides methods for preparing complex data for sharing via DocumentSharingProvider. (#15019)

    • Added

      Add methods for preparing EmbeddedFile, Bitmap and DataProvider data for sharing.

    • Removed

      Deprecates DocumentSharingProcessor, use DocumentSharingProviderProcessor#prepareDocumentForSharing() instead.

    • Removed

      Deprecates DocumentSharingProvider#deleteTemporaryFile(), use DocumentSharingProvider#deleteFile() instead.

  • Added

    Adds getHighlightedTextBlocks() to text markup annotations that returns list of TextBlock for markup annotations. (#12989)

  • Added

    Adds annotation name to Instant JSON. Also renames pspdfkit/file name to filename to prevent collisions. (#14856)

  • Added

    Adds better detection for standard stamp subjects for Instant JSON. (#14919)

  • Changed

    Improves XFDF output by omiting opacity if set to the default (1.0). (#15354)

  • Changed

    Improves compatibility of note annotations with certain 3rd-party viewers such as Apple Preview. (#14953)

  • Changed

    Improves consumer Proguard rules. (#14652)

  • Fixed

    Fixes a bug where annotation replies are not removed from cache when the base annotation is being deleted. (#14923)

  • Fixed

    Fixes a problem where the text in unsigned form field overlays may be cut off. (#14922)

  • Fixed

    Fixes an issue where setInReplyTo() did not work when the target annotation was not attached to a document. (#14863)

  • Fixed

    Fixes an issue where annotation returned from AnnotationProvider#createAnnotationFromInstantJson() was not attached to page. (#15154)

  • Fixed

    Fixes an issue where some action destinations may not work properly. (#14901)

  • Fixed

    Fixes an issue where using FormElementConfiguration children while integrating in Kotlin led to IllegalAccessError. Adds FormCreationKotlinExample to showcase form creation using Kotlin. (#15470)

  • Fixed

    Fixes security vulnerability CVE-2018-9127 in Botan, where wildcard certificates could be accepted for invalid hostnames. (#15374)

  • Fixed

    Fixes the grouped menu items being selectable in annotation editing, document editing and text selection toolbars. (#14853)

  • Fixed

    Fixes an issue where glyph frames were larger than expected due to unexpected values in their fonts. (#14169)

  • Fixed

    Fixes incorrect calculation of glyph frames when the page matrix is not identity. (#13668)

Instant

  • Added

    Adds support for Instant Layers. (#14007)

    • Removed

      Deprecates InstantClient#openDocument/Async(documentId, authToken), use InstantClient#openDocument/Async(jwt) instead.

    • Removed

      Deprecates InstantClient#getInstantDocumentDescriptor(), use InstantClient#getInstantDocumentDescriptorForJwt() instead.

    • Removed

      Deprecates InstantDocumentDescriptor#getAuthenticationToken(), use InstantDocumentDescriptor#getJwt() instead.

    • Removed

      Deprecates InstantPdfDocument#updateAuthenticationToken/Async(), use InstantPdfDocument#reauthenticateWithJwt/Async() instead.

    • Removed

      Deprecates InstantPdfActivityIntentBuilder#fromInstantDocument(), InstantPdfActivity#showInstantDocument() and InstantPdfFragment#newInstance() with documentId parameter, use overloaded methods without this parameter.

    • Added

      Adds InstantPdfActivity#setDocument() that allows loading of different Instant document in an existing activity.

    • Added

      Adds InstantClient#getLocalDocumentDescriptors() for retrieving all locally cached document descriptors.

    • Added

      Adds InstantClient#removeLocalStorageForDocument() for removing local storage for all document layers.

    • Changed

      Public methods in Instant API now throw an exception when required parameters are null.

  • Fixed

    Fixes an issue where the annotations of a document would seem to be missing until the first sync. (#15338)

4.5.1 - 26 Apr 2018

UI

  • Added

    Adds pspdf__mainToolbarTextColor theme attribute that can be used to configure text color of the main toolbar. (#14569)

  • Changed

    Improves NoteEditorFragment changing the status bar color to the annotation color when UI is fullscreen. (#14880)

  • Changed

    Note editor dialog size is increased on tablets. (#14866)

  • Fixed

    Fixes an issue where overlaid annotations were not displayed together with page rendering. (#14912)

  • Fixed

    Fixes signature list selection color and document editor page selection icon not being customizable using themes. (#14968)

  • Fixed

    Fixes an issue where replies editor was losing focus after rotations and keeping soft-keyboard visible. (#14873)

4.5.0 - 11 Apr 2018

UI

  • Added

    Adds new note editor UI. (#14505)

    • Added

      Adds support for adding/editing annotation replies.

    • Added

      Adds support for setting the review state on annotation note content.

  • Added

    Adds annotation opacity slider to annotation property inspector. (#13870)

  • Fixed

    Fixes a potential crash that could occur when editing annotations on pages having a large number of annotations. (#14366)

  • Fixed

    Fixes an issue where free-text annotations were marked modified after being selected. (#14159)

  • Fixed

    Fixes an issue with fit to screen mode always rounding down when calculating page size. (#14653)

  • Fixed

    Fixes the grouped menu items being selectable in annotation editing, document editing and text selection toolbars. (#14853)

Model

  • Added

    Adds support for annotation replies. (#13309)

    • Added

      Adds AnnotationProvider#getFlattenedAnnotationReplies[Async]() for getting replies to a given annotation (nested replies are added to the list).

    • Added

      Adds AnnotationProvider#getAnnotationReplies[Async]() for getting replies to a given annotation (only contains first-level replies).

    • Added

      Adds AuthorState class, representing a state that can be set on the annotation content and replies.

    • Added

      Adds AnnotationStateChange that holds the data of the state change performed on the annotation.

    • Added

      Adds AnnotationReviewSummary that carries the summary of currently set states and authors that have set each of them.

    • Added

      Adds AnnotationProvider#getReviewHistory[Async]() for retrieving the history of reviews statuses as they were changed.

    • Added

      Adds AnnotationProvider#getReviewSummary[Async]() for retrieving the summary of currently set states and authors that have set each of them.

    • Added

      Adds AnnotationProvider#appendAnnotationState[Async]() that allows you to record new author state changes on the document.

    • Added

      Adds annotationReplyFeatureEnabled() to PdfConfiguration and PdfActivityConfiguration for enabling/disabling annotation replies in UI.

    • Added

      Adds Annotation#setInReplyTo(Annotation annotation) and Annotation#getInReplyTo() for making annotation a reply.

  • Added

    Adds FormElement#setPreviousElement() and FormElement#setNextElement() for setting previous and next form element. (#14523)

    • Added

      Adds FormProvider#addFormElementToPageAsync() and FormProvider#addFormElementsToPageAsync() that programmatically create and insert a form field into the document, asynchronously.

  • Added

    Adds support for canceling in progress page renders. (#14217)

  • Changed

    Filters out invalid characters from a page’s text. (#14516)

  • Fixed

    Fixes PSPDFKit#initialize resetting the ApplicationPolicy on each call. (#14229)

  • Fixed

    Fixes a crash when trying to paste text into a document without having the annotation feature licensed. (#14709)

  • Fixed

    Fixes a potential crash when saving a document. (#14082)

  • Fixed

    Fixes a potential issue when removing annotations. (#14381)

  • Fixed

    Fixes an issue where a flattened document shows a blank page in Preview. (#13708)

  • Fixed

    Fixes an issue where image data wasn’t properly removed after rewriting the PDF. (#14708)

  • Fixed

    Fixes an issue where where OnAnnotationUpdatedListener#onAnnotationUpdated() was being called multiple times even when annotation was changed only once. (#14133)

  • Fixed

    Fixes faulty recycling of framework internal objects that could lead to memory issues. (#14790)

  • Fixed

    Fixes forms on rotated pages not being rendered correctly. (#14422)

  • Fixed

    Fixes framework being obfuscated twice when using consumer Proguard rules. (#14601)

  • Fixed

    Fixes potential deadlocks when opening a lot of documents. (#14503)

  • Fixed

    Fixes an issue where author name was not set on created image annotations. (#14743)

Instant

  • Changed

    Enable multidex support in PSPDFKit Instant example. (#14757)

4.4.1 - 16 Mar 2018

UI

  • Changed

    Annotations overlay is now enabled by default on high-end devices. (#13653)

    • Changed

      If you wish to disable this behavior, pass an empty set to PdfFragment#setOverlaidAnnotationTypes().

  • Added

    Adds PdfFragment#getOverlaidAnnotationTypes() and PdfFragment#getOverlaidAnnotations to retrieve set of annotation types or annotations that are enabled for overlay mode rendering. (#14457)

  • Fixed

    Fixes a bug that could cause a ANR when quickly detaching a PdfFragment after attaching it to an activity. (#14472)

  • Fixed

    Fixes status bar covering the screen when dragging toolbar in immersive mode. (#14399)

Model

  • Changed

    PdfDocument#openDocument() methods will now throw wrapped exceptions of DataProvider to make error debugging simpler. (#14493)

  • Fixed

    Fixes an issue where opening large documents with marked content used very large amounts of memory. (#14415)

  • Fixed

    Fixes PdfDocument#invalidateCacheForPage doing nothing. (#14211)

  • Fixed

    Fixes an issue where OnAnnotationUpdatedListener#onAnnotationUpdated() was being called 2 times after undoing annotation changes. (#14533)

  • Fixed

    Fixes an issue where annotation returned to page after undoing its deletion had changed object number. (#14532)

  • Fixed

    Fixes an issue where custom text for ComboBoxFormElement was not shown when set. (#14461)

    • Added

      Adds support for selecting multiple options for ListBoxFormElement and exposing convenient configuration method Builder.ListBoxFormConfiguration#setMultiSelectionEnabled

    • API

      Renames Builder.ComboBoxFormConfiguration#setSelectedIndexes to Builder.ComboBoxFormConfiguration#setSelectedIndexes because ComboBoxFormElement supports only single-selection.

    • Added

      Adds ComboBoxFormConfiguration and ListBoxConfiguration examples to FormCreationExample in Catalog app.

  • Fixed

    Fixes issue where pdfId was required when importing a Instant JSON document. (#14494)

4.4.0 - 9 Mar 2018

See the announcement post.

Migration guide.

UI

  • API

    Adds support for rendering annotations in overlay mode. (#11835)

    • Added

      Adds PdfFragment#setOverlaidAnnotationTypes() to configure set of annotation types that should be extracted to annotation overlay.

    • Added

      Adds PdfFragment#setOverlaidAnnotations() to configure annotations that should be extracted to annotation overlay.

  • Fixed

    Fixes a potential crash that occurred when selecting large annotations when page was zoomed. (#14062)

  • Fixed

    Fixes an issue where Annotations that were added using AnnotationProvider#createAnnotationFromInstantJson() were not editable. (#14340)

    • API

      AnnotationProvider#createAnnotationFromInstantJson() will now throw when license does not support annotation editing.

    • Changed

      AnnotationProvider#createAnnotationFromInstantJson() is now marked @NonNull instead of @Nullable.

    • Changed

      AnnotationProvider#createAnnotationFromInstantJson() will now call OnAnnotationUpdatedListener#onAnnotationCreated()

  • Fixed

    Fixes an issue where dropdown arrow on combo boxes are not seen when box has a small width. (#14326)

  • Fixed

    Fixes an issue where dropdown arrows are still seen on combo boxes when document is flattened. (#9539)

  • Fixed

    Fixes an issue where toolbar was left with an empty space after hiding menu item. (#13180)

  • Fixed

    Fixes a potential crash that could occur when changing text of selected free-text annotation from background thread. (#14441)

  • Fixed

    Fixes an issue where annotation editing toolbar was missing grouping rule for custom button used in the AnnotationFlagsActivity. (#14139)

Model

  • API

    Adds support for programmatically creating forms using FormProvider#addFormElementToPage. (#13777)

    • Added

      Adds CheckBoxFormConfiguration and CheckBoxFormConfiguration.Builder for creation and configuration of CheckBoxFormElement.

    • Added

      Adds ComboBoxFormConfiguration and ComboBoxFormConfiguration.Builder for creation and configuration of ComboBoxFormElement.

    • Added

      Adds ListBoxFormConfiguration and ListBoxFormConfiguration.Builder for creation and configuration of ListBoxFormElement.

    • Added

      Adds PushButtonFormConfiguration and PushButtonFormConfiguration.Builder for creation and configuration of PushButtonFormElement.

    • Added

      Adds RadioButtonFormConfiguration and RadioButtonFormConfiguration.Builder for creation and configuration of RadioButtonFormElement.

    • Added

      Adds SignatureFormConfiguration and SignatureFormConfiguration.Builder for creation and configuration of SignatureFormElement.

    • Added

      Adds TextFormConfiguration and TextFormConfiguration.Builder for creation and configuration of TextFormElement.

  • API

    Cleans up nullability annotations on our Annotation API. (#13956)

    • Changed

      Annotation methods marked with @NotNull will no longer ignore illegally passed null values but will instead throw an IllegalArgumentException.

    • Changed

      InkAnnotation#getLines() and InkAnnotation#setLines() are now marked as @NonNull.

    • Changed

      PolygonAnnotation#getPoints() and PolylineAnnotation#getPoints() now return non-null values.

    • Changed

      TextMarkupAnnotation#setRects() and TextMarkupAnnotation#getRects() are now marked as @NonNull.

  • API

    Rects in TextBlock and TextSelection now represent the font size more closely. (#13803)

  • API

    PdfProcessor now throws an exception when the output file points to the original input file. (#13876)

  • API

    StampAnnotation#setBitmap now sets bitmap when used on standard stamps and StampAnnotation#setSubject now sets subject on bitmap stamps. These methods previously logged error and returned without performing requested action. (#13920)

  • Added

    Adds SearchOptions#priorityPages(ArrayList<Range> priorityPages, Boolean searchOnlyInPriorityPages), which allows you to restrict the search to a particular page range by setting searchOnlyInPriorityPages to true. (#12772)

  • Added

    Adds more specific Proguard rules to keep API related code and examples from obfuscation. (#14360)

  • Added

    Adds support for automatically updating the last modified date when changing annotations. (#14000)

  • Added

    Improves digital signing APIs to support external signature providers (such as HSMs). (#13932)

    • Added

      Adds SignatureProvider interface for implementing custom signature providers.

    • Added

      Adds PrivateKeySignatureProvider implementation for signing PDF data using a PrivateKeyEntry.

    • Added

      Adds abstract method Signer#prepareSigningParameters() which has to be implemented by subclasses to return a SignatureProvider instance.

    • Added

      Adds EncryptionAlgorithm enum and HashAlgorithm enum of various encryption and hash algorithms respectively that are supported when signing PDFs.

    • Added

      Adds InteractiveSigner interface, which can be implemented by a Signer to allow digital signing flows that require to retrieve a password from the user.

    • Added

      Adds the abstract PrivateKeySigner which is a base class for any signer that can sign PDFs using a PrivateKeyEntry.

    • API

      Signer#getDisplayName() is now final. Use the constructor to provide a display name for the signer instead.

    • Removed

      Deprecates Signer#signFormFieldAsync() and Signer#signFormField() methods taking a PrivateKeyEntry as argument. Check out the 4.4 migration guide for alternative APIs.

    • Removed

      Deprecates MemorySigner#signFormField() and MemorySigner#signFormFieldAsync(). Use the equivalent methods on the Signer base class.

  • Changed

    Methods in PSPDFKit now throw an exception when required parameters are null. (#14080)

  • Fixed

    Fixes FTS5 search on SQLite versions >= 3.20.0. (#14036)

  • Fixed

    Fixes an issue where parts of com.pspdfkit.undo were obfuscated. (#14464)

  • Fixed

    Fixes an issue saving a document with invalid PDF syntax (empty dictionary key). (#14009)

  • Fixed

    Fixes an issue where null values set to @Nullable Annotation properties did not clear the property value in the document. (#13900)

  • Fixed

    Fixes an issue where action destinations would not be found if sorted incorrectly. (#14412)

  • Fixed

    Fixes an issue where some form fields with custom FQNs may not be signed correctly. (#14309)

  • Fixed

    Fixes crashes on document unload when FormTabOrderCalculator is being processed. (#13976)

  • Fixed

    Fixes document corruption bug that could happen when documents with header were incrementally saved. (#14249)

  • Fixed

    Fixes potential crash when saving files with irregular outlines. (#14116)

  • Fixed

    Fixes document corruption issue when document has a header and is incrementally saved. (#14249)

Example

  • Added

    Adds the new example FormCreationExample to Catalog app that demonstrates form creation starting from an empty PDF document. (#14428)

Instant

  • Added

    Adds createdAt, updatedAt and creatorName to Instant JSON. (#14443)

4.3.1 - 1 Feb 2018

  • Changed

    Updated dependencies:

    • Changed

      Kotlin 1.2.21 / org.jetbrains.kotlin:kotlin-stdlib:1.2.21

  • Added

    Adds a Catalog example on how to use form editing bar and inspector when using PdfFragment with custom activity. (#13750)

  • Changed

    Improves undo/redo by adding support for undoing changes made to Polyline and Polygon annotations. (#13963)

  • Changed

    Annotations with HIDDEN or NO_VIEW flag are now displayed in the annotation list by default. (#13619)

  • Added

    Update Kotlin to 1.2.21. (#13995)

    • Added

      Adds Kotlin extensions to Catalog app. See PSPDFKitKotlin.kt.

  • Changed

    Updates localized strings, fixing some minor issues. (#13155)

  • Fixed

    Fixes a crash caused by NullPointerException in the internal AnnotationClipboard class. (#14037)

  • Fixed

    Fixes an assertion when a non-specified named action was deserialized via Instant JSON. (#13804)

  • Fixed

    Fixes an issue in dropdown list forms where searching for an element was allowing newlines. (#13986)

  • Fixed

    Fixes an issue on Android API 21+ were ContextualToolbar instances inside the PdfActivity would sometimes use a wrong elevation, resulting in them being hidden behind the primary toolbar. (#13764)

  • Fixed

    Fixes an issue where PdfDocument#saveIfModified did not clear dirty state of bookmark provider. (#14026)

  • Fixed

    Fixes an issue where certain free-text annotations were drawn as empty after selection. (#13994)

  • Fixed

    Fixes an issue where drawn ink annotations disappeared after leaving the annotation creation mode. (#14035)

  • Fixed

    Fixes an issue where saving a document to path cleared the dirty state from document metadata and form provider. (#13751)

  • Fixed

    Fixes an issue where stamp annotations with custom AP streams lost transparency and subject after copying. (#13847)

  • Fixed

    Fixes an issue where the next form element after a drop-down list was selected. (#13806) Adds new configuration options PdfConfiguration.Builder#enableAutoSelectNextFormElement() and PdfConfiguration.Builder#disableAutoSelectNextFormElement()

  • Fixed

    Fixes an issue where transparent color was not properly exported to XFDF. (#13016)

  • Fixed

    Fixes a crash caused by device not having the activity to handle the storage access when trying to save the document. (#14039)

  • Fixed

    Fixes a crash invoked by pressing RETURN when adding custom form option. (#14001)

Instant

  • Fixed

    Fixes an issue where InstantAnnotationProvider#hasUnsavedChanges() reported wrong state. This method now returns true when there are unsynced annotations changes. (#13988)

  • Fixed

    Fixes an issue where thumbnail bar wasn’t refreshed after syncing annotations with Instant. (#13988)

4.3.0 - 24 Jan 2018

See the announcement post.

  • Changed

    Updated dependencies:

    • Changed

      Kotlin 1.2.20 / org.jetbrains.kotlin:kotlin-stdlib:1.2.20

    • Changed

      Device Year Class 2.0.0 / com.facebook.device.yearclass:yearclass:2.0.0

  • Added

    Adds support for annotation undo and redo. (#5626)

    • Added

      Adds UndoManager that manages a stack of edits on a PdfFragment and provides methods for navigating back and forth in the edit history.

    • Added

      Adds PdfFragment#getUndoManager() for retrieving the undo manager of the fragment.

    • Added

      Adds OnUndoHistoryChangeListener for listening to changes to the edit history of an undo manager.

    • Added

      Adds undoEnabled() and redoEnabled() to PdfConfiguration for selectively configuring whether undo and redo should be available to the user.

    • Added

      Adds style attributes pspdf__undoIcon and pspdf__redoIcon to the pspdf__AnnotationCreationToolbarIcons styleable, to change the look of the undo and redo buttons.

  • Added

    Adds support for copying and pasting annotations. (#5556)

    • Added

      Adds enableCopyPaste() and disableCopyPaste() to PdfConfiguration.

    • Added

      Adds setEnabledCopyPasteFeatures() to PdfConfiguration, this allows more granular control over how copy/paste works.

    • Added

      Adds system clipboard integration for copying text from any app into a PDF document and for extracting text from annotations.

    • Added

      Adds ANNOTATION_COPY_PASTE_SYSTEM_INTEGRATION application policy to allow controlling the system clipboard integration.

    • Added

      Adds handling for common shortcut keys Ctrl+C, Ctrl+X, and Ctrl+V for copying, cutting, and pasting annotations using a keyboard.

    • Added

      Adds copy and cut actions to the AnnotationEditingToolbar. To change the icons you can set the pspdf__copyIcon and pspdf__cutIcon attributes on the pspdf__AnnotationEditingToolbarIcons of your theme.

    • Added

      Adds long-press gesture to pages, which will now paste an annotation that was previously copied to the clipboard.

  • Added

    Adds support for visual annotation contents hint. (#12550)

    • Added

      Adds class AnnotationNoteHinter that extends PdfDrawableProvider for drawing visual hints for supported annotation types.

    • Added

      Adds setAnnotationNoteHintingEnabled() to PdfActivityConfiguration.Builder to control whether annotation contents hints are enabled.

    • Added

      Adds new CustomAnnotationNoteHinterProviderExample in catalog with an example on how to implement a custom annotation note hinter drawable provider.

  • Added

    Adds alpha rendering support for annotations. A call to Annotation#setAlpha() will now produce the expected transparency effects for rendered annotations. (#9618)

  • Added

    Adds a smart low resolution render strategy using the Device Year Class library. (#13355)

    • Added

      Adds PdfConfiguration.Builder#setFixedLowResRenderPixelCount() and PdfConfiguration#getFixedLowResRenderPixelCount() to set and retrieve fixed low resolution render pixel count without using an optimized value.

  • Added

    Adds AnnotationProperty#ANNOTATION_NOTE for controlling whether annotation notes are enabled for specific annotation types. If AnnotationDefaultsProvider#getSupportedProperties() for a given annotation type includes ANNOTATION_NOTE, annotation notes are enabled for the type.(#13560)

  • Added

    Adds getOverlappingInkSignature() to SignatureFormElement that can be used to retrieve InkAnnotations that are overlapping signature fields. (#10675)

  • Added

    Adds Annotation#setSubject() to set the subject property of an annotation. (#13766)

    • Changed

      Calling setSubject() on StampAnnotation instances with custom bitmaps is not supported, and will throw an exception.

  • Added

    Adds AnnotationProvider#hasUnsavedChanges() to check if there are changes to annotations that need to be saved to disk. (#13322)

    • Removed

      Deprecates AnnotationProvider#isDirty(), AnnotationProvider#clearDirty(), and AnnotationProvider#prepareForSave().

  • Added

    Adds form field values to Instant JSON. (#13335)

  • Added

    Adds support for PEM-encoded certificates in PKCS#7 files. (#13698)

  • Added

    Adds support for creating empty FreeTextAnnotations. (#13781)

  • Added

    Adds Kotlin as transitive dependency. (#5638)

    • Added

      Adds a new KotlinExample which showcases how to use PSPDFKit with the Kotlin programming language.

  • Changed

    Improves the customizability of the navigation buttons declaring pspdf__navigationHistoryIconColor styleable. These allow you to change the chevrons color in the navigation buttons. (#13717)

  • Changed

    “Sign here” badge is now hidden once an ink signature is drawn on top of the signature field. (#13456)

  • Added

    SignatureSignerDialog can now sign documents without saving them first. This can be used to sign documents from read-only sources. (#13213)

    • Added

      Adds SignatureSignerDialog.Options which allows you to specify the parameters for the SignatureSignerDialog.

    • Removed

      Deprecates SignatureSignerDialog#show(FragmentManager, PdfDocument, SignatureFormField, Signer, BiometricSignatureData, DocumentSigningListener). Use SignatureSignerDialog#show(FragmentManager, Options, DocumentSigningListener)} instead.

  • Changed

    Improves minimum size calculation of annotations. (#13313)

    • Changed

      The new default minimum size is 16x16pt with a few exceptions.

    • Changed

      The minimum size of PolygonAnnotation, PolylineAnnotation and LineAnnotation remain unchanged.

    • Changed

      The minimum size of callout annotations was changed from 48x32pt to 24x16pt.

  • Changed

    Improves the detection of digital signatures in third-party PDF readers. (#13593)

  • Changed

    Improves the accuracy of the information about the digital signature validation process by demoting some non-critical errors to warnings. (#13570)

  • Changed

    Improves the stability of the digital signing process with some certificate authorities with missing fields. (#13694)

  • API

    Fixes wrong from bound of @IntRange annotation on PdfActivity#getSiblingPageIndex() from -1 to 0. (#13713)

  • API

    InstantClient#create() now throws an InstantException instead of crashing when the client cannot be created. (#13365)

  • API

    InstantClient#getInstantDocumentDescriptor, InstantClient#openDocument, and InstantClient#openDocumentAsync now throw an InstantException instead of crashing when the document data on disk cannot be accessed. (#13365)

  • API

    Improves the customizability of the inline search view. (#13517)

    • Added

      Adds pspdf__inputFieldTextAppearance and pspdf__resultTextAppearance to pspdf__SearchViewInline styleable. These allow you to change the text appearance of the input field and the result count view respectively.

    • Added

      Adds pspdf__throbberColor to pspdf__SearchViewInline styleable. This allows you to change the color of the loading throbber.

    • Removed

      Removes pspdf__textColor, pspdf__hintTextColor, and pspdf__navigationTextColor from pspdf__SearchViewInline styleable. These are replaced by setting the text appearance.

  • API

    Hide several undocumented methods on Annotation which were meant for framework internal use only. (#13805)

  • Fixed

    Fixes polygon fill and stroke overlap when drawing with alpha. (#13868)

  • Fixed

    Fixes displaying multiple annotations instead of one for eraser mode. (#13867)

  • Fixed

    Fixes missed search terms which span over a newline without a hyphen. (#11862)

  • Fixed

    Fixes form highlights, required field border, list box selection colors when in grayscale mode (#12996)

  • Fixed

    Fixes an issue where default color for highlight annotations were not rendered properly. (#12938)

  • Fixed

    Fixes an issue where filtered types were being added to the annotation list on the first document opening. (#13378)

  • Fixed

    Fixes an issue where getPageText() and getPageTextRects() on PdfDocument would not work properly for vertical or rotated text. (#13423)

  • Fixed

    Fixes an issue with stamp annotations not being rendered when using XFDF. (#13330)

  • Fixed

    Fixes specific issue where previous xref has the same object number as a newly created object. (#13183)

  • Fixed

    Fixes an issue where some texts in signature form fields may not be translated. (#13441)

  • Fixed

    Fixes an issue where annotations could not be resized after being stretched to the maximum height of the page. (#9977)

  • Fixed

    Fixed an issue where eraser was not applied when affecting multiple annotations. (#12946)

  • Fixed

    Fixes an issue where the SignatureSignerDialog wasn’t restored on configuration change. (#13213)

  • Fixed

    Fixes an issue where image stamp annotations appeared scaled up. (#13703)

  • Fixed

    Fixes an issue where new page dialog used incorrect text color in the dark theme. (#13590)

  • Fixed

    Fixes an issue where note editor crashed on certain devices due to missing resource. (#13585)

  • Fixed

    Fixes an issue where a signed document may show a warning if inspected with a PDF lint tool. (#13719)

  • Fixed

    Fixes an issue where OnContextualToolbarLifecycleListener#onPrepareContextualToolbar() was not called when changing active annotation creation/editing mode - i.e. when changing selected tool in annotation creation mode and when reselecting annotations in annotation editing mode. (#13558)

    • Added

      Adds protected method notifyToolbarChanged() to ContextualToolbar that should called by specific toolbar implementation when toolbar contents are changed.

    • Added

      Adds onContextualToolbarChanged() to ToolbarCoordinatorLayoutController, that is called when toolbar menu items have changed.

  • Fixed

    Fixes opening of unsupported documents with page labels (#13509)

  • Fixed

    Fixes an issue where some list boxes do not display all the possible options. (#13454)

  • Fixed

    Fixes highlight markups on some specficic documents (#13768)

  • Fixed

    Fixes an issue where empty free-text annotations were not rendered properly. (#13782)

  • Fixed

    Fixes an issue where checkbox values were not updated correctly. (#13843)

  • Fixed

    Fixes an unhandled NullPointerException thrown while erasing ink annotations. (#13715)

  • Fixed

    Fixes an issue where tapping the page quickly after removing an annotation could lead to a crash. (#13885)

  • Fixed

    Fixes an issue where annotations were not rendered properly when global AP stream generator was set. (#13872)

  • Fixed

    Fixes an issue where digitally signing a document multiple times may invalidate previous signatures. (#13582)

Instant

  • Added

    Adds a catalog example that uses Instant to load documents from our public preview server and demonstrates real-time annotation synchronization. (#13411)

  • Added

    Adds InstantDocumentState describing the possible states that a InstantPdfDocument can be in. (#11324)

    • Added

      Adds onDocumentStateChanged() to InstantDocumentListener, that is called whenever document state changes.

  • Added

    Adds isListeningToServerChanges() and getDelayForSyncingLocalChanges() to InstantPdfDocument. (#13247)

  • API

    Removes list of updated annotations from InstantDocumentListener#onSyncFinished(). (#13532)

  • API

    Methods annotated with @NotNull will no longer ignore illegaly passed null vaues but will instead throw an IllegalArgumentException. (#13571)

  • Fixed

    Fixes an issue where annotations created with default properties were not synced with Instant server. (#13348)

  • Fixed

    Fixes a memory leak related to sync requests. (#13540)

  • Fixed

    Fixes a dangling pointer issue when parsing invalid server responses. (#13557)

  • Fixed

    Fixes an issue where syncing created new annotations instead of updating old ones. (#13407)

  • Fixed

    Fixes an issue where Proguard would fail when applied on an app integrating Instant. (#13620)

4.2.1 - 30 Nov 2017

  • Changed

    Improves scrollable thumbnail bar state restoration after rotation changes removing scrolling animation when not needed. (#10459)

  • Fixed

    Fixes an issue when dismissing DownloadProgressFragment, that would fail to perform a detaching after onSaveInstanceState. (#13222)

  • Fixed

    Fixes an issue where annotation list displays all items in the same color. (#13082)

  • Fixed

    Fixes an issue when changing configuration while in DownloadProgressFragment, that would freeze the device. (#13241)

  • Fixed

    Fixes an issue where annotations would be positioned wrongly when created on a page with a transform. (#12492)

  • Fixed

    Fixes an issue where dark styles were not applied correctly in catalog app when in night mode. (#13285)

  • Fixed

    Fixes an issue where documents with links may not point to the correct destination after being exported. (#13341)

4.2.0 - 23 Nov 2017

  • Added

    Adds DocumentJsonFormatter for exporting and importing Instant Document JSON to PdfDocument instances. (#11674)

    • Added

      Adds new package com.pspdfkit.document.formatters for document serialization related classes.

    • Removed

      Deprecates com.pspdfkit.annotations.xfdf.XfdfFormatter. Use com.pspdfkit.document.formatters.XfdfFormatter instead.

  • Fixed

    Fixes form highlights, required field border, list box selection colors when in grayscale mode (#12996)

  • Fixed

    Fixes newly added signatures not being selected after rotating from landscape to portrait. (#12941)

  • Fixed

    Fixes an issue where default OnDocumentLongPressListener overrides the one set by the user, if that happened before the fragment creates views. (#13091)

  • Fixed

    Fixes an issue where a BookmarkListener attached to BookmarkProvider would not be notified of changes to a single bookmark item or to the list’s sort order. (#9496)

  • Fixed

    Fixes an issue where newly created Annotation instances would internally hold the wrong alpha value, which could lead to problems while serializing/deserializing data or when comparing annotations using equals(). (#13249)

  • Fixed

    Fixes a crash that could happen when rendering the preview for stamp picker items with custom appearance streams. (#13196)

Instant

Important: This release requires PSPDFKit Server 2017.8 for syncing. If you try to connect to an older version of the server, syncing will fail. For further information, please refer to the migration guides for PSPDFKit Server and PSPDFKit Web.

  • API

    #getAnnotationProvider in InstantPdfDocument now returns InstantAnnotationProvider that extends AnnotationProvider with Instant related functionality. (#11682)

  • Added

    Adds #getIdentifierForAnnotation() and #getAnnotationForIdentifier() to InstantAnnotationProvider. These APIs provide a stable, unique identifier for annotations managed by Instant. These identifiers are well suited to, for example, associate arbitrary data from external sources with an annotation. (#11682)

4.1.0 - 15 Nov 2017

See the announcement post.

  • Added

    Adds support for biometric signatures. (#12865)

    • Added

      Adds class BiometricSignatureData that can be written to a digital signature.

    • Added

      Adds overloads to Signer#signFormField() and Signer#signFormFieldAsync() that take a BiometricSignatureData and will save it to the document while digitally signing it.

    • Added

      Adds getBiometricData() to the existing Signature class which will return biometric data for a signature.

    • Changed

      Signatures created with the SignaturePickerFragment will now contain biometric data if Digital Signatures are enabled in the used licence.

  • Added

    Adds support for custom appearance streams for annotations. (#12217)

    • Added

      Adds AppearanceStreamGenerator interface that supplies DataProvider for PDF document that should be used as a custom appearance stream for annotations.

    • Added

      Adds Annotation#setAppearanceStreamGenerator() to configure appearance stream generator for annotation and Annotation#getAppearanceStreamGenerator() to retrieve it.

    • Added

      Adds Annotation#generateAppearanceStream() and Annotation#generateAppearanceStreamAsync() to regenerate annotation’s appearance stream.

    • Added

      Adds AnnotationProvider#addAppearanceStreamGenerator() to register global appearance stream generator that should be used for all annotations in the document before falling back to annotation’s own AppearanceStreamGenerator. Adds AnnotationProvider#removeAppearanceStreamGenerator() to unregister appearance stream generator.

    • Added

      Adds AssetAppearanceStreamGenerator and ContentResolverAppearanceStreamGenerator for generating appearance streams from documents stored in application assets or provided by content providers.

    • Added

      Adds support for defining StampPickerItem with custom appearance stream generator.

    • Changed

      Extends AnnotationCreationExample in catalog with an example on how to programatically create stamp annotations with custom appearance.

    • Changed

      Extends CustomStampAnnotationsExample in catalog with an example on how to define stamp type with custom appearance stream generator. This can be used to create vector based stamps with transparent background.

  • Added

    Widens Drawable API support. Now available for PdfThumbnailBar,PdfThumbnailGrid and as a part of PageRenderConfiguration. (#7121)

    • Added

      Adds pdfDrawables() call to PageRenderConfiguration constructor.

    • Added

      Adds addDrawableProvider(PdfDrawableProvider) and removeDrawableProvider(PdfDrawableProvider) to PdfThumbnailBar and PdfThumbnailGrid for managing drawable providers.

    • Added

      Adds setDrawableProviders(List<PdfDrawableProvider>) to ThumbnailAdapter, PdfThumbnailBarController and its implementations PdfThumbnailGrid and PdfStaticThumbnailBar.

  • Added

    Adds support for searching through the options of form list and combo boxes. (#12760)

  • Added

    Adds support for transferring document level JavaScript when processing a document. (#12769)

  • Added

    Adds overloads for Annotation#renderToBitmap and Annotation#renderToBitmapAsync accepting AnnotationRenderConfiguration that can be used to control advanced annotation rendering options. (#12916)

  • Added

    Adds the utility method for calculating bounding box from lines - PdfUtils#boundingBoxFromLines(). (#12846)

  • Changed

    Improves usage of quantity strings (plurals). (#13039)

  • Changed

    Improves detection of RichMedia elements and always prefers to show controls for audio-only tracks. (#12986)

  • Changed

    Improves displayed annotation contents for annotation list in PdfOutlineView. (#12553)

  • Changed

    Improves the switch animation from indeterminate circular progress bar to determinate horizontal progress bar when opening documents that have a provided progress. (#11878)

  • Changed

    Improves SignaturePickerFragment on tablets by disabling touch dismissing it while the user is entering a signature. (#8505)

  • API

    Deprecates registerDrawableProvider(PdfDrawableProvider) and unregisterDrawableProvider(PdfDrawableProvider) in PdfFragment. Use addDrawableProvider(PdfDrawableProvider) and removeDrawableProvider(PdfDrawableProvider) instead. (#7121)

  • Fixed

    Fixes an issue where color for selected item in listbox form fields fell back to transparent when it wasn’t defined in theme. (#12991)

  • Fixed

    Fixes an issue when saving a document that has been restored from a checkpoint. (#12890)

  • Fixed

    Fixes an issue with incorrect tab order in forms. (#12902)

  • Fixed

    Fixes an issue where some flattened documents may not show correctly in third party readers. (#12901)

  • Fixed

    Fixes the positioning of the underline on text when no ascending characters are present on the line. (#11489)

  • Fixed

    Fixes an issue where some ink annotations may not be rendered correctly by third party readers. (#12900)

  • Fixed

    Fixes missing document link action when destination is not defined. (#12917)

  • Fixed

    Fixes an issue when exporting XFDF with non-ascii characters. (#12892)

  • Fixed

    Fixes an issue where adding a signature with only a single point in it caused forms to no longer work. (#12976)

  • Fixed

    Fixes an issue where the loading throbber wasn’t hidden when the document failed to load. (#12804)

  • Fixed

    Fixes GoToRemoteAction object having GOTO action type set to it, instead of GOTO_REMOTE. (#13071)

  • Fixed

    Fixes a problem where some PDF documents may not show every form field element. (#12998)

  • Fixed

    Fixes issue where text in form fields are always black. (#12449)

  • Fixed

    Fixes a display problem were previously stored signatures were clipped when displayed in the SignaturePickerFragment. (#13057)

  • Fixed

    Fixes dangling symbols names in catalog app descriptions and Javadoc. (#13043)

  • Fixed

    Fixes an issue when trying to interact with a form whilst a PdfProcessorTask is in progress. (#12973)

Instant

Important: This is the last release of Instant compatible with PSPDFKit Server 2017.7 and earlier. The next release will require 2017.8. For further information, please refer to the migration guide.

  • Added

    Adds error codes to InstantErrorCode for the cases where the client and server have incompatible versions: OLD_CLIENT and OLD_SERVER. (#12720)

  • Added

    Adds a Proguard rule to consumer file to prevent a warning related to AutoValue. (#12888)

  • Changed

    InstantPdfFragment now shows error dialog when encountering OLD_CLIENT error and disables automatic sync when encountering either OLD_CLIENT or OLD_SERVER error codes. This is enabled by default and can be disabled via InstantPdfFragment#setHandleCriticalInstantErrors() (#12870)

  • API

    Adds callbacks for authentication with Instant server to InstantDocumentListener: onAuthenticationFailed called when authentication fails with an error and onAuthenticationFinished when authentication finishes successfully. (#13136)

4.0.2 - 27 Oct 2017

  • API

    Adds two missing methods #addOnFormTabOrderUpdatedListener() and #removeOnFormTabOrderUpdatedListener() to FormProvider which allow management of the already existing OnFormTabOrderUpdatedListener interface. (#12847)

  • API

    Listener removal methods will no longer silently ignore illegally passed null values but will instead throw an IllegalArgumentException. Affected methods: (#12849)

    • Changed

      ActionMenu#removeActionMenuListener()

    • Changed

      AnnotationProvider#removeOnAnnotationUpdatedListener()

    • Changed

      BookmarkProvider#removeBookmarkListener()

    • Changed

      FormEditingBar#removeOnFormEditingBarLifecycleListener()

    • Changed

      FormProvider#removeOnButtonFormFieldUpdatedListener()

    • Changed

      FormProvider#removeOnChoiceFormFieldUpdatedListener()

    • Changed

      FormProvider#removeOnFormFieldUpdatedListener()

    • Changed

      FormProvider#removeOnFormTabOrderUpdatedListener()

    • Changed

      FormProvider#removeOnTextFormFieldUpdatedListener()

    • Changed

      OnVisibilityChangedListenerManager#removeOnVisibilityChangedListener()

    • Changed

      PdfFragment#removeUserInterfaceListener()

    • Changed

      PropertyInspectorCoordinatorLayout#removePropertyInspectorLifecycleListener()

  • API

    Adds eager null checks to FormProvider methods with @NonNull parameters. (#12849)

    • Changed

      FormProvider#getFormFieldWithFullyQualifiedNameAsync() and FormProvider#getFormFieldWithFullyQualifiedName()

    • Changed

      FormProvider#getFormElementForAnnotationAsync() and FormProvider#getFormElementForAnnotation()

    • Changed

      FormProvider#getFormElementWithNameAsync() and FormProvider#getFormElementWithName()

  • API

    Changes type of exceptions thrown by some existing listener management methods. Methods that previously threw a NullPointerException when called with a null value will now throw an IllegalArgumentException. Affected methods: (#12849)

    • Changed

      PdfFragment#addDocumentListener() and PdfFragment#removeDocumentListener()

    • Changed

      PdfFragment#addDocumentScrollListener() and PdfFragment#removeDocumentScrollListener()

  • Removed

    Improves UI design of signature dialog. (#12646)

    • Removed

      Removes pspdf__colorIconsBorderColor from pspdf__SignatureLayout styleable. The signature dialog’s color picker is now using a FAB which doesn’t have a border.

    • Added

      Adds pspdf__clearSignatureCanvasIconBackgroundColor to pspdf__SignatureLayout which enables you to set the background color of the button for clearing the signature. The default color used is Android’s Color.GRAY.

  • Changed

    Improves performance when toggling checkboxes. (#12706)

  • Changed

    Improves reliability when saving documents with broken cross-reference tables. (#12212)

  • Fixed

    Fixes an issue where ink annotations were drawn incorrectly after finishing touch gestures on high resolution devices. (#12908)

  • Fixed

    Fixes wrong toolbar offset calculations in ToolbarCoordinatorLayout caused by dynamic window insets on some devices (like the Samsung Galaxy S8). (#12587)

  • Fixed

    Fixes an issue where data restored from a checkpoint would not be saved to the file when using incremental saving mode. (#12890)

  • Fixed

    Fixes an issue with incorrect tab order in forms. (#12902)

  • Fixed

    Fixes an issue where some flattened documents weren’t correctly displayed in third party readers. (#12901)

Instant

  • API

    When passing null to InstantPdfFragment#removeInstantDocumentListener() and InstantPdfFragment#addInstantDocumentListener() the methods will now throw an IllegalArgumentException instead of the previously thrown NullPointerException. (#12849)

4.0.1 - 19 Oct 2017

  • Added

    Adds new catalog app launcher icon for all devices and adaptive launcher icon for Android 8.0 Oreo and newer. (#12220)

  • Changed

    Improves Javadoc for SharingMenu and ActionMenu. (#12688)

  • Changed

    Calling PdfFragment#setDocumentSigningListener() without having Digital Signatures licensed will now throw an InvalidPSPDFKitLicenseException. (#12761)

  • Fixed

    Fixes a crash that happened when tapping a SignatureFormElement without having Digital Signatures or Annotation Editing features licensed. (#12705)

  • Fixed

    Fixes several issues with the AnnotationProvider. (#12761)

    • Changed

      Annotates return type of AnnotationProvider.getAnnotations(int) as @NonNull.

    • Fixed

      Fixes a bug where annotationProvider.removeAnnotation(...) would not properly remove annotation instances that were retained across activity configuration changes.

  • Fixed

    Fixes issues with font selection for non latin languages. (#12297, #11639)

  • Fixed

    Fixes annotations moving on rotated pages when flattening. (#8242)

  • Fixed

    Fixes the SignatureSignerDialog not being restored on orientation change. (#12615)

    • API

      Adds SignatureSignerDialog#setListener() to allow you to set the listener of an already displayed dialog.

  • Fixed

    Fixes issues with corrupted documents when restoring data from checkpoints. (#12669)

  • Fixed

    Fixes an issue where text in form fields could be cut off. (#12494)

  • Fixed

    Fixes an issue where the UI wasn’t properly reset when setting a new document on a PdfActivity. (#12636)

  • Fixed

    Fixes an issue with rendering text while zoomed into specific documents. (#12392)

  • Fixed

    Fixes an issue on Chromebook devices where share dialog was only partially visible. (#12683)

  • Fixed

    Fixes an issue where underline annotations and text extraction did not work correctly for some documents. (#12070)

Instant

  • Fixed

    Fixes lock inversions that could cause live- or deadlocks when syncing finished while the document was still being parsed. (#11739)

  • Fixed

    Fixes an issue where note annotation positions and renderings were not updated after syncing with Instant. (#12641)

4.0.0 - 12 Oct 2017

See the announcement post.

Below is a summary of the API changes in this release. For a full list, with our suggested migration strategy for each API that has been changed or removed, please see the migration guide

  • Changed

    The minimum required version is now Android 4.4 (API Level 19).

  • Changed

    Updates dependency - Support libraries to 26.0.2, RxJava to 2.1.3.

  • API

    Adds PdfFragment#newInstance(PdfFragment fragment, PdfConfiguration configuration) that copies the state of the given PdfFragment to the new instance.

  • Added

    Adds support for AES encryption when saving or processing a document. (#4420)

  • API

    Adds API to save and restore checkpoint files for PDF documents that support checkpointing. (#11970, #12387)

    • API

      Adds PdfDocumentCheckpointer to handle saving and cleaning of document checkpoints using a configurable saving strategy.

    • API

      Adds PdfDocument#getCheckpointer() which returns the document’s checkpointer instance.

  • API

    Adds callbacks for annotation creation and removal. (#10865)

    • Changed

      Annotation creation, updates and removal are now notified via separate methods of AnnotationProvider.OnAnnotationUpdatedListener.

    • Removed

      Deprecates AnnotationManager.OnAnnotationUpdatedListener, use AnnotationProvider.OnAnnotationUpdatedListener instead. You can register annotation updated listener via PdfFragment#addOnAnnotationUpdatedListener and remove it via PdfFragment#removeOnAnnotationUpdatedListener.

  • API

    Adds DocumentListener#onPageUpdated that is called when contents of a page have changed. (#12544)

  • Added

    Adds a new icon set for all toolbar items, as well as replacing the note icons with vector versions. (#12257)

  • Added

    Adds consumerProguardFiles, which specifies all needed rules for ProGuard to work with. This means that all ProGuard rules introduced with PSPDFKit setup can be removed now. (#10402)

  • Added

    Adds ink eraser tool. (#9612)

    • Added

      Adds eraser button to the annotation creation toolbar (id: pspdf__annotation_creation_toolbar_item_eraser).

    • API

      Adds AnnotationTool#ERASER, eraser is enabled only when ink annotations are editable and eraser tool is in the list of enabled annotation tools.

    • API

      Adds EraserDefaultsProvider for controlling eraser thickness.

  • API

    Adds support for digital signatures. (#11225)

    • API

      Adds SignatureManager to manage trusted CA certificates and registered signers.

    • API

      Adds SignatureFormElement and SignatureFormField to represent signature forms in the PDF document.

    • API

      Adds DigitalSignatureInfo and DocumentSignatureInfo to access all signing related information on a document.

    • API

      Adds DigitalSignatureValidator to provide validation for DigitalSignatureInfo. The validation result is returned as DigitalSignatureValidationResult.

    • API

      Adds SignatureInfoDialog for showing the result of a signature verification.

    • API

      Adds getDocumentSignatureInfo() call to PdfDocument to easily check for signature information and validity in a PDF document.

    • API

      Adds abstract Signer class that is used to digitally sign a SignatureFormField.

    • API

      Adds MemorySigner for signing documents using a pre-loaded PrivateKeyEntry.

    • API

      Adds Pkcs12Signer for signing documents using a PKCS#12 file.

    • API

      Adds SigningFailedException for signalizing a failure during signing.

    • API

      Adds SigningStatus to express the result of a signing operation during a failure.

    • API

      Adds SignatureSignerDialog for signing a single signature form field using a Signer.

    • API

      Adds DocumentSigningListener to listen to signing events on the SignatureSignerDialog.

    • API

      Adds PdfFragment#setDocumentSigningListener() to override the default signing listener used by the fragment.

    • API

      Adds Signature#getSignerIdentifier() to return the unique identifier of an associated Signer.

    • API

      Adds Signature#toInkAnnotation(com.pspdfkit.document.PdfDocument, int, android.graphics.RectF) for creating an InkAnnotation whose bounding box fixes the given RectF.

    • API

      Moves Signature class from com.pspdfkit.annotations.signatures to com.pspdfkit.signatures.

    • API

      Moves SignaturePickerFragment class from com.pspdfkit.annotations.signatures to com.pspdfkit.signatures.

    • Changed

      The SignaturePickerFragment provides a new, cleaner UI flow, allowing users to pick signatures from a list, and store them to a database.

  • API

    Adds DocumentListener#onDocumentSaveCancelled that is being called when document saving is skipped. (#11950)

  • API

    Adds API and UI for creating link annotations from selected text. (#11296, #12092)

    • API

      Adds ‘Create link’ button to the text selection toolbar (id: pspdf__text_selection_toolbar_item_link) for creating links on top of the selected text (fires up a dialog).

    • API

      Adds TextSelectionController#createLinkAboveSelectedText() method for creating links above selected text (fires up a dialog).

    • API

      Adds LinkAnnotation constructor method for creating link annotations.

    • API

      Adds UriAction constructor for creating URI actions with specified URL string.

    • API

      Adds GoToAction constructor for creating GoTo actions with specified target page index.

    • API

      Adds setAction() method on LinkAnnotation class for setting an Action to be triggered when link annotation is clicked.

    • API

      Adds LinkAnnotationHighlighter which highlightes newly created link annotations.

  • API

    Adds API for controlling defaults for annotation tools. This extends existing annotation defaults API. (#12100)

    • API

      Adds API to set annotation defaults provider for AnnotationTool in AnnotationDefaultsManager. Setting annotation defaults provider for AnnotationTool overrides defaults defined for underlying AnnotationType when creating annotations.

    • API

      Replaces AnnotationType with AnnotationTool in AnnotationPreferencesManager methods.

  • API

    Adds USER_INTERFACE_VIEW_MODE_MANUAL providing total control over user interface visibility. (#11791)

  • API

    Unifies and improves naming for listeners. (#9447)

    • API

      Renames DownloadDocumentTask.DownloadedFileCallback to DownloadDocumentTask.OnFileDownloadedListener.

    • API

      Renames ExtractAssetTask.OnDocumentExtractedCallback to ExtractAssetTask.OnDocumentExtractedListener.

    • API

      Renames InstantPdfDocument#registerInstantDocumentListener to InstantPdfDocument#addInstantDocumentListener.

    • API

      Renames InstantPdfDocument#unregisterInstantDocumentListener to InstantPdfDocument#removeInstantDocumentListener.

    • API

      Renames InstantPdfFragment#registerInstantDocumentListener to InstantPdfFragment#addInstantDocumentListener.

    • API

      Renames InstantPdfFragment#unregisterInstantDocumentListener to InstantPdfFragment#removeInstantDocumentListener.

    • API

      Renames OnAnnotationProviderUpdatedListener#onAnnotationDeleted to OnAnnotationProviderUpdatedListener#onAnnotationRemoved.

    • API

      Renames AnnotationProvider.OnAnnotationProviderUpdatedListener to AnnotationProvider.OnAnnotationUpdatedListener.

    • API

      Renames AnnotationProvider#registerOnAnnotationProviderUpdatedListener to AnnotationProvider#addOnAnnotationUpdatedListener.

    • API

      Renames AnnotationProvider#unregisterOnAnnotationProviderUpdatedListener to AnnotationProvider#removeOnAnnotationUpdatedListener.

    • API

      Renames ActionResolver#registerDocumentActionListener to ActionResolver#addDocumentActionListener.

    • API

      Renames ActionResolver#unregisterDocumentActionListener to ActionResolver#removeDocumentActionListener.

    • API

      Renames NewPageFactory.OnNewPageReadyCallback to NewPageFactory.OnNewPageReadyListener.

    • API

      Renames PdfLibrary#registerLibraryIndexingListener to PdfLibrary#addLibraryIndexingListener.

    • API

      Renames PdfLibrary#unregisterLibraryIndexingListener to PdfLibrary#removeLibraryIndexingListener.

    • API

      Renames FormProvider#registerOnFormFieldUpdatedListener to FormProvider#addOnFormFieldUpdatedListener.

    • API

      Renames FormProvider#unregisterOnFormFieldUpdatedListener to FormProvider#removeOnFormFieldUpdatedListener.

    • API

      Renames FormProvider#registerOnFormTabOrderUpdatedListener to FormProvider#addOnFormTabOrderUpdatedListener.

    • API

      Renames FormProvider#unregisterOnFormTabOrderUpdatedListener to FormProvider#removeOnFormTabOrderUpdatedListener.

    • API

      Renames FormProvider#registerOnTextFormFieldUpdatedListener to FormProvider#addOnTextFormFieldUpdatedListener.

    • API

      Renames FormProvider#unregisterOnTextFormFieldUpdatedListener to FormProvider#removeOnTextFormFieldUpdatedListener.

    • API

      Renames FormProvider#registerOnButtonFormFieldUpdatedListener to FormProvider#addOnButtonFormFieldUpdatedListener.

    • API

      Renames FormProvider#unregisterOnButtonFormFieldUpdatedListener to FormProvider#removeOnButtonFormFieldUpdatedListener.

    • API

      Renames FormProvider#registerOnChoiceFormFieldUpdatedListener to FormProvider#addOnChoiceFormFieldUpdatedListener.

    • API

      Renames FormProvider#unregisterOnChoiceFormFieldUpdatedListener to FormProvider#removeOnChoiceFormFieldUpdatedListener.

    • API

      Renames DefaultDocumentEditorListener.UriValidationCallback to DefaultDocumentEditorListener.UriValidationListener.

    • API

      Renames PdfDocumentEditorListenerCallback to OnFileWriteCompleteListener.

    • API

      Renames PSPDFKitViews#setDocumentEditorListener to PSPDFKitViews#setPdfDocumentEditorListener.

    • API

      Renames PdfFragment#registerDocumentListener to PdfFragment#addDocumentListener.

    • API

      Renames PdfFragment#unregisterDocumentListener to PdfFragment#removeDocumentListener.

    • API

      Renames PdfFragment#registerDocumentScrollListener to PdfFragment#addDocumentScrollListener.

    • API

      Renames PdfFragment#unregisterDocumentScrollListener to PdfFragment#removeDocumentScrollListener.

    • API

      Renames PdfOutlineView.OnAnnotationTappedListener to PdfOutlineView.OnAnnotationTapListener and its onAnnotationTapped method to onAnnotationTap.

    • API

      Renames PdfOutlineView.OnOutlineElementTappedListener to PdfOutlineView.OnOutlineElementTapListener and its onOutlineElementTapped method to onOutlineElementTap.

    • API

      Renames PdfOutlineView#setOnAnnotationTappedListener to PdfOutlineView#setOnAnnotationTapListener.

    • API

      Renames PdfOutlineView#setOnOutlineElementTappedListener to PdfOutlineView#setOnOutlineElementTapListener.

    • API

      Renames PdfThumbnailGrid#setDocumentEditorListener to PdfThumbnailGrid#setPdfDocumentEditorListener.

    • API

      Renames PdfThumbnailGrid#registerDocumentEditingModeChangeListener to PdfThumbnailGrid#addOnDocumentEditingModeChangeListener.

    • API

      Renames PdfThumbnailGrid#unregisterDocumentEditingModeChangeListener to PdfThumbnailGrid#removeOnDocumentEditingModeChangeListener.

    • API

      Renames PdfThumbnailGrid#registerDocumentEditingPageSelectionChangeListener to PdfThumbnailGrid#addOnDocumentEditingPageSelectionChangeListener.

    • API

      Renames PdfThumbnailGrid#unregisterDocumentEditingPageSelectionChangeListener to PdfThumbnailGrid#removeOnDocumentEditingPageSelectionChangeListener.

    • API

      Renames ActionMenu#registerActionMenuListener to ActionMenu#addActionMenuListener.

    • API

      Renames ActionMenu#unregisterActionMenuListener to ActionMenu#removeActionMenuListener.

    • API

      Renames FormEditingBar#registerFormEditingBarLifecycleListener to FormEditingBar#addOnFormEditingBarLifecycleListener.

    • API

      Renames FormEditingBar#unregisterFormEditingBarLifecycleListener to FormEditingBar#removeOnFormEditingBarLifecycleListener.

    • API

      Renames PropertyInspectorCoordinatorLayoutController#registerPropertyInspectorLifecycleListener to PropertyInspectorCoordinatorLayoutController#addPropertyInspectorLifecycleListener.

    • API

      Renames PropertyInspectorCoordinatorLayoutController#unregisterPropertyInspectorLifecycleListener to PropertyInspectorCoordinatorLayoutController#removePropertyInspectorLifecycleListener.

    • API

      Renames BookmarkViewAdapter#registerBookmarkChangeListener to BookmarkViewAdapter#addBookmarkListener.

    • API

      Renames BookmarkViewAdapter#unregisterBookmarkChangeLister to BookmarkViewAdapter#removeBookmarkListener.

    • API

      Renames OnModeChangedListener#OnPageTransitionChanged to OnModeChangedListener#OnScrollModeChange.

    • API

      Renames OnModeChangedListener#OnScrollDirectionChanged to OnModeChangedListener#OnScrollDirectionChange.

    • API

      Renames OnModeChangedListener#OnPageLayoutChanged to OnModeChangedListener#OnPageLayoutChange.

    • API

      Renames OnModeChangedListener#OnThemeChanged to OnModeChangedListener#OnThemeChange.

    • API

      Renames OnModeChangedListener#OnScreenTimeoutChanged to OnModeChangedListener#OnScreenTimeoutChange.

    • API

      Renames AnnotationManager#registerAnnotationSelectedListener to AnnotationManager#addOnAnnotationSelectedListener.

    • API

      Renames AnnotationManager#unregisterAnnotationSelectedListener to AnnotationManager#removeOnAnnotationSelectedListener.

    • API

      Renames AnnotationManager#registerAnnotationDeselectedListener to AnnotationManager#addOnAnnotationDeselectedListener.

    • API

      Renames AnnotationManager#unregisterAnnotationDeselectedListener to AnnotationManager#removeOnAnnotationDeselectedListener.

    • API

      Renames AnnotationManager#registerAnnotationUpdatedListener to AnnotationManager#addOnAnnotationUpdatedListener.

    • API

      Renames AnnotationManager#unregisterAnnotationUpdatedListener to AnnotationManager#removeOnAnnotationUpdatedListener.

    • API

      Renames AnnotationManager#registerAnnotationCreationModeChangeListener to AnnotationManager#addOnAnnotationCreationModeChangeListener.

    • API

      Renames AnnotationManager#unregisterAnnotationCreationModeChangeListener to AnnotationManager#removeOnAnnotationCreationModeChangeListener.

    • API

      Renames AnnotationManager#registerAnnotationCreationModeSettingsChangeListener to AnnotationManager#addOnAnnotationCreationModeSettingsChangeListener.

    • API

      Renames AnnotationManager#unregisterAnnotationCreationModeSettingsChangeListener to AnnotationManager#removeOnAnnotationCreationModeSettingsChangeListener.

    • API

      Renames AnnotationManager#registerAnnotationEditingModeChangeListener to AnnotationManager#addOnAnnotationEditingModeChangeListener.

    • API

      Renames AnnotationManager#unregisterAnnotationEditingModeChangeListener to AnnotationManager#removeOnAnnotationEditingModeChangeListener.

    • API

      Renames DocumentEditingManager#registerDocumentEditingModeChangeListener to DocumentEditingManager#addOnDocumentEditingModeChangeListener.

    • API

      Renames DocumentEditingManager#unregisterDocumentEditingModeChangeListener to DocumentEditingManager#removeOnDocumentEditingModeChangeListener.

    • API

      Renames DocumentEditingManager#registerDocumentEditingPageSelectionChangeListener to DocumentEditingManager#addOnDocumentEditingPageSelectionChangeListener.

    • API

      Renames DocumentEditingManager#unregisterDocumentEditingPageSelectionChangeListener to DocumentEditingManager#removeOnDocumentEditingPageSelectionChangeListener.

    • API

      Renames FormManager#registerFormElementSelectedListener to FormManager#addOnFormElementSelectedListener.

    • API

      Renames FormManager#unregisterFormElementSelectedListener to FormManager#removeOnFormElementSelectedListener.

    • API

      Renames FormManager#registerFormElementDeselectedListener to FormManager#addOnFormElementDeselectedListener.

    • API

      Renames FormManager#unregisterFormElementDeselectedListener to FormManager#removeOnFormElementDeselectedListener.

    • API

      Renames FormManager#registerFormElementUpdatedListener to FormManager#addOnFormElementUpdatedListener.

    • API

      Renames FormManager#unregisterFormElementUpdatedListener to FormManager#removeOnFormElementUpdatedListener.

    • API

      Renames FormManager#registerFormElementEditingModeChangeListener to FormManager#addOnFormElementEditingModeChangeListener.

    • API

      Renames FormManager#unregisterFormElementEditingModeChangeListener to FormManager#removeOnFormElementEditingModeChangeListener.

    • API

      Renames FormManager#registerFormElementClickedListener to FormManager#addOnFormElementClickedListener.

    • API

      Renames FormManager#unregisterFormElementClickedListener to FormManager#removeOnFormElementClickedListener.

    • API

      Renames TextSelectionManager#registerTextSelectionModeChangeListener to TextSelectionManager#addOnTextSelectionModeChangeListener.

    • API

      Renames TextSelectionManager#unregisterTextSelectionModeChangeListener to TextSelectionManager#removeOnTextSelectionModeChangeListener.

    • API

      Renames TextSelectionManager#registerTextSelectionChangeListener to TextSelectionManager#addOnTextSelectionChangeListener.

    • API

      Renames TextSelectionManager#unregisterTextSelectionChangeListener to TextSelectionManager#removeOnTextSelectionChangeListener.

    • API

      Changes ContextualToolbar#setToolbarCoordinatorController to accept @Nullable ToolbarCoordinatorLayoutController, so you can clear it by passing null.

    • API

      Removes ContextualToolbar#removeToolbarCoordinatorController, use ContextualToolbar#setToolbarCoordinatorController(null) instead.

    • API

      Changes ContextualToolbar#setOnMenuItemClickListener to accept @Nullable OnMenuItemClickListener, so you can clear it by passing null.

    • API

      Removes ContextualToolbar#removeOnMenuItemClickListener, use ContextualToolbar#setOnMenuItemClickListener(null) instead.

    • API

      Changes ContextualToolbar#setOnMenuItemLongClickListener to accept @Nullable OnMenuItemLongClickListener, so you can clear it by passing null.

    • API

      Removes ContextualToolbar#removeOnMenuItemClickListener, use ContextualToolbar#setOnMenuItemLongClickListener(null) instead.

  • Changed

    Increases touch target size of next and previous search result buttons. (#11454)

  • Changed

    Improves OutlineListView loading time when opening large documents providing fast and smooth UI and removing from the main thread any heavy computation. (#11839)

  • Changed

    Improves performance of PdfDocument methods getPageSize(), getPageRotation(), and getPageLabel(). (#12186)

  • Fixed

    Improves shape annotations selection performance. (#12032)

    • Fixed

      Fixes a possible OOM exception that was occurring on some devices when using large zoom scale while having shape annotation selected.

    • Changed

      Updates to selected ink annotations are now redrawn much faster.

  • Changed

    Improves exact phrase matching in PdfLibrary. (#12261)

  • Changed

    Improves FloatingHintEditText.EditTextListener#onErrorDismissed flow, so it is not called on each text change event.

  • Changed

    Better memory handling for big documents. (#12045)

  • API

    Replaces framework’s Optional with RxJava2 Maybe. (#10691)

    • API

      Return type changes for AnnotationProvider#getAnnotationAsync(int, int) from Observable<Optional<Annotation>> to Maybe<Annotation>.

    • API

      Return type changes for AnnotationProvider#getAnnotation(int, int) from Optional<Annotation> to @Nullable Annotation.

    • API

      Return type changes for FormProvider#getFormElementForAnnotationAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.

    • API

      Return type changes for FormProvider#getFormElementForAnnotation() from Optional<FormElement> to @Nullable FormElement.

    • API

      Return type changes for FormProvider#getFormFieldWithFullyQualifiedNameAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.

    • API

      Return type changes for FormProvider#getFormFieldWithFullyQualifiedName() from Optional<FormElement> to @Nullable FormElement.

    • API

      Return type changes for FormProvider#getFormElementWithNameAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.

    • API

      Return type changes for FormProvider#getFormElementWithName() from Optional<FormElement> to @Nullable FormElement.

    • API

      Return type changes for WidgetAnnotation#getFormElementAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.

    • API

      Return type changes for WidgetAnnotation#getFormElement() from Optional<FormElement> to @Nullable FormElement.

  • API

    Renames Annotation.OBJECT_NUMBER_NOT_ATTACHED_TO_PAGE to Anntoation.OBJECT_NUMBER_NOT_SET. (#11339)

  • API

    Renames HUD terminology to User Interface. (#12003)

    • API

      Renames HudViewMode enum to UserInterfaceViewMode and all its values are starting with USER_INTERFACE now.

    • API

      Renames getHudViewMode() to getUserInterfaceViewMode() on PdfActivityConfiguration, PdfActivity and PdfActivityApi. Its new return type is now UserInterfaceViewMode.

    • API

      Renames setHudViewMode(HudViewMode) to setUserInterfaceViewMode(UserInterfaceViewMode) on PdfActivityConfiguration, PdfActivity and PdfActivityApi.

    • API

      Renames HudViewMode to UserInterfaceViewMode on PdfActivityConfiguration.Builder.

  • API

    Changes type of thickness property of AnnotationCreationController from int to float. (#12291)

  • API

    Drops deprecated fields and methods. (#11896)

    • API

      Removes PdfActivityConfiguration.Builder#diskCacheSize(), PdfConfiguration.Builder#diskCacheSize() - disk cache is not supported.

    • API

      Removes PdfDocument#getUri() and PdfDocument#getUriList().

    • API

      Removes PdfYouTubeActivity#ARG_YOUTUBE_URL, use #ARG_MEDIA_URI for passing MediaUri objects through intent.

    • API

      Removes PdfMediaDialog#ARG_URI, use #ARG_MEDIA_URI for passing MediaUri objects through intent.

    • API

      Removes PrintOptions(PdfProcessorTask.AnnotationProcessingMode, ..) constructors, use PrintOptions(boolean, ..) instead.

    • API

      Removed PdfFragment#enterAnnotationCreationMode(AnnotationType), use enterAnnotationCreationMode(AnnotationTool) instead.

    • API

      Removed PdfFragment#clearTextSelection(), use exitCurrentlyActiveMode() instead.

    • API

      Removed PdfFragment#setTextSelection(), use enterTextSelectionMode() instead.

    • API

      Removed DocumentSharingManager#generateDocumentName(), use getTitle() instead.

  • Fixed

    Fixes a layout issue when entering long passwords. (#11792)

  • Fixed

    Fixes not scrolling to entire page when going through search results using a continuous layout manager. (#11454)

  • Fixed

    Fixes an issue when rendering decomposed UTF-8 strings (#11985)

  • Fixed

    Fixes the navigation buttons not being restored after an orientation change. (#12211)

  • Fixed

    Fixes form fields being rendered when the license doesn’t have PDF forms enabled. (#12537)

  • Fixed

    Fixes a crash that could happen when moving files to the device’s download folder on Android 8.0 Oreo or newer. (#12549)

  • Fixed

    Fixes resizing ink annotations in Instant documents being slow. (#12422)

  • Fixed

    Fixes PdfPasswordView being broken, while entering text on devices with a small screen. (#12210)

  • Fixed

    Fixes an issue where adding annotation after opening annotation list view is blocked in large documents. (#12010)

  • Fixed

    Fixes an issue where invalid value (-1) was being passed to setPage() in PdfFragment on document recreation. (#11888)

  • Fixed

    Fixes extra space after non-latin characters in form fields. (#11874)

  • Fixed

    Fixes an issue where document loading progress was not restored after rotation. (#11840)

  • Fixed

    Fixes an issue saving an original document after signing it. (#11911)

  • Fixed

    Fixes an issue where document saving blocked the main thread. (#11802)

  • Fixed

    Fixes an issue where horizontal resize guide was drawn incorrectly. (#12065)

  • Fixed

    Fixes an issue where NewPageDialog was not displaying correctly in RTL mode. (#10039)

  • Fixed

    Fixes an issue where navigation buttons were still clickable after PdfActivityConfiguration.hideNavigationButtons(). (#12023)

  • Fixed

    Fixes an issue where current page is not properly restored after configuration changes, in double page mode. (#12146)

  • Fixed

    Fixes an issue where flattening a document may generate warnings when it is open in third party readers. (#12066)

  • Fixed

    Fixes an issue where it wasn’t possible to unset excluded annotations from renderer. (#12418)

  • Fixed

    Fixes an issue where taps on small form elements (such as checkboxes) were inaccurate. (#12545)

  • API

    Improves highlight annotations by adding additional padding to them. (#12548)

    • API

      Adds applyPadding parameter to PDFDocument#getPageTextRects() to make the return value better suited for being displayed.

  • Fixed

    Fixes an issue where adding image annotations to page failed randomly. (#12603)

Instant

  • Added

    Adds more granular control over automatic document syncing. (#12292)

    • Added

      Adds setListenToServerChanges to InstantPdfDocument to control whether to listen to server changes.

    • Added

      Adds setDelayForSyncingLocalChanges to InstantPdfDocument to control delay of automatic syncing of local changes or to disable automatic syncing of local changes altogether.

    • Removed

      Deprecates setAutomaticSyncEnabled in InstantPdfDocument. Use setListenToServerUpdates and setDelayForSyncingLocalChanges instead.

    • Added

      Adds setListenToServerChangesWhenVisible to InstantPdfFragment to control whether to listen to server changes when fragment is visible. It’s enabled by default.

  • Added

    Adds consumerProguardFiles, which specifies all needed rules for ProGuard to work with. This means that all ProGuard rules introduced with PSPDFKit Instant setup can be removed now.

  • Fixed

    Fixes an issue where an incorrect values could be persisted as PDF object IDs. (#11689)

  • Fixed

    Fixes an issue where annotation updates caused by server changes were not notified via OnAnnotationProviderUpdated. (#12420)

3.3.3 - 31 Aug 2017

  • API

    Adds styling options for text selection. (#11694)

    • API

      Adds pspdf__textSelectionStyle attribute for setting text selection style.

    • API

      Adds pspdf__highlightColor attribute under the pspdf__textSelectionStyle style for setting text selection highlight color.

    • API

      Adds pspdf__leftHandleColor attribute under the pspdf__textSelectionStyle style for setting text selection left handle color.

    • API

      Adds pspdf__rightHandleColor attribute under the pspdf__textSelectionStyle style for setting text selection right handle color.

  • Fixed

    Fixes the items padding on the toolbars. (#11695)

    • Changed

      Back button is slightly larger and padding is fixed so that it matches the default Android metrics.

  • Fixed

    Fixes listener management methods on PdfFragment (register*Listener()/unregister*Listener()) which were sometimes not executed in the order they were called. (#11828)

Instant

  • Added

    Adds support for note annotations. (#11704)

  • Changed

    InstantPdfFragment now shows document download progress. (#11508)

3.3.2 - 17 Aug 2017

  • API

    Adds PdfFragment#getVisiblePdfRect(Rect rect, int pageIndex) that sets given rect to the visible portion of the given page. (#11601)

  • API

    Adds support for converting Annotations to Instant JSON and vice versa. (#11157)

    • API

      Adds Annotation#toInstantJson() for annotation to Instant JSON format conversion.

    • API

      Adds AnnotationProvider#createAnnotationFromInstantJson() for creating annotations from Instant JSON.

  • API

    Adds listener to allow custom handling of long clicks. (#11662)

    • API

      Adds setOnDocumentLongPressListener(OnDocumentLongPressListener) call to PdfFragment class.

  • Fixed

    Fixes an issue where extracted annotations where not rendered properly in grayscale and inverted color mode. (#9621)

  • Changed

    Improves form text rendering with non-latin characters. (#10996)

  • Changed

    Improves XFDF performance and compliance. (#11693)

  • Changed

    Improves performance of loading forms. (#11389)

  • Fixed

    Fixes an issue where property inspector width was calculated incorrectly. (#11676)

  • Fixed

    Fixes an issue where the use of transparent colors in property inspector was not prevented. (#11010)

  • Changed

    Improves the rendering of the non-embedded Courier font. (#11228)

  • Fixed

    Fixes an issue in Hud View Modes Example of the example catalog app where navigation buttons were not properly hidden. (#11744)

  • Fixed

    Fixes an issue where password protected document was not reopened with previously entered password after restoring PdfFragment. (#11774)

  • Fixed

    Fixes an unhandled NullPointerException thrown while restoring navigation history in non-retained PdfFragment. (#11775)

  • Fixed

    Fixes a bug where clicking on link annotations doesn’t provide any feedback. (#11794)

  • Fixed

    Fixes an issue where state was not restored correctly when using activities that handle orientation changes themselves. (#11734)

  • Fixed

    Fixes an issue where PDF renderer used recycled bitmap. (#11640)

  • Changed

    Improves annotation selection border and annotation selection handle colors with a better high level contrast. (#11830)

Instant

  • Added

    Adds onDocumentInvalidated and onDocumentCorrupted to InstantDocumentListener. (#11449)

    • Changed

      onDocumentInvalidated is called when document has been invalidated due to being garbage collected or its data being removed.

    • Changed

      onDocumentCorrupted is called when Instant has detected corruption in locally stored document data.

  • Added

    Adds logout button to Instant example. (#11405)

  • Fixed

    Fixes an incorrect log message format. (#11634)

  • Fixed

    Fixes deletion of multiple annotations at once. (#11651)

  • Fixed

    Fixes a failed assertion due to an improper format string. (#11747)

3.3.1 - 26 Jul 2017

  • Fixed

    Fixes an issue where the downloaded Instant document could not be opened while offline. (#11560)

  • Fixed

    Fixes an unhandled NullPointerException thrown while displaying the contextual toolbar. (#11448)

  • Fixed

    Fixes a possible crash due to initialization race condition. (#11516)

  • Fixed

    Fixes a synchronization issue where thumbnail bar was not scrolling correctly to a selected page. (#10458)

  • Fixed

    Fixes a possible crash where framework was required before its initialization completed by the content provider. (#11537)

  • Fixed

    Fixes a bug where a link pointing to local data was recognized as media although it’s not a media file. (#11530)

  • Fixed

    Fixes an issue where download job continued even after download progress dialog was dismissed. (#10237)

Instant

  • Changed

    Optimizes battery usage while syncing annotations with Instant. (#11533)

  • Fixed

    Fixes incorrect handling/reporting of an authentication error during sync. (#11386)

3.3.0 - 20 Jul 2017

See the announcement post.

  • Added

    Adds Instant: an easy-to-integrate solution to connect your app to your PSPDFKit Server to download documents and synchronize annotations between users. Everything’s synced in an instant!

  • API

    Adds support for writing and parsing XFDF files, see XfdfFormatter class with parseXfdf[Async]() and writeXfdf[Async]() methods. (#5575)

  • API

    Adds ProgressDataProvider which can optionally be implemented by any DataProvider to support displaying the loading progress of not yet available documents. (#11032)

  • API

    DownloadProgressFragment is now extensible. Check out the CustomDocumentDownloadExample in the example catalog app for an example implementation. (#11214)

  • API

    Adds PdfProcessorTask.changeFormsOfType to configure how form elements should be processed. (#11096)

  • API

    Adds TextMarkupAnnotation#getHighlightedText() to easily retrieve highlighted text for a markup annotation. (#11288)

  • Added

    Adds support for annotation notes. (#9611)

  • Added

    Adds OnAnnotationProviderUpdatedListener for listening to annotation creation, update and deletion events on AnnotationProvider. (#11149)

  • Changed

    Improves RTL language support. (#11013, #9883)

  • Changed

    Improves memory management when rendering forms. (#11176)

  • Changed

    Video playback is now enabled by default if device is deemed secure, meaning it’s running at least Android Marshmallow (API 23+) with security patch dating Feb 1st, 2016 or newer. (#11345)

  • Fixed

    Fixes very rare issue on saving files repeatedly. (#9477)

  • Fixed

    Fixes the crash that occurs when trying to display document navigation while the document is not ready. (#11129)

  • Fixed

    Fixes the crash that occurs when trying to zoom an inline video being played in the document. (#11357)

  • Fixed

    Fixes an issue where custom styles were not applied correctly. (#11139)

  • Fixed

    Fixes the crash occurring when navigation buttons are not present in the custom layout despite being disabled by the configuration. (#11273)

  • Fixed

    Fixes the annotation creation toolbar being dismissed on configuration change. (#10990)

  • Fixed

    Fixes minor accessibility issues where close button description was missing and color contrast when editing notes was unfriendly. (#11292)

  • Fixed

    Fixes minor accessibility issues where close button description was missing and color contrast was too low when editing notes. (#11292)

  • Fixed

    Fixes an issue where note icons selection was not properly updated. (#11450)

3.2.1 - 21 Jun 2017

  • Changed

    Updates dependency - RxJava was updated to 2.1.1.

  • Fixed

    Fixes missing dependency issue when adding SDK to application. (#11031)

  • Fixed

    Fixes a possible crash due to initialization race condition. (#10745)

3.2.0 - 15 Jun 2017

See the announcement post.

  • API

    Adds PdfConfiguration.Builder#setAutomaticLinkGenerationEnabled and PdfDocument#setAutomaticLinkGenerationEnabled to enable automatic detection of web links in the document. (#9865)

  • API

    Adds PdfDocument#setWatermarkTextFilteringEnabled to exclude watermark text from selection and text extraction methods. (#10832)

  • API

    Adds PdfConfiguration.Builder#automaticallyGenerateLinks to enable automatic detection of web links in the document.

  • API

    Adds ImagePicker#wasStarted which returns a boolean whether an image picker request was already started and is running or not. (#10756)

  • API

    ImagePicker class is now final. (#10947)

  • Added

    Adds settings menu item for page transition, page layout, scroll direction and screen timeout: (#10345)

    • Added

      Adds PdfActivityConfiguration.Builder#[show/hide]SettingsMenu to show and hide setting menu icon.

    • Added

      Adds PdfActivityConfiguration.Builder#setSettingsMenuItems(EnumSet<SettingsMenuItemType>) to select which items to show.

    • Added

      Adds PdfActivityConfiguration#getDarkTheme to retrieve theme resource used to override dark theme of the launched activity.

    • Added

      Adds PdfActivityConfiguration#isSettingsItemEnabled to check whether the settings menu is shown or not.

    • Added

      Adds PdfActivityConfiguration#getSettingsMenuItemShown to check which items are shown in the settings menu.

    • Added

      Adds PdfActivityConfiguration#Builder(PdfActivityConfiguration, int themeRes, int themeDarkRes) to create a new builder from existing configuration with new default and new dark theme.

    • Added

      Adds PdfActivityConfiguration.Builder#themeDark(int) to set a new dark theme used to override predefined dark activity theme.

    • Added

      Adds PdfActivityConfiguration.Builder#themeMode(ThemeMode) to set the used theme mode.

  • Added

    Adds basic support for playing media annotations in documents: (#10769)

    • Added

      Adds PdfConfiguration.Builder#playingMultipleMediaInstancesEnabled() providing control over whether the multiple media files can be played at the same time.

    • Added

      Adds RichMediaAnnotation class representing RichMedia annotations.

    • Added

      Adds ScreenAnnotation class representing Screen annotations.

    • Changed

      Link annotations pointing to local media files, now play embedded on the page as well.

  • Changed

    Allows navigation between search results while search is still in progress (in case of inline search). (#10561)

  • Fixed

    Fixes an issue with saving files that did not conform completely to the PDF format. (#10712)

  • Fixed

    Fixes a leak when rendering bitmaps. (#10777, #10847)

  • Fixed

    Fixes an issue with saving link annotations. (#10355)

  • Fixed

    Fixes a crash on Android versions lower than 5.0. (#10822)

  • Fixed

    Fixes issue while saving PDF files. (#10849)

  • Fixed

    Fixes issue that sometimes prevented edited documents from saving via Save As... option on document editor. (#10771)

  • Fixed

    Fixes page tiles not being fully refreshed upon configuration change. (#10772)

  • Fixed

    Fixes TTS text reading by removing pauses between text lines in the document. (#10889)

  • Fixed

    Fixes a possible crash when retrieving active annotation editing tool before all views are properly instantiated. (#10939)

3.1.1 - 25 May 2017

  • API

    Adds ImagePicker class. (#9287)

    • API

      Removes ImagePickerFragment, create ImagePicker instance and then use #startImageCapture() or #startImageGallery() to start picking/capturing image.

    • API

      ImagePickerFragment.OnImagePickedListener is now ImagePicker.OnImagePickedListener class.

      • API

        onImagePickerError(int resultCode, @Nullable Intent data) is now onImagePickerUnknownError().

      • API

        Adds onCameraPermissionDeclined(boolean permanent) for warning about missing camera permissions.

    • API

      Empty OnImagePickedListener implementation called OnImagePickedListenerAdapter is now SimpleOnImagePickerListener.

    • Changed

      See DocumentProcessingExampleActivity in catalog for new image picker API usage.

  • Added

    Adds listener to allow custom handling of PDF actions. (#9964)

    • API

      Adds DocumentActionListener class which allows custom handling of PDF actions in onActionExecuted() class.

    • API

      Adds registerDocumentActionListener() and unregisterDocumentActionListener() calls to PdfFragment class.

    • API

      Adds classes for new action types - GoToRemoteAction, GoToEmbeddedAction, JavaScriptAction, LaunchAction and ImportDataAction.

  • Added

    Adds the ability to customize selected item colors in forms. (#10331).

    • Added

      Adds pspdf__itemHighlightColor theme attribute to pspdf_FormSelection style.

    • API

      Adds formItemHighlightColor() call to PageRenderConfiguration constructor.

  • Added

    Adds handling for new named actions - OUTLINE, PRINT, FIND, SEARCH and SAVEAS. (#10586)

  • Removed

    Removes deprecated MemoryDataProvider and PdfActivityConfiguration#showThumbnailBar()/#hideThumbnailBar() (use setThumbnailBarMode() instead).

  • Changed

    Changes default selection in sharing and printing dialog from Single Page - current to All pages. (#10563)

  • Changed

    Improves saving behavior around encrypted files. (#9088)

  • Changed

    Improves performance when reading page labels (#10575)

  • Changed

    Improves performance around reading PDF files. (#10565)

  • Fixed

    Fixes annotations with the NoView and Print flags not being rendered. (#10549)

  • Fixed

    Fixes a crash when parsing invalid metadata. (#10611)

  • Fixed

    Fixes an issue where radio buttons were rendered incorrectly (#10631)

  • Fixed

    Fixes issues in PdfActivityConfiguration and PdfConfiguration. (#10649)

    • Fixed

      Fixes infinite recursion inside PdfActivityConfiguration.Builder#setCustomerSignatureFeatureEnabled().

    • Fixed

      Fixes PdfConfiguration copy constructor which was not copying property isCustomerSignatureFeatureEnabled().

  • Fixed

    Fixes an issue where BaseFileProvider would return paths to the internal app directory. (#10636)

  • Fixed

    Fixes an issue where FormProvider leaked memory. (#10693)

  • Fixed

    Fixes an issue where page position wasn’t properly restored in some rare cases. (#10708, #10700)

3.1.0 - 11 May 2017

See the announcement post.

Migration guide.

  • API

    Adds support for scrollable thumbnail bar. (#7376)

    • API

      Adds PdfActivityConfiguration.Builder#setThumbnailBarMode(ThumbnailBarMode) for selecting thumbnail bar mode.

    • API

      Deprecates PdfActivityConfiguration.Builder#showThumbnailBar and PdfActivityConfiguration.Builder#hideThumbnailBar. Use above method instead.

    • API

      Deprecates PdfActivityConfiguration.Builder#isThumbnailBarEnabled. Use PdfActivityConfiguration.Builder#getThumbnailBarMode() to get the thumbnail bar mode set on the activity.

  • API

    Removes theme configuration classes. Themes should be applied through Android’s XML theme support or by directly accessing UI elements. (#7092)

    • API

      PdfConfiguration.Builder() constructors do not need the Context to be provided as a parameter anymore.

    • API

      PdfActivityConfiguration.Builder() secondary constructors do not need the Context to be provided as a parameter anymore.

    • API

      Adds PdfActivity#getActivityMenuManager that exposes PdfActivityMenuManager object, which you can use to control activity menu icons and colors programmatically (theme equivalent is using attributes declared in pspdf__ActionBarIcons and setting it through pspdf__actionBarIconsStyle):

      • API

        Adds PdfActivityMenuManager#[set/get]ToolbarIconsColor(), also controlled by pspdf__iconsColor.

      • API

        Adds PdfActivityMenuManager#[set/get]ToolbarIconsColorActivated(), also controlled by pspdf__iconsColorActivated.

      • API

        Adds PdfActivityMenuManager#[set/get]OutlineIcon(), also controlled by pspdf__outlineIcon.

      • API

        Adds PdfActivityMenuManager#[set/get]OutlineIconActivated(), also controlled by pspdf__outlineIconActivated.

      • API

        Adds PdfActivityMenuManager#[set/get]SearchIcon(), also controlled by pspdf__searchIcon.

      • API

        Adds PdfActivityMenuManager#[set/get]SearchIconActivated(), also controlled by pspdf__searchIconActivated.

      • API

        Adds PdfActivityMenuManager#[set/get]ThumbnailGridIcon(), also controlled by pspdf__gridIcon.

      • API

        Adds PdfActivityMenuManager#[set/get]ThumbnailGridIconActivated(), also controlled by pspdf__gridIconActivated.

      • API

        Adds PdfActivityMenuManager#[set/get]EditAnnotationsIcon(), also controlled by pspdf__editAnnotationsIcon.

      • API

        Adds PdfActivityMenuManager#[set/get]EditAnnotationsIconActivated(), also controlled by pspdf__editAnnotationsIconActivated.

      • API

        Adds PdfActivityMenuManager#[set/get]ShareIcon(), also controlled by pspdf__shareIcon.

      • API

        Adds PdfActivityMenuManager#[set/get]PrintIcon(), also controlled by pspdf__printIcon.

    • API

      Removes DocumentThemeConfiguration, uses attributes from pspdf__SearchResultHighlighter attribute set (specified by theme attribute pspdf__searchResultHighlighterStyle) along with added methods:

      • API

        Adds SearchResultHighlighter#[set/get]SearchResultBackgroundColor(), also controlled by pspdf__searchResultBackgroundColor.

      • API

        Adds SearchResultHighlighter#[set/get]SearchResultBorderColor(), also controlled by pspdf__searchResultBorderColor.

      • API

        Adds SearchResultHighlighter#[set/get]SearchResultBorderWidth(), also controlled by pspdf__searchResultBorderWidth.

      • API

        Adds SearchResultHighlighter#[set/get]SearchResultPadding(), also controlled by pspdf__searchResultPadding.

      • API

        Adds SearchResultHighlighter#[set/get]SearchResultAnnotationPadding(), also controlled by pspdf__searchResultAnnotationPadding.

      • API

        Adds SearchResultHighlighter#[set/get]SearchResultAnimationPadding(), also controlled by pspdf__searchResultAnimationPadding.

      • API

        Adds SearchResultHighlighter#[set/get]SearchResultCornerRadiusToHeightRatio(), also controlled by pspdf__searchResultCornerRadiusToHeightRatio.

      • API

        Adds SearchResultHighlighter#[set/get]SearchResultCornerRadiusMin(), also controlled by pspdf__searchResultCornerRadiusMin.

      • API

        Adds SearchResultHighlighter#[set/get]SearchResultCornerRadiusMax(), also controlled by pspdf__searchResultCornerRadiusMax.

    • API

      Removes ThumbnailBarThemeConfiguration:

      • API

        For default static thumbnail bar, uses attributes from pspdf__ThumbnailBar attribute set (specified by theme attribute pspdf__thumbnailBarStyle).

      • API

        For scrollable thumbnail bar, uses attributes from pspdf__ScrollableThumbnailBar attribute set (specified by theme attribute pspdf__scrollableThumbnailBarStyle).

      • API

        Adds PdfThumbnailBar#[set/get]BackgroundColor().

      • API

        Adds PdfThumbnailBar#[set/get]ThumbnailWidth().

      • API

        Adds PdfThumbnailBar#[set/get]ThumbnailHeight().

      • API

        Adds PdfThumbnailBar#[set/get]ThumbnailBorderColor().

      • API

        Adds PdfThumbnailBar#[set/get]SelectedThumbnailBorderColor().

    • API

      Adds PdfFragment#[set/get]BackgroundColor() for setting a background color on the fragment (extracted from DocumentThemeConfiguration), also configurable in the theme under the pspdf__backgroundColor attribute.

    • API

      Adds PdfFragment#setPasswordView(PdfPasswordView) and PdfFragment#getPasswordView() methods for controlling PdfPasswordView set on the fragment.

    • API

      Removes PasswordViewThemeConfiguration, uses attributes from pspdf__PasswordView attribute set (specified by theme attribute pspdf__passwordViewStyle) along with added methods:

      • API

        Adds PdfPasswordView#[set/get]Color(), also controlled by pspdf__color.

      • API

        Adds PdfPasswordView#[set/get]HintColor(), also controlled by pspdf__hintColor.

      • API

        Adds PdfPasswordView#[set/get]ErrorColor(), also controlled by pspdf__errorColor.

      • API

        Adds PdfPasswordView#[set/get]FloatingHintColor(), also controlled by pspdf__floatingHintColor.

      • API

        Adds PdfPasswordView#[set/get]IconResourceId(), also controlled by pspdf__icon.

      • API

        Adds PdfPasswordView#[set/is]IconTintingEnabled(), also controlled by pspdf__iconTintingEnabled.

    • API

      Removes InlineSearchThemeConfiguration, uses attributes from pspdf__SearchViewInline attribute set (specified by theme attribute pspdf__inlineSearchStyle) along with added methods:

      • API

        Adds PdfSearchViewInline#[set/get]TextColor(), also controlled by pspdf__textColor.

      • API

        Adds PdfSearchViewInline#[set/get]HintTextColor(), also controlled by pspdf__hintTextColor.

      • API

        Adds PdfSearchViewInline#[set/get]NavigationTextColor(), also controlled by pspdf__navigationTextColor.

      • API

        Adds PdfSearchViewInline#[set/get]PrevIconColorTint(), also controlled by pspdf__prevIconColorTint.

      • API

        Adds PdfSearchViewInline#[set/get]NextIconColorTint(), also controlled by pspdf__nextIconColorTint.

      • API

        Adds PdfSearchViewInline#[set/get]BackIconColorTint(), also controlled by pspdf__backIconColorTint.

      • API

        Adds PdfSearchViewInline#[set/get]PrevIcon(), also controlled by pspdf__prevIconDrawable.

      • API

        Adds PdfSearchViewInline#[set/get]NextIcon(), also controlled by pspdf__nextIconDrawable.

    • API

      Removes ModularSearchThemeConfiguration, uses attributes from pspdf__SearchViewModular attribute set (specified by theme attribute pspdf__modularSearchStyle) along with added methods:

      • API

        Adds PdfSearchViewModular#[set/get]BackgroundColor(), also controlled by pspdf__backgroundColor.

      • API

        Adds PdfSearchViewModular#[set/get]InputFieldTextColor(), also controlled by pspdf__inputFieldTextColor.

      • API

        Adds PdfSearchViewModular#[set/get]InputFieldHintColor(), also controlled by pspdf__inputFieldHintColor.

      • API

        Adds PdfSearchViewModular#[set/get]SeparatorColor(), also controlled by pspdf__separatorColor.

      • API

        Adds PdfSearchViewModular#[set/get]ListItemBackgroundColor(), also controlled by pspdf__listItemBackgroundColor.

      • API

        Adds PdfSearchViewModular#[set/get]ListItemTitleColor(), also controlled by pspdf__listItemTitleColor.

      • API

        Adds PdfSearchViewModular#[set/get]ListItemSubtitleColor(), also controlled by pspdf__listItemSubtitleColor.

      • API

        Adds PdfSearchViewModular#[set/get]ListSelector(), also controlled by pspdf__listItemSelector.

      • API

        Adds PdfSearchViewModular#[set/get]HighlightBackgroundColor(), also controlled by pspdf__highlightBackgroundColor.

      • API

        Adds PdfSearchViewModular#[set/get]HighlightBorderColor(), also controlled by pspdf__highlightBorderColor.

      • API

        Adds PdfSearchViewModular#[set/get]HighlightTextColor(), also controlled by pspdf__highlightTextColor.

    • API

      Removes OutlineViewThemeConfiguration, uses attributes from pspdf__OutlineView attribute set (specified by theme attribute pspdf__outlineViewStyle) along with added methods:

      • API

        Adds PdfOutlineView#[set/get]BackgroundColor(), also controlled by pspdf__backgroundColor.

      • API

        Adds PdfOutlineView#[set/get]ListSelector(), also controlled by pspdf__listItemSelector.

      • API

        Adds PdfOutlineView#[set/get]DefaultTextColor(), also controlled by pspdf__defaultTextColor.

      • API

        Adds PdfOutlineView#[set/get]BookmarksBarBackgroundColor(), also controlled by pspdf__bookmarksBarBackgroundColor.

      • API

        Adds PdfOutlineView#[set/get]BookmarksBarIconColor(), also controlled by pspdf__bookmarksBarIconColor.

      • API

        Adds PdfOutlineView#[set/get]BookmarksAddIcon(), also controlled by pspdf__bookmarksAddIcon.

      • API

        Adds PdfOutlineView#[set/get]BookmarksEditIcon(), also controlled by pspdf__bookmarksEditIcon.

      • API

        Adds PdfOutlineView#[set/get]BookmarksDoneIcon(), also controlled by pspdf__bookmarksDoneIcon.

      • API

        Adds PdfOutlineView#[set/get]GroupIndicatorIconColor(), also controlled by pspdf__bookmarksGroupIndicatorIconColor.

      • API

        Adds PdfOutlineView#[set/get]TabIndicatorColor(), also controlled by pspdf__tabIndicatorColor.

      • API

        Adds PdfOutlineView#[set/get]BookmarksDeleteIcon(), also controlled by pspdf__bookmarksDeleteIcon.

      • API

        Adds PdfOutlineView#[set/get]BookmarksDeleteIconColor(), also controlled by pspdf__bookmarksDeleteIconColor.

      • API

        Adds PdfOutlineView#[set/get]BookmarksDeleteBackgroundColor(), also controlled by pspdf__bookmarksDeleteBackgroundColor.

    • API

      Removes ThumbnailGridThemeConfiguration, uses attributes from pspdf__ThumbnailGrid attribute set (specified by theme attribute pspdf__thumbnailGridStyle) along with added methods:

      • API

        Adds PdfThumbnailGrid#[set/get]BackgroundColor(), also controlled by pspdf__backgroundColor.

      • API

        Adds PdfThumbnailGrid#[set/get]ItemLabelTextStyle(), also controlled by pspdf__itemLabelTextStyle.

      • API

        Adds PdfThumbnailGrid#[set/get]ItemLabelBackground(), also controlled by pspdf__itemLabelBackground.

    • API

      Adds setters and getters for UI properties on FormEditingBar, uses attributes from pspdf__FormEditingBar attribute set (specified by theme attribute pspdf__formEditingBarStyle) along with added methods:

      • API

        Adds FormEditingBar#[set/get]IconsColor, also controlled by pspdf__iconsColor.

      • API

        Adds FormEditingBar#[set/get]BackgroundColor, also controlled by pspdf__backgroundColor.

      • API

        Adds FormEditingBar#[set/get]TextColor, also controlled by pspdf__textColor.

      • API

        Adds FormEditingBar#[set/get]PrevIcon, also controlled by pspdf__prevIconDrawable.

      • API

        Adds FormEditingBar#[set/get]NextIcon, also controlled by pspdf__nextIconDrawable.

    • API

      Removes FormEditingConfiguration, use attributes from pspdf__FormSelection attribute set (specified by theme attribute pspdf__formSelectionStyle) to configure UI:

      • API

        Adds enableFormEditing() and disableFormEditing() to the PdfConfiguration and PdfActivityConfiguration builders (pulled out of FormEditingConfiguration)

    • API

      Removes AnnotationEditingConfiguration, use attributes from pspdf__AnnotationSelection attribute set (specified by theme attribute pspdf__annotationSelectionStyle) to configure UI. Other methods are extracted to PdfConfiguration.Builder() and PdfActivityConfiguration.Builder():

      • API

        Adds Pdf[Activity]Configuration.Builder#disableAnnotationEditing().

      • API

        Adds Pdf[Activity]Configuration.Builder#enableAnnotationEditing().

      • API

        Adds Pdf[Activity]Configuration.Builder#editableAnnotationTypes().

      • API

        Adds Pdf[Activity]Configuration.Builder#enabledAnnotationTools().

      • API

        Adds Pdf[Activity]Configuration.Builder#setSelectedAnnotationResizeEnabled().

      • API

        Adds Pdf[Activity]Configuration.Builder#setSelectedAnnotationResizeGuidesEnabled().

      • API

        Adds Pdf[Activity]Configuration.Builder#setResizeGuideSnapAllowance().

      • API

        Adds Pdf[Activity]Configuration.Builder#setResizeGuideLineIntervals().

      • API

        Adds Pdf[Activity]Configuration.Builder#setAnnotationInspectorEnabled().

      • API

        Adds Pdf[Activity]Configuration.Builder#setSignatureSavingEnabled().

      • API

        Adds Pdf[Activity]Configuration.Builder#setCustomerSignatureFeatureEnabled().

    • API

      Removes deprecated defaultAnnotationCreator() method from AnnotationEditingConfiguration#Builder, use PSPDFKitPreferences#setAnnotationCreator(String) to set annotation creator name.

    • API

      Removes AnnotationRenderConfiguration, use attributes from pspdf__Annotation attribute set (specified by theme attribute pspdf__annotationStyle) to configure UI. Other methods are extracted to PdfConfiguration.Builder() and PdfActivityConfiguration.Builder():

      • API

        Adds Pdf[Activity]Configuration.Builder#excludedAnnotationTypes().

  • Added

    Adds annotation indexing capabilities to PdfLibrary. (#9235)

    • API

      Adds IndexingOptions and PdfLibrary#enqueueDocuments(documents, indexingOptions) overloads which allow to disable annotation or document text indexing.

    • API

      Adds QueryOptions.Builder#ignoreAnnotations() and QueryOptions.Builder#ignoreDocumentText()

    • API

      Renames QueryOptions methods: isMatchExactPhrases to shouldMatchExactPhrases, isMatchExactWords to shouldMatchExactWords, and generateTextPreviews to shouldGenerateTextPreviews.

    • Changed

      Updates IndexedFullTextSearchExample in the catalog app, to showcase new query options.

    • Added

      Adds enqueueDocumentSources and enqueueDocumentSourcesWithMetadata to PdfLibrary to allow indexing documents without opening them first. This fixes OOM issues when indexing large amount of PDF documents.

  • Added

    Adds support for the NeedAppearances form flag. (#10288)

  • Added

    Adds the ability to modify document PDF and XMP metadata. (#10494)

    • API

      Adds set(), get(), setInXmp() and getInXmp() methods to DocumentMetadata class.

    • Changed

      DocumentMetadata object isn’t parcelable anymore.

    • Changed

      PdfProcessorTask#withMetadata() now accepts HashMap<String,String> instead of DocumentMetadata class.

  • Added

    Adds AesDataProvider and AesEncryptedFileExample to catalog app. (#10230)

  • Removed

    Deprecates MemoryDataProvider. (#10451)

  • Changed

    Improves reliability of reading from data providers. (#10382)

  • Fixed

    Fixes missing PdfActivity documentation. (#10300)

  • Fixed

    Fixes page not being properly settled on startup until the first touch. (#10155)

  • Fixed

    Fixes wrong view state being restored in double page mode and single page document. (#10157)

  • Fixed

    Fixes an issue where red border was rendered around required form fields even when form editing was disabled. (#10331)

  • Fixed

    Fixes failed manifest verification if DocumentSharingProvider class was renamed. (#10174)

  • Fixed

    Fixes a unhandled NullPointerException thrown while initializing documents forms. (#10418)

  • Fixed

    Fixes a runtime failure occurring due to framework initialization process not being properly synced. (#10309)

  • Fixed

    Fixes an issue where circle and square annotations grown in size when drawing while zoomed in. (#10347)

  • Fixed

    Fixes an issue that could result in a very long running loop when rendering PDF documents with broken dashed lines. (#9764)

3.0.0 - 12 Apr 2017

See the announcement post.

Migration guide.

  • API

    Update RxJava to 2.0.8 and RxAndroid to 2.0.1. (#9254)

    • Changed

      All public facing methods are now using the new RxJava 2 types Observable, Flowable, Single, Completable.

    • Changed

      For a comprehensive overview of the changes in RxJava 2, please have a look at the official RxJava 2 documentation.

  • API

    Removes license from the configuration files, the framework is now implicitly initialized using <meta-data> tag in your AndroidManifest.xml. More information in the guides. (#9791)

    • API

      Adds PSPDFKit#setApplicationPolicy() which is now a preferred way of changing application policy instead of re-initializing the whole framework.

    • API

      Removes deprecated PSPDFActivityConfiguration.Builder#activity(). Target activity is now set through PdfActivityIntentBuilder#activityClass() with extras being added to the intent created with PdfActivityIntentBuilder#build().

  • API

    Adds support for programmatic forms filling. (#9656)

    • API

      Adds FormsProvider class for handling all forms related operations. It can be retrieved by calling PSPDFDocument#getFormsProvider().

    • API

      Adds FormField class representing the single field in an interactive form.

    • API

      Adds FormElement class representing visible form control. Each FormElement has exactly one parent FormField. Each FormField can have multiple child FormElement (for example radio button group is a FormField, while each radio button in a group is a FormElement).

  • API

    Moves PSPDFKit#openDocument, PSPDFKit#openDocuments and PSPDFKit#openDocumentAsync calls to PdfDocument class. (#5330)

    • Changed

      Drops several of more complex overloads in favor of passing document information with DocumentSource parameter.

  • API

    Moves and renames PSPDFKit#invalidateDocumentCache to PdfDocument#invalidateCache and PSPDFKit#invalidatePageCache to PdfDocument#invalidateCacheForPage. (#5330)

  • API

    PSPDFActivity renamed to PdfActivity. (#9680)

    • API

      Replaces PSPDFActivity.IntentBuilder() with PdfActivityIntentBuilder that is used creating an intent for starting PdfActivity instance.

    • API

      Removes PSPDFActivity#showDocument() for creating documents from multiple sources and just keeps the simpler ones, use PdfActivityIntentBuilder for full control over the document opening process.

    • API

      Removes deprecated PSPDFActivity#onToggleActionbarVisibility().

    • API

      PSPDFActivity#setDocument() methods have been renamed to specific ones depending on the parameters, so setDocumentFromUri(), setDocumentFromUris(), setDocumentFromDataSource(), setDocumentFromDataSources().

    • API

      Removes methods for explicitly removing single listeners from PdfActivity, use setXYListener(null).

  • API

    Drops PSPDF prefix for several classes: (#6520)

    • Changed

      PSPDFActivity to PdfActivity.

    • Changed

      PSPDFDocument to PdfDocument, PSPDFDocumentMetadata to DocumentMetadata, PDFVersion to PdfVersion.

    • Changed

      PSPDFFragment to PdfFragment.

    • Changed

      PSPDFPreferences to PSPDFKitPreferences.

    • Changed

      PSPDFTextBlock to TextBlock.

    • Changed

      PSPDFLibrary to PdfLibrary.

    • Changed

      PSPDFAnnotationManager to AnnotationManager.

    • Changed

      PSPDFProcessor to PdfProcessor, PSPDFProcessorTask to PdfProcessorTask, PSPDFProcesorException to PdfProcessorException.

    • Changed

      PSPDFSearchOptions to SearchOptions, PSPDFSearchResult to SearchResult, PSPDFTextSearch to TextSearch.

    • Changed

      PSPDFException to PSDPDFKitException.

    • Changed

      PSPDFNotInitializedException to PSPDFKitNotInitializedException, PSPDFInitializationFailedException to InitializationFailedException.

    • Changed

      PSPDFInvalidLayoutException to InvalidLayoutException, PSPDFInvalidLayoutException to InvalidLayoutException, PSPDFInvalidPasswordException to InvalidPasswordException.

    • Changed

      PSPDFInvalidSignatureException to InvalidSignatureException, PSPDFMissingDependencyException to MissingDependencyException.

    • Changed

      PSPDFYouTubeActivity to PdfYouTubeActivity.

    • Changed

      PSPDFDrawableManager to PdfDrawableManager, PSPDFDrawableProvider to PdfDrawableProvider, PSPDFDrawable to PdfDrawable.

    • Changed

      PSPDFOutlineView to PdfOutlineView, PSPDFThumbnailBar to PdfThumbnailBar, PSPDFThumbnailGrid to PdfThumbnailGrid.

    • Changed

      PSPDFSearchView to PdfSearchView.

    • Changed

      PSPDFViews to PSPDFKitViews and PdfActivity#getPSPDFViews() to PdfActivity#getPSPDFKitViews().

  • API

    PSPDFActivityConfiguration renamed to PdfActivityConfiguration (#10131)

  • API

    PSPDFConfiguration renamed to PdfConfiguration (#10131)

  • API

    Changes how colors are modeled on free text annotations to be consistent with how these properties are shown in the inspector.

    • Removed

      Removes FreeTextAnnotation#getTextColor() and FreeTextAnnotation#setTextColor().

    • Changed

      Changes FreeTextAnnotation#getColor() and FreeTextAnnotation#setColor() to get and set the text color instead of the fill color.

    • Changed

      Changes FreeTextAnnotation#getFillColor() and FreeTextAnnotation#setFillColor() to get and set the fill color instead of doing nothing.

  • API

    Removes deprecated method PSPDFActivityConfiguration.Builder#printingEnabled(), use PdfActivityConfiguration#enablePrinting() and PdfActivityConfiguration#disablePrinting() instead.

  • API

    Adds StampAnnotation#setBitmap() for re-setting an image on StampAnnotation. (#9803)

  • API

    Adds setFormMappingNameMappings() and setFormFieldNameMappings() call to PSPDFProcessorTask to allow renaming of form fields.

  • API

    Camel case syntax refactorings ():

    • API

      PDFUtils to PdfUtils along with method createPDFRectUnion() to createPdfRectUnion().

    • API

      PagePDF to PagePdf.

    • API

      PDFBox to PdfBox.

    • API

      URIAction to UriAction.

    • API

      HUDViewMode to HudViewMode.

    • API

      PSPDFDocumentEditor to PdfDocumentEditor.

    • API

      PSPDFDocumentEditorListener to PdfDocumentEditorListener.

    • API

      PSPDFDocumentEditorListenerCallbacks to PdfDocumentEditorListenerCallbacks.

    • API

      In PdfFragment:

      • API

        convertViewRectToPDFRect() to convertViewRectToPdfRect()

      • API

        convertPDFRectToViewRect() to convertPdfRectToViewRect()

      • API

        convertViewPointToPDFPoint() to convertViewPointToPdfPoint()

      • API

        convertPDFPointToViewPoint() to convertPdfPointToViewPoint()

      • API

        getVisiblePDFRect() to getVisiblePdfRect()

  • Added

    Adds support for interactive forms. (#2939)

    • API

      Adds PSPDFFragment#registerFormElementSelectedListener for listening to form element selection.

    • API

      Adds PSPDFFragment#registerFormElementDeselectedListener for listening to form element deselection.

    • API

      Adds PSPDFFragment#registerFormElementUpdatedListener for listening to form element updates.

    • API

      Adds PSPDFFragment#setSelectedFormElement for selecting form element and PSPDFFragment#getSelectedFormElement for getting selected form element.

    • API

      Adds FormEditingConfiguration that can be used to control form editing configuration.

  • Added

    Adds support for filling text form fields. (#8984)

  • Added

    Adds support for filling list and combo box fields. (#8986)

  • Added

    Adds support for keyboard shortcuts when editing forms. (#8987)

  • Added

    Adds FormEditingBar that helps with form filling. (#9978)

  • Added

    Adds support for changing configuration at runtime. (#2966)

    • Added

      Adds setConfiguration to PdfActivity to change PdfActivityConfiguration at runtime.

    • Changed

      Allow creation of PdfActivityConfiguration.Builder and PdfConfiguration.Builder from existing configuration.

    • Added

      Adds DynamicConfigurationExample showcasing how to modify PdfActivity configuration at runtime.

    • Added

      Adds CustomFragmentDynamicConfigurationExample showcasing how to modify PSPDFFragment configuration at runtime when used with custom activity.

  • Added

    Adds support for HideAction and ResetFormAction. (#9971)

  • Added

    Adds getState and setState methods to PdfFragment for saving and restoring fragment state. (#9605)

  • Added

    Adds a feature for saving internal UI Context when possible. (#7260)

  • Changed

    Improves stream handling in DocumentDownloadExample. (#10161)

  • Changed

    Improves PdfLibrary search when using FTS5. (#10018)

  • Changed

    Improves memory usage. (#10082)

  • Changed

    Improves stability in low memory situations. (#10086)

  • Fixed

    Fixes symbol characters being used for rendering text in certain situations. (#9878)

  • Fixed

    Fixes an issue where autocorrection didn’t work for edited free text annotations. (#9887)

  • Fixed

    Fixes an issue with error handling when enqueuing a print job was not successful. (#9913)

  • Fixed

    Fixes full text search results returning incorrect results when an unmatched quote character is included in the search string. (#9831)

  • Fixed

    Fixes an issue where view state could not be restored correctly in some cases when using continuous scrolling mode. (#9682)

  • Fixed

    Fixes an issue where the page is not settled after the keyboard is dismissed or the screen size changes. (#9793)

  • Fixed

    Fixes an issue where incorrect page is restored in double page mode. (#9683)

  • Fixed

    Fixes memory leak when form field is selected. (#10124)

2.9.4 - 22 Mar 2017

  • Changed

    Updates dependencies - RxJava to 1.2.7 and support libraries to 25.3.0.

  • API

    Introduces PSPDFPreferences to read and write global framework preferences. (#7300)

    • API

      Deprecates AnnotationEditingConfiguration.defaultAnnotationCreator. Use PSPDFPreferences.setAnnotationCreator to configure the annotation creator name.

  • API

    Introduces AnnotationPreferences to access and change the annotation creator name. (#7300)

    • Added

      Adds AnnotationEditingConfiguration.annotationCreator to set the default creator name or override the stored one.

    • Removed

      Deprecates AnnotationEditingConfiguration.defaultAnnotationCreator. Use above method instead.

  • API

    DocumentListener#onDocumentSaveFailed(Throwable) is now changed to onDocumentSaveFailed(PSPDFDocument, Throwable) providing the document for which the saving failed. (#9817)

  • Added

    Adds helpers for changing screen timeout through PSPDFActivity#setScreenTimeout(long). (#8527)

  • Fixed

    Fixes an issue where failing to save the document would not clear the cache thus keeping the incorrect document cached.

  • Fixed

    Fixes an issue where document pages had incorrect height when using vertical paginated scrolling. (#9671)

  • Fixed

    Fixes an issue where click events on link annotation where not properly handled. (#9772)

  • Fixed

    Fixes an issue where dragging an annotation using the long-press gesture would not work if another annotation was currently selected. (#9786)

  • Fixed

    Fixes incorrect continuous mode scrolling to the rect that’s on the different page than the current one. (#9664)

  • Fixed

    Fixes an issue where document saving would fail when only permissions were protected by a document password. (#9623)

  • Fixed

    Fixes an issue where thumbnail bar wasn’t hidden when showing soft keyboard after the document has been edited. (#9806)

  • Fixed

    Fixes an issue where NewPageDialog wasn’t calling the onDialogCancelled listener when being dismissed via back button or touch event. (#9820)

  • Fixed

    Fixes an issue where thumbnails in the thumbnail grid would be stuck, when quickly starting to scroll after the grid became visible. (#9821)

  • Fixed

    Fixes an issue where clicking on the annotation would not invoke DocumentListener#onPageClick() listener. (#9815)

  • Fixed

    Fixes an issue where document editing from unsupported sources was not consistent. (#7656)

  • Fixed

    Fixes incorrect animations in outline list when expanding or collapsing an outline on Android API 17 and lower. (#9899)

  • Fixed

    Fixes a issue on incrementally saving using a data provider. (#9410)

2.9.3 - 28 Feb 2017

  • Added

    Adds keyboard navigation using left/right keys. (#9370)

  • Changed

    Changes the note annotation creation flow. (#9645)

    • Changed

      It is now possible to create empty note annotation using the note annotation editor.

    • Changed

      Newly created note annotations are now automatically selected.

  • Fixed

    Fixes an issue where navigation bar got transparent when returning from multi-window mode. (#9530)

  • Fixed

    Fixes an issue where toolbar layout could get broken because it was incorrectly allowed to be vertical on certain screen sizes. (#9488)

  • Fixed

    Fixes an issue where document title view could get hidden behind action bar when switching to multi-window mode. (#9545)

  • Fixed

    Fixes an issue where deselecting an annotation tapping on the document background was hiding the user interface. (#9550)

  • Fixed

    Fixes incorrect animation in annotation inspector when showing soft keyboard. (#9527)

  • Fixed

    Fixes possible NullPointerException in the catalog example. (#9561)

  • Fixed

    Fixes an issue where setting double page mode in combination with continuous scroll doesn’t properly fall back to single page layout mode in the thumbnail bar. (#9567)

  • Fixed

    Fixes an issue where PSPDFActivity would hide the thumbnail bar on devices with high density screens. (#9597)

  • Fixed

    Fixes double page mode scrolling being broken in some cases (inline search results navigation, state restoration, etc.) (#9626)

  • Fixed

    Fixes an issue where using the soft keyboard in password view in immersive mode would result in wrongly rendered UI below translucent navigation bar. (#9658)

2.9.2 - 14 Feb 2017

  • Changed

    Updates dependencies - Support libraries to 25.1.1, RxJava to 1.2.6.

  • Added

    Adds support for annotation flags in Annotation class and user interface. (#6939)

    • Added

      Adds support for HIDDEN flag. If set, do not display or print the annotation and prevent annotation editing.

    • Added

      Adds support for PRINT flag. Annotation is printed only when this flag is set.

    • Added

      Adds support for NOVIEW flag. If set, do not display the annotation and prevent annotation editing. However, printing is still allowed when PRINT flag is set.

    • Added

      Adds support for READONLY flag. If set, prevent annotation editing.

    • Added

      Adds support for LOCKED flag. If set, annotation can’t be deleted, dragged or resized.

    • Added

      Adds support for LOCKEDCONTENTS flag. If set, annotation contents can’t be changed.

  • Added

    Adds an API to manipulate user interface visibility in PSPDFActivity. (#8348)

    • Added

      Adds showUserInterface to show user interface controls.

    • Added

      Adds hideUserInterface to hide user interface controls.

    • Added

      Adds toggleUserInterface to toggle user interface visibility.

    • Added

      Adds setUserInterfaceVisible to force show/hide user interface with or without animation.

    • Added

      Adds isUserInterfaceVisible to query user interface visibility.

    • Added

      Adds PSPDFActivity.onUserInterfaceVisibilityChanged to listen to user interface visibility changes.

    • Removed

      Deprecates Commands.ToggleSystemBars. Use above methods instead.

    • Removed

      Deprecates PSPDFActivity.onToggleActionbarVisibility.

  • Added

    Adds ToolbarCoordinatorLayout.OnContextualToolbarPositionListener that listens for toolbar position within the ToolbarCoordinatorLayout, set through PSPDFActivity#setOnContextualToolbarPositionListener(listener). (#9212)

  • Added

    Adds ContextualToolbar#isDraggable to query whether contextual toolbar is currently draggable. (#9212)

  • Changed

    Improves search highlighter and search navigation. (#8327)

  • Added

    Hides HUD when creating annotations and annotation toolbar is in vertical position. (#9212)

    • Added

      Adds hideHudWhenCreatingAnnotations to PSPDFActivityConfiguration to control this behavior.

  • Changed

    Disables immersive mode when running in multi-window mode. (#9491)

  • Fixed

    Fixes an issue where it wasn’t possible to draw annotations under system bars. (#9220)

  • Fixed

    Fixes an issue causing the thumbnail grid to crash certain devices when opened in landscape orientation. (#9433)

  • Fixed

    Fixes a possible resource leak that caused warnings in strict mode during library initialization. (#9405)

  • Fixed

    Fixes an issue where tapping while scrolling in paginated mode makes scrolling stuck between pages. (#7971)

  • Fixed

    Fixes an issue where scrolling gets stuck after snapping back from zoom-out action. (#9380)

  • Fixed

    Fixes an issue where wrong document insets were calculated when showing keyboard in multi-window mode. (#9487)

  • Fixed

    Fixes an issue where PSPDFThumbnailBar would throw an exception when switching from double-page mode back to single-page mode. (#9490)

  • Fixed

    Fixes a crash in PSPDFThumbnailBar when number of pages drops under 2. (#9352)

  • Fixed

    Fixes an UI bug where drag button doesn’t reappear on the toolbar once the keyboard is hidden and there’s enough room for it to move. (#9322)

2.9.1 - 31 Jan 2017

  • Added

    Adds a feature to search the outline, showing also parent sections. (#9101, #9215)

  • Fixed

    Fixes a crash when opening single-paged documents in double page mode. (#9269)

  • Fixed

    Fixes an issue where DocumentListener save callbacks sometimes weren’t called after PSPDFFragment was detached. (#9319)

  • Fixed

    Fixes an issue where FTS 5 PSPDFLibrary searches with only whitespace failed to execute. (#9271)

  • Fixed

    Fixes an issue where ImagePickerFragment was not asking for camera permission when required. (#9231)

  • Fixed

    Fixes an issue where it was possible to enter emojis in custom stamps text. (#9227)

  • Fixed

    Fixes an issue where FAB was not hidden when CustomStampCreatorLayout was loaded for the first time. (#9229)

  • Fixed

    Fixes an UI bug where annotation toolbar submenu overflows the main toolbar. (#8970)

  • Fixed

    Fixes an issue where PSPDFDocument#wasModified returned false if only bookmarks were modified. (#9320)

  • Fixed

    Fixes an issue where search button in catalog app could be lost after searching. (#9344)

  • Fixed

    Fixes an issue where PSPDFActivity was using wrong insets when running immersively in multi-window mode. (#9321)

2.9.0 - 25 Jan 2017

See the announcement post.

  • Fixed

    Fixes a security issue where DocumentSharingProvider could expose other private application files. (#9136)

  • Added

    Adds paginated double page layout for browsing documents. (#5670)

    • Added

      Adds PageLayoutMode which is set through PSPDFConfiguration and has values AUTO, SINGLE, DOUBLE. AUTO mode will display double page layout on larger devices in landscape, and single page layout on all other.

    • Added

      Adds firstPageAlwaysSingle property to the PSPDFConfiguration that controls whether to keep first page as a cover and display it as a single, or include it in double page mode.

    • Added

      Adds showGapBetweenPages property to the PSPDFConfiguration that controls whether there should be gap between sibling pages or if they should be touching each other.

  • Added

    Adds support for styling modal dialogs used across the framework. (#7970)

    • Changed

      Make sure that AlertDialogs use theme specified in alertDialogTheme theme attribute.

    • Added

      Adds pspdf__modalDialogStyle theme attribute for styling common properties of custom modal dialogs - share/print options dialog, Annotation inspector, Action menus, Stamp and Signature pickers, New page dialog.

    • Added

      Adds pspdf__sharingdialogStyle theme attribute for styling share/print options dialog.

    • Added

      Adds pspdf__newPageDialogStyle theme attribute for styling new page dialog in document editor.

    • Added

      Adds pspdf__stampPickerStyle theme attribute for styling stamp picker.

    • Added

      Adds pspdf__actionMenuStyle theme attribute for styling action menus.

  • Added

    Adds LocalizationListener interface used to override built-in UI strings programatically. (#5187)

  • Added

    Adds an API for using existing signature picker in custom UI. (#9081)

    • Added

      Adds Signature representing single signature.

    • Added

      Adds SignaturePickerFragment encapsulating signature picker flow and signature storage handling.

    • Added

      Adds CustomInkSignatureExample to catalog app showcasing how to use this API to integrate signature picker in custom activity that is using PSPDFFragment.

  • Added

    Adds PSPDFFragment#addAnnotationToPage() which simplifies adding annotations to page. (#9081)

  • Added

    Adds support for free-text annotations fill color. (#9020)

  • Added

    Adds getHudViewMode() method to PSPDFActivity for querying currently used HUD view mode. (#9100)

  • Added

    Adds setRotation and getRotation properties to PageImage object to allow rotation of images when using the PSPDFProcessor. (#9096)

  • Added

    Adds a usage example of PSPDFThumbnailGrid to the CustomFragmentActivity of the FragmentExample inside the catalog app. (#9133)

  • Added

    Adds size and getIndexedUIDs method calls to PSPDFLibrary. (#9192)

  • Added

    Adds LibraryIndexingListener and registerLibraryIndexingListener/unregisterLibraryIndexingListener to PSPDFLibrary. (#9192)

  • Added

    Adds support for FTS5 to PSPDFLibrary, when available. Note that this upgrade will require all documents to be reindexed. (#9026)

  • Added

    Adds enabledAnnotationTools to AnnotationEditingConfiguration.Builder for controlling which annotation tools are enabled when creating annotations. (#8201)

  • Added

    Adds a new PSPDFFragment#newInstance method which accepts an already opened PSPDFDocument as a parameter. (#8199)

  • Added

    Adds setting to prevent copying of selected text, see CustomApplicationPolicyExample from the catalog app. (#8728)

  • Removed

    Renames AnnotationCreationMode enum to AnnotationTool. (#9119)

    • Changed

      Renames getActiveAnnotationCreationMode in AnnotationCreationController to getActiveAnnotationTool.

    • Removed

      Removes deprecated methods getCurrentlyEditedAnnotationType and changeAnnotationCreationMode in AnnotationCreationController.

    • Changed

      Changes Analytics.Data#ANNOTATION_CREATION_MODE constant to ANNOTATION_TOOL.

  • Changed

    Changes default search result limit of library searches to 500. Use maximumSearchResultsTotal() and maximumPreviewResultsTotal() methods in QueryOptions to change this. (#9131)

  • Added

    Improves custom stamps creation API. (#8571, Z#4917)

    • Added

      Adds fromBitmap, fromPredefinedType and fromSubject to StampPickerItem to access builders for creating custom stamps.

    • Removed

      Removes create* methods from StampPickerItem and StampAnnotationDefaultsProvider.

    • Changed

      Moves StampPickerItem and PredefinedStampType to com.pspdfkit.annotations.stamps package.

  • Changed

    DownloadJob now executes ProgressListener callbacks on the main thread. (#9162)

  • Changed

    DocumentPrintManager is now a singleton and not a static class anymore. Retrieve the instance with the get() method. (#9179)

  • Changed

    Improves performance of library indexing and preview snippet generation. (#9131)

  • Fixed

    Fixes an issue where it wasn’t possible to scroll to parts of the document that were hidden under system bars when using HUD_VIEW_MODE_VISIBLE in PSPDFActivity. (#9078)

  • Fixed

    Fixes an issue when adding JPEG images to pages with PSPDFProcessor would load them all into memory and cause OutOfMemory exceptions. (#9096)

  • Fixed

    Fixes an issue where ink thickness was not recalculated when resizing. (#4808)

  • Fixed

    Fixes an issue where note annotation text was not being processed during searching immediately after creating note annotations. (#8889)

  • Fixed

    Fixes an issue where an outline element which referenced an invalid page index would cause an exception. (#8855)

  • Fixed

    Fixes an issue where back button wasn’t visible when showing custom stamp layout on tablets (#8962)

  • Fixed

    Fixes a crash when using custom versions of SQLite 3.11 or higher. (#8967)

  • Fixed

    Fixes an issue where document editor has been closed after a configuration change. (#5979)

  • Fixed

    Fixes an issue where new page dialog stopped working after a configuration change. (#8989)

  • Fixed

    Fixes an issue where document editing toolbar wasn’t hidden after leaving document editor. (#8982)

  • Fixed

    Fixes an issue where tapping on document background didn’t toggle the HUD. (#8965)

  • Fixed

    Fixes an issue where note annotation editor remained in broken state after restoring application’s state. (#9100)

  • Fixed

    Fixes an issue where active text selection was lost after configuration change. (#7366)

  • Fixed

    Fixes an issue where application state could not be restored properly in some cases. (#9099)

  • Fixed

    Fixes an issue where PSPDFThumbnailGrid failed to render images if not properly laid out. (#9134)

  • Fixed

    Fixes an issue where PSPDFThumbnailGrid could not be shown immediately after being hidden. (#9151)

  • Fixed

    Fixes an issue where touch gesture could get handled after the document has been reloaded which could cause a crash. (#9145)

  • Fixed

    Fixes an issue where last letter of a sentence couldn’t be highlighted in some cases. (#8751)

  • Fixed

    Fixes an issue where repeatedly highlighting same sentence would make the highlight darker and underlines overlap. (#4913)

  • Fixed

    Fixes an issue where it was possible to create empty custom stamps. (#8969)

  • Fixed

    Fixes an issue where annotation list items were missing icons for certain annotations. (#9206)

2.8.1 - 13 Dec 2016

  • Added

    Adds NewPageDialog. (#8759)

    • Added

      Adds NewPageFactory interface and PSPDFThumbnailGrid#setNewPageFactory. The factory returns NewPage instances that are used by the document editor when adding a page.

    • Added

      Adds DialogNewPageFactory for creating new pages using the NewPageDialog. This is the default factory.

    • Added

      Adds ValueNewPageFactory that allows programmatically specifying a single NewPage instances that is used by the document editor.

  • Added

    Adds divider after annotation preview as a visual cue that annotation preview is clipped. (#8827)

  • Added

    Adds support for PropertyInspector#ItemDecoration that can be used to implement custom dividers between inspector views. (#8849)

  • Added

    Adds Slovak language localization. (#8928)

  • Added

    Adds the ability to disable annotations from rendering via PSPDFActivityConfiguration#annotationRenderConfiguration(AnnotationRenderConfiguration), see AnnotationRenderingExample from the catalog app. (#7571)

  • Changed

    Improves grouping of icons in AnnotationCreationToolbar. (#8863)

    • Changed

      Items are now grouped more by the context and not just extracted if enough space (which was leading to strange structures).

    • Changed

      Groups are predefined and can be found in AnnotationCreationToolbarItemPresets.

    • Changed

      Grouping is being done by AnnotationCreationToolbarGroupingRule instead of being directly passed to setMenuItems() - flat list of items is passed now.

  • Changed

    Improves DocumentEditingToolbar by making it draggable and introducing pre-defined item groupings same as for AnnotationCreationToolbar. (#8898)

    • Changed

      Groups are predefined and can be found in DocumentEditingToolbarItemPresets.

    • Changed

      Grouping is being done by DocumentEditingToolbarGroupingRule instead of being directly passed to setMenuItems() - flat list of items is passed now.

    • Changed

      Drag position is saved and the toolbar’s default position on the tablet is on the left side.

  • Fixed

    Fixes an issue where AnnotationCreationToolbar single menu items cannot be deselected. (#8852)

  • Fixed

    Fixes an issue with loading invalid annotations. (#8869)

  • Fixed

    Fixes an issue where an invalid page index read from the document store could cause an exception. (#8858)

  • Fixed

    Fixes an issue while garbage collecting PDF objects on saving non-incrementally. (#8901)

  • Fixed

    Fixes an issue where opening note annotation dialog twice at the same time broke UI. (#8854)

  • Fixed

    Fixes thumbnail bar flickering when changing pages. (#4894)

  • Fixed

    Fixes an issue where edit annotation menu item is not selected once the annotation creation mode is activated. (#7513)

    • Added

      Adds pspdf__editAnnotationsIconActivated for specifying custom icon when annotation creation mode is active. This is contained in pspdf__ActionBarIcons style.

    • Changed

      Selected icon color is controlled by pspdf__ActionBarIcons_pspdf__iconsColorActivated style parameter.

  • Changed

    Lets com.pspdfkit.utils.Size implement Parcelable. (#8765)

  • Fixed

    Fixes an exception in UnitSelectionEditText for Arabic devices. (#8738)

  • Fixed

    Fixes an issue where leaving annotation creation mode could lead to an exception. (#8860)

  • Fixed

    Fixes an issue causing an IndexOutOfBoundsException when selecting text on a page. (#8922)

  • Fixed

    Fixes an issue where sharing with WhatsApp triggered an exception. (#8424)

2.8.0 - 1 Dec 2016

See the announcement post.

  • Changed

    Updates dependencies - Support libraries to 25.0.1, RxJava to 1.2.3.

  • Added

    Adds automated saving and restoration of the last viewed page in a document (#8744)

    • Added

      Adds PSPDFConfiguration#isLastViewedPageRestorationEnabled and respective setters PSPDFConfiguration.Builder#restoreLastViewedPage and PSPDFActivityConfiguration.Builder#restoreLastViewedPage.

    • Added

      Adds constant PSPDFFragment#DOCUMENTSTORE_KEY_LAST_VIEWED_PAGE_INDEX that is used by the fragment as key for storing the last viewed page index inside the DocumentDataStore of the loaded document.

    • Added

      Adds catalog app setting “Restore last viewed page”.

  • Added

    Adds feature to reveal the URL stored inside a link annotation when long-pressing the annotation. (#5558)

  • Added

    Adds support for square and circle annotations. (#8548)

    • Added

      Adds SquareAnnotation and CircleAnnotation classes.

    • Added

      Adds UI to add and edit square and circle annotations on the page.

    • Added

      Adds ShapeAnnotationDefaultsProviderproviding defaults for creating and editing square and circle annotations.

  • Added

    Adds support for polygon and polyline annotations. (#8625)

    • Added

      Adds PolygonAnnotation and PolylineAnnotation classes.

    • Added

      Adds UI to add and edit polygon and polyline annotations on the page.

    • Changed

      Defaults for polygon annotations are provided by ShapeAnnotationDefaultsProvider.

    • Changed

      Defaults for polyline annotations are provided by LineAnnotationDefaultsProvider.

  • Added

    Adds support for storing persistent per-document preferences. (#8638, #8703).

    • Added

      Adds DocumentDataStore public class to access the document preferences.

  • Added

    Adds support for line annotations with filled line ends. (#8455)

  • Added

    Adds support for editing annotation points for line, polygon and polyline annotations. (#8456)

  • Added

    Adds missing setAlpha setter to Annotation class. (#8398)

  • Added

    Improves the ContextualToolbar so that items are dynamically re-grouped once the size of the toolbar changes. (#8173)

    • Added

      Adds DefaultMenuItemGroupingRule which is an implementation of MenuItemGroupingRule interface. You can use these two to implement your custom grouping of menu items. The DefaultMenuItemGroupingRule is generic and somewhat complex. It’s set by calling ContextualToolbar#setMenuItemGroupingRule().

  • Changed

    Improves the positioning of the items in the AnnotationCreationToolbar: annotation menu items are on the left side (top when vertical) and control buttons (close, open color picker and drag) are on the right side (bottom when vertical). (#8615)

  • Changed

    Improves memory handling in low-memory situations and with many open documents. (#8352, #8447)

  • Changed

    Improves performance of decoding JPEG images. (#8712, #8673)

  • Changed

    Improves bookmark handling in Processor and DocumentEditor. (#8091)

  • Changed

    Improves annotation deletion speed. (#8788)

  • Changed

    Improves loading time of large documents lazily loading page sizes, labels and rotations. (#7842)

  • Changed

    Disables resize guides for line annotations. (#8696)

  • Fixed

    Fixes an issue where line annotation ends were being clipped by annotation’s bounding box. (#8357)

  • Fixed

    Fixes pixelated ink paths when drawing on zoomed page. (#8696)

  • Fixed

    Fixes an issue where ink/lines could dissappear while drawing in Android 4.1. (#8811)

  • Fixed

    Fixes an issue where annotation selection didn’t reflect annotation bounding box changes. (#8696)

  • Fixed

    Fixes an issue where white and transparent colors could not be distinguished from background in annotation inspector. (#8548)

  • Fixed

    Fixes an issue where a page would not be properly refreshed when adding certain annotation types. (#8577)

  • Fixed

    Fixes an issue with opening a PDF with bookmarks in Preview.app. (#8591)

  • Fixed

    Fixes an issue where it wasn’t possible to resize image stamps with large aspect ratios. (#8570)

  • Fixed

    Fixes an issue where PSPDFPasswordView would still apply color filters if tinting was deactivated via PasswordViewThemeConfiguration#isIconTintingEnabled. (#8607)

  • Fixed

    Fixes an issue where the toolbar was clipped when animating its visibility in immersive viewing mode. (#8681)

  • Fixed

    Fixes label backgrounds in page grid when the page has a long page label. (#8745)

  • Fixed

    Fixes an issue where markup annotation wasn’t updated when changing its color. (#8749)

  • Fixed

    Fixes unnecessary page render when creating annotations. (#8700)

  • Fixed

    Fixes an issue where parceled DataProvider instances were not correctly loaded by PSPDFFragment. (#8743)

2.7.0 - 7 Nov 2016

See the announcement post.

  • Changed

    Updates dependencies - Support libraries to 25.0.0, RxJava to 1.2.2.

  • Changed

    Updates target to 25 - Android Nougat 7.1.

  • Added

    Adds full support for Android Nougat multi-window mode.

  • Added

    Adds support for signatures. (#6582)

    • Added

      Adds UI for adding, selecting and deleting signatures, which are then added to the page as ink annotations.

    • Added

      Adds two modes for handling signature annotations: “My Signature” (stores added signatures) and “Customer Signature” (one time signature).

    • Added

      Adds setCustomerSignatureFeatureEnabled(boolean) and setSignatureSavingEnabled(boolean) to AnnotationEditingConfiguration.Builder for configuring previously mentioned modes.

    • Added

      Adds pspdf__signatureLayoutStyle attribute for styling the signature dialog.

  • Added

    Adds support for line annotations. (#8339)

    • Added

      Adds LineAnnotation class.

    • Added

      Adds UI to add and edit line annotations on the page.

    • Added

      Adds LineAnnotationDefaultsProvider providing defaults for creating and editing line annotations.

  • Added

    Adds setBorderColor, setBorderWidth, setBorderStyle and setBorderDashArray (and getters) to Annotation class. (#8301)

  • Added

    Adds support for stamps with images captured from camera. (#8218)

  • Added

    Adds ready to use API for picking images from gallery or capturing images via camera. (#8190)

    • Added

      Adds ImagePickerFragment that encapsulates whole picker lifecycle.

    • Added

      Adds BitmapUtils class for decoding Bitmap from Uris retrieved via ImagePickerFragment#OnImagePickedListener.

    • Added

      Adds an example to catalog app showcasing how to use this API to create new pages with images captured by camera.

  • Added

    Adds #toString methods to DownloadRequest and URLDownloadSource. (#8264)

  • Added

    Adds PasswordViewThemeConfiguration.Builder#iconTintingEnabled which allows turning off tinting of the password view drawable. (#8403)

  • Added

    Adds close button to annotation property inspector. (#8262)

  • Added

    Adds scrollbars and document scrolling API. (#8388)

    • Changed

      Enables default Android scrollbars on the PSPDFFragment. You can disable them using #scrollbarsEnabled on the PSPDFConfiguration.Builder or PSPDFActivityConfiguration.Builder.

    • Added

      Adds styleable attribute pspdf__documentViewStyle that accepts a style defining View attributes for modifying the appearance of scrollbars. If not overridden by the active theme, this attribute is set to the pspdf__DocumentView style.

    • Added

      Adds scrollbar theming example to the existing DarkThemeExample.

    • Added

      Adds DocumentScrollListener interface for observing scrollbar movement of the current document.

    • Added

      Adds PSPDFFragment#registerDocumentScrollListener and PSPDFFragment#unregisterDocumentScrollListener

    • Added

      Adds VerticalScrollBar widget, a customizable scrollbar with draggable indicator (for quick page browsing).

    • Added

      Adds VerticalScrollBarExample to showcase scrollbar usage inside a custom activity.

  • Added

    Adds the ability to disable bookmark renaming with PSPDFOutlineView#setBookmarkRenamingEnabled. (#8118)

  • Added

    Adds PSPDFKit#setLoggingEnabled method for enabling or disabling PSPDFKit debug output in logcat. (#8515)

  • Added

    Adds an API for dynamic modification of certain properties of the active annotation selection. (#8150)

    • Added

      Adds new method onPrepareAnnotationSelection to PSPDFAnnotationManager.OnAnnotationSelectedListener.

    • Added

      Adds AnnotationSelectionController exposing multiple properties for controlling active annotation selection.

    • Added

      Adds AnnotationSelectionCustomizationExample showcasing this new API.

    • Added

      Adds OnAnnotationSelectedListenerAdapter which is an empty implementation of the PSPDFAnnotationManager.OnAnnotationSelectedListener interface.

  • Removed

    Removes PSPDFConfiguration#isLoggingEnabled and corresponding builder methods. (#8515)

  • Changed

    Improves large memory usage handling of PSPDFProcessor. (#8291, #8352)

  • Fixed

    Fixes an exception thrown by a DownloadJob if the parent folder of the output file did not exist. The DownloadJob will now try to create the folder itself, or throw an exception if not able to do so. (#8265)

  • Fixed

    Fixes an unlikely crash in annotation parsing. (#8295)

  • Fixed

    Fixes an issue causing a NullPointerException when exiting text selection mode while a highlight annotation is being created. (#8299)

  • Fixed

    Fixes a rare issue in the Document Editor. (#8370)

  • Fixed

    Fixes typo in class name: FloatingHitEditText is now called FloatingHintEditText. (#8404)

  • Fixed

    Fixes an issue where bookmark name edit dialog could not be confirmed with enter key. (#8328)

  • Fixed

    Fixes an issue where annotations could be rendered with a wrong image. (#8493)

  • Fixed

    Fixes an issue where document wasn’t resized correctly after hiding keyboard in immersive mode. (#8494)

  • Fixed

    Fixes an issue where grid view was always showing page labels even if disabled. (#8046)

2.6.1 - 17 Oct 2016

  • Added

    Adds support for custom stamps. (#8062)

  • Added

    Adds progress dialog when sharing file without processing. (#8156)

  • Added

    Adds web download capabilities to DownloadJob. (#8160)

    • Changed

      DownloadJob will now use a temporary file for writing while downloading. This prevents corrupted files when downloads are interrupted. To not use a temporary file set DownloadRequest.Builder#useTemporaryOutputFile to false

    • Added

      Adds DownloadProgressFragment#setDialogOnCancelListener for setting a listener that will be notified of when the progress dialog was cancelled by the user.

    • Added

      Adds URLDownloadSource that can download PDF documents from a URL object.

    • Added

      Adds detection of http and https URIs using DownloadRequest.Builder#uri.

    • Removed

      Removes @Nullable annotation from DownloadProgressFragment#getJob.

  • Added

    Adds ActionResolver for executing PDF actions from the com.pspdfkit.annotations.actions package. PSPDFFragment implements this interface, allowing to execute PDF actions on the document. (#8205)

  • Added

    Adds missing BookmarkViewAdapter interface which can be set by PSPDFOutlineView#setBookmarkViewAdapter. (#8117)

  • Changed

    Automatically uses ReLinker to load native library if available. This fixes UnsatisfiedLinkError exceptions on some older devices. For more information on ReLinker usage and configuration see our guide article: https://www.nutrient.io/guides/android/current/miscellaneous/relinker/ (#8197)

  • Changed

    Change occurrences of pageNumber, page, etc. to pageIndex. (#8115)

    • Changed

      Renames PSPDFSearchResult#pageNumber to PSPDFSearchResult#pageIndex.

    • Changed

      Renames GoToAction#getPage to #getPageIndex.

    • Changed

      Renames QueryPreviewResult#getPage to #getPageIndex.

    • Changed

      Renames StampPickerDialog#setPageNumber and #getPageNumber to #setPageIndex and #getPageIndex respectively.

    • Changed

      Renames Bookmark#getPage to #getPageIndex.

    • Changed

      Renames TextSelection#page to #pageIndex.

    • Changed

      Renames OnZoomFactorChangedEvent#page to #pageIndex.

  • Fixed

    Fixes an issue where swiping through a large PDF could cause a crash. (#8141)

  • Fixed

    Fixes an issue that caused crashes on some documents when dragging selection handles. (#8186)

  • Fixed

    Fixes an issue where document insets were not applied when creating free-text annotations. (#8185)

  • Fixed

    Fixes inconsistent peek height of the bottom sheet ActionMenu. (#8071)

  • Fixed

    Fixes an issue where contextual toolbars weren’t updating toolbar icons correctly. (#8193)

  • Fixed

    Fixes an issue where share button stopped working after reloading the document. (#8198)

  • Fixed

    Fixes an issue that caused duplicated text rendering when creating free-text annotation. (#8243)

  • Fixed

    Fixes an issue where document editor persisted edited state across editing sessions even when editing had been cancelled. (#8241)

  • Fixed

    Fixes an issue where DownloadProgressFragment would always switch to indeterminate progress bar style after a configuration change. (#8166)

  • Fixed

    Fixes an issue where images captured by device camera had wrong orientation when used as stamp image or PageImage. (#8221)

  • Fixed

    Fixes an issue where image annotations weren’t rotated correctly on rotated PDF pages. (#8135)

  • Fixed

    Fixes an issue where an invalid modification or creation date inside the PDFs metadata would cause a crash. (#8236)

2.6.0 - 3 Oct 2016

See the announcement post.

  • Added

    Adds support for image and stamp annotations. (#5628)

    • Added

      Adds StampAnnotation object representing both image and stamp annotations.

    • Added

      Adds UI to add and edit stamp annotations on the page.

    • Added

      Adds UI to add pictures from device library to the pages.

  • Added

    Adds a new bottom sheet sharing dialog that replaces the share/print menu. (#7598)

    • Added

      Adds ActionMenu for displaying list of ActionMenuItem inside grid list bottom sheet.

    • Added

      Adds SharingMenu which extends ActionMenu to display list of sharing targets.

    • Added

      Adds DefaultSharingMenu which extends SharingMenu to display print and view actions.

    • Added

      Adds PSPDFActivity#setSharingMenuListener(listener) for listening to default sharing menu lifecycle and click events.

  • Added

    Adds download API for saving PDF documents to the local filesystem. (#7553)

    • Added

      Adds DownloadRequest and DownloadJob for configuring and performing a download.

    • Added

      Adds DownloadSource interface for defining different types of remote PDF document sources.

    • Added

      Adds AssetDownloadSource for copying a PDF document from the app’s assets.

    • Added

      Adds ContentResolverDownloadSource for saving a PDF document from a content provider.

  • Added

    Adds sub-menus to the ContextualToolbar instead of displaying a new set of items. Sub-menus are activated with long-pressing the items with sub-menu indicators. (#7116)

    • Added

      Adds pspdf__contextualToolbarSubmenuBackground for controlling the background of sub-menus, alongside the already existing pspdf__contextualToolbarBackground which is now applied to the main menu bar.

    • Added

      Adds ContextualToolbarMenuBar class which represents a single bar inside the ContextualToolbar serving as a ViewGroup.

  • Added

    Adds CustomSharingMenuExample to catalog app showcasing how to add custom share actions to sharing menu. (#7564)

  • Added

    Adds set of new methods to DocumentSharingManager accepting ShareTarget for sharing documents to single share target. (#7604).

  • Added

    Adds async versions for methods in DocumentSharingIntentHelper that could potentially block UI thread. (#7822)

  • Added

    Adds methods PSPDFKit#invalidateDocumentCache and PSPDFKit#invalidatePageCache for clearing the render cache of a document or page respectively. (#7739)

  • Added

    Adds new document processing examples inside the DocumentProcessorExample of the catalog app. (#7594, #7797)

    • Added

      Adds example on how to rotate pages.

    • Added

      Adds example on how to add new pages to a document.

  • Added

    Adds better support for preserving passwords from the original document when saving or processing. (#6665)

  • Added

    Adds PSPDFKit#openDocument(context, DocumentSource) and PSPDFKit#openDocuments(context, List<DocumentSources>) methods. A DocumentSource object describes the source of a document which can be either a Uri or a DataProvider. (#7994)

    • Removed

      Removes PSPDFKit#openDocuments(List<Uri>). It had to be removed instead of deprecated due to Java generics type erasure. It has been replaced with PSPDFKit#openDocuments(List<DocumentSource>).

    • Added

      Adds PSPDFDocument#getDocumentSource() and PSPDFDocument#getDocumentSources() methods for retrieving the source of document PDF data.

    • Removed

      Deprecates all PSPDFKit#open methods which accepted a DataProvider or list of document Uris. The new methods accepting DocumentSource objects should be used instead.

    • Removed

      Deprecates PSPDFDocument#getUri(), PSPDFDocument#getUriList(). The new getDocumentSource() and getDocumentSources() methods should be used instead.

  • Added

    Adds position independent executable flag (-fpie) for further security hardening of the native code. (#7731)

  • Added

    Adds keyboard shortcuts. (#7750)

    • Added

      Adds Ctrl+P for opening the printer dialog.

    • Changed

      Selected annotations can now be deleted by pressing backspace or delete.

  • Added

    Adds AnnotationCreationMode enum that is used instead of AnnotationType to control active annotation tool in annotation creation mode. (#7883)

    • Removed

      Deprecates PSPDFFragment#enterAnnotationCreationMode(AnnotationType). Use #enterAnnotationCreationMode(AnnotationCreationMode) instead.

    • Removed

      Deprecates AnnotationCreationController#getCurrentlyEditedAnnotationType. Use #getActiveAnnotationCreationMode instead.

    • Removed

      Deprecates AnnotationCreationController#changeAnnotationCreationMode(AnnotationType). Use #changeAnnotationCreationMode(AnnotationCreationMode) instead.

  • Added

    Adds analytics API allowing developers to collect framework data. (#7836)

    • Added

      Adds AnalyticsClient interface. This can be implemented to receive various analytics events and data from the framework.

    • Added

      Adds Analytics.Event and Analytics.Data classes defining all existing analytics events and their carried data.

    • Added

      Adds PSPDFKit#addAnalyticsClient and PSPDFKit#removeAnalyticsClient for adding and removing AnalyticsClient instances respectively.

  • Added

    Adds an option to limit the maximum number of search results. See SearchConfiguration.Builder#maxSearchResults(int). (#7512)

  • Fixed

    Significantly improves rendering performance by partially rendering zoomed pages. (#7531)

    • Fixed

      Fixes fuzzy text while scrolling around the page.

    • Changed

      Significantly reduces memory usage of the application.

  • Changed

    Default position of the AnnotationCreationToolbar is now Position.LEFT on tablet devices with sw600dp. (#7517)

  • Changed

    Clicking on annotation editing button now toggles annotation creation mode. (#8069)

  • Changed

    Improves rendering of annotations on rotated documents. (#6312, #7185, #7792)

  • Changed

    Improves memory usage when searching in a large document. (#7958)

  • Changed

    Improves font size picker in SliderPickerInspectorView. (#8014)

  • Changed

    PSPDFKit.open*Async methods now return a Single<PSPDFDocument> instead of Observable<PSPDFDocument>. (#7994)

  • Changed

    Renames controller binding methods in ContextualToolbar implementations: (#7908)

    • Changed

      AnnotationCreationToolbar#bindAnnotationCreationController(), DocumentEditingToolbar#bindDocumentEditingController() and TextSelectionToolbar#bindTextSelectionController() are all renamed to bindController().

    • Changed

      AnnotationCreationToolbar#unbindAnnotationCreationController(), DocumentEditingToolbar#unbindDocumentEditingController() and TextSelectionToolbar#unbindTextSelectionController() are all renamed to unbindController().

  • Fixed

    Fixes toolbar icon when sharing is disabled - the icon will now show a printer to accurately reflect the remaining action. (#8045)

  • Fixed

    Fixes an issue where a highlight annotation was rendered with a border. (#7618)

  • Fixed

    Fixes an issue where some documents couldn’t be exported or printed. (#7585)

  • Fixed

    Fixes an incorrect bitmap recycling when the PSPDFActivity is finishing, possibly causing out-of-memory errors when quickly being restarted. (#7659)

  • Fixed

    Fixes a build tools issue causing resource resolution errors at runtime. (#7672)

  • Fixed

    Fixes a crash originating inside the ContentResolverDataProvider if the used content provider was not supporting append operations. (#7716)

  • Fixed

    Fixes an issue where the text selection offsets were wrong in certain documents, causing highlight annotations to be misaligned. (#7271)

  • Fixed

    Fixes an issue where text selection mode was exited when dragging both handles to the same text index. (#7652)

  • Fixed

    Fixes an issue where document editor didn’t re-render changed pages. (#7690)

  • Fixed

    Fixes an issue where document didn’t refresh when creating highlight annotation from selected text. (#7729)

  • Fixed

    Fixes an issue where markup annotation color wasn’t applied before leaving annotation inspector. (#7786)

  • Fixed

    Fixes clipped background of selected toolbar icons on some density configurations. (#7741)

  • Fixed

    Fixes DocumentListener callbacks onPageChanged(PSPDFDocument, int) and onDocumentZoomed(PSPDFDocument, int, float) inconsistent with paginated scrolling. (#6727)

  • Fixed

    Fixes bookmark list view losing changed sort order when a bookmark is deleted. (#7977)

  • Fixed

    Fixes wrong tint of bookmark edit button. (#8001)

  • Fixed

    Fixes autocorrect not working for free text annotations. (#7857)

  • Fixed

    Fixes markup annotations sometimes being rendered on top of other annotations. (#8029)

  • Fixed

    Fixes rendering of compound documents with annotations. (#8048)

  • Fixed

    Fixes an issue where thumbnail bar is being kept on top of the keyboard, thus reducing the available space on the screen. (#7999)

2.5.1 - 29 Aug 2016

  • Added

    Adds preview of free-text and ink annotations to annotation inspector when creating annotations. (#7330)

  • Added

    Adds example on how to add custom share actions to the CustomActionsExample of the catalog app. (#7564)

  • Added

    Adds example on how to rotate pages using the PSPDFProcessor to the DocumentProcessingExample of the catalog app. (#7594)

  • Changed

    Renames PropertyInspectorView#bindToController() to PropertyInspectorView#bindController(). (#7540)

  • Changed

    Catalog app now asks for external storage read/write permissions when opening files from implicit intents on Android M and higher. (#7150)

  • Changed

    Allows re-selecting text via long press gesture when text is already selected. (#7566)

  • Fixed

    Fixes an issue where windowSoftInputMode set on PSPDFActivity was overwritten with SOFT_INPUT_ADJUST_NOTHING when opening password protected documents. (#7431)

  • Fixed

    Fixes crash when deselecting FreeText annotations with null contents. (#7584)

  • Fixed

    Fixes an issue where ink annotations that were created with smaller bounding box than the minimum bounding box size could not be resized to their original size. (#7438)

  • Fixed

    Fixes an issue with single dot ink annotation disappearing when moved around the page. (#7436)

  • Fixed

    Fixes an issue where HUD disappeared when tapping menu item while HUD was hiding. (#7502)

  • Fixed

    Fixes an issue where annotation creation mode was left after creating note annotation on single page documents. (#7516)

  • Fixed

    Fixes an issue that could lead to inconsistent UI when clicking on HUD buttons while selecting annotations. (#7520)

  • Fixed

    Fixes an issue where ink annotations resized to their maximum size were rendered without alpha. (#7534)

  • Fixed

    Fixes an issue where creating multiple free-text annotations would exit annotation creation mode. (#7591)

2.5.0 - 15 Aug 2016

See the announcement post.

  • Changed

    Updates dependencies - support libraries have been reverted to 23.4.0 until release of Android Nougat. RxJava was updated to version 1.1.9.

  • Added

    Adds bookmark support to the UI and APIs. Bookmarks are stored inside the PDF document itself in a portable manner. (#5787)

    • Added

      Adds Bookmarks tab to the outline view with controls to add and delete bookmarks.

    • Added

      Adds BookmarkProvider class handling all Bookmark related operations. It can be retrieved by calling PSPDFDocument#getBookmarkProvider().

    • Added

      Adds BookmarkListView as a view to display bookmark list inside a document.

  • Added

    Adds annotation property inspector replacing old color and thickness picker dialog. (#3594)

    • Changed

      IMPORTANT: The property inspector coordinator needs to be present in activity layout for annotation inspector to work correctly. If you are using custom view in PSPDFActivity, add com.pspdfkit.ui.inspector.PropertyInspectorCoordinatorLayout with id R.id.pspdf__inspector_coordinator (for example, see custom_pdf_activity.xml from the catalog app).

    • Added

      Adds PropertyInspectorView interface with implementations ColorPickerInspectorView and SliderPickerInspectorView for picking colors and thickness/text size.

    • Added

      Adds PropertyInspector used as a container for PropertyInspectorViews.

    • Added

      Adds PropertyInspectorCoordinatorLayout used for displaying instances of PropertyInspector and handling animations and interactions between them.

    • Changed

      Updates AnnotationToolbarFragmentExample from the catalog app to show how to incorporate PropertyInspectorCoordinatorLayout with working annotation inspector in PSPDFFragment within the custom activity.

    • Added

      Adds CustomAnnotationInspectorExample showing how to add views to existing annotation inspector and how to create custom annotation inspector UI from scratch.

  • Added

    Adds PSPDFActivity.IntentBuilder that builds an Intent to display a PDF document. This allows customization of Intent flags and extras before starting the activity. (#7158)

  • Added

    Adds an API for controlling annotation inspector when creating or editing annotations.

    • Added

      Adds AnnotationInspectorController through which the annotation inspector can be fully customised.

    • Added

      Adds bindAnnotationInspectorController and unbindAnnotationInspectorController to AnnotationCreationController and AnnotationEditingController.

    • Added

      Adds AnnotationCreationInspectorController and AnnotationEditingInspectorController managing annotation inspector in annotation creation and editing modes.

  • Added

    Adds an API for controlling annotation editing defaults and preferences.

    • Added

      Adds AnnotationDefaultsManager handling defaults and allowed values for annotation properties.

    • Added

      Adds set of AnnotationDefaults*Provider interfaces for supported annotation properties and FreeTextAnnotationDefaultsProvider, InkAnnotationDefaultsProvider, MarkupAnnotationDefaultsProvider and NoteAnnotationDefaultsProvider providing annotation defaults for supported annotation types.

    • Added

      Adds AnnotationPreferencesManager handling annotation editing preferences.

    • Added

      Adds PSPDFFragment#getAnnotationDefaults() and PSPDFFragment#getAnnotationPreferences to access AnnotationDefaultsManager and AnnotationPreferencesManager.

    • Added

      Adds AnnotationDefaultsExample showing how to use the new annotation defaults API.

  • Added

    Improves configuring search and adds more options to the search API. (#7246)

    • Added

      Adds SearchConfiguration to PSPDFActivityConfiguration containing properties for searching the document.

    • Added

      Adds SearchView#setSearchConfiguration() for setting the SearchConfiguration to the SearchView implementation.

    • Added

      Adds an option to start search on the current page in the search views. See SearchConfiguration.Builder#setStartSearchOnCurrentPage().

    • Added

      Adds getters and setters for SearchConfiguration properties applied to PSPDFSearchViewInline and PSPDFSearchViewModular.

    • Added

      Adds setting up priority pages when performing a search. Those pages will be the first ones to search, before the other ones. See PSPDFSearchOptions#priorityPages().

    • Removed

      Removes setSnippetLength() and setStartSearchChars() (along with its XML counterparts) from ModularSearchThemeConfiguration since those don’t really belong to the theme, moved to SearchConfiguration.

    • Removed

      Removes setStartSearchChars() (along with its XML counterparts) from InlineSearchThemeConfiguration since that doesn’t really belong to the theme, moved to SearchConfiguration.

  • Added

    Adds PropertyInspectorCoordinatorLayout.PropertyInspectorLifecycleListener that listens for property inspector lifecycle within the PropertyInspectorCoordinatorLayout (preparing, displaying, removing), set through PSPDFActivity#setPropertyInspectorLifecycleListener(listener) and removed through PSPDFActivity#removePropertyInspectorLifecycleListener().

  • Added

    Adds support for annotation resizing guides. (#5555)

  • Added

    Adds theme attributes for ToolbarCoordinatorLayout set through: <item name="pspdf__toolbarCoordinatorLayoutStyle"/> with dragTargetColor attribute for setting a color of the target area when dragging the toolbars. It can also be set programmatically through ToolbarCoordinatorLayout#setDragTargetColor. (#7165)

  • Added

    Adds ToolbarCoordinatorLayout.LayoutParams to be used for positioning ContextualToolbar within ToolbarCoordinatorLayout. (#7161)

    • Added

      Adds allowedPositions property as part of the ToolbarCoordinatorLayout.LayoutParams that allows selecting which toolbar positions are allowed.

    • Changed

      Improves toolbar position changes: when forcefully pinned to the top due to the lack of space, the toolbar will restore it’s original position once there’s enough space again.

    • Removed

      Removes ContextualToolbar#setPosition() and ContextualToolbar#getPosition() calls. Set position parameter through ToolbarCoordinatorLayout.LayoutParams, set on the ContextualToolbar.

  • Added

    Adds DocumentSharingProvider automatically to the manifest through manifest merging (no need to set them manually). (#7287)

  • Added

    Adds android:largeHeap="true" to the AndroidManifest.xml using manifest merging. (#7287)

  • Changed

    Renames Annotation#getPageNumber() to Annotation#getPageIndex() to avoid confusion about zero indexing. (#7340)

  • Changed

    Renames MediaAssetsContentProvider to AssetsContentProvider. It’s authority is changed to {$applicationId}.pdf.assets and it is not added automatically to the app’s manifest. (#7391)

  • Changed

    Improves compatibility when flattening documents with non-standard headers. (#7212)

  • Changed

    Improves logic around copying forms via the processor when the source document has invalid form entries. (#7273)

  • Changed

    Improves JPEG2000 decoding performance. (#7307)

  • Removed

    Deprecates PSPDFActivityConfiguration#printingEnabled() and replaces it with enablePrinting() / disablePrinting() methods for consistency. (#7476)

  • Fixed

    Fixes all documents using the same thread pool causing severe performance issues when trying to do background operations like thumbnail generation. (#7240)

  • Fixed

    Fixes an issue where note annotation wasn’t created with last used color and icon. (#7107)

  • Fixed

    Fixes several issues found when editing annotation in compound documents. (#7192)

  • Fixed

    Fixes improper toolbar height on pre-Lollipop devices. (#7334)

  • Fixed

    Fixes incorrect InvalidThemeException being thrown when the context provided to the theme configuration builders is not using some NoActionBar theme. (#7463)

  • Fixed

    Fixes an issue where annotation could not be resized when scale handle moved outside of a page. (#7367)

  • Fixed

    Fixes an issue where annotation could not be resized when scale handles moved outside of a page. (#4814)

  • Fixed

    Fixes an issue that could result in infinite search when performing inline search. (#7410)

  • Fixed

    Fixes false positive warnings when detecting missing android:largeHeap flag. (#7262)

  • Fixed

    Fixes an issue when inline search query is not cleared up when exiting the search bar. (#7453)

  • Fixed

    Fixes an issue where annotation resizing couldn’t be disabled via AnnotationEditingConfiguration.Builder#setSelectionResizeEnabled. (#7488)

2.4.3 - 6 Jul 2016

  • Added

    Adds pspdf__tabIndicatorColor attribute to the pspdf__OutlineView styleable. The attribute defaults to ?colorPrimary. (#7091)

  • Changed

    Marks exception parameters in DocumentListener#onDocumentLoadFailed and DocumentListener#onDocumentSaveFailed as @NonNull. (#7122)

  • Changed

    DocumentSharingProvider will now return the android.provider.OpenableColumns when queried for a shared file. (#7131)

  • Fixed

    Fixes an issue where PSPDFKit thought it runs in debug mode. (#7129)

  • Fixed

    Fixes an issue where the soft keyboard was not closed after exiting search on some Samsung devices. (#7145)

2.4.2 - 28 Jun 2016

  • Changed

    Updates dependencies - Support libraries (support-v4, appcompat-v7, recyclerview-v7, cardview-v7 and design) have been updated to version 24.0.0. RxJava was updated to 1.1.6 and RxAndroid to 1.2.1.

  • Added

    Adds ToolbarsInFragmentExample instead of AnnotationToolbarFragmentExample in the catalog app, incorporating all new toolbars instead of just annotation creation toolbar. (#6914)

  • Added

    Adds a lot of the documentation with the matched styling across the framework. (#6406, #6404)

  • Added

    Adds InvalidThemeException that may be thrown if an invalid theme is used. (#6942, #6943)

  • Added

    Adds theme validation to PSPDFActivity#onCreate which will throw an exception if the used theme is incompatible with the activity. (#6942)

  • Changed

    ThumbnailBarThemeConfiguration#getBackgroundColor now defaults to the theme’s ?colorPrimary attribute. (#6943)

  • Added

    Adds a default icon to the PDF password screen. To disable the icon set pspdf__icon of your theme’s pspdf__passwordViewStyle to @null. (#6943)

  • Changed

    Improves rendering performance in certain situations. (#6944)

  • Changed

    Improves thumbnail grid to render thumbnails in page order. (#5307)

  • Changed

    Changes the toolbar drag being activated with a long press on the drag button. Now it starts as soon as the drag button is touched. (#6927)

  • Fixed

    Fixes an issue where rotated pages were not rendered correctly in print preview. (#6892)

  • Fixed

    Fixes an issue with print dialog being canceled when changing orientation. (#6755)

  • Fixed

    Fixes an issue where overriding menu item clicks in ContextualToolbar through ContextualToolbar.OnMenuItemClickListener was not correctly applied and the default action was executed alongside the custom one. (#6995)

  • Fixed

    Fixes a native crash caused when passing null as license to PSPDFKit#initialize. The method will now throw a PSPDFInvalidLicenseException if called with a null license. (#7055)

  • Fixed

    Fixes keyboard not closing after exiting search in some cases. (#7070)

2.4.1 - 10 Jun 2016

  • Changed

    Theme attribute actionModeBackground is no longer used for setting default color for all contextual toolbars. Please use pspdf__contextualToolbarBackground instead. (#6912)

  • Removed

    Removes the no longer used TextSelectionListener interface. Please use the newer OnTextSelectionChangedListener instead. (#6896)

  • Fixed

    Fixes an issue causing a license error when initializing the PSPDFThumbnailGrid. (#6910)

  • Fixed

    Fixes an issue where text in note annotation editor had low contrast when using certain background colors. (#6819)

  • Fixed

    Fixes an issue where annotation color picker didn’t show correct color when editing annotations. (#6875)

  • Fixed

    Fixes crash in ContextualToolbar that occurred when theme didn’t define the actionModeBackground attribute. (#6906)

  • Fixed

    Fixes PSPDFFragment#onSaveInstanceState blocking the main thread when being called while the fragment was on the fragment back stack without being displayed. (#6971)

  • Fixed

    Fixes an issue with print dialog being canceled when changing orientation. (#6755)

2.4.0 - 7 Jun 2016

See the announcement post.

PSPDFKit 2.4 for Android is one of our largest releases so far. A new annotation toolbar, printing and many smaller improvements to almost all parts of the SDK make this a worthy upgrade.

  • Changed

    IMPORTANT: PSPDFActivity now uses android.support.v7.widget.Toolbar as action bar instead of the default one (#6036). These are the necessary migration changes:

    • Changed

      If using custom view in PSPDFActivity, add android.support.v7.widget.Toolbar with id R.id.pspdf__toolbar_main contained within the com.pspdfkit.ui.toolbar.ToolbarCoordinatorLayout with id R.id.pspdf__toolbar_coordinator. The toolbar coordinator needs to contain main toolbar as a child so the new toolbars can be displayed and animated properly (for example, see custom_pdf_activity.xml from the catalog app).

    • Changed

      The theme applied to the activity should have Theme.AppCompat.Light.NoActionBar as a parent, with these attributes: <item name="windowActionBar">false</item>, <item name="windowNoTitle">true</item> and <item name="windowActionModeOverlay">true</item>. The default color for all the contextual toolbars is set through <item name="actionModeBackground">.

  • Added

    Adds support for printing documents in Android 4.4 (API level 19) and higher. (#2936)

    • Added

      Adds PrintAdapter class to manually handle PDF processing for printing.

    • Added

      Adds DocumentPrintDialog to display a dialog with printing options.

  • Added

    Adds an API for controlling the annotation creation mode:

    • Added

      Adds method to start the annotation creation: PSPDFFragment#enterAnnotationCreationMode(AnnotationType annotationType).

    • Added

      Adds listeners for mode changes: PSPDFAnnotationManager.OnAnnotationCreationModeChangeListener and PSPDFAnnotationManager.OnAnnotationCreationModeSettingsChangeListener.

    • Added

      Adds methods for registering those listeners in PSPDFFragment: registerAnnotationCreationModeChangeListener() and registerAnnotationCreationModeSettingsChangeListener() along with unregister* calls.

    • Added

      Adds AnnotationCreationController provided by listener callbacks through which the annotation creation mode can be controlled programmatically.

  • Added

    Adds an API for controlling the annotation editing mode:

    • Added

      Adds method to start the annotation editing: PSPDFFragment#enterAnnotationEditingMode(Annotation annotation).

    • Added

      Adds listener for mode changes: PSPDFAnnotationManager.OnAnnotationEditingModeChangeListener.

    • Added

      Adds methods for registering that listener in PSPDFFragment: registerAnnotationEditingModeChangeListener() along with unregister* call.

    • Added

      Adds AnnotationEditingController provided by listener callbacks through which the annotation editing mode can be controlled programmatically.

  • Added

    Adds an API for controlling the text selection mode:

    • Added

      Adds method to start the text selection mode: PSPDFFragment#enterTextSelectionMode(int pageNumber, Range textRange).

    • Added

      Adds listeners for mode changes: TextSelectionManager.OnTextSelectionModeChangeListener and TextSelection.OnTextSelectionChangeListener.

    • Added

      Adds methods for registering those listeners in PSPDFFragment: registerTextSelectionModeChangeListener() and registerTextSelectionChangeListener() along with unregister* calls.

    • Added

      Adds TextSelectionController provided by listener callbacks through which the text selection mode can be controlled programmatically.

    • Removed

      Deprecates PSPDFFragment#setTextSelection() (use PSPDFFragment#enterTextSelectionMode()) and PSPDFFragment#clearTextSelection() (use PSPDFFragment#exitCurrentlyActiveMode()).

  • Added

    Adds PSPDFFragment#exitCurrentlyActiveMode() for exiting any currently active mode such as text selection, annotation creation and annotation editing.

  • Added

    Adds an API for controlling the document editing mode:

    • Added

      Adds methods to start and exit document editing mode: PSPDFThumbnailGrid#enterDocumentEditingMode() and PSPDFThumbnailGrid#exitDocumentEditingMode().

    • Added

      Adds listeners for mode changes: PSPDFThumbnailGrid.OnDocumentEditingModeChangeListener and PSPDFThumbnailGrid.OnDocumentEditingPageSelectionChangeListener.

    • Added

      Adds methods for registering those listeners in PSPDFThumbnailGrid: registerDocumentEditingModeChangeListener() and registerDocumentEditingPageSelectionChangeListener() along with unregister* calls.

    • Added

      Adds DocumentEditingController provided by listener callbacks through which the document editing mode can be controlled programmatically.

  • Added

    Adds toolbars for special modes (all extend ContextualToolbar): AnnotationCreationToolbar, AnnotationEditingToolbar, DocumentEditingToolbar and TextSelectionToolbar.

  • Added

    Adds ToolbarCoordinatorLayout used for animating views and handling animations and interactions between them. Toolbars can now be dragged to the sides of the screen (if enough room).

  • Added

    Adds ToolbarCoordinatorLayout#displayContextualToolbar(ContextualToolbar toolbar, boolean animate) and ToolbarCoordinatorLayout#removeContextualToolbar(boolean animate) methods for displaying/removing contextual toolbars from the coordinator.

  • Added

    Adds ToolbarCoordinatorLayout.OnContextualToolbarLifecycleListener that listens for toolbar lifecycle within the ToolbarCoordinatorLayout (preparing, displaying, removing), set through PSPDFActivity#setOnContextualToolbarLifecycleListener(listener) and removed through PSPDFActivity#removeOnContextualToolbarLifecycleListener().

  • Added

    Adds ToolbarCoordinatorLayout.OnContextualToolbarMovementListener that listens for toolbar movements within the ToolbarCoordinatorLayout, set through PSPDFActivity#setOnContextualToolbarMovementListener(listener) and removed through PSPDFActivity#removeOnContextualToolbarMovementListener().

  • Added

    Adds theme attributes for new toolbar views icons, set through: <item name="pspdf__annotationCreationToolbarIconsStyle"/>, <item name="pspdf__annotationEditingToolbarIconsStyle"/>, <item name="pspdf__textSelectionToolbarIconsStyle"/> and <item name="pspdf__documentEditingToolbarIconsStyle"/>.

  • Added

    Adds ContextualToolbarMenuItem class which represents a single item in the ContextualToolbar.

  • Added

    Adds AnnotationToolbarFragmentExample to the catalog app. It shows how to incorporate ToolbarCoordinatorLayout in PSPDFFragment within the custom activity to get toolbar animations.

  • Added

    Adds support for Now-On-Tap feature introduced in Android Marshmallow. (#5294)

  • Added

    Adds fullscreen version of Document Editor page creator dialog for small devices. (#5984)

  • Added

    Adds ScreenReaderExample which showcases how to build a screen reader using PSPDFKit. (#6489)

  • Added

    Adds highlighting of the currently active page to PSPDFThumbnailGrid. (#6601)

  • Added

    Adds new ThumbnailGridThemeConfiguration styleable fields: pspdf__itemLabelTextStyle and pspdf__itemLabelBackground. (#6445)

  • Added

    Adds a new option to control video playback via PSPDFActivityConfiguration.Builder#videoPlaybackEnabled. This is useful for environments with increased security requirements or to work around old Android devices that might be affected by the Stagefright vulnerability. (#6455)

  • Added

    Adds PSPDFProcessorTask(NewPage) constructor for creating a new single-page document. (#6643)

  • Added

    Adds PSPDFProcessor#processDocumentAsync override accepting OutputStream as processor output. (#6666)

  • Added

    Adds an updated Guide.pdf to the catalog app. (#6483)

  • Added

    Adds support for scrolling the page while performing a pinch-zoom gesture. (#4797)

  • Added

    Adds ability to modify page media and crop box to PSPDFProcessor with PSPDFProcessorTask#setPageBox method. (#6746)

  • Added

    Adds getBox to PSPDFDocument to allow retrieval of page media box and crop box. (#6775)

  • Added

    Adds PSPDFProcessorTask#scalePage for scaling document pages. (#6655)

  • Removed

    Removes AnnotationToolbarIconsConfiguration.

  • Removed

    Removes PSPDFFragment#clearAnnotationListeners() and PSPDFFragment#clearDrawableProviders(). Each of the registered listeners or drawable providers should be removed using unregister calls. (#6571)

  • Removed

    Removes #notifyAnnotationSelected, #notifyAnnotationDeselected, and #notifyAnnotationUpdated from PSPDFFragment. If your code was using those methods, use #setSelectedAnntaton, #clearSelectedAnnotations, and #notifyAnnotationHasChanged respectively. (#6419)

  • Changed

    Refinements of the drawable provider API.

    • Changed

      Increases visibility of PSPDFDrawableProvider#notifyDrawablesChanged() and PSPDFDrawableProvider#notifyDrawablesChanged(int) from protected to public.

    • Changed

      Changes PSPDFDrawableProvider#getDrawablesForPage and PSPDFDrawableProvider#getDrawablesForPageAsync to use the upperbounded wildcard ? extends PSPDFDrawable.

  • Changed

    PSPDFThumbnailGrid will now automatically scroll to the currently active page when being opened. (#5578)

  • Changed

    PSPDFFragment now correctly restores visible viewport and zoom scale after rotating the device. (#6531)

  • Removed

    Deprecates Intent extras PSPDFYouTubeActivity#ARG_YOUTUBE_URL and PSPDFMediaDialog#ARG_URI. Instead use PSPDFYouTubeActivity#ARG_MEDIA_URI and PSPDFMediaDialog#ARG_MEDIA_URI with MediaUri values. (#6621)

  • Changed

    Improves rendering performance for some complex documents. (#6686)

  • Changed

    Improves security in various critical areas of the framework via using checked memory functions.

  • Changed

    Correctly cancels document processing after unsubscribing from Observable returned by PSPDFProcessor#processDocumentAsync. (#6666)

  • Fixed

    Fixes ConcurrentModificationException being thrown when registering/unregistering DocumentListeners in PSPDFFragment. (#6744)

  • Fixed

    Fixes ConcurrentModificationException being thrown when registering/unregistering OnVisibilityChangedListeners in OnVisibilityChangeListenerManager. (#6866)

  • Fixed

    Fixes possible multiple registrations of OnVisibilityChangedListener instances inside OnVisibilityChangeListenerManager. (#6800)

  • Fixed

    Fixes crash in PSPDFThumbnailBar that appeared when opening certain documents. (#6830)

  • Fixed

    Fixes an issue where sharing was canceled when rotating device. (#6062)

  • Fixed

    Fixes a race condition that could cause a NullPointerException when calling methods on the PSPDFFragment. (#6644, #6650)

  • Fixed

    Fixes an issue causing a NullPointerException when injecting a key event before the document has been loaded. (#6680)

  • Fixed

    Fixes an issue where the scrolling is blocked when performed on a page while another page is in text selection mode. (#6807)

  • Fixed

    Fixes issues while parsing many annotations on page and lifts limit of 500 annotations per page. (#6629)

  • Fixed

    Fixes an issue where “light” weight font was selected in font substitution process instead of the missing “regular” weight font. (#6487)

  • Fixed

    Fixes an issue where note annotations were not probably displayed when consecutively added within a short timeframe. (#6585)

  • Fixed

    Fixes an issue where annotation wasn’t deselected when tapping on document background or on a different page. (#5991)

  • Fixed

    Fixes an issue where PSPDFFragment#clearSelectedAnnotations and PSPDFFragment#getSelectedAnnotations worked only on annotations on the current page. (#6592)

2.3.3 - 10 May 2016

  • Changed

    Updates dependencies - RxJava to 1.1.5, RxAndroid to 1.2.0.

  • Added

    Adds new PSPDFThumbnailGrid UI. (#6437)

  • Added

    Adds improved support for Accessibility services and screen readers (#6495)

  • Added

    Adds improved support for hardware keyboard shortcuts.

  • Added

    Adds keepPages helper method to PSPDFProcessorTask.

  • Added

    Adds factory method DocumentSaveOptions#createDefaultsFromDocument for creating default save options when processing documents with PSPDFProcessor. (#6412)

  • Added

    Adds support for XML vector drawables on Android devices back to API 16. (#6207)

  • Added

    Adds PSPDFFragment#setInsets and PSPDFFragment#addInsets that makes document insets configurable. (#6299)

  • Removed

    Removes DocumentEditorThemeConfiguration. (#6437)

  • Changed

    Changes DocumentSharingProvider authority - in AndroidManifest.xml the provider authority must be <application package>.pdf.share not com.pspdfkit.share. (#6460)

  • Changed

    PSPDFThumbnailGrid page click listener is now registered via PSPDFThumbnailGrid#setOnPageClickListener.

  • Changed

    Changes PSPDFThumbnailGrid default background color to light gray. (#6437)

  • Changed

    Improves exception message when calling PSPDFFragment#setSelectedAnnotation or PSPDFFragment#setSelectedAnnotations from a thread other than the main-thread. (#6339)

  • Changed

    Marks PSPDFFragment#getSelectedAnnotations return type as @NonNull. The method will now return an empty list if no annotations were selected. (#6339)

  • Changed

    PSPDFFragment#setSelectedAnnotation will no longer automatically change the current page, but rather a separate call to PSPDFFragment#setPage is now required. (#6339)

  • Changed

    Free text annotation is now brought to view when user starts typing. (#5347)

  • Fixed

    Fixes possible crash when checking provider configuration if application contained no providers. (#6527)

  • Fixed

    Fixes appearance of duplicate letters on some devices when editing Free Text annotations. (#6308)

  • Fixed

    Fixes sharing issues on Samsung devices. Note that DocumentSharingProvider now MUST be exported. For security reasons, files may only be shared from an isolated directory. (#6462)

  • Fixed

    Fixes an issue where fragment transactions were possibly not committed before the activity was destroyed, resulting in a missing fragment while activity recreation. (#6326)

  • Fixed

    Fixes DocumentEditor visibility. (#6437)

  • Fixed

    Fixes an issue where PSPDFProcessor would incorrectly throw a PSPDFInvalidLicenseException when processing certain documents. (#6409)

  • Fixed

    Fixes an issue where search results could get hidden behind HUD. (#4190)

  • Fixed

    Fixes an issue where document sharing dialog didn’t use activity title as default document name when explicitly set in PSPDFActivityConfiguration. (#6426, Z#3575)

  • Fixed

    Fixes an issue where text markup annotations couldn’t be selected via PSPDFFragment#setSelectedAnnotation. (#6378)

  • Fixed

    Fixes an issue where annotation couldn’t be reselected from a previously selected note annotation. (#6476)

  • Fixed

    Fixes a NullPointerException that was generated when launching a PSPDFActivity with an invalid license. (#6499)

2.3.2 - 26 Apr 2016

  • Changed

    Text search now also searches over annotation contents. (#5790)

  • Added

    Adds support for search result highlighting customization. (#6206)

  • Changed

    PSPDFThumbnailBar now implements DocumentListener and has to be registered via fragment.registerDocumentListener(thumbnailBar). (#6171)

  • Added

    Adds boolean return type to PSPDFDocument#saveIfModified methods returning true if there were any changes to save. (#6317)

  • Changed

    PSPDFKit#initialize will now log a warning message if android:largeHeap="true" was not declared inside the app’s AndroidManifest.xml. (#6157, #6321)

  • Changed

    Shows soft keyboard when opening annotation creator name dialog. (#6306)

  • Removed

    Deprecates methods setBackgroundColor, setSearchResultBorderColor and setSearchResultBackgroundColor in DocumentThemeConfiguration#Builder. Use backgroundColor, searchResultBorderColor and searchResultBackgroundColor instead. (#6206)

  • Changed

    PSPDFThumbnailBar now implements OnAnnotationUpdatedListener and has to be registered via fragment.registerAnnotationUpdatedListener(thumbnailBar). (#6205)

  • Added

    Adds PSPDFThumbnailGrid.OnPageTappedListener and #setOnPageTappedListener(OnPageTappedListener). (#6172)

  • Added

    Adds PSPDFThumbnailBar.OnPageChangedListener and #setOnPageChangedListener(OnPageChangedListener). (#6171)

  • Added

    Drops EventBus events Events#OnAnnotationUpdated, Events#OnAnnotationSelected and Events#OnAnnotationDeselected. (#6205)

    • Added

      Adds PSPDFFragment#registerAnnotationSelectedListener for listening to annotation selection.

    • Added

      Adds PSPDFFragment#registerAnnotationDeselectedListener for listening to annotation deselection.

    • Added

      Adds PSPDFFragment#registerAnnotationUpdatedListener for listening to annotation updates.

  • Fixed

    Fixes an issue in certain documents where text selection contained more text that was actually selected. (#6213, Z#3424)

  • Fixed

    Fixes an issue where selecting a note annotation on a recycled page would create an exception. (#6183, Z#3403)

  • Fixed

    Fixes an issue where markup annotations couldn’t be deselected by tapping on empty document area. (#6228)

  • Fixed

    Fixes an issue where saving an ink annotation would throw a NullPointerException on older devices. (#6276, #6300)

  • Fixed

    Fixes an issue where newly created note annotations where not correctly added to the document after a configuration change. (#6301)

  • Fixed

    Fixes an issue where flattening and removing annotations at the same time caused problems. (#6344)

2.3.1 - 8 Apr 2016

  • Added

    Adds support for exporting selected pages with the Document Editor. (#5987)

  • Added

    Adds sharing support. (#5633)

    • Changed

      Allows sharing selected text.

    • Changed

      Allows sharing free-text and note annotation contents.

    • Changed

      Allows sharing documents.

    • Added

      Adds DocumentSharingProvider which provides access to shared files for other applications.

  • Added

    Adds com.pspdfkit.utils.PDFUtils#createPDFRectUnion for calculating the union of a list of PDF rects. (#6117)

  • Added

    Adds catalog examples CustomInlineSearchExample and CustomSearchUiExample. (#6037, #6106)

  • Added

    Adds option to set custom password, pdf version and permissions when saving documents. (#6014)

    • Added

      Adds DocumentSavingOptions parameter to onSaveDocument() call in DocumentListener for customization.

    • Added

      Adds DocumentSavingOptions parameter to save methods in PSPDFDocument.

    • Added

      Adds getDefaultDocumentSavingOptions() method to PSPDFDocument to retrieve document options representing the current document parameters.

    • Added

      Adds option to disable incremental saving via DocumentSavingOptions.

  • Added

    Adds maximumPreviewResultsPerDocument and maximumPreviewResultsTotal to QueryOptions to allow limitation of preview results in full-text search. (#6047, #6017)

  • Changed

    Marks the return values of various PSPDFKit#openDocument* methods as @NonNull. (#6133)

  • Fixed

    Fixes possible OutOfMemory exceptions when resizing PSPDFThumbnailBar. (#6083, Z#3358)

  • Fixed

    Fixes a misleading build error message shown when dependency com.android.support:cardview-v7 is missing. (#6073)

  • Fixed

    Fixes a possible activity leak. (#6111, Z#3380)

2.3.0 - 31 Mar 2016

This release features the new Document Editor. This component allows users to access a whole host of page editing features, including new page creation, page duplication, reordering, rotation or deletion, as well as creating a new document from pages selected across multiple existing documents. If you like to add the Document Editor to your license, ping our sales team to receive a quote.

  • Added

    Adds Document Editor. (#5719)

  • Added

    Adds handling for document permission flags. (#5151)

  • Changed

    Updates dependencies - com.android.support:recyclerview-v7:23.2.1, com.android.support:cardview-v7:23.2.1 and com.android.support:design:23.2.1 have been added, updates RxJava to 1.1.1, RxAndroid to 1.1.0 and support library to 23.2.1.

  • Added

    New page drawable API. (#5766)

    • Added

      Adds PSPDFDrawable to draw arbitrary content on top of rendered pages.

    • Added

      Adds PSPDFDrawableProvider which can serve one or multiple drawables for a page.

    • Added

      Adds PSPDFFragment#registerDrawableProvider, PSPDFFragment#unregisterDrawableProvider, and PSPDFFragment#clearDrawableProviders for managing drawable providers.

  • Added

    New text search API allowing to manually search a document and build custom search implementations. (#5463)

    • Added

      Adds PSPDFTextSearch for searching a document. Searching a document will return a list of PSPDFSearchResult objects.

    • Added

      Adds PSPDFSearchResultHighlighter for visually highlighting one or multiple search results using the new drawable API.

    • Changed

      Search views (PSPDFSearchViewInline and PSPDFSearchViewModular) are now inside package com.pspdfkit.ui.search. This package also contains all other search UI related classes.

  • Added

    Adds PSPDFFragment#scrollTo for scrolling to rects on a page. (#5597)

  • Added

    Adds PSPDFKitActivityConfiguration#setHudViewMode(int) that makes showing/hiding HUD and system bars configurable. (#5566)

  • Added

    Adds PSPDFActivity#setHudViewMode(HudViewMode) that makes showing/hiding HUD and system bars configurable at runtime. (#5566)

  • Changed

    Contextual action modes now behave more consistently. (#5414)

  • Changed

    Inline search now scrolls to search results even when they are outside of the current viewport. (#5560)

  • Changed

    Annotation#getBoundingBox now returns a copy of the internal rectangle to prevent inconsistent API behavior. (#5122)

  • Changed

    PSPDFDocument#getPermissions now returns a copy of the internal permissions set. (#5722)

  • Added

    Adds a warning if text-to-speech service is unavailable. (#5552)

  • Changed

    Disables entering emojis into free text annotation. (#5840)

  • Fixed

    Fixes an issue where ink paths got lost after zooming while drawing on multiple pages. (#5604)

  • Fixed

    Fixes an issue where it was possible to create empty free text annotations. (#5468)

  • Fixed

    Fixes an issue where selected annotation wasn’t unselected after selecting text markup annotation. (#5523)

  • Fixed

    Fixes an issue where scrolling while having text selected would crash the app. (#5653, Z#3160)

  • Fixed

    Fixes an issue where scrolling by touching some tappable area causes it to highlight for a split second. (#5698)

  • Fixed

    Fixes an issue where drawing dots with ink is not shown on the screen. (#5614)

  • Fixed

    Fixes an issue where reading note annotations is not possible if annotation editing is disabled. (#5665)

  • Fixed

    Fixes ink annotation drawing performance regression. (#5557)

  • Fixed

    Fixes saving to files with non-ASCII filenames. (#5839)

  • Fixed

    Fixes an issue where the page 2 places to the left of the last page would disappear when the last page becomes the current one. (#5694)

  • Fixed

    Fixes an issue in the continuous scroll mode where setting the specific page would align left edge of the screen with the one of the page, instead of the middles. (#5745)

  • Fixed

    Fixes an issue where annotation was displayed twice when moving or disappeared when unselected. (#5727)

  • Fixed

    Fixes an issue when using PSPDFThumbnailBar in custom layouts. (#5763)

  • Fixed

    Fixes an issue where PSPDFActivity wouldn’t listen to events after loading new document. (#5785)

  • Fixed

    Fixes an issue appearing randomly when changing orientation after highlighting text selection. (#5798)

  • Fixed

    Fixes an issue where changing text size of a free text annotation to 1pt didn’t work. (#5799)

  • Fixed

    Fixes an issue where note annotation wasn’t deselected after being deleted in note editor. (#5791)

  • Fixed

    Fixes an issue when soft keyboard is not dismissed after quitting free text annotation editing. (#5843)

  • Fixed

    Fixes an issue where it wasn’t possible to pick grey color in note annotation editor. (#5794)

  • Fixed

    Fixes an issue with leaking the activity context when initializing in short-lived activities. (#5879)

  • Fixed

    Fixes an issue where documents where loaded multiple times when using a DataProvider as source. (#5869)

  • Fixed

    Fixes an issue where editing annotations would produce flickering. (#5931)

  • Fixed

    Fixes several out-of-memory errors caused by intensive bitmap allocations. (#5724)

  • Fixed

    Fixes non-natural fling gestures after pinch-zooming into the document. (#4798)

2.2.1 - 26 Feb 2016

  • Changed

    Improves text highlighting by using a smart paragraph selection and not just the selected rect. (#5032)

  • Added

    Adds support for reading documents from a ContentProvider serving data through a pipe (i.e. via ParcelFileDescriptor.createPipe()).

  • Added

    Adds com.pspdfkit.listeners.SimpleDocumentListener which is an empty implementation of the DocumentListener interface. (#5512)

  • Changed

    Inline search now shows results starting from the current page. (#5579)

  • Changed

    Minor cosmetic tweaks in annotation list. (#5559)

  • Fixed

    Fixes an issue with duplicated search results when searching from text selection. (#5553)

  • Fixed

    Fixes an issue when selecting “Testcase_No_Annotations.pdf” example in PSPDFKit catalog’s “Document switcher example” would crash the app.

  • Fixed

    Fixes an issue where edge pages are never marked as current in continuous scroll mode because they never reach the middle of the screen. (#4964)

  • Fixed

    Fixes an issue where certain characters (like parenthesis, brackets, etc.) could not be searched. (#5596, Z#3117)

  • Fixed

    Fixes performance regression when editing large annotations. (#5618)

2.2.0 - 19 Feb 2016

See the announcement post.

  • Changed

    Enables annotation editing on multiple pages, as well as switching pages while editing. (#5346, #5289)

  • Added

    Adds search menu option for selected text in the document. (#5298)

  • Added

    Adds PSPDFKit#openDocumentFromSource. (Z#2985)

  • Changed

    Keeps parameter names of public API methods. (#5019)

  • Changed

    Displays page number indicator overlay after system bars are shown. (#5299)

  • Changed

    Note annotation editor can now be opened by double-tapping a selected annotation. (#5290)

  • Changed

    Free text annotation editor now differentiates between editing and writing modes. (#5296)

  • Changed

    PSPDFFragment can now be nested as a child fragment. (#5476)

  • Changed

    Allows scrolling while in drawing mode. (#5252, Z#2861)

  • Fixed

    Fixes an issue where saving to ContentProviders which don’t support appending would fail.

  • Fixed

    Fixes an issue in the free text annotation editor where the soft-keyboard wasn’t hidden after selection ended.

  • Fixed

    Fixes an issue in the free text annotation editor where the soft-keyboard wasn’t automatically opened in the landscape screen orientation. (#5503)

  • Fixed

    Fixes an issue where text couldn’t be pasted into the free text annotation editor. (#5123)

  • Removed

    Removes wrong @Nullable annotation from PageRenderConfiguration.Builder#build.

  • Changed

    Clicking text markup annotations won’t start edit mode if annotation editing is disabled. (#5434)

  • Fixed

    Fixes an issue where AssetDataProvider would return an invalid Uri via #getUri. (#5420)

  • Fixed

    Fixes IllegalStateException crash appearing randomly in paginated layout. (#5361)

  • Fixed

    Fixes animation transition from selected text to ActionMode. (#5378)

  • Fixed

    Fixes an issue that could cause a crash when opening documents with large number of annotations in a page. (#5455)

  • Fixed

    Fixes an issue where highlight annotations created from text selection action bar had undefined author field. (#5343)

  • Fixed

    Fixes an issue where outline button was disabled even when annotation list was available. (#5287)

  • Fixed

    Fixes an issue where Bitmap objects returned by PSPDFDocument#renderPageToBitmap would not have premultiplied alpha values. (#5412)

  • Fixed

    Fixes an issue where immersive mode wasn’t handled correctly while contextual action mode was active.

  • Fixed

    Fixes MediaController displacement. (#5314)

  • Fixed

    Fixes a non-fatal exception on Samsung devices failing to unparcel framework classes. (#5456)

  • Fixed

    Fixes an issue where annotation editing button was clickable even when disabled visually. (#5288, #5464, Z#3035)

  • Fixed

    Fixes an issue where drawing ink annotations outside of the page makes it larger than the page itself. (#5498)

  • Fixed

    Fixes an issue that would cause exceptions when accessing AnnotationProvider#getAnnotations concurrently. (#5500)

  • Fixed

    Fixes an issue when adding multiple annotations at the same time programmatically would cause MissingBackpressureException to be thrown. (#5233)

2.1.1 - 2 Feb 2016

  • Added

    Added PSPDFKit#openDocumentsFromSources, PSPDFActivity#showDocumentsFromSources and PSPDFFragment#newInstanceFromSources to allow opening of compound PDF documents from multiple DataProviders.

  • Fixed

    Fixes preserving page sharpness when performing zoom actions on already zoomed page (#5302)

  • Fixed

    Fixes an issue where a subscription license would stop working once expired. (#5327)

  • Changed

    Outline and search view are now dismissed when entering annotation editing mode. (#5326)

  • Changed

    Preserving page sharpness when performing zoom actions on already zoomed page (#5302).

  • Changed

    In PSPDFSearchViewInline, methods getPrevIconColorFilter and getNextIconColorFilter are renamed to getPrevIconColorTint and getNextIconColorTint respectively.

  • Added

    Adds closing back arrow to inline search. (#5291)

2.1.0 - 28 Jan 2016

See the announcement post.

Migration guide.

  • Changed

    IMPORTANT: PSPDFActivity is now always based on AppCompatActivity and PSPDFAppCompatActivity class has been removed. This change has been made because new annotation editing UI elements need support-v7 and appcompat-v7 dependency.

  • Changed

    Indexed full text search is now supported via the PSPDFLibrary class. This feature needs to be enabled for your license. See https://www.nutrient.io/guides/android/search/ for details.

  • Added

    Adds PSPDFProcessor to split/merge/flatten PDF documents.

  • Added

    Adds support for incremental PDF saving:

    • Changed

      Files will now be appended to instead of being fully rewritten on each save.

    • Added

      Added ContentResolverDataProvider incremental saving support for files opened via SAF or other content providers.

    • Added

      Added supportsAppending method to WritableDataProvider. It should return true if the DataProvider supports appending to PDF file and then handle writing with WrideMode.APPEND_TO_FILE mode.

    • Changed

      Due to encryption, password protected files cannot be incrementally written. They will always be fully rewritten and encrypted.

  • Changed

    getUid() method added to PSPDFDocument. UID represents a unique ID for a document and is derived from getUid call in DataProvider if one is used.

  • Added

    Adds the list of annotations under the outline menu. (#5039)

  • Changed

    getAllAnnotationsOfType added to AnnotationProvider for easy retrieval of all annotations of certain types from the document.

  • Added

    Adds PSPDFActivity#showDocument(Context, DataProvider, PSPDFActivityConfiguration) method overload (without password parameter).

  • Added

    Adds PSPDFActivity#getDocument method which returns the currently loaded document. (#5260)

  • Added

    Adds PSPDFActivity#getPSPDFFragment() which is a shorthand getter to retrieve the activities fragment.

  • Added

    Adds PSPDFFragment#getVisiblePDFRect(int page) and PSPDFFragment#getVisiblePages() for accessing current visible rect on the page and fetching a list of visible pages. (#4086)

  • Added

    Adds PSPDFFragment#setScrollingEnabled(boolean enabled) and PSPDFFragment#setZoomingEnabled(boolean enabled) that can disable zooming/scrolling in the document view. (#4931)

  • Added

    Adds DocumentListener#onDocumentZoomed(PSPDFDocument document, int pageNumber, float scaleFactor) callback method for receiving page zoom changes. (#5017)

  • Added

    Adds PSPDFDocument#getUri and PSPDFDocument#getUriList (for compound documents). (#5015)

  • Added

    New text selection API (#5020)

    • Added

      Added typed TextSelection class which holds page number, text and rects of the current selection.

    • Changed

      Current selection can be retrieved by calling PSPDFFragment#getTextSelection.

    • Changed

      Selection can be set using PSPDFFragment#setTextSelection.

    • Changed

      A simpler TextSelectionListener interface allowing you to intercept all selection events (selection, changes, deselection), and to cancel them.

  • Added

    Adds PSPDFConfiguration#pagePadding for customizing the padding between pages. (#5136)

  • Changed

    Replaces “Loading..” text while the page is being loaded with the progress bar (throbber). (#3640)

  • Changed

    In PSPDFAppCompatActivity and PSPDFActivity, the method getPSPDFKitViews() is renamed to getPSPDFViews(). (#5134)

  • Changed

    Copying selected text to clipboard displays a toast message as a feedback (#5253).

  • Fixed

    Fixes transfer of document permissions and password to saved documents.

  • Fixed

    Fixes a performance regression that caused jank while scrolling large documents. (#5071)

  • Fixed

    Fixes an issue on certain devices when accessing external cache directory. (#5103)

  • Fixed

    Fixes an issue caused by switching the active annotation editing tool for annotations not attached to a document. (#5061)

  • Fixed

    Fixes setting of creation date on newly created annotations. (#5124)

  • Fixed

    Fixes link annotation touch feedback being cleared on long-press. (#4891)

2.0.1 - 16 Dec 2015

  • Changed

    Greatly improved high-resolution detail rendering performance. (#4886, #4546)

  • Fixed

    Fixes an issue where highlight annotations were getting darker each time a new one was added. (#4886)

  • Changed

    Improves browsing performance - UI more responsive during the rendering. (#4914, #4674)

  • Changed

    PDF parsing/rendering improvements for older, non-compliant versions. (#4903)

  • Changed

    Proper handling of orientation changes when having android:configChanges="orientation|screenSize" declared in manifest. (#4955)

  • Fixed

    Fixes an issue where annotation is deselected if annotation editor was opened. (#4902)

  • Fixed

    Fixes an issue where thumbnail bar was dismissed when dragging a finger over it. (#4896)

  • Fixed

    Fixes transition into the highlighted search result while in zoom mode. (#4893)

  • Fixed

    Fixes an issue where certain unicode (emoji) characters in the PDF could be converted into invalid UTF-8. (#4946)

  • Changed

    Don’t deselect annotation immediately as page starts scrolling. (#4880)

  • Fixed

    Fixes a crash where some theme items weren’t resolved on API < 15. (#4941)

  • Changed

    WriteableDataProvider renamed to WritableDataProvider.

  • Fixed

    Fixes search highlighting issues. (#4947)

2.0.0 - 7 Dec 2015

See the announcement post.

PSPDFKit 2 for Android is a major new release, adding support for creating/editing annotations. See the announcement article for details. The new minimum API level is 16 (Android 4.1 Jelly Bean).

  • Changed

    PSPDFDocument now has getAnnotationProvider() call which returns AnnotationProvider object that handles all Annotation related operations.

  • Changed

    getPageAnnotations call from PSPDFDocument has been moved to AnnotationProvider class.

  • Changed

    Implemented public constructors, getters and setters for newly supported annotation classes. Those are:

    • Changed

      HighlightAnnotation

    • Changed

      StrikeOutAnnotation

    • Changed

      SquigglyAnnotation

    • Changed

      UnderlineAnnotation

    • Changed

      InkAnnotation

    • Changed

      FreeTextAnnotation

    • Changed

      NoteAnnotation

  • Added

    Added Annotation editing user interface. Configuration is controlled by several classes in PSPDFConfiguration:

    • Changed

      AnnotationEditingConfiguration can be used to enable/disable editing per annotation type or altogether.

    • Changed

      AnnotationToolbarThemeConfiguration and connected theme classes can be used to customize editing toolbar icons.

  • Added

    Added ability to disable editing for some annotation types. Currently supported editable annotation types are: HIGHLIGHT, STRIKEOUT, SQUIGGLY, UNDERLINE, FREETEXT, INK and NOTE.

  • Changed

    PSPDFKit can now display contents of Note annotations and allows editing of color, contents and icon.

  • Added

    Added WriteableDataProvider which extends existing DataProvider and allows writing of edited PDF documents.

  • Changed

    PSPDFDocument now has save and saveIfModified methods for saving in synchronous and asynchronous way.

  • Removed

    Removed previously deprecated setDisplayedPage in PSPDFFragment. Use setPage instead. (#4210)

  • Changed

    Changed behaviour of TextSelectionListener - if false is returned in onTextSelectionStarted, onTextSelectionEnded will be called immediately after it.

  • Changed

    Previously deprecated PSPDFFragment#getPageToScreenTransformation now removed. Use PSPDFFragment#getPageToViewTransformation instead.

  • Changed

    In PSPDFFragment, renamed convertPage[Rect/Point]ToView[Rect/Point] to convertPDF[Rect/Point]ToView[Rect/Point], convertView[Rect/Point]ToPage[Rect/Point] to convertView[Rect/Point]ToPDF[Rect/Point]

  • Changed

    getModDate() in PSPDFDocumentMetadata class was renamed to getModificationDate().

1.5.0 - 28 Oct 2015

  • Added

    Added loadingProgressDrawable PSPDFKitConfiguration option that enables configuration of the document loading throbber. Setting it to null will disable the throbber. (#4259)

  • Removed

    Removed PSPDFThumbnailBar#setCurrentPage. The thumbnail bar is now automatically tied to the document view using the internal event bus. (#4291)

  • Changed

    Stop spoken text when text selection ends. (#4391)

  • Changed

    Updated support library dependencies to version 23.1.0.

  • Fixed

    Fixed an issue which prevented to open documents with an empty set of PDF permissions. (#4336)

  • Fixed

    Fixed an issue where improper text extraction was causing wrong search results. (#4187, #4189)

  • Fixed

    Fixed an issue where InputStreamDataProvider would fail reading data from intermittent input streams. (#4275)

  • Fixed

    Fixed an issue where link annotations and search results would be drawn as black blocks on some pre-Jellybean devices. (#4396)

1.4.1 - 5 Oct 2015

  • Added

    Added getTitle() call to DataProvider interface that lets implementor specify a fallback title of the document if none is available in metdata.

  • Changed

    Significantly improved performance of loading documents from a DataProvider. (#4143)

  • Fixed

    Fixed page rendering bug where wrong page could be momentarily rendered on some Android 5.x devices. (#4148)

  • Fixed

    Fixed improper page transitions controlled by boolean animate argument in setPage(int page, boolean animate). (#4112)

  • Fixed

    Fixed locked first swipe after a zoom-out in PER_PAGE mode.

  • Fixed

    Fixed an issue where main thread document access could cause jank when opening a document.

1.4.0 - 24 Sep 2015

See the announcement post.

  • Added

    New catalog examples: DocumentSwitcherExample, SplitDocumentExample, RandomDocumentReplacementExample, MemoryDataProviderExample, and CustomDataProviderExample. (#3869)

  • Added

    New PSPDFActivity#getConfiguration and PSPDFAppCompatActivity#getConfiguration allow to easily access the configuration object which was passed while launching the activity.

  • Changed

    Converted DataProvider to an interface for more flexibility. Previously, it was an abstract class.

  • Changed

    Moved DataProvider to com.pspdfkit.document.providers package.

  • Added

    Added MemoryDataProvider to load documents directly from byte arrays.

  • Added

    Added constants DataProvider#NO_DATA_AVAILABLE which has to be returned by a DataProvider if it fails to read data inside DataProvider#read. (#3952)

  • Added

    Added constant DataProvider#FILE_SIZE_UNKNOWN which has to be returned by the DataProvider if it fails to retrieve the correct data size.

  • Changed

    Changed search input field and password field to material design. pspdf__backgroundColor, pspdf__borderColor and pspdf__borderWidth properties have been removed. (#3693)

  • Changed

    Greatly improved data provider Javadoc documentation. (#3952)

  • Changed

    Updated dependencies: RxJava 1.0.14, Support libraries 23.0.1, RxAndroid 1.0.1.

  • Fixed

    Fixed a problem where DocumentListener objects were removed when calling PSPDFActivity#setDocument or PSPDFAppCompatActivity#setDocument.

  • Fixed

    Fixed a bug where padding of PSPDFThumbnailGrid was applied multiple times.

  • Fixed

    Fixed obfuscation problems in the data provider API. (#3952)

  • Changed

    Updated dependencies - RxJava - 1.0.14, Support libraries - 23.0.1, RxAndroid - 1.0.1.

  • Added

    Added zoom calls to PSPDFFragment for zooming to a specified rect or to a specified zoom scale (zoomTo()). Also, the document can now be scaled by a given scale factor with zoomBy(). (#3704)

  • Changed

    Three new properties added to a configuration - startZoomScale that enables starting the document at a specified scale, maxZoomScale which controls the document zoom limit, and zoomOutBounce defining should the page have that bounce effect when zoomed out or not.

  • Changed

    onDocumentLoaded() callback is now invoked when both document is loaded and layout displaying the document is ready

  • Fixed

    Fixed invoking multiple onPageChanged() calls. (#3845)

  • Changed

    Enabled hiding page labels and showing the page number instead, both while scrolling pages and in outline view. (#3927)

  • Changed

    Disabled bounce effect on pages in per-page mode, causing some unintuitive behavior. (#3691)

  • Changed

    Improved file opening performance when accessing DocumentProvider files.

  • Fixed

    Fixed issues with opening files from SD Card on Android 6.0.

1.3.1 - 1 Sep 2015

  • Changed

    Page labels are now displayed in page number popup, outline view and grid view if applicable.

  • Changed

    Enabled retrieval of page labels via getPageLabel() and getPageIndexForPageLabel() methods on PSPDFDocument class.

  • Added

    Added getPermissions() call on PSPDFDocument class to retrieve PDF document permissions.

  • Changed

    Replaced PSPDFFragment#setDocumentListener by PSPDFFragment#registerDocumentListener and PSPDFFragment#unregisterDocumentListener.

  • Changed

    PSPDFActivity and PSPDFAppCompatActivity now implement the DocumentListener interface and allow access to listener methods by overriding.

  • Changed

    show() and hide() calls on PSPDF views now properly update state of menu items in the Activity.

  • Changed

    setOnVisibilityChangedListener in PSPDF views has been replaced with addOnVisibilityChangedListener and removeOnVisibilityChangedListener calls.

  • Fixed

    Fixed a possible memory leak when closing PSPDFFragment before document is loaded.

  • Changed

    Prevent crash when invalid start page is passed in PSPDFActivityConfiguration.

  • Fixed

    Fixed some annotations sticking around on wrong pages after orientation change.

  • Fixed

    Fixed issues with link annotation tap highlights.

  • Changed

    Multiple UI fixes and improvements for immersive mode.

  • Changed

    Improved fling on the pages while zoomed.

  • Changed

    Faster settle after a zoom-out.

  • Fixed

    Fixed diagonal scroll invoking incorrect page fling in FIT_TO_WIDTH mode.

  • Changed

    Rendering high-resolution image at default zoom scale with insignificant performance hit (#2972).

  • Fixed

    Fixed detail view clipping in paginated mode (#3696).

  • Fixed

    Fixed slow vertical fling (#3692).

  • Changed

    Moving page opposite of the scroll direction in CONTINUOUS scroll mode is now limited by the border.

1.3.0 - 19 Aug 2015

See the announcement post.

  • Changed

    IMPORTANT Classes prefixed with PSPDFKit have been renamed to PSPDF for consistency and future-proofness (e.g. PSPDFKitActivity is now PSPDFActivity)

  • Changed

    PSPDFKit can now open content provider URIs directly without copying files to internal cache. isOpenableUri will now return true for all such URIs that can be opened.

  • Changed

    PSPDFCatalog example has been updated to demonstrate opening documents from document provider.

  • Changed

    Activities derived from PSPDFKitActivity or PSPDFKitAppCompatActivity can now load another PDF document using setDocument parent call.

  • Changed

    Bookmark class has been renamed to OutlineElement to better reflect it’s function. PSPDFDocument.getBookmarks() was also renamed to PSPDFDocument.getOutline().

  • Changed

    An error graphic will now appear in PSPDFKitFragment / PSPDFKitActivity / PSPDFKitAppCompatActivity when attempting to open an invalid file.

  • Changed

    AssetDataProvider was added to allow opening of PDF documents from APK assets directly. Use it with open methods that accept a DataProvider source.

  • Changed

    ContentResolverDataProvider was added to open arbitrary content provider URIs. It will be used automatically in all open methods.

  • Added

    Add PSPDFDocument#getCharIndexAt to retrieve the index of a character on a page at the given page coordinates.

  • Changed

    Improved log messages when encountering incompatible device ABIs.

  • Fixed

    Fixed a problem where the catalog app would restart itself after closing it when being launched using an external intent.

  • Fixed

    Fixed a crash when using PSPDFKitThumbnailBar in custom activities. (#3420)

  • Fixed

    Fixed a crash due to inconsistent state in PSPDFKitSearchView (#1695)

  • Changed

    Various performance and stability improvements to the PDF rendering backend.

  • Added

    Added Finnish, Slovenian, Czech and Greek localization.

  • Changed

    Loading... text display colors are now properly inverted when invertColors configuration parameter is set.

  • Added

    Added new annotation type classes: FreeTextAnnotation, UnderlineAnnotation, SquigglyAnnotation, StrikeoutAnnotation, HighlightAnnotation and InkAnnotation

  • Changed

    Disabled disk cache by default - for simple text document this means a significant performance boost.

1.2.3 - 6 Jul 2015

  • Fixed

    Fixed corrupt PDFs crashing the library.

  • Fixed

    Fixed a crash bug caused by swiping before the document was fully initialized.

  • Added

    Added NoteAnnotation class to represent note annotations in the document.

  • Changed

    Annotation object now exposes contents and rich text contents of each annotation.

  • Changed

    Documents now expose getAnnotations(page) call which returns annotations on the page.

    • Changed

      Unknown annotations will be returned as UnknownAnnotation object with proper type.

  • Added

    Added LeakCanary support. (#3241)

  • Changed

    Expose com.pspdfkit.ui.PSPDFKitFragment.getPageToScreenTransformation. (#3195)

  • Fixed

    Fixed bug causing stack overflow when exiting text selection mode. (#3284)

  • Changed

    In-memory caching of rendered pages is now noticeably faster

  • Added

    Added FragmentExample and CustomFragmentActivity. (#3338)

1.2.2 - 23 Jun 2015

  • Added

    Added support for Named action type in link annotations.

  • Added

    Added PSPDFKitActivityConfiguration#layout(int). (#3075)

  • Added

    Added CustomLayoutExample to catalog app. (#3075)

  • Changed

    Exposed menu action ids for action bar menu customization:

    • Changed

      com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_THUMBNAIL_GRID

    • Changed

      com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_SEARCH

    • Changed

      com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_OUTLINE

  • Fixed

    Fixed page not switching properly on small scroll in PER_PAGE scroll mode. (#2905)

  • Fixed

    Fixed multi-line search. (#2993)

  • Changed

    Exposed startSearch() calls in PSPDFKitSearchViewModular and PSPDFKitSearchViewInline. (#2971)

  • Changed

    Quick switching between menu items now works correctly. (#3157)

  • Changed

    Modular search improved - selected result animated and border coloring added.

  • Changed

    Optimized performance on ARMv7 devices.

1.2.1 - 6 Jun 2015

  • Added

    Add a new advanced catalog example showing customization and other features.

  • Changed

    Notify users for missing dependencies. (#3047)

  • Changed

    Automatically hide keyboard when browsing through the list of search results. (#2978)

  • Changed

    Exposed custom intent data to be added when launching activities. (#3073)

1.2.0 - 1 Jun 2015

See the announcement post.

  • Changed

    Theming support - all PSPDFKit views are now customized via themes. Existing appearance configuration in PSPDFKitActivityConfiguration and related have been moved to theme attributes. See CUSTOMIZATION.html for more information.

  • Changed

    Text selection is now implemented and allows users to copy and listen to selected text.

  • Changed

    Text selection listeners are now implemented.

  • Changed

    Media framework with PSPDFKit extensions for Gallery, offline videos and Youtube videos is now implemented.

  • Changed

    Implemented scroll direction lock for easier reading of content in columns.

  • Fixed

    Fixed memory caching issues which could lead to a OOM crash.

  • Added

    Added inline search (search as action view) option.

  • Changed

    getPageTextRect has been changed into getPageTextRects that returns multiple rects if the range requires them.

  • Added

    Added more than 20 new localizations.

  • Added

    Added getPage and setPage(int) calls to PSPDFKitActivity, PSPDFKitAppCompatActivity and PSPDFKitFragment.

  • Changed

    setDisplayedPage(int) deprecated, use setPage(int) instead.

  • Added

    Added page numbers to table of contents.

  • Changed

    A bucket full of bug fixes.

1.1.1 - 17 Apr 2015

  • Changed

    Custom Activity extended from either PSPDFKitActivity or PSPDFKitAppCompatActivity can now be used by setting classname with activityClass() in PSPDFKitActivityConfiguration for easier customization.

  • Changed

    getPSPDFKitViews() method was added to Activity classes to make access to PSPDFKit views easier when extending the activity.

  • Added

    Added getBookmarks() call to PSPDFDocument which retrieves PDF bookmarks. (Table of Contents)

  • Fixed

    Fixed PSPDFKitFragment wrongly expecting a Parcelable DataSource.

  • Changed

    Improvements to fit to width and zooming code.

  • Changed

    Improved look of page grid display on smaller devices.

  • Fixed

    Fixed an issue where setDisplayedPage call on PSPDFFragment didn’t work before layout.

  • Fixed

    Fixed severe performance degradation on some high-resolution devices like Samsung Note 4.

  • Fixed

    Fixed accidentally obfuscated listener interfaces.

1.1.0 - 3 Apr 2015

  • Changed

    Page view may now be fit to width by using fitMode setting in PSPDFKitConfiguration.

  • Changed

    PDF documents can now be loaded from a custom source with DataProvider class.

  • Added

    Added DocumentListener which allows handling page loading events and page tap events.

  • Changed

    Flinging pages in PER_PAGE scrolling mode now always flings a single page.

  • Fixed

    Fixed issue where entered password was lost when changing orientation.

  • Fixed

    Fixed issue where current page was being changed when changing orientation while using a Fragment.

  • Changed

    Zoomed view rendering is now significantly faster.

  • Changed

    RxJava and support library dependency versions updated to 1.0.8 and 22.0.0 respectively.

1.0.4 - 11 Mar 2015

  • Fixed

    Fixed an issue where zoomed view was larger than maximum allowed texture size on some devices.

1.0.3 - 9 Mar 2015

  • Added

    Added password parameter to openDocument Activity API to allow for opening password protected documents.

  • Added

    Added user password prompt when attempting to open password-protected PDF without passed password.

  • Changed

    Minor bugfixes.

1.0.2 - 4 Mar 2015

  • Changed

    Minor documentation and bug fixes.

1.0.1 - 3 Mar 2015

  • Changed

    Minor documentation and bug fixes.

1.0.0 - 27 Feb 2015

  • Changed

    Fast and responsive PDF viewer.

  • Changed

    Annotation display.

  • Changed

    Support for PDF links.

  • Changed

    Display document outline.

  • Changed

    Display thumbnail bar and thumbnail grid.

  • Changed

    Support for document search.

  • Changed

    Support for rendering into bitmaps.