Changelog

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

Newest release

2024.8.1 - 22 Nov 2024

Patch release that fixes a regression in the Signature class creation API (J#ANDR-1016). In version 2024.8, we removed the API to create a signature using a Bitmap. Use the Signature companion method, Signature.createStampSignature, or createInkSignature, to create these objects. Note that some constructor arguments in Signature have changed slightly or been removed, as they weren’t necessary.

Previous releases

2024.8.0 - 21 Nov 2024

Migration guide.

UI

  • Added

    Adds a color correction filter to improve colors when inverted rendering is active. (J#ANDR-809)

  • Added

    Adds the ability to use the “fling” gesture with two fingers. This is useful when, for example, drawing an annotation with one finger and navigating to another page or part of the page with two fingers. (J#ANDR-914)

  • Changed

    Improves typing and drawing signature layouts to make use of the full screen width in landscape mode. (J#ANDR-945)

  • Added

    Adds the ability to add items in overflow menu in the Compose MainToolbar. (J#ANDR-864)

  • Changed

    Shrinks the measurement text to fit inside the shape. (J#ANDR-798)

  • Fixed

    Fixes an issue on Samsung devices where scrolling with two fingers was incorrectly recognized as a pinch/zoom. (J#ANDR-914)

  • Fixed

    Fixes an issue on Samsung devices where zooming can cause the zoom center point to be locked to the top-left corner of the page instead of between the fingers. (J#ANDR-914)

  • Fixed

    Fixes an issue with paginated layout managers where the displayed pages jumped briefly after a resize of the window. (J#ANDR-938)

  • Fixed

    Fixes annotations count in the Annotations list tab. (J#ANDR-926)

  • Fixed

    Fixes the pages preview in Document Editor when duplicating or adding more pages. (J#ANDR-928)

  • Fixed

    Fixes the item colors of the bookmark list in dark mode. (J#ANDR-942)

  • Fixed

    Fixes the text color of the `Clear All` annotations dialog in dark mode. (J#ANDR-941)

  • Fixed

    Fixes the text colors for the embedded files list in dark mode. (J#ANDR-919)

Model

  • Added

    Adds an API to control what Edits are added to the undo/redo stack. This can be controlled via the OnAddNewEditListener, which needs to be added to the UndoManager via UndoManager#setOnAddNewEditListener. (J#ANDR-899)

  • Added

    Adds support for reading the widget tab order. (J#CORE-660)

  • Changed

    Improves text extraction by replacing invalid characters with the Unicode Replacement Character (0xFFFD). (J#CORE-701)

  • Added

    Adds NavHost Compatibility with Compose DocumentView. (J#ANDR-912)

  • Changed

    Changes BiometricSignatureData to a Kotlin data class and removes its Builder. It must be constructed using the constructor. (J#ANDR-852)

  • Changed

    Changes PdfConfiguration and PdfActivityConfiguration to Kotlin data classes. Builder API is still there, although there are slight modifications to the APIs. See the migration guide for more details. (J#ANDR-852)

  • Changed

    Changes SearchConfiguration to a data class and removes its Builder. (J#ANDR-852)

  • Changed

    Changes SignatureAppearance to a Kotlin data class and removes the Builder. SignatureAppearance must be created via its constructor. (J#ANDR-852)

  • Changed

    Changes Signature to a Kotlin data class. Static methods must be called with its companion object from Java code. (J#ANDR-852)

  • Changed

    Changes the search type to an enum, SearchType, which replaces the integer constants defined in PdfActivityConfiguration (PdfActivityConfiguration.SEARCH_INLINE, PdfActivityConfiguration.SEARCH_MODULAR). (#45404)

  • Fixed

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

  • Removed

    Removes the PdfConfiguration option to set SignatureAppearance. This is no longer used internally. The signature appearance is set via the DigitalSignatureMetadata class and passed to SignerOptions. (J#ANDR-852)

  • Changed

    Updates the HarfBuzz library to version 10.0.1. (J#CORE-693)

  • Fixed

    Fixes a crash that may happen when saving LTV information in a document. (J#CORE-710)

  • Fixed

    Fixes a potential ProGuard error related to kotlinx.parcelize since v2024.7. (J#ANDR-936)

  • Fixed

    Fixes an issue retrieving the text of a highlight annotation on rotated pages. (J#CORE-449)

  • Fixed

    Fixes an issue where a misleading exception was thrown when trying to open an invalid URI. (J#ANDR-883)

  • Fixed

    Fixes an issue where certain license keys couldn’t be read correctly. (J#CORE-725)

  • Fixed

    Fixes an issue where handwritten signatures may appear unexpectedly cropped. (J#CORE-713)

  • Fixed

    Fixes an issue where the signature validation status after certificate revocation checks may be invalid if the document has multiple digital signatures. (J#AND-842)

  • Fixed

    Fixes an issue where the tab index of signature fields wasn’t calculated correctly. (J#CORE-660)

  • Fixed

    Fixes an issue where too much memory was used when decoding JPEG2000 image masks. (J#CORE-636)

  • Fixed

    Fixes the annotations count in the Annotations tab. (J#ANDR-926)

  • Fixed

    Fixes issues with Type 3 fonts and text extraction. (J#CORE-703)

  • Fixed

    Fixes the watermark not showing in the Thumbnail Bar when using Scrollable mode. (J#ANDR-845)

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)

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://pspdfkit.com/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://pspdfkit.com/support/request/ or via mail to [email protected].

For more information on private API usage, see our online guide at https://pspdfkit.com/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 wh