Changelog for Android

RSS

10.4.1 24 Jun 2025

Model

  • Fixed
    Fixes occasional crashes when annotation-heavy documents are closed before UI initialization completes. (J#ANDR-1307)

Examples

  • Fixed
    Fixes slow annotation selection and rendering in examples due to a high-res image in the welcome document. (#47915)

10.4.0 11 Jun 2025

Migration guide(opens in a new tab).

UI

  • Added
    Adds setters to make useCubicInterpolationForInkAnnotations configurable in PdfConfiguration and PdfActivityConfiguration. (J#ANDR-1330)
  • Added
    Adds support for selecting existing annotations while in creation mode for certain annotation types. (J#ANDR-1031)
  • Changed
    Optimizes the character layout calculation for edited text blocks in the content editing feature. (J#ANDR-1309)
  • Fixed
    Fixes a lifecycle issue with the save dialog of the content editing feature. (J#ANDR-1311)
  • Fixed
    Fixes a regression in form field check boxes and selection boxes where the selection wasn't visible until leaving the form editing UI. (J#ANDR-1317)
  • Fixed
    Fixes an issue where adjusting the opacity slider on certain annotations didn't correctly update the alpha of the annotation. (J#ANDR-1275)
  • Fixed
    Fixes an issue where the DocumentEditor glitched if it was invoked before the initial UI layout was done. (J#ANDR-1305)
  • Fixed
    Fixes an occasional crash that occurred when entering the content editing mode and immediately switching pages. (J#ANDR-1310)
  • Fixed
    Fixes content editing line height calculation for paragraphs with multiple font sizes. (J#ANDR-1318)
  • Fixed
    Fixes the issue where PDF content is partially hidden behind the toolbar on initial load. (J#ANDR-1285)
  • Fixed
    Fixes the issue where bookmarks fail to respect reordering after the list is closed. (J#ANDR-865)
  • Fixed
    Fixes the issue where custom theme colors are ignored and Signature Dialog UI elements aren't picking the correct color attributes. Adds new style attributes that allow for customization of Signature Dialog UI elements such as 'pspdf__selectImageTextColor', 'pspdf__replaceImageTextColor', 'pspdf__clearSignatureTextColor', 'pspdf__selectedTabIndicatorColor', 'pspdf__typeSignatureFontColor', and 'pspdf__circleButtonBorderColor'. (J#ANDR-1329)
  • Fixed
    Fixes the issue where the last letter of the text annotation isn't included in the highlight or underline operation. (J#ANDR-1276)
  • Fixed
    Fixes the issue where vertical offset is applied in the signature dialog when drawing in portrait mode. (J#ANDR-1303)
  • Fixed
    Fixes the problem where an extra status bar is added between the toolbar and the document in situations where an extra layout is provided above the document view. (J#ANDR-1297)
  • Fixed
    Fixes an issue where setting EdgeToEdge.enable inside the SDK causes layouting issues with our cross platform libraries. (J#ANDR-1302)
  • Fixed
    Fixes the status bar colour so it does not change when opening any of the contextual toolbars and cover the status bar icons. (J#ANDR-1356)

Model

  • Added
    Adds the option automaticallyInvertColorsForNightTheme to PdfConfiguration and PdfActivityConfiguration to disable the automatic color inversion when switching to the night theme. (J#ANDR-1315)
  • Changed
    Improves error handling for document loading. Previously, the loading screen was dismissed only when the cause was an Exception. It now also handles Errors, ensuring the screen is closed on any load failure. (J#ANDR-1308)
  • Changed
    Improves font embedding behavior. Fonts will be embedded more often, resulting in better experience when viewed in outside viewers. (J#CORE-850)
  • Changed
    Changes annotation listener APIs slightly. There are different package names and methods to register/deregister listeners. Refer to the migration guide(opens in a new tab) for details. (#47611)
  • Removed
    Removes the use of setAllowFileAccess on WebSettings due to a security risk. setAllowFileAccess can be set to true using WebViewSecurityPolicy. (J#ANDR-1306)
  • Fixed
    Fixes an issue where form fields weren't formatted correctly at all times. (J#CORE-676)
  • Fixed
    Fixes an issue where some CA certificates weren't recognized as such. (J#CORE-857)
  • Fixed
    Fixes an issue where the status of some long-term validation signatures may be 'invalid.' (J#CORE-858)
  • Fixed
    Fixes a crash when creating a text parser for a page if verbose logging is enabled. (J#CORE-859)
  • Fixed
    Fixes a modified annotations error in Adobe Reader after signing documents with ink and highlight annotations. (J#CORE-837)
  • Fixed
    Fixes small ink signatures not being detected as overlapping when only covering a small portion of a signature form field. (Z#124893)
  • Fixed
    Fixes the UrlDataProvider to work properly with image documents. (J#ANDR-1313)
  • Fixed
    Fixes the issue where the application crashes during custom stamp signature creation. Disables signature constructor usage by making it private and forces signature creation via two static methods (createInkSignature and createStampSignature). (J#ANDR-1304)

Examples

  • Changed
    Improves colors in the default example document for better annotating and editing. (J#DESIGN-1467)
  • Changed
    Merges Kotlin example code and activity code into one file. This makes it easier to follow a single example and allows us to show the examples on the website more easily. (#47749)
  • Fixed
    Fixes the issue in the simple Java example where the status bar color turned white in annotation editing mode. (J#ANDR-1296)

10.3.0 12 May 2025

Migration guide(opens in a new tab).

UI

  • Changed
    Changes the type of all textBlockId function parameters in the content editing feature from UUID to String. (J#ANDR-1284)
  • Fixed
    Fixes an issue where, when long-pressing an annotation to show the popup toolbar, the popup was instantly dismissed. (J#ANDR-1273)
  • Fixed
    Fixes an issue with a missing page refresh after performing an undo operation in context with annotation creation. (J#ANDR-1280)
  • Fixed
    Fixes the layout issues on the Document Comparison screen. (J#ANDR-1195)

Model

  • Added
    Adds support for preserving PDF/UA tags when using the document editor. (J#CORE-750)
  • Added
    Adds support for the Acrobat JavaScript AFTime_KeystrokeEx API. (J#CORE-639)
  • Added
    Adds support for the PDF JavaScript 'global' object. (J#CORE-801)
  • Changed
    Improves appearance stream rendering in single line callout and free text annotations to better fit the bounding box. (J#CORE-819)
  • Changed
    Improves the responsiveness of starting Content Editor on pages with complex vector graphics like building plans. (#47157)
  • Fixed
    Fixes a regression where certain OCR-processed PDFs could no longer be read correctly. (J#CORE-825)
  • Fixed
    Fixes an issue where TIFF files that switched between page sizes were rendered incorrectly. (J#CORE-820)
  • Fixed
    Fixes an issue where certain form field flags weren't considered correctly. (J#CORE-838)
  • Fixed
    Fixes an issue where the 'Widget' tab order was calculated incorrectly. (J#CORE-818)
  • Fixed
    Fixes an issue where the message 'Unknown additional action trigger: Type' may appear repeatedly in logs. (J#CORE-801)
  • Fixed
    Fixes an issue where the primary language of the document wasn't preserved when using the document editor. (J#CORE-840)
  • Fixed
    Fixes occasional empty pages when trying to restore the page index. (J#ANDR-1110)

Instant

  • Added
    Adds AI Assistant support for Instant. (J#ANDR-1250)

10.2.0 7 Apr 2025

UI

  • Fixed
    Fixes a layout issue with the PdfOutlineView in a Jetpack Compose environment. (J#ANDR-1230)
  • Fixed
    Fixes occasional flickering during the creation of ink annotations. (J#ANDR-1187)
  • Fixed
    Fixes some memory leaks in context with internal Compose views. (J#ANDR-1163)
  • Fixed
    Fixes an issue where, in some cases, form fields weren't properly recognized as time or date fields. (J#ANDR-1231)
  • Fixed
    Fixes the issue where form field content isn't rendered unless focused. (J#ANDR-1247)
  • Fixed
    Fixes an issue where the popup toolbar was immediately dismissed after long-pressing an annotation. (ANDR-1273)

Model

  • Added
    Adds support for passing numbers to fields.setItems() in PDF JavaScript. (J#CORE-794)
  • Added
    Adds the ability to update the configuration and set the custom document source in DocumentState for Compose's DocumentView. (J#ANDR-1238)
  • Changed
    Changes the GoToAction to set the destination to the page reference instead of the page index. This means the GoToAction follows the page even if pages are moved or deleted. (J#CORE-813)
  • Changed
    Moves some classes for content editing to the public API to fix issues with obfuscation. (J#ANDR-1245)
  • Fixed
    Fixes an issue where calling setAdditionalAction on a WidgetAnnotation didn't mark the document as modified. (J#ANDR-1237)
  • Fixed
    Fixes an issue where rebuilding the cross reference table on certain invalid PDFs didn't work correctly. (J#CORE-815)
  • Fixed
    Fixes an issue where sometimes invalid trailer data was written when using saveAs. (J#CORE-815)
  • Fixed
    Fixes an issue with decoding certain Unicode text. (J#CORE-771)
  • Fixed
    Fixes an issue with manual initialization throwing an exception incorrectly when using nutrient_automatic_initialize or pspdfkit_automatic_initialize. (J#ANDR-1242)

Examples

  • Added
    Adds a dialog when launching an AIA example to allow entering the IP address of the server running AI Assistant. (J#ANDR-1211)
  • Fixed
    Fixes the form field listener management in CombineElectronicSignaturesWithDigitalSigningExample. (J#ANDR-1164)

10.1.1 18 Mar 2025

UI

  • Fixed
    Fixes an issue where, in some cases, form fields were not properly recognized as time or date fields. (J#ANDR-1231)

Model

  • Fixed
    Fixes an issue with manual initialization throwing an exception incorrectly when using nutrient_automatic_initialize or pspdfkit_automatic_initialize. (J#ANDR-1242)

10.1.0 6 Mar 2025

UI

  • Added
    Adds AI Assistant, which can be used to summarize, translate, and ask questions about documents. This requires you to run Nutrient AI Assistant on your server. Once that’s set up, enable it in your PdfActivityConfiguration and add your AiAssistant instance to PdfDocument. If you’d like to try this, get in touch(opens in a new tab). (J#ANDR-964)
  • Added
    Adds an option to PdfConfiguration to switch between quadratic (faster) and cubic Bézier (slower) interpolation for ink annotations. (J#ANDR-1131)
  • Added
    Adds new Material color scheme for Nutrient SDK and examples. (J#ANDR-1080)
  • Added
    Adds the ability to configure windowInsets in the Compose MainToolbar. (J#ANDR-1196)
  • Changed
    Improves the positioning of text block resize handles, and fixes some clipping issues when dragging a text block over other ones. (J#ANDR-1156)
  • Changed
    Improves view initialization when the user interface is initially hidden. (J#ANDR-1124)
  • Fixed
    Fixes a Parcelize crash that occurs when using the signature database to store an image or stamp signature. (J#ANDR-1128)
  • Fixed
    Fixes a content editing crash, which affected devices running Android 12 or lower. (J#ANDR-1157)
  • Fixed
    Fixes an issue when picking an image for a signature annotation where duplicate "Media" buttons would show in the media source selection UI. (J#ANDR-1130)
  • Fixed
    Fixes an issue where, when long-pressing an annotation to show the popup toolbar, it was too easy to dismiss when the touch moved only 1 pixel. (J#ANDR-1116)
  • Fixed
    Fixes an issue with positioning the page number overlay after the thumbnail height has been manually changed. (J#ANDR-1113)
  • Fixed
    Fixes line height calculation for content editing for devices running Android 15 and above. (J#ANDR-1188)
  • Fixed
    Fixes multiline free text line spacing calculation on Android 15+. (J#ANDR-839)
  • Fixed
    Fixes the crash when DialogFragment, including PdfFragment, gets dismissed. (J#ANDR-1160)
  • Fixed
    Fixes the enabled state and default coloring of the buttons in the styling bar of the content editor. (J#ANDR-1209)
  • Fixed
    Fixes the enabled state of the "+" button in the bookmarks list view. (J#ANDR-1208)
  • Fixed
    Fixes the issue where a custom stamp preview wasn't properly rendered in the selector dialog. (J#ANDR-1133)
  • Fixed
    Fixes the shadows in the bookmarks list view. (J#ANDR-1135)

Model

  • Added
    Adds Nutrient-named strings for AndroidManifest.xml: nutrient_license_key, nutrient_font_path, and nutrient_automatic_initialize. The PSPDFKit-branded strings are still supported. (J#ANDR-1127)
  • Added
    Adds PdfDocument.isEncrypted(), which indicates if a document is password protected or not. (J#ANDR-1120)
  • Added
    Adds the ability to increase the size of images that can be used in the SDK by overriding the pspdf__max_image_memory_ratio float dimension resource. (J#ANDR-1155)
  • Added
    Adds the ability to perform digital signing in two steps using the getDataToSign and embedSignature methods in SigningManager. (J#ANDR-1094)
  • Changed
    Improves memory usage when decoding large page streams, allowing better out-of-memory handling. (J#CORE-253)
  • Fixed
    Fixes a crash when aligning documents using points on a straight line. (J#CORE-758)
  • Fixed
    Fixes an issue where parsing certain kinds of timestamp certificates may cause a crash. (J#CORE-788)
  • Fixed
    Fixes an issue with opening certain PDFs that have a broken encryption descriptor. (J#CORE-776)
  • Fixed
    Fixes an issue when regenerating 'off' checkbox and radio button appearances. (J#CORE-773)
  • Fixed
    Fixes the isAutosaveEnabled option on Android 15 when the app is closed via the app switcher. (J#ANDR-1126)

Examples

  • Added
    Adds a Catalog example showing how to display multiple documents in tabs using a Compose HorizontalPager. The example is called DocumentPagerExample. (J#ANDR-1191)

10.0.2 27 Feb 2025

Model

  • Fixed
    Fixes an issue with compose.material and compose.material3 Maven dependency resolution since migrating to Material 3. (J#ANDR-1173)

10.0.1 20 Feb 2025

Model

  • Fixed
    Fixes a crash when aligning documents using points on a straight line. (J#CORE-758)
  • Fixed
    Fixes an issue where a Freetext annotation exported in XFDF from the Nutrient Web SDK with rich-text enabled and edited in Android, did not show the updated contents when imported again in Web. (J#CORE-774)

10.0.0 13 Feb 2025

Nutrient Android SDK 10! This contains a fundamental rebranding change, which updates our Maven dependency name to io.nutrient:nutrient. In addition, we reverted back to the major.minor.patch versioning scheme. We changed some public APIs, consisting of some deprecations and some breaking changes. Refer to the migration guide(opens in a new tab) for all the details!

UI

  • Fixed
    Fixes an issue in the annotation list where items were clipped at the bottom. (J#ANDR-1071)
  • Fixed
    Fixes an issue on the annotation toolbar where the buttons were not correctly selected when in vertical layout. (J#ANDR-1045)
  • Fixed
    Fixes an issue where disabling the scrollbars in the configuration caused a CalledFromWrongThreadException. (J#ANDR-755)
  • Fixed
    Fixes an issue where signature form fields could not be signed when other already signed adjacent signature form fields where present. (J#ANDR-1030)
  • Fixed
    Fixes an issue where the PdfScrollableThumbnailBar lost the selection marker when the size of its parent view changed. (J#ANDR-1083)
  • Fixed
    Fixes an issue where the measurements magnifier view was not removed when the PdfFragment was destroyed. (J#ANDR-1044)
  • Fixed
    Fixes an issue where the user is able to add or edit bookmarks when the respective functionality is disabled. (J#ANDR-1086)
  • Fixed
    Fixes an occasional exception when scrollbars were disabled in the PdfConfiguration. (J#ANDR-755)
  • Fixed
    Fixes edge-to-edge issues in Android 15 in the note creation and stamp picker screens. (J#ANDR-1046)
  • Fixed
    Fixes the issue when eraser tool works inefficiently with overlapping ink strokes. (J#ANDR-1070)
  • Fixed
    Fixes unwanted vertical scrolling in horizontal continuous and paginated layout when full page height is visible. (J#ANDR-1066)
  • Fixed
    Fixes a crash that occurred when trying to digitally sign a signature form field whose name and fqn where different. (J#ANDR-1081)
  • Fixed
    Fixes security issue related to WebView File Access. (J#ANDR-1106)
  • Fixed
    Fixes double-tap gesture when already zoomed in so we don't auto-scale to full page if the user wants to manually double-tap scale with one finger. (J#ANDR-1112)
  • Changed
    Improves the UX for deleting bookmarks and annotations from the bookmark/annotation list views. (J#ANDR-1092)

Model

  • Added
    Adds PdfDocument.isEncrypted(), which indicates if a document is password protected or not. (J#ANDR-1120")
  • Changed
    Disables keyboard word caching on sensitive text fields such as share screen document title and annotation author name. (J#ANDR-1076)
  • Changed
    Updates our core PSPDFKit API to Nutrient(opens in a new tab) and various other rebrand changes, of which the most impactful are outlined in the migration guide(opens in a new tab). (J#ANDR-1090)
  • Changed
    Updates the Botan library to version 3.6.1. (J#CORE-683)
  • Changed
    Updates AGP to 8.8.0. (#46386)
  • Changed
    Updates Compose BOM to 2025.01.01. (J#ANDR-1107)
  • Fixed
    Fixes an R8 ProGuard error pertaining to the kotlinx.parcelize package. (J#ANDR-1082)
  • Fixed
    Fixes an issue when content editing type3 fonts where some text boxes appeared far too small. (J#CORE-754)
  • Fixed
    Fixes an issue where, in certain PDFs, the outline/bookmarks weren't preserved when using the document editor. (J#CORE-753, J#CORE-707)
  • Fixed
    Fixes an issue where manually calling PSPDFKit.initialize with a valid license key would cause the trial mode warning to pop up incorrectly. (J#ANDR-1078)
  • Fixed
    Fixes an issue where the document IDs of some documents may be incorrectly truncated. (J#AI-123)
  • Fixed
    Fixes note annotation comment restoration after JSON import with the DocumentJsonFormatter. (J#ANDR-1007)
  • Fixed
    Fixes a content editing issue where moving a piece of text with a subsetted font could cause a character swap in some viewers. (J#CORE-577)
  • Fixed
    Fixes a crash when opening a PDF with malformed forms. (J#CORE-745)
  • Fixed
    Fixes an issue with TIFF images with 0 DPI. (J#CORE-770)
  • Fixed
    Fixes crash when dealing with malformed embedded files. (J#CORE-728)
  • Fixed
    Fixes slowdown when decoding certain TIFF images. (J#CORE-757)
  • Fixed
    Fixes an issue with KDoc API docs where classes and methods that were supposed to be hidden were not hidden. (46507)
  • Fixed
    Fixes an issue where some annotations weren't drawn correctly on pages with transparency. (J#CORE-783)
  • Changed
    Improves handling of specific broken PDF forms, where multiple instances of the same form are combined into a single PDF. (J#CORE-646)

Examples

  • Changed
    Updates our example apps with Nutrient brand icons and test documents. (J#ANDR-1093)

2024.9.2 13 Feb 2025

This version should not be used! It's here to warn library consumers who haven't read this that they should upgrade to version 10+ and change the Gradle package name. Refer to the migration guide(opens in a new tab) for more information.

  • Added
    Adds a runtime error message prompting users to change the dependency to io.nutrient:nutrient version 10+ and follow the migration guide.

2024.9.1 20 Jan 2025

UI

  • Fixed
    Fixes an issue where text form fields were occasionally clipped at the bottom. (J#ANDR-1024)

2024.9.0 17 Dec 2024

Migration guide(opens in a new tab).

UI

  • Added
    Adds a search integration example for the DocumentView composable. (J#ANDR-882)
  • Added
    Adds option to turn on/off the bookmark list view edit button and changes the PdfOutlineView APIs slightly. Refer to the migration guide for more details. (J#ANDR-1000)
  • Changed
    Exposes form field listeners to Compose DocumentView using the formListener parameter of DocumentManager. (J#ANDR-897)
  • Removed
    Removes the two edit handles from callout annotations that cannot be edited. (J#ANDR-1013)
  • Fixed
    Fixes a crash that can happen when opening the bookmarks screen in multiple documents when using the PdfTabBar. (J#ANDR-1028)
  • Fixed
    Fixes an issue in the outline list views (bookmark list, annotation list, embedded files list, etc.) where data can get duplicated when displaying multiple documents in the same activity. (J#ANDR-1012)
  • Fixed
    Fixes an issue where free text annotations were not automatically deleted when empty once the editing operation ended. (J#ANDR-951)
  • Fixed
    Fixes an issue where setting automaticallyGenerateLinks to true in the configuration did not create links properly, leaving them unclickable. (J#ANDR-1015)
  • Fixed
    Fixes an issue where touching an annotation on top of a link annotation would often cause the link to be clicked incorrectly. (J#ANDR-1005)
  • Fixed
    Fixes an issue with calling PdfOutlineView#hide() when the view is/has disappeared — for example, when switching tabs in ViewPager2. (J#ANDR-749)
  • Fixed
    Fixes an issue with the outline view being too wide when its parent width is < 480DP. (J#ANDR-1029)
  • Fixed
    Fixes page change animation when scrolling and releasing touch. (#45872)

Model

  • Added
    Adds UrlDataProvider which implements support for loading documents from a remote URL. (J#ANDR-481)
  • Added
    Adds an API to retrieve all annotations of a page in JSON format. This is much faster than converting each annotation to JSON. See AnnotationProvider#getAnnotationsJson(int pageIndex). (J#ANDR-993)
  • Added
    Adds an API to save a document from Composable DocumentView. (J#ANDR-840)
  • Changed
    Updates the default watermark on visible digital signatures. (J#HG-1468)
  • Changed
    Upgrades dependencies: (#45822)
    • Changed
      AGP to 8.7.2
    • Changed
      Compose to 1.7.5
  • Fixed
    Fixes an issue where PDFs with a large amount of unique fonts take up a lot of memory, especially during indexing. (J#CORE-748)
  • Fixed
    Fixes an issue where callout annotations weren't rendered correctly in other PDF readers. (J#ANDR-937)
  • Fixed
    Fixes lockup/crash issues when opening certain malformed PDF forms. (J#CORE-726)
  • Fixed
    Fixes an issue with GoTo Remote and Goto Embedded actions. (J#CORE-751)

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.

2024.8.0 21 Nov 2024

Migration guide(opens in a new tab).

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(opens in a new tab).

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(opens in a new tab). 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(opens in a new tab) 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(opens in a new tab). (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(opens in a new tab). 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:

  • Changed
    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(opens in a new tab).

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(opens in a new tab).

Migration guide(opens in a new tab).

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
    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(opens in a new tab).

Migration guide(opens in a new tab).

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(opens in a new tab) component. You can learn more in the announcement post(opens in a new tab). If you’d like to add this component to your license, please contact our sales team(opens in a new tab) to receive a quote.

Migration guide(opens in a new tab).

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(opens in a new tab).

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(opens in a new tab).

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(opens in a new tab).

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(opens in a new tab).

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(opens in a new tab) 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(opens in a new tab).

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(opens in a new tab).

This release adds the Electronic Signatures(opens in a new tab) and built-in support for Jetpack Compose(opens in a new tab) via the DocumentView composable function(opens in a new tab). If you'd like to add Electronic Signatures to your license, please contact our sales team(opens in a new tab) to receive a quote. To learn more about the breaking changes introduced with the new APIs, check out our migration guide(opens in a new tab) 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)
  • Changed
    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(opens in a new tab).

Migration guide(opens in a new tab).

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(opens in a new tab).

Migration guide(opens in a new tab).

UI

  • Added
    Adds support for setting bold and italic fonts via FreeTextAnnotation#setFontName(). (#25843)
  • Changed
    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(opens in a new tab) 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(opens in a new tab).

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(opens in a new tab).

Migration guide(opens in a new tab).

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(opens in a new tab).

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(opens in a new tab) 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)
  • Changed
    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

  • Changed
    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(opens in a new tab).

Migration guide(opens in a new tab).

  • 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)
  • Changed
    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)
  • Changed
    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.
  • Changed
    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(opens in a new tab).

Migration guide(opens in a new tab).

  • 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://nutrient.io/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)
  • Changed
    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(opens in a new tab).

Migration guide(opens in a new tab).

  • 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)``, whereAnnotationZIndexMovecan 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

  • Changed
    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(opens in a new tab).

Migration guide(opens in a new tab).

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)
  • Changed
    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(opens in a new tab).

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 toBookmarkProvider.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(opens in a new tab).

Migration guide(opens in a new tab).

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)
  • Changed
    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

  • Changed
    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(opens in a new tab).

UI

  • Changed
    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(opens in a new tab).

Migration guide(opens in a new tab).

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.
  • Changed
    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.
      • 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)
  • 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.
  • Adds compatibility of PSPDFKit and Instant Javadoc .jar files with Android Studio 3.2.1 and newer. (#17850)
  • Adds support for page bookmarks in compound documents. (#11008)
  • Adds support for stamp and free text annotation rotation in Instant JSON. (#18019)
  • Improves compatibility with forms on malformed PDFs. (#17707)
  • Improves handling of malformed documents when parsing the extended graphics state. (#18057)
  • Improves the PdfActivityConfiguration returned by ImageDocumentLoader#getDefaultImageDocumentActivityConfiguration() by disabling annotations tools that do not work for image documents. (#17775)
  • Replaces support libraries with AndroidX. (#17830)
  • The redaction feature now deletes annotations and form fields that intersect with a redact annotation. (#17390)
  • Updates Kotlin to 1.3.0. (#17784)
  • Updates RxJava to 2.2.4. (#17902)
  • Fixes PdfActivity#isImageDocument() returning false for image documents in certain cases when switching tabs. (#17524)
  • Fixes a crash parsing text on a very small number of documents. (#18032)
  • Fixes a potential exception that could occur when resolving system fonts on some devices. (#17647)
  • Fixes a problem where some text in a PDF document may be redacted incorrectly. (#17699)
  • Fixes an issue applying redactions on encrypted documents. (#17722)
  • Fixes an issue opening certain documents with invalid IRT fields. (#17797)
  • Fixes an issue that may happen after copying a page using the document editor. (#17825)
  • Fixes an issue when opening a rotated Image Document. (#17791)
  • Fixes an issue where XMP metadata was corrupted when saving password protected documents. This enables saving bookmarks into password protected documents. (#17238)
  • Fixes an issue where PdfLibrary would return incorrect results when searching within documents that contained Unicode surrogate pairs (like Emoji) in their text. (#3292)
  • Fixes an issue where changing the button caption property of a button from JavaScript code may not change the button appearance. (#17719)
  • Fixes an issue where it wasn't possible to reset annotation rotation to 0 which as causing issues when undoing stamp rotations. (#17867)
  • Fixes an issue where squiggly annotations may not be created correctly on rotated pages. (#17950)
  • Fixes an issue where text could not be selected in certain documents. (#17759)
  • Fixes an issue where the Javascript VM init sequence prevented errors from bubbling up to the user. (#17745)
  • Fixes an issue where the overlay text of a redaction may not be in the correct place in some cases. (#17695)
  • Fixes an issue where the signature overlay may show incorrect text in non-Western languages. (#17918)
  • Fixes an issue where underline annotations may not work correctly on rotated pages. (#14252)
  • Fixes an occasional issue when rendering text. (#17747)
  • Fixes issue where digitally signing a document would save changes to original document even when auto save was disabled. (#17696)
  • Fixes issues when importing annotations on rotated pages using InstantJSON. (#17814)
  • Fixes some issues creating highlight annotations on documents with rotated pages. (#18006)
  • Instant

    • Added
      Adds support for image stamp annotations. (#17691)

    Examples

    • Changed
      Bumps Android Gradle Plugin version of all example apps to 3.2.1. (#17818)

    5.0.2 29 Nov 2018

    UI

    • Changed
      Improves redaction button placement. (#17697)
      • Fixed
        Fixes an issue where redaction button was overlapping forward history button.
      • Changed
        Improves redaction button alignment in portrait and landscape.
      • Changed
        Implements OnRedactionButtonVisibilityChangedListener for receiving calls when redaction collapses or expands.
    • Changed
      Improves document opening performance by making loading of PdfDrawables asynchronous. (#17648)
    • Fixed
      Fixes a potential UnsatisfiedLinkError that could be thrown when accessing StampType class. (#17702)
    • Fixed
      Fixes an issue where rotations could not be perfomed on stamp annotations after saving. (#17768)
    • Fixed
      Fixes a potential NullPointerException in PdfScrollableThumbnailBar. (#17828)
    • Fixed
      Fixes an issue where PdfProcessorTask with large number of operations could cause a StackOverflowError. (#17847)
    • Fixed
      Fixes a potential NullPointerException on pages with video content. (#17861)
    • Fixed
      Fixes a potential crash that could occur when undoing rotated annotations. (#17862)
    • Fixed
      Fixes an issue where dynamically added videos with autoplay enabled were not playing after opening the page. (#17875)

    Model

    • Added
      Adds compatibility of PSPDFKit and Instant Javadoc .jar files with Android Studio 3.2.1 and newer. (#17850)
    • Fixed
      Fixes an issue where underline annotations may not work correctly on rotated pages. (#14252)
    • Fixed
      Fixes PdfActivity#isImageDocument() returning false for image documents in certain cases when switching tabs. (#17524)
    • Fixed
      Fixes a potential exception that could occur when resolving system fonts on some devices. (#17647)
    • Fixed
      Fixes an issue applying redactions on encrypted documents. (#17722)
    • Fixed
      Fixes a potential issue when rendering images. (#17737)
    • Fixed
      Fixes an occasional issue when rendering text. (#17747)
    • Fixed
      Fixes an issue where text could not be selected in certain documents. (#17759)
    • Fixed
      Fixes an issue where it wasn't possible to reset annotation rotation to 0. (#17867)
      • Changed
        This caused an issue with undoing stamps rotation.
    • Fixed
      Fixes issue where digitally signing a document would save changes to original document even when auto save was disabled. (#17696)

    5.0.1 14 Nov 2018

    UI

    • Added
      Adds missing public theme attribute pspdf__redactionIcon for styling the icon of the redaction view. (#17585)
    • Added
      Adds support for video and gallery playback from the local device file system. (#17433)
    • Added
      Adds support for adding signatures inside the PdfFragment in hosting activities that are configured to handle orientation changes themself (e.g. using android:configChanges="orientation" inside the manifest). (#17152)
    • Changed
      Improves performance while entering text using a non-latin font into form fields. (#17593)
    • Fixed
      Fixes an exception that occured when using PdfThumbnailGrid from within Fragment. (#17396)
    • Fixed
      Fixes an issue inserting Emoji, Arabic or East Asian text in form fields. (#17574)
    • Fixed
      Fixes an issue where locked, hidden, or read-only ink annotations could be erased with the eraser tool. (#17367)
    • Fixed
      Fixes an issue where wrong recycling of bitmaps could in some situations lead to unhandled NullPonterExceptions. (#17556)

    Model

    • Fixed
      Fixes a crash that could happen when trying to generate the appearance stream of a push button. (#17627)
    • Fixed
      Fixes an issue where memory was leaked in certain situations. (#17610)
    • Fixed
      Fixes crash that could happen when changing text in multiline form field. (#17649)

    Examples

    • Added
      Adds DynamicMultimediaAnnotationsExample showing how to dynamically add videos and galleries to PDF documents. (#17433)

    5.0.0 7 Nov 2018

    See the announcement post(opens in a new tab).

    This release features two new components - Redaction(opens in a new tab) and Comparison(opens in a new tab). If you would like to add either to your license, ping our sales team(opens in a new tab) to receive a quote.

    Below is a summary of the API changes in this release. For a full list, with our suggested migration strategy for each API that has been changed or removed, please see the migration guide(opens in a new tab).

    UI

    • API
      PSPDFKit now ships with public.txt that contains all Android resources that are considered part of its public API. If lint starts emitting warnings in your code, you should stop using (#3809) these resources immediately because they could be removed in future versions.
    • Changed
      Extends PdfActivityIntentBuilder with an ability to open multiple tabs in a single PdfActivity. (#17151)
      • Added
        Adds fromDocumentDescriptor() factory method for creating intent builder with multiple documents that should be displayed as tabs.
      • Added
        Adds visibleDocument() that can be used to control which document should be visible when PdfActivity starts.
      • Changed
        contentSignatures() and passwords() now throw IllegalStateException when used with image documents or when using document descriptors via the factory method mentioned above.
    • Added
      Adds pspdf__popupToolbarStyle style attribute for styling the popup toolbars (text selection, pasting text, etc.), the supported attributes are: (#17440)
      • Changed
        pspdf__backgroundColor for setting the background color of the popup toolbar
      • Changed
        pspdf__itemTint for setting the tint (icon and/or text color) of the toolbar items when they're enabled
      • Changed
        pspdf__itemTintDisabled for setting the tint (icon and/or text color) of the toolbar items when they're disabled
    • Added
      Adds document import feature to Document Editor. (#14868)
      • Added
        Adds support for Intent#ACTION_OPEN_DOCUMENT and Intent#ACTION_CREATE_DOCUMENT to DefaultFilePicker#getDestinationUri(String).
    • Changed
      Improves default themes and styles. (#16089)
      • Changed
        Dark theme now uses white text instead of colored accent for easier readability.
      • Changed
        Styles for PSPDFKit views now pick android:colorBackground and android:colorForeground from your theme as defaults for background and foreground colors.
      • Added
        Adds MainToolbar that uses pspdf__MainToolbarStyle from your theme for easy toolbar theming. Take a look at pspdf__MainToolbar styleable for all supported attributes.
      • Removed
        Removes theme attributes pspdf__mainToolbarTextColor, pspdf__mainToolbarTheme and pspdf__mainToolbarPopupTheme. Use pspdf__textColor, pspdf__toolbarTheme and pspdf__tolbarPopupTheme in the pspdf__mainToolbarStyle instead.
      • Added
        Adds pspdf__contextualToolbarStyle to theme for contextual toolbars styling. Take a look at pspdf__ContextualToolbar styleable for all supported attributes.
      • Removed
        Removes theme attributes pspdf__contextualToolbarBackground and pspdf__contextualToolbarSubmenuBackground. Use pspdf__backgroundColor and pspdf__submenuBackgroundColor in the pspdf__ContextualToolbarStyle instead.
      • Changed
        Icon colors of all contextual toolbars now default to pspdf__iconColor and pspdf__iconColorActivated that can be set in the pspdf__ContextualToolbarStyle.
    • Changed
      Improves document scrolling performance by delaying the high-res page rendering until the scrolling has stopped. (#17031)
    • Changed
      Improves signature handling by preventing overlapping signatures on signature form fields. (#16827)
    • Changed
      Improves the rendering support of push buttons. (#16507)
    • Changed
      Improves user experience while filling form fields that did not specify font size. (#17037)
    • Changed
      Cleans up naming scheme of styles that are part of default themes. (#14958)
      • Changed
        Renames all styles with the name scheme pspdf__styleName defined in styles.xml to PSPDFKit.StyleName.
      • Changed
        Renames all styles with the name scheme PSPDFKit.Theme.Dark.StyleName defined in dark_theme.xml to PSPDFKit.StyleName.Dark.
    • Changed
      Moves NavigationBackStack to com.pspdfkit.ui.navigation. (#16851)
    • Removed
      Removes EventBus and all events and commands defined in Events and Commands. (#9274)
      • Removed
        Removes Events.OnZoomScaleFactorChanged, use DocumentListener#onDocumentZoomed() instead.
      • Removed
        Removes Events.OnPageChanged, use DocumentListener#onPageChanged() instead.
      • Removed
        Removes Commands.ClearSelectedAnnotations, use PdfFragment#clearSelectedAnnotations() instead.
      • Removed
        Removes Commands.SelectAnnotation, use PdfFragment#setSelectedAnnotation() instead.
      • Removed
        Removes Commands.ToggleActionBarIconsVisibility.
      • Removed
        Removes Commands.ExecuteAction, use PdfFragment#executeAction() instead.
      • Removed
        Removes Commands.ShowPage use PdfFragment#setPageIndex() instead.
      • Removed
        Removes Commands.ToggleSystemBars, use PdfActivity#setUserInterfaceVisible() instead.
      • Removed
        Removes Commands.SearchSelectedText, requests for searching selected text are now handled by OnSearchSelectedTextListener that can be set via TextSelectionController#setOnSearchSelectedTextListener.
      • Removed
        Removes Commands.ShowAnnotationEditor, use showAnnotationEditor() defined in AnnotationCreationController and AnnotationEditingController instead.
    • Removed
      Removes PSPDFKit#updateInternalUIContext(). (#17039)
    • Fixed
      Fixes an issue where PdfFragment#isImageDocument() returned false for image documents loaded from non-parcelable sources. (#17524)
    • Fixed
      Fixes an issue where annotation overlay mode was enabled even when annotation editing was disabled by configuration or license. (#16941)
    • Fixed
      Fixes an issue where annotation views added to overlay during initialization state weren't measured correctly. (#17099)
    • Fixed
      Fixes an issue where clicks outside of the page triggered both DocumentListener#onDocumentClick() and DocumentListener#onPageClick() instead of just triggering onDocumentClick(). (#16892)
    • Fixed
      Fixes an issue where creation of ink signature in portrait mode could result in IllegalStateException. (#16819)
    • Fixed
      Fixes an issue where edited form value could disappear for a while after leaving form editing mode. (#17024)
    • Fixed
      Fixes an issue where form elements were not extracted to annotation overlay when annotation editing was disabled. (#17518)
    • Fixed
      Fixes an issue where it wasn't possible to enter text into non-scrollable, multiline form fields. (#17471)
    • Fixed
      Fixes an issue where markup submenu in annotation creation toolbar did not remember last selected annotation tool. (#17378)
    • Fixed
      Fixes an issue where note editor did not handle annotation flags correctly. (#16693)
    • Fixed
      Fixes an issue where pages with invalid annotations on them were not rendered. (#16990)
    • Fixed
      Fixes an issue where returning false from DocumentListener#onDocumentClick() did not consume the event. (#16890)
    • Fixed
      Fixes an issue where state restoration inside PdfThumbnailGrid would throw an exception when having targetSdkVersion set to 28. (#16983)
    • Fixed
      Fixes an issue which could keep annotation views from properly being measured when continuous scrolling was configured while annotation overlay mode was active. (#17295)
    • Fixed
      Fixes an unhandled NullPointerException that was thrown by the note editor when editing annotations without creation date. (#17391)

    Model

    • API
      All method parameters annotated with @NonNull now throw an IllegalArgumentException when receiving a null as argument. (#14266)
    • API
      Converts BookmarkProvider from a class into an interface. To retrieve an implementation use PdfDocument#getBookmarkProvider(). (#16868)
      • Changed
        Renames BookmarkProvider#isDirty() to BookmarkProvider#hasUnsavedChanges().
      • Removed
        Removes BookmarkProvider#prepareToSave(), this is handled automatically by the framework.
    • API
      Converts DocumentPdfMetadata and DocumentXmpMetadata from a class to an interface. To retrieve an implementation use PdfDocument#getPdfMetadata() and PdfDocument#getXmpMetadata(). (#16936)
      • Removed
        Removes DocumentPdfMetadata#clearDirty() and DocumentXmpMetadata#clearDirty(), this is handled automatically by the framework.
      • Changed
        Renames DocumentPdfMetadata#isDirty() and DocumentXmpMetadata#isDirty() to hasUnsavedChanges().
    • API
      Converts FormProvider from a class to an interface. To retrieve an implementation use PdfDocument#getFormProvider(). (#16847)
      • Changed
        Renames FormProvider#isDirty() to FormProvider#hasUnsavedChanges().
    • API
      Converts PdfDocument from a class into an interface. Use PdfDocumentLoader#openDocument() and associated methods to retrieve an implementation. (#14261)
      • Changed
        Renames PdfDocument#getPDFVersion() to getPdfVersion().
      • Added
        Adds PdfDocumentLoader class which contains methods to obtain PdfDocuments.
      • Removed
        Removes PdfDocument#openDocument() and associated methods.
    • API
      Removes DocumentDataStore from the public API to improve the framework security. (#17248)
    • API
      Annotation#setSubject() no longer has an effect on the appearance of StampAnnotations, use the new setStampType() and setTitle() methods instead. (#15895)
      • Added
        Adds getStampType() and setStampType() to StampAnnotation.
      • Added
        Adds getTitle() and setTitle() to StampAnnotation.
      • Changed
        Changes com.pspdfkit.annotations.StampType from an enum to a class found at com.pspdfkit.annotations.stamps.StampType.
      • Changed
        Renames StampType.fromSubject() to fromName().
      • Changed
        Renames StampType#getSubject() to getName().
      • Added
        Adds StampType#isStandard().
      • Changed
        Renames StampAnnotation#getSubtext() and StampAnnotation#setSubtext() to getSubtitle() and setSubtitle().
      • Added
        Adds StampPickerItem.fromStampType().
      • Changed
        Renames StampPickerItem.fromSubject() to fromTitle().
      • Changed
        Renames StampPickerItem.Builder.withLocalizedSubject() to withTitle().
      • Changed
        Renames StampPickerItem.Builder.withSubtext() to withSubtitle().
      • Changed
        Renames StampPickerItem.Builder.withDateTimeSubtext() to withDateTimeSubtitle().
      • Changed
        Renames StampPickerItem#getSubject() to getStampType() and changes return type to StampType.
      • Changed
        Renames StampPickerItem#getLocalizedSubject() to getTitle().
      • Changed
        Renames StampPickerItem#getSubtext() to getSubtitle().
      • Changed
        Renames PredefinedStampType.fromSubject() to fromName().
      • Changed
        Renames PredefinedStampType#getSubject() to getName().
      • Added
        Adds PredefinedStampType#getStampType().
    • Removed
      Deprecates PdfProcessorTask#addPdfToPage(), use new method mergePage() instead. (#17150)
    • Added
      Adds Font#getDefaultTypeface() to retrieve the Typeface without causing additional disk I/O. (#16932)
      • Changed
        Ensures that Fonts can only be created from background threads, throwing an IllegalStateException if created from the main thread.
    • API
      Removes all previously deprecated symbols. (#16895)
      • Removed
        Removes com.pspdfkit.annotations.xfdf.XfdfFormatter use com.pspdfkit.document.formatters.XfdfFormatter instead.
      • Removed
        Removes InstantPdfFragment.newInstance(String, String, String, PdfConfiguration) use newInstance(String, String, PdfConfiguration) instead.
      • Removed
        Removes InstantPdfActivityIntentBuilder.fromInstantDocument(Context, String, String, String) use fromInstantDocument(Context, String, String) instead.
      • Removed
        Removes InstantPdfActivity.showInstantDocument(Context, String, String, String, PdfActivityConfiguration) use showInstantDocument(Context, String, String, PdfActivityConfiguration) instead.
      • Removed
        Removes InstantDocumentDescriptor#getAuthenticationToken() use getJwt() instead.
      • Removed
        Removes InstantClient#openDocument(String, String) use openDocument(String) instead.
      • Removed
        Removes InstantClient#openDocumentAsync(String, String) use openDocumentAsync(String) instead.
      • Removed
        Removes InstantClient#getInstantDocumentDescriptor(String) use getInstantDocumentDescriptorForJwt(String) instead.
      • Removed
        Removes InstantPdfDocument#updateAuthenticationToken(String) use reauthenticateWithJwt(String) instead.
      • Removed
        Removes InstantPdfDocument#updateAuthenticationTokenAsync(String) use reauthenticateWithJwtAsync(String) instead.
      • Removed
        Removes InstantPdfDocument#setAutomaticSyncEnabled(boolean) use setListenToServerChanges(boolean) and setDelayForSyncingLocalChanges(long) instead.
      • Removed
        Removes AnnotationSyncCoordinator#setAutomaticSyncEnabled(boolean) use setListenToServerChanges(boolean) and setDelayForSyncingLocalChanges(long) instead.
      • Removed
        Removes AnnotationManager.OnAnnotationUpdatedListener use AnnotationProvider.OnAnnotationUpdatedListener instead.
      • Removed
        Removes SignatureSignerDialog.show(FragmentManager, PdfDocument, SignatureFormField, Signer, DocumentSigningListener) use show(FragmentManager, Options, DocumentSigningListener) instead.
      • Removed
        Removes SignatureSignerDialog.show(FragmentManager, PdfDocument, SignatureFormField, Signer, BiometricSignatureData, DocumentSigningListener) use show(FragmentManager, Options, DocumentSigningListener) instead.
      • Removed
        Removes ComboBoxFormConfiguration.Builder#setSelectedIndexes(List) use setSelectedIndex(Integer) instead.
      • Removed
        Removes DocumentSharingProcessor use DocumentSharingProviderProcessor#prepareDocumentForSharing(Context, PdfDocument, PdfProcessorTask, String) instead.
      • Removed
        Removes DocumentSharingProvider#deleteTemporaryFile(Context, Uri) use deleteFile(Context, Uri) instead.
      • Removed
        Removes PdfProcessorTask(PdfDocument) use PdfProcessorTask.fromDocument(PdfDocument) instead.
      • Removed
        Removes PdfProcessorTask(NewPage) use PdfProcessorTask.newPage(NewPage) instead.
      • Removed
        Removes Signer#signFormFieldAsync(SignatureFormField, KeyStore.PrivateKeyEntry, OutputStream) use signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream) instead.
      • Removed
        Removes Signer#signFormFieldAsync(SignatureFormField, KeyStore.PrivateKeyEntry, BiometricSignatureData, OutputStream) use signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream) instead.
      • Removed
        Removes Signer#signFormField(SignatureFormField, KeyStore.PrivateKeyEntry, OutputStream) use signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback) instead.
      • Removed
        Removes Signer#signFormField(SignatureFormField, KeyStore.PrivateKeyEntry, BiometricSignatureData, OutputStream) use signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback) instead.
      • Removed
        Removes MemorySigner#signFormFieldAsync(SignatureFormField, OutputStream) use signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream) instead.
      • Removed
        Removes MemorySigner#signFormField(SignatureFormField, OutputStream) use signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback) instead.
      • Removed
        Removes MemorySigner#getSigningKeyPair().
      • Removed
        Removes PdfFragment.PARAM_DOCUMENT_PATHS, PdfFragment.PARAM_IMAGE_DOCUMENT_PATH, PdfFragment.PARAM_PASSWORDS, and PdfFragment.PARAM_CONTENT_SIGNATURES.
      • Removed
        Removes PdfFragment#setCustomPdfSource(DataProvider, String) use setCustomPdfSource(DocumentSource) instead.
      • Removed
        Removes PdfFragment#setCustomPdfSources(List, List) use setCustomPdfSources(List).
      • Removed
        Removes PdfFragment#[register/unregister]DrawableProvider() use PdfFragment#[add/remove]DrawableProvider() instead.
      • Removed
        Removes PdfThumbnailGrid#[add/remove]OnDocumentEditingModeChangeListener() use DocumentEditingManager#[add/remove]OnDocumentEditingModeChangeListener() instead.
      • Removed
        Removes PdfThumbnailGrid#[add/remove]OnDocumentEditingPageSelectionChangeListener() use DocumentEditingManager#[add/remove]OnDocumentEditingPageSelectionChangeListener() instead.
      • Removed
        Removes AnnotationProvider#prepareForSave() this call is no longer necessary.
      • Removed
        Removes AnnotationProvider#clearDirty() this call is no longer necessary.
      • Removed
        Removes AnnotationProvider#isDirty() use hasUnsavedChanges() instead.
      • Removed
        Removes PdfConfiguration#annotationReplyFeatureEnabled(boolean) use annotationReplyFeatures(AnnotationReplyFeatures) instead.
      • Removed
        Removes PdfConfiguration#isAnnotationReplyFeatureEnabled() use getAnnotationReplyFeatures() instead.
      • Removed
        Removes PdfActivityConfiguration#annotationReplyFeatureEnabled(boolean) use annotationReplyFeatures(AnnotationReplyFeatures) instead.
      • Removed
        Removes RichMediaExecuteAction#getScreenAnnotationPageIndex().
      • Removed
        Removes RichMediaExecuteAction#getScreenAnnotationObjectNumber() use getRichMediaAnnotationObjectNumber().
      • Removed
        Removes RenditionAction#getScreenAnnotationPageIndex().
    • Added
      Adds new Redaction component. (#16922)
      • Added
        Adds RedactionAnnotation to mark parts of the document that should be redacted.
      • Added
        Adds new tool to mark text in the document for redaction.
      • Added
        Adds PdfProcessorTask#applyRedactions() to apply all created RedactionAnnotations.
      • Added
        Adds DocumentSaveOptions#setApplyRedactions() to allow applying redactions as part of the regular document saving.
    • Added
      Adds PDF Comparison component for visual comparison of pages of different documents. (#16598)
      • Added
        Adds PdfProcessorTask#changeStrokeColorOnPage() for adjusting color of all strokes on a page.
      • Added
        Adds PdfProcessorTask#mergePage() that supports BlendMode for merging 2 colored pages. This method can be used to produce comparison page by blending 2 pages that have strokes colored with different colors.
      • Added
        Adds LicenseFeatures#COMPARISON that can be retrieved via PSPDFKit#getLicenseFeatures().
      • Added
        Adds DocumentComparisonExample that shows how to compare documents using this new API.
    • Added
      Adds better support for annotations with custom appearance streams. (#15658)
    • Added
      Adds new initializer option to add additional font directories. (#13991)
    • Added
      Adds support for util.scand, a JavaScript API that can be used from PDF documents to parse dates from strings. (#17480)
    • Changed
      Improves the performance of documents with a lot of JavaScript calculations. (#11925, #16490)
    • Changed
      Allows creation of PagePdf from already loaded PdfDocument instances. (#17150)
    • Changed
      Changes the format of the InstantJSON bookmark format. The id is now saved in pdfBookmarkId and skippedBookmarkIds has been renamed to skippedPdfBookmarkIds. (#17400)
    • Fixed
      Fixed an issue where the wrong encoding was used for the Symbol font. (#17245)
    • Changed
      Upgrades Java source and target versions to 1.8. (#17007, #17149)
    • Fixed
      Fixes occasional rendering issues on OnePlus devices. (#16541)
    • Fixed
      Fixes ContentResolverDataProvider not reporting the correct title for documents. (#17417)
    • Fixed
      Fixes a crash that may happen when you add form fields with certain kinds of JavaScript scripts. (#17472)
    • Fixed
      Fixes a possible NullPointerException when passing null to PredefinedStampType#fromSubject(). Parameter is now marked as @Nullable and properly checked for null. (#17046)
    • Fixed
      Fixes an issue in Document Editor where importing documents without storage permissions was failing silently. (#17032)
    • Fixed
      Fixes an issue looking up destinations in a names tree. This could lead to unresolvable link/outline destination. (#17206)
    • Fixed
      Fixes an issue that caused problems saving new annotations in particular documents. (#16717)
    • Fixed
      Fixes an issue where Document JSON skipped object numbers for created annotations. This could lead to problems where unrelated annotations could get ignored after importing the JSON file. (#17425)
    • Fixed
      Fixes an issue where JavaScript dependent calculations may not be executed after a syntax error. (#17025)
    • Fixed
      Fixes an issue where JavaScript form field validation erroneously used the previous value. (#16462)
    • Fixed
      Fixes an issue where calling StampAnnotation#getBitmap() on newly created image stamp annotations would return an empty bitmap. (#17455)
    • Fixed
      Fixes an issue where documents with a large number of form fields failed to display editing options. (#16911)
    • Fixed
      Fixes an issue where on some devices running Android API 27, saving documents using Downloads content provider was throwing an exception. (#17087)
    • Fixed
      Fixes an issue where some PDF pages could not be inserted as attachments for images. (#16729)
    • Fixed
      Fixes an issue where the wrong message is return when a certificate is expired. (#16727)
    • Fixed
      Fixes an issue with JPEG2000 images. (#14850)
    • Fixed
      Fixes an issue with document checkpointing after saving fails. (#16600)
    • Fixed
      Fixes rendering of image stamps when applied to rotated pages. (#17380)
    • Fixed
      Fixes stamp annotation rotation, free text annotation rotation, and free text annotation text insets being transformed on pages that have a rotation set in the PDF. (#15890)

    Instant

    • API
      Converts InstantPdfDocumentfrom a class into an interface. Use InstantClient#openDocument() and associated methods to retrieve an implementation. (#14261)
      • Changed
        Renames InstantPdfDocument#getPDFVersion() to getPdfVersion().
    • Added
      Adds support for shape annotations and ink signatures. (#17270)
    • Fixed
      Fixes a bug that deleted all local layers of a document instead of just the layer backing a document descriptor. (#17264)
    • Fixed
      Fixes a deadlock that could occur when deleting a layer or all loaded data. (#17257)
    • Fixed
      Fixes an issue that could cause open file descriptors to be leaked when deleting the local data for a layer, document, or the entire Instant client. (#17303)

    Examples

    • Added
      Adds JavaScript calculator example to Catalog app. This example showcases a calculator application implemented completely inside a PDF using JavaScript. (#17512)
    • Added
      Adds QR code scanning option to connect to Instant Demo. (#16624)
    • Added
      Adds a new custom-fonts example application that shows how to bundle custom fonts for rendering within an application. (#17057)
    • Added
      Adds the new PSPDFKit 5 for Android Quickstart guide to the Catalog app. (#17405)
    • Fixed
      Fixes an issue related to multidex configuration that could cause Catalog app startup issues. (#17069)

    4.8.1 27 Sep 2018

    UI

    • Changed
      Enhances calculation of free text callouts when changing font face. (#16733)
    • Changed
      The signature picker dialog will now restore the activity's original orientation after being dismissed. (#15556)
    • Changed
      Reverse portrait orientation is now properly restored when returning from full-screen video view. (#16756)
    • Fixed
      Fixes DocumentListener#onPageClick() not reporting the correct annotation when multiple annotations overlap. (#16770)
    • Fixed
      Fixes an issue where Document Editor was erroneously instantiated multiple times leading to wrong page operation results. (#16784)
    • Fixed
      Fixes an issue where pspdf__backgroundColor theme attribute was lost after changing configuration with retained PdfFragment. (#16914)
    • Fixed
      Fixes an issue where annotation or form selection is restored while the fragment is being destroyed, causing a crash. (#16480)
    • Fixed
      Fixes an issue where clicking on paste button in text selection popup toolbar could result in IllegalStateException. (#16764)
    • Fixed
      Fixes an issue where documents that were saved to a ContentResolverDataProvider could return stale data after being reloaded. (#16753)
    • Fixed
      Fixes an issue where forms in rotated documents are rendered rotated the wrong way. (#15549)
    • Fixed
      Fixes an issue where it was possible to paste annotations from another document even when cross document copy/pasting was disabled in configuration. (#16748)
    • Fixed
      Fixes an issue where it wasn't possible to input decimal separators to form fields with number format. (#16825)
    • Fixed
      Fixes an issue where items in annotation creation toolbar with custom grouping rule (CustomAnnotationCreationToolbarGroupingRule) in our catalog app were not selectable. (#16793)
    • Fixed
      Fixes an issue where signing documents with existing digital signatures made previous signatures invalid. (#16852)
    • Fixed
      Fixes an issue where stamp background disappeared after returning back from annotation note editor. (#15989)
    • Fixed
      Fixes an issue where the undo/redo buttons of the document editor were not enabled in some cases. (#16757)
    • Fixed
      Fixes an issue with resizing free text callouts in corners. (#16734)

    Model

    • Fixed
      Fixes a possible ConcurrentModificationException thrown while initializing PSPDFKit. (#16831)
    • Fixed
      Fixes an issue when extracting link annotations. (#16854)
    • Fixed
      Fixes an issue where JavaScript scripts that hold a strong local reference to event.target would not work correctly. (#16507)
    • Fixed
      Fixes an issue where document JSON wasn't imported correctly on rotated PDF pages. (#16534)
    • Fixed
      Fixes an issue where image documents could not be opened from URIs without read permission for the filesystem. (#16686)
    • Fixed
      Fixes an issue where not all form fields were listable immediately after opening a document. (#16479)
    • Fixed
      Fixes an issue where programmatic annotation content changes would not be reflected in rendered free text annotation. (#16487)
    • Fixed
      Fixes an issue where some document outlines were not be persisted correctly after using the document processor. (#16688)
    • Fixed
      Fixes an issue where some documents with JavaScript would become unresponsive for a great amount of time. (#16886)

    4.8.0 5 Sep 2018

    See the announcement post(opens in a new tab).

    Important: PSPDFKit now ships with x86_64 native libraries. This considerably increases its size. Please follow the framework size guide article(opens in a new tab) for more information on how to reduce size of your apps by filtering native libraries for certain ABIs. (#6086)

    UI

    • Added
      Adds support for document tabs. (#9399)
      • Added
        Adds PdfDocumentCoordinator that manages multiple documents in PdfActivity and coordinates switching between these documents. It can be retrieved via PdfActivity#getDocumentCoordinator().
      • Added
        Adds DocumentDescriptor for describing loaded documents in PdfDocumentCoordinator together with their state.
      • Added
        Adds PdfTabBar that displays tabs for documents managed by PdfDocumentCoordinator.
      • Added
        Adds setTabBarHidingMode() to PdfActivityConfiguration.Builder for controlling when to display tabs bar or to disable it altogether.
      • Added
        Adds DocumentTabsExample that showcases how to use PdfDocumentCoordinator in PdfActivity to display tabs.
      • Changed
        Adapts DocumentSwitcherExample to use the PdfDocumentCoordinator API for faster document switching compared to previous solution.
      • Removed
        Deprecates EventBus parameter in PSPDFKitViews#setDocument().
      • Removed
        Deprecates setCustomPdfSource() and setCustomPdfSources() accepting DataProvider in PdfFragment, use newly provided methods with the same name that accept DocumentSource instead.
    • Added
      Adds FreeTextAnnotation#setFontName() and getFontName() to get and set the font used for the annotation. (#16217) Adds new inspector control to select the font of free text annotations.
    • Added
      Adds setPageLoadingDrawable() to PdfFragment. This method sets loading drawable that will be displayed until document is loaded and all visible pages are rendered. (#16330)
    • Added
      Adds navigation between pages using volume buttons. Option can be enabled with PdfActivityConfiguration.Builder#volumeButtonsNavigationEnabled(true). (#15406)
    • Added
      Adds support for drawing behind notch on Android P. (#16565)
    • Added
      Adds support for rendering widget annotations in overlay mode. (#14463)
    • Fixed
      Fixed an issue where parts of the document view hierarchy were illegally retained when replacing the displayed document inside of PdfFragment. (#16614)
    • Fixed
      Fixes an issue where clicking on undo/redo button in annotation editing toolbar did not trigger undo. (#16694)
    • Fixed
      Fixes an issue where document title overlay was not updated after changing title in the document info view. (#16653)
    • Fixed
      Fixes an issue where free text annotations could not be scaled correctly when annotation rotation was disabled. (#16567)
    • Fixed
      Fixes an issue where ink signatures overlapping form fields could not be selected. (#16273)
    • Fixed
      Fixes an issue where stamp annotations sometimes didn't get rendered in overlay mode after scrolling to page. (#16147)
    • Fixed
      Fixes markup annotations not being rendered behind all other annotations while overlay mode is active. (#15845)
    • Fixed
      Fixes an issue where disabling the document info view wasn't retained when creating new PdfActivityConfiguration from already existing configuration. (#16651)

    Model

    • Added
      Adds PSPDFKit.getLicenseFeatures() to allow you to check the currently enabled license features. (#15725)
    • Added
      Adds SignatureFormField#removeSignature() to remove the attached digital signature. (#16294)
    • Added
      Adds isImageDocument for PdfFragment and PdfActivity to indicate whether the displayed document is an image or not. (#16661)
    • Added
      Adds missing nullability annotations to FormElementConfiguration and its subclasses. (#16205)
    • Added
      Adds new Document Editor API. (#15877)
      • Added
        Adds PdfDocumentEditor interface the public editor API.
        • Adds #saveDocument(Context, DocumentSaveOptions) for saving a document in place.
      • Added
        Adds #saveDocument(Context, OutputStream, DocumentSaveOptions) for saving a document to a given output stream.
      • Added
        Adds #exportPages(Context, OutputStream, Set<Integer>, DocumentSaveOptions) for exporting a set of pages to a given output stream.
      • Added
        Adds #addPage(int, NewPage) for adding a new page to a given index.
      • Added
        Adds #removePages(Set<Integer>) for removing a set of pages from the document.
      • Added
        Adds #rotatePages(Set<Integer>, int) for rotating a set of pages of a given angle.
      • Added
        Adds #duplicatePages(Set<Integer>) for duplicating a given set of pages.
      • Added
        Adds #movePages(Set<Integer>, int) for moving a set of pages to a given destination index.
      • Added
        Adds #importDocument(Context, DocumentSource, int) for importing a document source to a given index.
      • Added
        Adds #canUndo for checking if undo operation is possible.
      • Added
        Adds #canRedo() for checking if redo operation is possible.
      • Added
        Adds #getRotatedPageSize(int) to return the page size of a given page already rotated.
      • Added
        Adds #renderPageToBitmap(int, Bitmap, PageRenderConfiguration) for rendering a given page into a Bitmapbuffer.
      • Added
        Adds #setPageLabel(int, String) for setting a new page label for a specific page.
      • Added
        Adds #beginTransaction() to begin a new batch of document editor operations.
      • Added
        Adds #isTransactionActive() to check if there is currently an active document editor transaction.
      • Added
        Adds #discardTransaction() to discard the current batch of document editor operations.
      • Added
        Adds #commitTransaction() to end a bach of document editor operations and commit them immediately.
    • Added
      Adds PdfDocumentEditorFactory for creating document editor instances.
    • Added
      Adds EditingChange to represent a change that happened because of an operation performed by the document editor that can be undone/redone.
    • Added
      Adds EditingOperation to specify the kind of change done by the editing operation.
    • Added
      Adds PdfThumbnailGrid#getDocumentEditor to return thumbnail grid document editor.
    • Added
      Adds PdfThumbnailGrid#isDocumentEditorEnabled() to check if document editor is enabled.
    • Added
      Adds PdfDocumentEditorFactory.createForDocument(PdfDocument) to create a new instance of Document Editor.
    • Added
      Adds FilePicker to retrieve a destination Uri when required for saving and exporting operations.
    • Added
      Adds PdfThumbnailGrid#getFilePicker() to obtain current file picker, if not specified default Android SAF picker is provided.
    • Added
      Adds PdfThumbnailGrid#setFilePicker(FilePicker) to set a file picker to use during a saving process.
    • Removed
      Removes DefaultDocumentEditorListener and PdfDocumentEditorListener use a custom file picker instead.
    • Removed
      Removes DocumentEditor interface. All Document Editor API placed in PdfDocumentEditor interface.
    • Removed
      Removes PSPDFKitView#setPdfDocumentEditorListener(PdfDocumentEditorListener)
    • Removed
      Removes PdfThumbanilGrid#setPdfDocumentEditorListener
    • Removed
      Removes PdfThumbnailGrid#onFileChooserResult this is now managed by default file picker.
    • Removed
      Deprecates PdfThumbnailGrid#addOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener) use DocumentEditingManager#addOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener) instead.
    • Removed
      Deprecates PdfThumbnailGrid#removeOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener) use DocumentEditingManager#removeOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener) instead.
    • Removed
      Deprecates PdfThumbnailGrid#addOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener) use DocumentEditingManager#addOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener) instead.
    • Removed
      Deprecates PdfThumbnailGrid#removeOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener) use DocumentEditingManager#removeOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener) instead.
  • Adds popup toolbar for text selection and pasting. (#8520)
    • Added
      Adds PopupToolbar class which represents a generic popup toolbar similar to the Android framework text selection bar.
    • Added
      Adds TextSelectionPopupToolbar which is a PopupToolbar implementation for the text selection process. Handled inside the document view.
    • Added
      Adds PdfActivityConfiguration.Builder#textSelectionPopupToolbarEnabled(true|false) for controlling whether the text selection popup toolbar is enabled or not. If enabled, PdfActivity won't show the old text selection toolbar. If disabled, PdfActivity will show a contextual text selection toolbar whereas the fragment won't display a popup toolbar.
    • Added
      Adds OnPreparePopupToolbarListener that you can register on the fragment via PdfFragment#setOnPreparePopupToolbarListener() to get a callback before each of the toolbars is displayed. Use this to change menu items before the toolbar becomes visible.
    • Added
      Adds PopupToolbarMenuItem which represents a single popup toolbar menu item. The menu item specifies an ID, title and whether it's enabled or not.
  • Adds support for setting supported form flags on created form fields. (#15543)
    • Added
      Adds setReadOnly() and setRequired() to FormElementConfiguration builders.
    • Added
      Adds setSpellCheckEnabled() and setMultiSelectionEnabled() to ComboBoxFormConfiguration builder.
    • Added
      Adds setMultiLine(), setPassword(), setSpellCheckEnabled(), setScrollEnabled() and setMaxLength() to TextFormConfiguration builder.
  • Improves document password support and compatibility with third-party readers. (#15951)
  • Ensures that the processor always encrypt documents using the 128-bit AES algorithm if the user didn't change the defaults. (#15946)
  • Moves the document info view from its separate dialog to the outline view (PdfOutlineView) and adds new navigation view used to navigate between outline view components. (#15986)
    • Added
      Adds PdfOutlineView#[add/remove]OnDocumentInfoViewModeChangeListener() for adding/removing the listener for document info mode changes.
    • Added
      Adds PdfOutlineView#[add/remove]OnDocumentInfoViewSaveListener() for adding/removing the listener for document info value changes being saved to the document.
    • Added
      Adds theming via XML for the document info view, using the outline view styleable (pspdf__OutlineView):
    • Added
      Adds attributes for styling new navigation view:
    • Added
      Adds pspdf__navigationTabOutlineIcon for setting the tab icon for outline view.
    • Added
      Adds pspdf__navigationTabBookmarksIcon for setting the tab icon for bookmarks view.
    • Added
      Adds pspdf__navigationTabAnnotationsIcon for setting the tab icon for annotation list view.
    • Added
      Adds pspdf__navigationTabDocumentInfoIcon for setting the tab icon for document info view.
    • Added
      Adds pspdf__navigationTabIconsColor for setting the color for tab icons in the navigation bar.
    • Added
      Adds pspdf__navigationTabIconsColorSelected for setting the color for the selected tab icon in the navigation bar.
    • Added
      Adds pspdf__navigationTabBackgroundColor for setting the background color of the whole navigation view.
    • Added
      Adds attributes for styling document info view:
    • Added
      Adds pspdf__documentInfoGroupTitleTextColor for setting the text color for the document info group title.
    • Added
      Adds pspdf__documentInfoItemTitleTextColor for setting the text color for the document info item title.
    • Added
      Adds pspdf__documentInfoItemValueTextColor for setting the text color for the document info item value.
    • Added
      Adds pspdf__documentInfoItemValueHintTextColor for setting the text color for the document info value hint.
    • Added
      Adds pspdf__documentInfoGroupIconColor for setting the icon color for the document info group icons.
    • Added
      Adds pspdf__documentInfoContentIcon for setting the icon for the 'Content' group in document info view.
    • Added
      Adds pspdf__documentInfoChangesIcon for setting the icon for the 'Changes' group in document info view.
    • Added
      Adds pspdf__documentInfoSizeIcon for setting the icon for the 'Size' group in document info view.
    • Added
      Adds pspdf__documentInfoFabBackgroundColor for setting the background color for the document info FAB.
    • Added
      Adds pspdf__documentInfoFabIconColor for setting the icon color for the document info FAB.
    • Added
      Adds pspdf__documentInfoFabEditIcon for setting the 'Edit' icon for the document info FAB.
    • Added
      Adds pspdf__documentInfoFabDoneIcon for setting the 'Done' icon for the document info FAB.
    • API
      Removes PdfOutlineView styling setters and getters. The UI should be changed exclusively through XML themes:
    • API
      Removes [set/get]BackgroundColor().
    • API
      Removes [set/get]ListSelector().
    • API
      Removes [set/get]DefaultTextColor().
    • API
      Removes [set/get]BookmarksBarIconColor().
    • API
      Removes [set/get]BookmarksBarBackgroundColor().
    • API
      Removes [set/get]BookmarksAddIcon().
    • API
      Removes [set/get]BookmarksEditIcon().
    • API
      Removes [set/get]BookmarksDoneIcon().
    • API
      Removes [set/get]GroupIndicatorIconColor().
    • API
      Removes [set/get]BookmarksDeleteIcon().
    • API
      Removes [set/get]BookmarksDeleteIconColor().
    • API
      Removes [set/get]BookmarksDeleteBackgroundColor().
  • Updates clipRect() usage to be compliant with the new restrictions on Android P. (#16592)
  • Fixes a problem where calling InkAnnotation#isSignature() on annotations created from signatures returned false. (#15907)
  • Fixes a problem where creating a new page with fractional size caused problems when drawing on it using the PageCanvas API. (#16030)
  • Fixes a problem where some XFA forms with JavaScript may show an alert message when the document is open. (#16000)
  • Fixes a race condition when opening compound documents made up of a large amount of documents. (#16274)
  • Fixes an issue exporting document pages with a rare outline configuration. (#15923)
  • Fixes an issue where DocumentInfoView was trying to calculate document size using wrong document source. (#16443)
  • Fixes an issue where calling save() methods on a PdfDocument backed by an image document would not trigger saving of metadata to the original image file. (#16077)
  • Fixes an issue where the blend mode of ink annotations may not be persisted correctly. (#16376)
  • Fixes an issue where the digital signature validation UI may incorrectly inform about an expired certificate. (#16605)
  • Fixes a performance problem with documents that contain large clipping paths. (#16481)
  • Fixes a problem rendering documents with particular fonts. (#16361)
  • Fixes a problem with XFDF on rotated pages. (#16560)
  • Fixes an issue when entering text with non-latin characters. (#16626)
  • Fixes an issue when loading checkpoint files. (#16277)
  • Instant

    • Added
      Adds support for bookmarks to Instant Document JSON. (#16165)

    Examples

    • Changed
      Hitting enter or submitting the search inside the Catalog app examples will now focus the first example inside the results. (#16604)

    4.7.2 9 Aug 2018

    UI

    • Fixed
      Fixes an issue where FreeTextAnnotations stopped being editable when overlay mode is deactivated. (#16375)
    • Fixed
      Fixes an issue where FreeTextAnnotations were rendered with a white background despite no background being set. (#16392)
    • Fixed
      Fixes an issue where rotation handle visible outside of page bounds did not respond to touches. (#15726)
    • Fixed
      Fixes an issue where visible page rectangle was not restored correctly after changing configuration in PdfActivity. (#16426)
    • Fixed
      Fixes an issue where annotations were not added in the correct order when adding them in quick succession. (#16208)

    Model

    • Fixed
      Fixes an issue where OnFormElementClickedListener#onFormElementClicked wasn't called when clicking on signature form fields. (#16289)
    • Fixed
      Fixes an issue where deleting note annotations from the editor could crash when the license did not have annotation replies enabled. (#15891)
    • Fixed
      Fixes an issue where not all form fields were immediately listable after opening certain documents. (#16279)
    • Fixed
      Fixes an issue where created form elements could not be retrieved from FormProvider. (#15930)
    • Fixed
      Fixes an issue where the framework would occasionally crash when application was paused while searching. (#16248)
    • Fixed
      Fixes an issue where border style and blend mode set on annotation could not be reset to their default values. (#16440)

    Example

    • Added
      Adds ManualSigningExample to catalog app showing how to manually sign documents without signature picker UI. (#16295)

    4.7.1 25 Jul 2018

    UI

    • Added
      Adds handling for NamedActionType#INFO to PdfActivity, showing document info dialog when executed. (#15983)
    • Fixed
      Fixes an issue where changes made to image file loaded as ImageDocument in PdfActivity or PdfFragment were not propagated to other image apps in the system. (#15943)
      • Added
        Adds ImageDocumentUtils#refreshMediaStore() to request Android's media scanner to rescan an image file in the media database. Use this method after saving file-backed ImageDocument to make sure that other image apps will pick up the changes.
      • Added
        Adds ImageDocumentUtils#isImageUri() that can be used to check whether the content returned by resolving an Uri has an image MIME type.
    • Fixed
      Fixes an issue where configuration options set on PdfConfiguration were ignored when wrapping activity configuration via ImageDocumentLoader#getDefaultImageDocumentActivityConfiguration(). (#15963)
      • Added
        Adds getDefaultImageDocumentConfiguration(PdfConfiguration) to ImageDocumentLoader to create configuration for image documents from existing PdfConfiguration.
      • Changed
        Return values of getDefaultImageDocumentConfiguration() and getDefaultImageDocumentActivityConfiguration() in ImageDocumentLoader are now marked as @NonNull.
    • Fixed
      Fixes an issue where form validation error message displayed in form editing bar had incorrect height in immersive mode. (#16103)
    • Fixed
      Fixes an issue where it wasn't possible to re-select between form elements and annotations. (#15962)
    • Fixed
      Fixes an issue where shape annotations with BlendMode.MULTIPLY would not render properly if PdfConfiguration#invertColors() was used. Now instead, shape annotations will use BlendMode.SCREEN for inverted colors. (#15990)

    Model

    • Added
      Adds support for RichMediaExecuteActionType. (#15648)
    • Added
      Adds support for calling PdfActivity#setConfiguration before onCreate is called to set configuration without causing an activity restart. (#15926)
    • Added
      Adds support for creating NamedAction, GoToEmbeddedFileAction, HideAction, ResetFormAction and SubmitFormAction. (#15235)
      • Added
        Adds getFieldNames() to ResetFormAction and SubmitFormAction that returns list of form field names that should be targeted by the action.
      • Added
        Adds shouldExcludeFormFields() to ResetFormAction and SubmitFormAction that indicates whether form fields targeted by the action should be included or excluded from the action execution.
    • Fixed
      Fixes an issue where annotations that were parsed from XFDF were not saved to the document after adding them. (#15953)
    • Fixed
      Fixes an issue where calling JavaScript function AFSpecial_Keystroke with certain arguments could cause an infinite loop on some devices. (#16126)
    • Fixed
      Fixes an issue where setting and retrieval of lines on an InkAnnotation would fail for detached annotations when not using ArrayList. (#16015)

    Example

    • Added
      Adds XfdfExample to Catalog app that shows how to import/export annotations to/from XFDF file format. (#15954)
    • Changed
      Extends ExternalDocumentExample in the Catalog app to allow opening both PDF and image files. (#16053)

    4.7.0 9 Jul 2018

    See the announcement post(opens in a new tab).

    UI

    • Added
      Adds document info view for displaying information about the document that's being viewed: (#15850)
      • Added
        Adds document info view enabling and disabling, see enableDocumentInfoView() and disableDocumentInfoView() in PdfActivityConfiguration.Builder
      • Added
        Adds document info icon to the toolbar and PdfActivity#showDocumentInfoDialog() for programmatic invocation.
      • Added
        Adds OnDocumentInfoViewModeChangeListener listener for entering and exiting editing mode in document info view.
      • Added
        Adds PdfActivity#setOnDocumentInfoViewModeChangeListener() that lets you set the aforementioned listener.
      • Added
        Adds PdfDocumentInfoView class that is a pure document info view without the toolbar that you can embed in your custom components.
      • Added
        Adds PdfDocumentInfoDialog which contains PdfDocumentInfoView connected with a toolbar for switching editing modes.
    • Added
      Adds PdfThumbnailGrid customization options for editing FAB icon color. (#15809)
      • Fixed
        Fixes ThumbnailGridItemView not using pspdf__selectionCheckBackgroundColor
    • Added
      Adds bookmark drag handle icon and color as customizable theme parameters for pspdf__OutlineView. (#15869)
    • Added
      Adds new annotation tool for creating FreeTextAnnotations setup as call outs. (#15840)

    Model

    • Added
      Adds support for document JavaScript execution. (#15245)
      • Added
        Adds JavaScriptProvider that handles all JavaScript related operations. It can be retrieved via PdfDocument#getJavaScriptProvider().
      • Added
        Adds support for creation and execution of JavaScriptAction.
      • Added
        Adds setJavaScriptEnabled() to PdfConfiguration.Builder and PdfActivityConfiguration.Builder. Use this method to control whether JavaScript execution should be enabled in PdfFragment or PdfActivity.
      • Added
        Adds JavaScriptActionsExample, JavaScriptFormFillingExample and FormsJavaScriptExample to catalog app that demonstrates basic usage of JavaScript.
    • Added
      Adds support for additional actions for widget annotations and form fields. Additional actions are executed for predefined trigger events like clicking on the annotation, selecting/deselecting annotations, calculating, formatting or validating form fields. (#15841)
      • Added
        Adds setAdditionalAction(), getAdditionalAction() and getAdditionalActions() for setting and getting additional actions for WidgetAnnotation.
      • Added
        Adds setAdditionalAction() to FormElementConfiguration.Builder to configure additional actions for created form elements.
    • Added
      Adds consumer Proguard rules needed for RxJava to properly function on API 19. (#15829)
    • Added
      Adds localized strings for unnamed image document title. (#15515)
    • Added
      Adds support for automatically resizing FreeTextAnnotations based on their text using FreeTextAnnotationUtils#resizeToFitText. (#12998)
    • Added
      Adds support for setting text justification, and callouts to FreeTextAnnotations. (#9609)
      • Added
        Adds setIntent, setTextInsets, setCallOutPoints, setLineEnd, and setTextJustification to FreeTextAnnotation.
    • Changed
      Improves image document saving performance. (#15540)
    • Added
      Added the ability to print image documents. (#15375)
    • Fixed
      Fixes a rare issue adding page references with the document editor. (#14705)
    • Fixed
      Fixes an issue where a new digital signature could not be created in some documents. (#15683, #15702)
    • Fixed
      Fixes an issue where bookmarks may not be saved correctly in certain documents. (#15826)
    • Fixed
      Fixes background being rendered incorrectly for rotated FreeTextAnnotations. (#15639)

    4.6.1 14 Jun 2018

    UI

    • Added
      Adds enableAnnotationRotation and disableAnnotationRotation configuration options to allow changing visibility of rotation functionality. (#15510)
    • Added
      Adds configuration parameters for enabling/disabling sharing action in the note editor. (#15620)
      • Added
        Adds PdfConfiguration.Builder#sharingNoteEditorContentEnabled(boolean)
      • Added
        Adds PdfActivityConfiguration.Builder#sharingNoteEditorContentEnabled(boolean)
    • Added
      Adds AnnotationReplyFeatures to provide more granular control of the annotation reply UI. (#14883)
      • Removed
        Deprecates PdfConfiguration#isAnnotationReplyFeatureEnabled and PdfConfiguration.Builder#annotationReplyFeatureEnabled, use PdfConfiguration#getAnnotationReplyFeatures and PdfConfiguration.Builder#annotationReplyFeatures instead.
    • Changed
      Allows opening embedded PDF files if the application integrating PSPDFKit defines view PDF action. (#15611)
    • Fixed
      Fixes a potential crash that could occur after rotating device while a video was playing. (#14789)
    • Fixed
      Fixes an issue where annotations were not visible when being created inside onDocumentLoaded(). (#13255)
    • Fixed
      Fixes an issue where long-pressing on the annotation selection handle triggered document long-press event. (#15341)
    • Fixed
      Fixes retention of PdfActivity inside PdfDocument which could lead to memory leakage and OOMs. (#15518)

    Model

    • API
      Change return type of Signature#toInkAnnotation() overrides from Annotation to InkAnnotation. (#15509)
    • Added
      Adds getExportValue() to RadioButtonFormElement. (#15535)
    • Changed
      Improves SignaturePickerDialog APIs. (#15513)
      • Added
        Adds method SignaturePickerDialog.restore() for passing over a callback to the dialog after a configuration change happened.
      • Added
        Adds SignaturePickerDialogIntegrationExample and SignaturePickerDialogIntegrationKotlinExample to Catalog app which show how to manually integrate the SignaturePickerDialog into an activity.
      • API
        SignaturePickerDialog.show() will now throw an IllegalArgumentException if null is passed as argument for @NonNull parameters.
    • Changed
      Image quality for JPEG now used in Image Documents. (#15499)
    • Changed
      Improves PdfDocument Javadoc for saving methods with DocumentSaveOptions parameter. (#15514)
    • Fixed
      Fixes an issue where closing documents with smart form tab orders could cause a crash. (#15580)
    • Fixed
      Fixes an issue where a form field could be rendered more times than necessary. (#15528)
    • Fixed
      Fixes an issue with ImageDocumentExample where recent changes to the image document were not properly loaded when reopening the example. (#15507)
    • Fixed
      Fixes an issue with image documents where annotation changes in certain conditions were not properly saved. (#15604)
    • Fixed
      Fixes growing of image document file size after save. (#15479)

    Instant

    • Added
      Adds support for annotation notes. (#15573)

    4.6.0 31 May 2018

    See the announcement post(opens in a new tab).

    UI

    • Added
      Adds support 360° rotation of stamps and free text annotations. (#15325)
      • Added
        Adds setRotation, getRotation, and adjustBoundsForRotation to FreeTextAnnotation and StampAnnotation.
      • Added
        Adds rotation handle to selected annotations.
    • Added
      Adds PdfDocument#setRotationOffset to allow the user to temporarily set a custom rotation for the page. (#9400)
      • Added
        Adds RotatePageExample to the Catalog app.
    • Added
      Adds an ability to share image annotations. (#15115)
      • Added
        Adds DocumentSharingManager#shareBitmap() as helper for sharing Bitmaps using the Android sharing framework.
      • Added
        Adds "Share" action to the annotation editing toolbar of image annotations.
    • Added
      Adds integration of image stamp annotations with system clipboard. (#14875)
      • Changed
        Bitmaps in system clipboard can now be pasted as image stamp annotations.
      • Changed
        Puts the bitmap of copied image stamp annotation into system clipboard for pasting them to other apps.
    • Added
      Adds SignaturePickerOrientation to allow users to choose the screen orientation SignaturePickerFragment should use. (#13896)
    • Added
      Adds setEnableNoteAnnotationNoZoomHandling() to PdfActivityConfiguration.Builder and PdfConfiguration.Builder that can be used to disable displaying note annotations as if they had no-zoom flag enabled. (#13131)
    • Fixed
      Fixes a StackOverflowError caused when displaying a UnitSelectionEditText having the default value larger than the maximum allowed value. (#15082)
    • Fixed
      Fixes a potential crash that could occur when activity handled its orientation changes. (#15164)
    • Fixed
      Fixes an issue where annotation rendering was not updated after calling PdfFragment#notifyAnnotationHasChanged() when annotation overlay was enabled. (#15047)
    • Fixed
      Fixes an issue where annotations could disappear when switching to eraser. (#15157)
    • Fixed
      Fixes an issue where creation of markup annotations stopped working after undo. (#15172)
    • Fixed
      Fixes an issue where selected annotation was reselected when calling PdfFragment#setSelectedAnnotation(). (#15291)

    Model

    • API
      The Annotation#getName() property is now automatically initialized with a unique type 4 UUID for each newly created annotation. (#15419)
    • Added
      Adds support for embedded files and file annotations. (#9613)
      • Added
        Adds EmbeddedFile that represents a single embedded file.
      • Added
        Adds FileAnnotation that represents an annotation holding an embedded file.
      • Added
        Adds EmbeddedFilesProvider for managing embedded files of a document. It can be retrieved by calling PSPDFDocument#getEmbeddedFilesProvider().
      • Added
        Adds UI support for adding notes to file annotations and for sharing their file contents.
    • Added
      Adds support for image document loading. (#14270)
      • Added
        Adds ImageDocument interface.
      • Added
        Adds ImageDocumentLoader helper class for loading an ImageDocument from a DocumentSource.
      • Added
        Adds PdfActivity#showImage() for opening a PdfActivity for a passed image document.
      • Added
        Adds PdfFragment#newImageInstance(Uri, PdfConfiguration) and PdfFragment#newImageInstance(DataProvider, PdfConfiguration) for creating a new fragment that displays an image document.
      • Added
        Adds ImageDocumentExample in the catalog app that shows how to open an image document from the assets folder.
    • Added
      Adds PageTemplate which can be used with NewPageDialog to provide additional templates when adding new pages to documents. (#9842)
    • Added
      Adds ability to define custom page patterns. Changes PagePattern from enum to final class. (#14974)
    • Added
      Adds canvas support to PdfProcessor. (#14664)
      • Added
        Adds NewPage#fromCanvas() for creating new pages with content drawn via canvas API.
      • Added
        Adds NewPage.Builder.withPageItem(PageCanvas) for drawing content on pages.
      • Added
        Adds PdfProcessorTask#addCanvasDrawingToPage() that can be used to merge canvas drawing with existing pages.
      • Added
        Adds new Catalog app example DocumentFromCanvasExample.
    • Added
      Adds support for annotation blending modes. These can be set using Annotation#setBlendMode() (#15416)
    • Added
      Adds DefaultBookmarkAdapter and DefaultOutlineViewListener to make integration of PdfOutlineView with PdfFragment easier. (#14370)
    • Added
      Adds SharingOptionsProvider which can be set using PdfActivity#setSharingOptionsProvider. This allows you to provide ShareOptions without displaying a DocumentSharingDialog. (#12699)
    • Added
      Adds PdfOutlineView integration with PdfFragment example to CustomFragmentActivity. (#15360)
    • Added
      Adds pageIndex parameter to PagePdf constructors allowing creation of PagePdf objects referencing any page in the document instead of the first page. (#15266)
    • Added
      Adds async version of AnnotationProvider#createAnnotationFromInstantJson(). (#15163)
    • Added
      Adds factory methods fromDocument(), newPage() and empty() to PdfProcessorTask and deprecates its constructors. (#14986)
    • Added
      Adds support for GoToEmbeddedAction that allows jumping to PDF file that is embedded in the document. (#14596)
    • Added
      Adds CopyToClipboardActivity to catalog that shows how to implement "Copy to clipboard" share action for shared images. (#15109)
    • Added
      Adds DocumentSharingProviderProcessor that provides methods for preparing complex data for sharing via DocumentSharingProvider. (#15019)
      • Added
        Add methods for preparing EmbeddedFile, Bitmap and DataProvider data for sharing.
      • Removed
        Deprecates DocumentSharingProcessor, use DocumentSharingProviderProcessor#prepareDocumentForSharing() instead.
      • Removed
        Deprecates DocumentSharingProvider#deleteTemporaryFile(), use DocumentSharingProvider#deleteFile() instead.
    • Added
      Adds getHighlightedTextBlocks() to text markup annotations that returns list of TextBlock for markup annotations. (#12989)
    • Added
      Adds annotation name to Instant JSON. Also renames pspdfkit/file name to filename to prevent collisions. (#14856)
    • Added
      Adds better detection for standard stamp subjects for Instant JSON. (#14919)
    • Changed
      Improves XFDF output by omiting opacity if set to the default (1.0). (#15354)
    • Changed
      Improves compatibility of note annotations with certain 3rd-party viewers such as Apple Preview. (#14953)
    • Changed
      Improves consumer Proguard rules. (#14652)
    • Fixed
      Fixes a bug where annotation replies are not removed from cache when the base annotation is being deleted. (#14923)
    • Fixed
      Fixes a problem where the text in unsigned form field overlays may be cut off. (#14922)
    • Fixed
      Fixes an issue where setInReplyTo() did not work when the target annotation was not attached to a document. (#14863)
    • Fixed
      Fixes an issue where annotation returned from AnnotationProvider#createAnnotationFromInstantJson() was not attached to page. (#15154)
    • Fixed
      Fixes an issue where some action destinations may not work properly. (#14901)
    • Fixed
      Fixes an issue where using FormElementConfiguration children while integrating in Kotlin led to IllegalAccessError. Adds FormCreationKotlinExample to showcase form creation using Kotlin. (#15470)
    • Fixed
      Fixes security vulnerability CVE-2018-9127 in Botan, where wildcard certificates could be accepted for invalid hostnames. (#15374)
    • Fixed
      Fixes the grouped menu items being selectable in annotation editing, document editing and text selection toolbars. (#14853)
    • Fixed
      Fixes an issue where glyph frames were larger than expected due to unexpected values in their fonts. (#14169)
    • Fixed
      Fixes incorrect calculation of glyph frames when the page matrix is not identity. (#13668)

    Instant

    • Added
      Adds support for Instant Layers. (#14007)
      • Removed
        Deprecates InstantClient#openDocument/Async(documentId, authToken), use InstantClient#openDocument/Async(jwt) instead.
      • Removed
        Deprecates InstantClient#getInstantDocumentDescriptor(), use InstantClient#getInstantDocumentDescriptorForJwt() instead.
      • Removed
        Deprecates InstantDocumentDescriptor#getAuthenticationToken(), use InstantDocumentDescriptor#getJwt() instead.
      • Removed
        Deprecates InstantPdfDocument#updateAuthenticationToken/Async(), use InstantPdfDocument#reauthenticateWithJwt/Async() instead.
      • Removed
        Deprecates InstantPdfActivityIntentBuilder#fromInstantDocument(), InstantPdfActivity#showInstantDocument() and InstantPdfFragment#newInstance() with documentId parameter, use overloaded methods without this parameter.
      • Added
        Adds InstantPdfActivity#setDocument() that allows loading of different Instant document in an existing activity.
      • Added
        Adds InstantClient#getLocalDocumentDescriptors() for retrieving all locally cached document descriptors.
      • Added
        Adds InstantClient#removeLocalStorageForDocument() for removing local storage for all document layers.
      • Changed
        Public methods in Instant API now throw an exception when required parameters are null.
    • Fixed
      Fixes an issue where the annotations of a document would seem to be missing until the first sync. (#15338)

    4.5.1 26 Apr 2018

    UI

    • Added
      Adds pspdf__mainToolbarTextColor theme attribute that can be used to configure text color of the main toolbar. (#14569)
    • Changed
      Improves NoteEditorFragment changing the status bar color to the annotation color when UI is fullscreen. (#14880)
    • Changed
      Note editor dialog size is increased on tablets. (#14866)
    • Fixed
      Fixes an issue where overlaid annotations were not displayed together with page rendering. (#14912)
    • Fixed
      Fixes signature list selection color and document editor page selection icon not being customizable using themes. (#14968)
    • Fixed
      Fixes an issue where replies editor was losing focus after rotations and keeping soft-keyboard visible. (#14873)

    4.5.0 11 Apr 2018

    UI

    • Added
      Adds new note editor UI. (#14505)
      • Added
        Adds support for adding/editing annotation replies.
      • Added
        Adds support for setting the review state on annotation note content.
    • Added
      Adds annotation opacity slider to annotation property inspector. (#13870)
    • Fixed
      Fixes a potential crash that could occur when editing annotations on pages having a large number of annotations. (#14366)
    • Fixed
      Fixes an issue where free-text annotations were marked modified after being selected. (#14159)
    • Fixed
      Fixes an issue with fit to screen mode always rounding down when calculating page size. (#14653)
    • Fixed
      Fixes the grouped menu items being selectable in annotation editing, document editing and text selection toolbars. (#14853)

    Model

    • Added
      Adds support for annotation replies. (#13309)
      • Added
        Adds AnnotationProvider#getFlattenedAnnotationReplies[Async]() for getting replies to a given annotation (nested replies are added to the list).
      • Added
        Adds AnnotationProvider#getAnnotationReplies[Async]() for getting replies to a given annotation (only contains first-level replies).
      • Added
        Adds AuthorState class, representing a state that can be set on the annotation content and replies.
      • Added
        Adds AnnotationStateChange that holds the data of the state change performed on the annotation.
      • Added
        Adds AnnotationReviewSummary that carries the summary of currently set states and authors that have set each of them.
      • Added
        Adds AnnotationProvider#getReviewHistory[Async]() for retrieving the history of reviews statuses as they were changed.
      • Added
        Adds AnnotationProvider#getReviewSummary[Async]() for retrieving the summary of currently set states and authors that have set each of them.
      • Added
        Adds AnnotationProvider#appendAnnotationState[Async]() that allows you to record new author state changes on the document.
      • Added
        Adds annotationReplyFeatureEnabled() to PdfConfiguration and PdfActivityConfiguration for enabling/disabling annotation replies in UI.
      • Added
        Adds Annotation#setInReplyTo(Annotation annotation) and Annotation#getInReplyTo() for making annotation a reply.
    • Added
      Adds FormElement#setPreviousElement() and FormElement#setNextElement() for setting previous and next form element. (#14523)
      • Added
        Adds FormProvider#addFormElementToPageAsync() and FormProvider#addFormElementsToPageAsync() that programmatically create and insert a form field into the document, asynchronously.
    • Added
      Adds support for canceling in progress page renders. (#14217)
    • Changed
      Filters out invalid characters from a page's text. (#14516)
    • Fixed
      Fixes Nutrient#initialize resetting the ApplicationPolicy on each call. (#14229)
    • Fixed
      Fixes a crash when trying to paste text into a document without having the annotation feature licensed. (#14709)
    • Fixed
      Fixes a potential crash when saving a document. (#14082)
    • Fixed
      Fixes a potential issue when removing annotations. (#14381)
    • Fixed
      Fixes an issue where a flattened document shows a blank page in Preview. (#13708)
    • Fixed
      Fixes an issue where image data wasn't properly removed after rewriting the PDF. (#14708)
    • Fixed
      Fixes an issue where where OnAnnotationUpdatedListener#onAnnotationUpdated() was being called multiple times even when annotation was changed only once. (#14133)
    • Fixed
      Fixes faulty recycling of framework internal objects that could lead to memory issues. (#14790)
    • Fixed
      Fixes forms on rotated pages not being rendered correctly. (#14422)
    • Fixed
      Fixes framework being obfuscated twice when using consumer Proguard rules. (#14601)
    • Fixed
      Fixes potential deadlocks when opening a lot of documents. (#14503)
    • Fixed
      Fixes an issue where author name was not set on created image annotations. (#14743)

    Instant

    • Changed
      Enable multidex support in PSPDFKit Instant example. (#14757)

    4.4.1 16 Mar 2018

    UI

    • Changed
      Annotations overlay is now enabled by default on high-end devices. (#13653)
      • Changed
        If you wish to disable this behavior, pass an empty set to PdfFragment#setOverlaidAnnotationTypes().
    • Added
      Adds PdfFragment#getOverlaidAnnotationTypes() and PdfFragment#getOverlaidAnnotations to retrieve set of annotation types or annotations that are enabled for overlay mode rendering. (#14457)
    • Fixed
      Fixes a bug that could cause a ANR when quickly detaching a PdfFragment after attaching it to an activity. (#14472)
    • Fixed
      Fixes status bar covering the screen when dragging toolbar in immersive mode. (#14399)

    Model

    • Changed
      PdfDocument#openDocument() methods will now throw wrapped exceptions of DataProvider to make error debugging simpler. (#14493)
    • Fixed
      Fixes an issue where opening large documents with marked content used very large amounts of memory. (#14415)
    • Fixed
      Fixes PdfDocument#invalidateCacheForPage doing nothing. (#14211)
    • Fixed
      Fixes an issue where OnAnnotationUpdatedListener#onAnnotationUpdated() was being called 2 times after undoing annotation changes. (#14533)
    • Fixed
      Fixes an issue where annotation returned to page after undoing its deletion had changed object number. (#14532)
    • Fixed
      Fixes an issue where custom text for ComboBoxFormElement was not shown when set. (#14461)
      • Added
        Adds support for selecting multiple options for ListBoxFormElement and exposing convenient configuration method Builder.ListBoxFormConfiguration#setMultiSelectionEnabled
      • API
        Renames Builder.ComboBoxFormConfiguration#setSelectedIndexes to Builder.ComboBoxFormConfiguration#setSelectedIndexes because ComboBoxFormElement supports only single-selection.
      • Added
        Adds ComboBoxFormConfiguration and ListBoxConfiguration examples to FormCreationExample in Catalog app.
    • Fixed
      Fixes issue where pdfId was required when importing a Instant JSON document. (#14494)

    4.4.0 9 Mar 2018

    See the announcement post(opens in a new tab).

    Migration guide(opens in a new tab).

    UI

    • API
      Adds support for rendering annotations in overlay mode. (#11835)
      • Added
        Adds PdfFragment#setOverlaidAnnotationTypes() to configure set of annotation types that should be extracted to annotation overlay.
      • Added
        Adds PdfFragment#setOverlaidAnnotations() to configure annotations that should be extracted to annotation overlay.
    • Fixed
      Fixes a potential crash that occurred when selecting large annotations when page was zoomed. (#14062)
    • Fixed
      Fixes an issue where Annotations that were added using AnnotationProvider#createAnnotationFromInstantJson() were not editable. (#14340)
      • API
        AnnotationProvider#createAnnotationFromInstantJson() will now throw when license does not support annotation editing.
      • Changed
        AnnotationProvider#createAnnotationFromInstantJson() is now marked @NonNull instead of @Nullable.
      • Changed
        AnnotationProvider#createAnnotationFromInstantJson() will now call OnAnnotationUpdatedListener#onAnnotationCreated()
    • Fixed
      Fixes an issue where dropdown arrow on combo boxes are not seen when box has a small width. (#14326)
    • Fixed
      Fixes an issue where dropdown arrows are still seen on combo boxes when document is flattened. (#9539)
    • Fixed
      Fixes an issue where toolbar was left with an empty space after hiding menu item. (#13180)
    • Fixed
      Fixes a potential crash that could occur when changing text of selected free-text annotation from background thread. (#14441)
    • Fixed
      Fixes an issue where annotation editing toolbar was missing grouping rule for custom button used in the AnnotationFlagsActivity. (#14139)

    Model

    • API
      Adds support for programmatically creating forms using FormProvider#addFormElementToPage. (#13777)
      • Added
        Adds CheckBoxFormConfiguration and CheckBoxFormConfiguration.Builder for creation and configuration of CheckBoxFormElement.
      • Added
        Adds ComboBoxFormConfiguration and ComboBoxFormConfiguration.Builder for creation and configuration of ComboBoxFormElement.
      • Added
        Adds ListBoxFormConfiguration and ListBoxFormConfiguration.Builder for creation and configuration of ListBoxFormElement.
      • Added
        Adds PushButtonFormConfiguration and PushButtonFormConfiguration.Builder for creation and configuration of PushButtonFormElement.
      • Added
        Adds RadioButtonFormConfiguration and RadioButtonFormConfiguration.Builder for creation and configuration of RadioButtonFormElement.
      • Added
        Adds SignatureFormConfiguration and SignatureFormConfiguration.Builder for creation and configuration of SignatureFormElement.
      • Added
        Adds TextFormConfiguration and TextFormConfiguration.Builder for creation and configuration of TextFormElement.
    • API
      Cleans up nullability annotations on our Annotation API. (#13956)
      • Changed
        Annotation methods marked with @NotNull will no longer ignore illegally passed null values but will instead throw an IllegalArgumentException.
      • Changed
        InkAnnotation#getLines() and InkAnnotation#setLines() are now marked as @NonNull.
      • Changed
        PolygonAnnotation#getPoints() and PolylineAnnotation#getPoints() now return non-null values.
      • Changed
        TextMarkupAnnotation#setRects() and TextMarkupAnnotation#getRects() are now marked as @NonNull.
    • API
      Rects in TextBlock and TextSelection now represent the font size more closely. (#13803)
    • API
      PdfProcessor now throws an exception when the output file points to the original input file. (#13876)
    • API
      StampAnnotation#setBitmap now sets bitmap when used on standard stamps and StampAnnotation#setSubject now sets subject on bitmap stamps. These methods previously logged error and returned without performing requested action. (#13920)
    • Added
      Adds SearchOptions#priorityPages(ArrayList<Range> priorityPages, Boolean searchOnlyInPriorityPages), which allows you to restrict the search to a particular page range by setting searchOnlyInPriorityPages to true. (#12772)
    • Added
      Adds more specific Proguard rules to keep API related code and examples from obfuscation. (#14360)
    • Added
      Adds support for automatically updating the last modified date when changing annotations. (#14000)
    • Changed
      Improves digital signing APIs to support external signature providers (such as HSMs). (#13932)
      • Added
        Adds SignatureProvider interface for implementing custom signature providers.
      • Added
        Adds PrivateKeySignatureProvider implementation for signing PDF data using a PrivateKeyEntry.
      • Added
        Adds abstract method Signer#prepareSigningParameters() which has to be implemented by subclasses to return a SignatureProvider instance.
      • Added
        Adds EncryptionAlgorithm enum and HashAlgorithm enum of various encryption and hash algorithms respectively that are supported when signing PDFs.
      • Added
        Adds InteractiveSigner interface, which can be implemented by a Signer to allow digital signing flows that require to retrieve a password from the user.
      • Added
        Adds the abstract PrivateKeySigner which is a base class for any signer that can sign PDFs using a PrivateKeyEntry.
      • API
        Signer#getDisplayName() is now final. Use the constructor to provide a display name for the signer instead.
      • Removed
        Deprecates Signer#signFormFieldAsync() and Signer#signFormField() methods taking a PrivateKeyEntry as argument. Check out the 4.4 migration guide for alternative APIs.
      • Removed
        Deprecates MemorySigner#signFormField() and MemorySigner#signFormFieldAsync(). Use the equivalent methods on the Signer base class.
    • Changed
      Methods in PSPDFKit now throw an exception when required parameters are null. (#14080)
    • Fixed
      Fixes FTS5 search on SQLite versions >= 3.20.0. (#14036)
    • Fixed
      Fixes an issue where parts of com.pspdfkit.undo were obfuscated. (#14464)
    • Fixed
      Fixes an issue saving a document with invalid PDF syntax (empty dictionary key). (#14009)
    • Fixed
      Fixes an issue where null values set to @Nullable Annotation properties did not clear the property value in the document. (#13900)
    • Fixed
      Fixes an issue where action destinations would not be found if sorted incorrectly. (#14412)
    • Fixed
      Fixes an issue where some form fields with custom FQNs may not be signed correctly. (#14309)
    • Fixed
      Fixes crashes on document unload when FormTabOrderCalculator is being processed. (#13976)
    • Fixed
      Fixes document corruption bug that could happen when documents with header were incrementally saved. (#14249)
    • Fixed
      Fixes potential crash when saving files with irregular outlines. (#14116)
    • Fixed
      Fixes document corruption issue when document has a header and is incrementally saved. (#14249)

    Example

    • Added
      Adds the new example FormCreationExample to Catalog app that demonstrates form creation starting from an empty PDF document. (#14428)

    Instant

    • Added
      Adds createdAt, updatedAt and creatorName to Instant JSON. (#14443)

    4.3.1 1 Feb 2018

    • Changed
      Updated dependencies:
      • Changed
        Kotlin 1.2.21 / org.jetbrains.kotlin:kotlin-stdlib:1.2.21
    • Added
      Adds a Catalog example on how to use form editing bar and inspector when using PdfFragment with custom activity. (#13750)
    • Changed
      Improves undo/redo by adding support for undoing changes made to Polyline and Polygon annotations. (#13963)
    • Changed
      Annotations with HIDDEN or NO_VIEW flag are now displayed in the annotation list by default. (#13619)
    • Changed
      Update Kotlin to 1.2.21. (#13995)
      • Added
        Adds Kotlin extensions to Catalog app. See PSPDFKitKotlin.kt.
    • Changed
      Updates localized strings, fixing some minor issues. (#13155)
    • Fixed
      Fixes a crash caused by NullPointerException in the internal AnnotationClipboard class. (#14037)
    • Fixed
      Fixes an assertion when a non-specified named action was deserialized via Instant JSON. (#13804)
    • Fixed
      Fixes an issue in dropdown list forms where searching for an element was allowing newlines. (#13986)
    • Fixed
      Fixes an issue on Android API 21+ were ContextualToolbar instances inside the PdfActivity would sometimes use a wrong elevation, resulting in them being hidden behind the primary toolbar. (#13764)
    • Fixed
      Fixes an issue where PdfDocument#saveIfModified did not clear dirty state of bookmark provider. (#14026)
    • Fixed
      Fixes an issue where certain free-text annotations were drawn as empty after selection. (#13994)
    • Fixed
      Fixes an issue where drawn ink annotations disappeared after leaving the annotation creation mode. (#14035)
    • Fixed
      Fixes an issue where saving a document to path cleared the dirty state from document metadata and form provider. (#13751)
    • Fixed
      Fixes an issue where stamp annotations with custom AP streams lost transparency and subject after copying. (#13847)
    • Fixed
      Fixes an issue where the next form element after a drop-down list was selected. (#13806) Adds new configuration options PdfConfiguration.Builder#enableAutoSelectNextFormElement() and PdfConfiguration.Builder#disableAutoSelectNextFormElement()
    • Fixed
      Fixes an issue where transparent color was not properly exported to XFDF. (#13016)
    • Fixed
      Fixes a crash caused by device not having the activity to handle the storage access when trying to save the document. (#14039)
    • Fixed
      Fixes a crash invoked by pressing RETURN when adding custom form option. (#14001)

    Instant

    • Fixed
      Fixes an issue where InstantAnnotationProvider#hasUnsavedChanges() reported wrong state. This method now returns true when there are unsynced annotations changes. (#13988)
    • Fixed
      Fixes an issue where thumbnail bar wasn't refreshed after syncing annotations with Instant. (#13988)

    4.3.0 24 Jan 2018

    See the announcement post(opens in a new tab).

    • Changed
      Updated dependencies:
      • Changed
        Kotlin 1.2.20 / org.jetbrains.kotlin:kotlin-stdlib:1.2.20
      • Changed
        Device Year Class 2.0.0 / com.facebook.device.yearclass:yearclass:2.0.0
    • Added
      Adds support for annotation undo and redo. (#5626)
      • Added
        Adds UndoManager that manages a stack of edits on a PdfFragment and provides methods for navigating back and forth in the edit history.
      • Added
        Adds PdfFragment#getUndoManager() for retrieving the undo manager of the fragment.
      • Added
        Adds OnUndoHistoryChangeListener for listening to changes to the edit history of an undo manager.
      • Added
        Adds undoEnabled() and redoEnabled() to PdfConfiguration for selectively configuring whether undo and redo should be available to the user.
      • Added
        Adds style attributes pspdf__undoIcon and pspdf__redoIcon to the pspdf__AnnotationCreationToolbarIcons styleable, to change the look of the undo and redo buttons.
    • Added
      Adds support for copying and pasting annotations. (#5556)
      • Added
        Adds enableCopyPaste() and disableCopyPaste() to PdfConfiguration.
      • Added
        Adds setEnabledCopyPasteFeatures() to PdfConfiguration, this allows more granular control over how copy/paste works.
      • Added
        Adds system clipboard integration for copying text from any app into a PDF document and for extracting text from annotations.
      • Added
        Adds ANNOTATION_COPY_PASTE_SYSTEM_INTEGRATION application policy to allow controlling the system clipboard integration.
      • Added
        Adds handling for common shortcut keys Ctrl+C, Ctrl+X, and Ctrl+V for copying, cutting, and pasting annotations using a keyboard.
      • Added
        Adds copy and cut actions to the AnnotationEditingToolbar. To change the icons you can set the pspdf__copyIcon and pspdf__cutIcon attributes on the pspdf__AnnotationEditingToolbarIcons of your theme.
      • Added
        Adds long-press gesture to pages, which will now paste an annotation that was previously copied to the clipboard.
    • Added
      Adds support for visual annotation contents hint. (#12550)
      • Added
        Adds class AnnotationNoteHinter that extends PdfDrawableProvider for drawing visual hints for supported annotation types.
      • Added
        Adds setAnnotationNoteHintingEnabled() to PdfActivityConfiguration.Builder to control whether annotation contents hints are enabled.
      • Added
        Adds new CustomAnnotationNoteHinterProviderExample in catalog with an example on how to implement a custom annotation note hinter drawable provider.
    • Added
      Adds alpha rendering support for annotations. A call to Annotation#setAlpha() will now produce the expected transparency effects for rendered annotations. (#9618)
    • Added
      Adds a smart low resolution render strategy using the Device Year Class library(opens in a new tab). (#13355)
      • Added
        Adds PdfConfiguration.Builder#setFixedLowResRenderPixelCount() and PdfConfiguration#getFixedLowResRenderPixelCount() to set and retrieve fixed low resolution render pixel count without using an optimized value.
    • Added
      Adds AnnotationProperty#ANNOTATION_NOTE for controlling whether annotation notes are enabled for specific annotation types. If AnnotationDefaultsProvider#getSupportedProperties() for a given annotation type includes ANNOTATION_NOTE, annotation notes are enabled for the type.(#13560)
    • Added
      Adds getOverlappingInkSignature() to SignatureFormElement that can be used to retrieve InkAnnotations that are overlapping signature fields. (#10675)
    • Added
      Adds Annotation#setSubject() to set the subject property of an annotation. (#13766)
      • Changed
        Calling setSubject() on StampAnnotation instances with custom bitmaps is not supported, and will throw an exception.
    • Added
      Adds AnnotationProvider#hasUnsavedChanges() to check if there are changes to annotations that need to be saved to disk. (#13322)
      • Removed
        Deprecates AnnotationProvider#isDirty(), AnnotationProvider#clearDirty(), and AnnotationProvider#prepareForSave().
    • Added
      Adds form field values to Instant JSON. (#13335)
    • Added
      Adds support for PEM-encoded certificates in PKCS#7 files. (#13698)
    • Added
      Adds support for creating empty FreeTextAnnotations. (#13781)
    • Added
      Adds Kotlin as transitive dependency. (#5638)
      • Added
        Adds a new KotlinExample which showcases how to use PSPDFKit with the Kotlin programming language.
    • Changed
      Improves the customizability of the navigation buttons declaring pspdf__navigationHistoryIconColor styleable. These allow you to change the chevrons color in the navigation buttons. (#13717)
    • Changed
      "Sign here" badge is now hidden once an ink signature is drawn on top of the signature field. (#13456)
    • Changed
      SignatureSignerDialog can now sign documents without saving them first. This can be used to sign documents from read-only sources. (#13213)
      • Added
        Adds SignatureSignerDialog.Options which allows you to specify the parameters for the SignatureSignerDialog.
      • Removed
        Deprecates SignatureSignerDialog#show(FragmentManager, PdfDocument, SignatureFormField, Signer, BiometricSignatureData, DocumentSigningListener). Use SignatureSignerDialog#show(FragmentManager, Options, DocumentSigningListener)} instead.
    • Changed
      Improves minimum size calculation of annotations. (#13313)
      • Changed
        The new default minimum size is 16x16pt with a few exceptions.
      • Changed
        The minimum size of PolygonAnnotation, PolylineAnnotation and LineAnnotation remain unchanged.
      • Changed
        The minimum size of callout annotations was changed from 48x32pt to 24x16pt.
    • Changed
      Improves the detection of digital signatures in third-party PDF readers. (#13593)
    • Changed
      Improves the accuracy of the information about the digital signature validation process by demoting some non-critical errors to warnings. (#13570)
    • Changed
      Improves the stability of the digital signing process with some certificate authorities with missing fields. (#13694)
    • API
      Fixes wrong from bound of @IntRange annotation on PdfActivity#getSiblingPageIndex() from -1 to 0. (#13713)
    • API
      InstantClient#create() now throws an InstantException instead of crashing when the client cannot be created. (#13365)
    • API
      InstantClient#getInstantDocumentDescriptor, InstantClient#openDocument, and InstantClient#openDocumentAsync now throw an InstantException instead of crashing when the document data on disk cannot be accessed. (#13365)
    • API
      Improves the customizability of the inline search view. (#13517)
      • Added
        Adds pspdf__inputFieldTextAppearance and pspdf__resultTextAppearance to pspdf__SearchViewInline styleable. These allow you to change the text appearance of the input field and the result count view respectively.
      • Added
        Adds pspdf__throbberColor to pspdf__SearchViewInline styleable. This allows you to change the color of the loading throbber.
      • Removed
        Removes pspdf__textColor, pspdf__hintTextColor, and pspdf__navigationTextColor from pspdf__SearchViewInline styleable. These are replaced by setting the text appearance.
    • API
      Hide several undocumented methods on Annotation which were meant for framework internal use only. (#13805)
    • Fixed
      Fixes polygon fill and stroke overlap when drawing with alpha. (#13868)
    • Fixed
      Fixes displaying multiple annotations instead of one for eraser mode. (#13867)
    • Fixed
      Fixes missed search terms which span over a newline without a hyphen. (#11862)
    • Fixed
      Fixes form highlights, required field border, list box selection colors when in grayscale mode (#12996)
    • Fixed
      Fixes an issue where default color for highlight annotations were not rendered properly. (#12938)
    • Fixed
      Fixes an issue where filtered types were being added to the annotation list on the first document opening. (#13378)
    • Fixed
      Fixes an issue where getPageText() and getPageTextRects() on PdfDocument would not work properly for vertical or rotated text. (#13423)
    • Fixed
      Fixes an issue with stamp annotations not being rendered when using XFDF. (#13330)
    • Fixed
      Fixes specific issue where previous xref has the same object number as a newly created object. (#13183)
    • Fixed
      Fixes an issue where some texts in signature form fields may not be translated. (#13441)
    • Fixed
      Fixes an issue where annotations could not be resized after being stretched to the maximum height of the page. (#9977)
    • Fixed
      Fixed an issue where eraser was not applied when affecting multiple annotations. (#12946)
    • Fixed
      Fixes an issue where the SignatureSignerDialog wasn't restored on configuration change. (#13213)
    • Fixed
      Fixes an issue where image stamp annotations appeared scaled up. (#13703)
    • Fixed
      Fixes an issue where new page dialog used incorrect text color in the dark theme. (#13590)
    • Fixed
      Fixes an issue where note editor crashed on certain devices due to missing resource. (#13585)
    • Fixed
      Fixes an issue where a signed document may show a warning if inspected with a PDF lint tool. (#13719)
    • Fixed
      Fixes an issue where OnContextualToolbarLifecycleListener#onPrepareContextualToolbar() was not called when changing active annotation creation/editing mode - i.e. when changing selected tool in annotation creation mode and when reselecting annotations in annotation editing mode. (#13558)
      • Added
        Adds protected method notifyToolbarChanged() to ContextualToolbar that should called by specific toolbar implementation when toolbar contents are changed.
      • Added
        Adds onContextualToolbarChanged() to ToolbarCoordinatorLayoutController, that is called when toolbar menu items have changed.
    • Fixed
      Fixes opening of unsupported documents with page labels (#13509)
    • Fixed
      Fixes an issue where some list boxes do not display all the possible options. (#13454)
    • Fixed
      Fixes highlight markups on some specficic documents (#13768)
    • Fixed
      Fixes an issue where empty free-text annotations were not rendered properly. (#13782)
    • Fixed
      Fixes an issue where checkbox values were not updated correctly. (#13843)
    • Fixed
      Fixes an unhandled NullPointerException thrown while erasing ink annotations. (#13715)
    • Fixed
      Fixes an issue where tapping the page quickly after removing an annotation could lead to a crash. (#13885)
    • Fixed
      Fixes an issue where annotations were not rendered properly when global AP stream generator was set. (#13872)
    • Fixed
      Fixes an issue where digitally signing a document multiple times may invalidate previous signatures. (#13582)

    Instant

    • Added
      Adds a catalog example that uses Instant to load documents from our public preview server and demonstrates real-time annotation synchronization. (#13411)
    • Added
      Adds InstantDocumentState describing the possible states that a InstantPdfDocument can be in. (#11324)
      • Added
        Adds onDocumentStateChanged() to InstantDocumentListener, that is called whenever document state changes.
    • Added
      Adds isListeningToServerChanges() and getDelayForSyncingLocalChanges() to InstantPdfDocument. (#13247)
    • API
      Removes list of updated annotations from InstantDocumentListener#onSyncFinished(). (#13532)
    • API
      Methods annotated with @NotNull will no longer ignore illegaly passed null vaues but will instead throw an IllegalArgumentException. (#13571)
    • Fixed
      Fixes an issue where annotations created with default properties were not synced with Instant server. (#13348)
    • Fixed
      Fixes a memory leak related to sync requests. (#13540)
    • Fixed
      Fixes a dangling pointer issue when parsing invalid server responses. (#13557)
    • Fixed
      Fixes an issue where syncing created new annotations instead of updating old ones. (#13407)
    • Fixed
      Fixes an issue where Proguard would fail when applied on an app integrating Instant. (#13620)

    4.2.1 30 Nov 2017

    • Changed
      Improves scrollable thumbnail bar state restoration after rotation changes removing scrolling animation when not needed. (#10459)
    • Fixed
      Fixes an issue when dismissing DownloadProgressFragment, that would fail to perform a detaching after onSaveInstanceState. (#13222)
    • Fixed
      Fixes an issue where annotation list displays all items in the same color. (#13082)
    • Fixed
      Fixes an issue when changing configuration while in DownloadProgressFragment, that would freeze the device. (#13241)
    • Fixed
      Fixes an issue where annotations would be positioned wrongly when created on a page with a transform. (#12492)
    • Fixed
      Fixes an issue where dark styles were not applied correctly in catalog app when in night mode. (#13285)
    • Fixed
      Fixes an issue where documents with links may not point to the correct destination after being exported. (#13341)

    4.2.0 23 Nov 2017

    • Added
      Adds DocumentJsonFormatter for exporting and importing Instant Document JSON to PdfDocument instances. (#11674)
      • Added
        Adds new package com.pspdfkit.document.formatters for document serialization related classes.
      • Removed
        Deprecates com.pspdfkit.annotations.xfdf.XfdfFormatter. Use com.pspdfkit.document.formatters.XfdfFormatter instead.
    • Fixed
      Fixes form highlights, required field border, list box selection colors when in grayscale mode (#12996)
    • Fixed
      Fixes newly added signatures not being selected after rotating from landscape to portrait. (#12941)
    • Fixed
      Fixes an issue where default OnDocumentLongPressListener overrides the one set by the user, if that happened before the fragment creates views. (#13091)
    • Fixed
      Fixes an issue where a BookmarkListener attached to BookmarkProvider would not be notified of changes to a single bookmark item or to the list's sort order. (#9496)
    • Fixed
      Fixes an issue where newly created Annotation instances would internally hold the wrong alpha value, which could lead to problems while serializing/deserializing data or when comparing annotations using equals(). (#13249)
    • Fixed
      Fixes a crash that could happen when rendering the preview for stamp picker items with custom appearance streams. (#13196)

    Instant

    Important: This release requires PSPDFKit Server 2017.8(opens in a new tab) for syncing. If you try to connect to an older version of the server, syncing will fail. For further information, please refer to the migration guides for PSPDFKit Server(opens in a new tab) and PSPDFKit Web(opens in a new tab).

    • API
      #getAnnotationProvider in InstantPdfDocument now returns InstantAnnotationProvider that extends AnnotationProvider with Instant related functionality. (#11682)
    • Added
      Adds #getIdentifierForAnnotation() and #getAnnotationForIdentifier() to InstantAnnotationProvider. These APIs provide a stable, unique identifier for annotations managed by Instant. These identifiers are well suited to, for example, associate arbitrary data from external sources with an annotation. (#11682)

    4.1.0 15 Nov 2017

    See the announcement post(opens in a new tab).

    • Added
      Adds support for biometric signatures. (#12865)
      • Added
        Adds class BiometricSignatureData that can be written to a digital signature.
      • Added
        Adds overloads to Signer#signFormField() and Signer#signFormFieldAsync() that take a BiometricSignatureData and will save it to the document while digitally signing it.
      • Added
        Adds getBiometricData() to the existing Signature class which will return biometric data for a signature.
      • Changed
        Signatures created with the SignaturePickerFragment will now contain biometric data if Digital Signatures are enabled in the used licence.
    • Added
      Adds support for custom appearance streams for annotations. (#12217)
      • Added
        Adds AppearanceStreamGenerator interface that supplies DataProvider for PDF document that should be used as a custom appearance stream for annotations.
      • Added
        Adds Annotation#setAppearanceStreamGenerator() to configure appearance stream generator for annotation and Annotation#getAppearanceStreamGenerator() to retrieve it.
      • Added
        Adds Annotation#generateAppearanceStream() and Annotation#generateAppearanceStreamAsync() to regenerate annotation's appearance stream.
      • Added
        Adds AnnotationProvider#addAppearanceStreamGenerator() to register global appearance stream generator that should be used for all annotations in the document before falling back to annotation's own AppearanceStreamGenerator. Adds AnnotationProvider#removeAppearanceStreamGenerator() to unregister appearance stream generator.
      • Added
        Adds AssetAppearanceStreamGenerator and ContentResolverAppearanceStreamGenerator for generating appearance streams from documents stored in application assets or provided by content providers.
      • Added
        Adds support for defining StampPickerItem with custom appearance stream generator.
      • Changed
        Extends AnnotationCreationExample in catalog with an example on how to programatically create stamp annotations with custom appearance.
      • Changed
        Extends CustomStampAnnotationsExample in catalog with an example on how to define stamp type with custom appearance stream generator. This can be used to create vector based stamps with transparent background.
    • Changed
      Widens Drawable API support. Now available for PdfThumbnailBar,PdfThumbnailGrid and as a part of PageRenderConfiguration. (#7121)
      • Added
        Adds pdfDrawables() call to PageRenderConfiguration constructor.
      • Added
        Adds addDrawableProvider(PdfDrawableProvider) and removeDrawableProvider(PdfDrawableProvider) to PdfThumbnailBar and PdfThumbnailGrid for managing drawable providers.
      • Added
        Adds setDrawableProviders(List<PdfDrawableProvider>) to ThumbnailAdapter, PdfThumbnailBarController and its implementations PdfThumbnailGrid and PdfStaticThumbnailBar.
    • Added
      Adds support for searching through the options of form list and combo boxes. (#12760)
    • Added
      Adds support for transferring document level JavaScript when processing a document. (#12769)
    • Added
      Adds overloads for Annotation#renderToBitmap and Annotation#renderToBitmapAsync accepting AnnotationRenderConfiguration that can be used to control advanced annotation rendering options. (#12916)
    • Added
      Adds the utility method for calculating bounding box from lines - PdfUtils#boundingBoxFromLines(). (#12846)
    • Changed
      Improves usage of quantity strings (plurals). (#13039)
    • Changed
      Improves detection of RichMedia elements and always prefers to show controls for audio-only tracks. (#12986)
    • Changed
      Improves displayed annotation contents for annotation list in PdfOutlineView. (#12553)
    • Changed
      Improves the switch animation from indeterminate circular progress bar to determinate horizontal progress bar when opening documents that have a provided progress. (#11878)
    • Changed
      Improves SignaturePickerFragment on tablets by disabling touch dismissing it while the user is entering a signature. (#8505)
    • API
      Deprecates registerDrawableProvider(PdfDrawableProvider) and unregisterDrawableProvider(PdfDrawableProvider) in PdfFragment. Use addDrawableProvider(PdfDrawableProvider) and removeDrawableProvider(PdfDrawableProvider) instead. (#7121)
    • Fixed
      Fixes an issue where color for selected item in listbox form fields fell back to transparent when it wasn't defined in theme. (#12991)
    • Fixed
      Fixes an issue when saving a document that has been restored from a checkpoint. (#12890)
    • Fixed
      Fixes an issue with incorrect tab order in forms. (#12902)
    • Fixed
      Fixes an issue where some flattened documents may not show correctly in third party readers. (#12901)
    • Fixed
      Fixes the positioning of the underline on text when no ascending characters are present on the line. (#11489)
    • Fixed
      Fixes an issue where some ink annotations may not be rendered correctly by third party readers. (#12900)
    • Fixed
      Fixes missing document link action when destination is not defined. (#12917)
    • Fixed
      Fixes an issue when exporting XFDF with non-ascii characters. (#12892)
    • Fixed
      Fixes an issue where adding a signature with only a single point in it caused forms to no longer work. (#12976)
    • Fixed
      Fixes an issue where the loading throbber wasn't hidden when the document failed to load. (#12804)
    • Fixed
      Fixes GoToRemoteAction object having GOTO action type set to it, instead of GOTO_REMOTE. (#13071)
    • Fixed
      Fixes a problem where some PDF documents may not show every form field element. (#12998)
    • Fixed
      Fixes issue where text in form fields are always black. (#12449)
    • Fixed
      Fixes a display problem were previously stored signatures were clipped when displayed in the SignaturePickerFragment. (#13057)
    • Fixed
      Fixes dangling symbols names in catalog app descriptions and Javadoc. (#13043)
    • Fixed
      Fixes an issue when trying to interact with a form whilst a PdfProcessorTask is in progress. (#12973)

    Instant

    Important: This is the last release of Instant compatible with PSPDFKit Server 2017.7 and earlier. The next release will require 2017.8. For further information, please refer to the migration guide(opens in a new tab).

    • Added
      Adds error codes to InstantErrorCode for the cases where the client and server have incompatible versions: OLD_CLIENT and OLD_SERVER. (#12720)
    • Added
      Adds a Proguard rule to consumer file to prevent a warning related to AutoValue. (#12888)
    • Changed
      InstantPdfFragment now shows error dialog when encountering OLD_CLIENT error and disables automatic sync when encountering either OLD_CLIENT or OLD_SERVER error codes. This is enabled by default and can be disabled via InstantPdfFragment#setHandleCriticalInstantErrors() (#12870)
    • API
      Adds callbacks for authentication with Instant server to InstantDocumentListener: onAuthenticationFailed called when authentication fails with an error and onAuthenticationFinished when authentication finishes successfully. (#13136)

    4.0.2 27 Oct 2017

    • API
      Adds two missing methods #addOnFormTabOrderUpdatedListener() and #removeOnFormTabOrderUpdatedListener() to FormProvider which allow management of the already existing OnFormTabOrderUpdatedListener interface. (#12847)
    • API
      Listener removal methods will no longer silently ignore illegally passed null values but will instead throw an IllegalArgumentException. Affected methods: (#12849)
      • Changed
        ActionMenu#removeActionMenuListener()
      • Changed
        AnnotationProvider#removeOnAnnotationUpdatedListener()
      • Changed
        BookmarkProvider#removeBookmarkListener()
      • Changed
        FormEditingBar#removeOnFormEditingBarLifecycleListener()
      • Changed
        FormProvider#removeOnButtonFormFieldUpdatedListener()
      • Changed
        FormProvider#removeOnChoiceFormFieldUpdatedListener()
      • Changed
        FormProvider#removeOnFormFieldUpdatedListener()
      • Changed
        FormProvider#removeOnFormTabOrderUpdatedListener()
      • Changed
        FormProvider#removeOnTextFormFieldUpdatedListener()
      • Changed
        OnVisibilityChangedListenerManager#removeOnVisibilityChangedListener()
      • Changed
        PdfFragment#removeUserInterfaceListener()
      • Changed
        PropertyInspectorCoordinatorLayout#removePropertyInspectorLifecycleListener()
    • API
      Adds eager null checks to FormProvider methods with @NonNull parameters. (#12849)
      • Changed
        FormProvider#getFormFieldWithFullyQualifiedNameAsync() and FormProvider#getFormFieldWithFullyQualifiedName()
      • Changed
        FormProvider#getFormElementForAnnotationAsync() and FormProvider#getFormElementForAnnotation()
      • Changed
        FormProvider#getFormElementWithNameAsync() and FormProvider#getFormElementWithName()
    • API
      Changes type of exceptions thrown by some existing listener management methods. Methods that previously threw a NullPointerException when called with a null value will now throw an IllegalArgumentException. Affected methods: (#12849)
      • Changed
        PdfFragment#addDocumentListener() and PdfFragment#removeDocumentListener()
      • Changed
        PdfFragment#addDocumentScrollListener() and PdfFragment#removeDocumentScrollListener()
    • Changed
      Improves UI design of signature dialog. (#12646)
      • Removed
        Removes pspdf__colorIconsBorderColor from pspdf__SignatureLayout styleable. The signature dialog's color picker is now using a FAB which doesn't have a border.
      • Added
        Adds pspdf__clearSignatureCanvasIconBackgroundColor to pspdf__SignatureLayout which enables you to set the background color of the button for clearing the signature. The default color used is Android's Color.GRAY.
    • Changed
      Improves performance when toggling checkboxes. (#12706)
    • Changed
      Improves reliability when saving documents with broken cross-reference tables. (#12212)
    • Fixed
      Fixes an issue where ink annotations were drawn incorrectly after finishing touch gestures on high resolution devices. (#12908)
    • Fixed
      Fixes wrong toolbar offset calculations in ToolbarCoordinatorLayout caused by dynamic window insets on some devices (like the Samsung Galaxy S8). (#12587)
    • Fixed
      Fixes an issue where data restored from a checkpoint would not be saved to the file when using incremental saving mode. (#12890)
    • Fixed
      Fixes an issue with incorrect tab order in forms. (#12902)
    • Fixed
      Fixes an issue where some flattened documents weren't correctly displayed in third party readers. (#12901)

    Instant

    • API
      When passing null to InstantPdfFragment#removeInstantDocumentListener() and InstantPdfFragment#addInstantDocumentListener() the methods will now throw an IllegalArgumentException instead of the previously thrown NullPointerException. (#12849)

    4.0.1 19 Oct 2017

    • Added
      Adds new catalog app launcher icon for all devices and adaptive launcher icon for Android 8.0 Oreo and newer. (#12220)
    • Changed
      Improves Javadoc for SharingMenu and ActionMenu. (#12688)
    • Changed
      Calling PdfFragment#setDocumentSigningListener() without having Digital Signatures licensed will now throw an InvalidPSPDFKitLicenseException. (#12761)
    • Fixed
      Fixes a crash that happened when tapping a SignatureFormElement without having Digital Signatures or Annotation Editing features licensed. (#12705)
    • Fixed
      Fixes several issues with the AnnotationProvider. (#12761)
      • Changed
        Annotates return type of AnnotationProvider.getAnnotations(int) as @NonNull.
      • Fixed
        Fixes a bug where annotationProvider.removeAnnotation(...) would not properly remove annotation instances that were retained across activity configuration changes.
    • Fixed
      Fixes issues with font selection for non latin languages. (#12297, #11639)
    • Fixed
      Fixes annotations moving on rotated pages when flattening. (#8242)
    • Fixed
      Fixes the SignatureSignerDialog not being restored on orientation change. (#12615)
      • API
        Adds SignatureSignerDialog#setListener() to allow you to set the listener of an already displayed dialog.
    • Fixed
      Fixes issues with corrupted documents when restoring data from checkpoints. (#12669)
    • Fixed
      Fixes an issue where text in form fields could be cut off. (#12494)
    • Fixed
      Fixes an issue where the UI wasn't properly reset when setting a new document on a PdfActivity. (#12636)
    • Fixed
      Fixes an issue with rendering text while zoomed into specific documents. (#12392)
    • Fixed
      Fixes an issue on Chromebook devices where share dialog was only partially visible. (#12683)
    • Fixed
      Fixes an issue where underline annotations and text extraction did not work correctly for some documents. (#12070)

    Instant

    • Fixed
      Fixes lock inversions that could cause live- or deadlocks when syncing finished while the document was still being parsed. (#11739)
    • Fixed
      Fixes an issue where note annotation positions and renderings were not updated after syncing with Instant. (#12641)

    4.0.0 12 Oct 2017

    See the announcement post(opens in a new tab).

    Below is a summary of the API changes in this release. For a full list, with our suggested migration strategy for each API that has been changed or removed, please see the migration guide(opens in a new tab)

    • Changed
      The minimum required version is now Android 4.4 (API Level 19).
    • Changed
      Updates dependency - Support libraries to 26.0.2, RxJava to 2.1.3.
    • API
      Adds PdfFragment#newInstance(PdfFragment fragment, PdfConfiguration configuration) that copies the state of the given PdfFragment to the new instance.
    • Added
      Adds support for AES encryption when saving or processing a document. (#4420)
    • API
      Adds API to save and restore checkpoint files for PDF documents that support checkpointing. (#11970, #12387)
      • API
        Adds PdfDocumentCheckpointer to handle saving and cleaning of document checkpoints using a configurable saving strategy.
      • API
        Adds PdfDocument#getCheckpointer() which returns the document's checkpointer instance.
    • API
      Adds callbacks for annotation creation and removal. (#10865)
      • Changed
        Annotation creation, updates and removal are now notified via separate methods of AnnotationProvider.OnAnnotationUpdatedListener.
      • Removed
        Deprecates AnnotationManager.OnAnnotationUpdatedListener, use AnnotationProvider.OnAnnotationUpdatedListener instead. You can register annotation updated listener via PdfFragment#addOnAnnotationUpdatedListener and remove it via PdfFragment#removeOnAnnotationUpdatedListener.
    • API
      Adds DocumentListener#onPageUpdated that is called when contents of a page have changed. (#12544)
    • Added
      Adds a new icon set for all toolbar items, as well as replacing the note icons with vector versions. (#12257)
    • Added
      Adds consumerProguardFiles, which specifies all needed rules for ProGuard to work with. This means that all ProGuard rules introduced with PSPDFKit setup can be removed now. (#10402)
    • Added
      Adds ink eraser tool. (#9612)
      • Added
        Adds eraser button to the annotation creation toolbar (id: pspdf__annotation_creation_toolbar_item_eraser).
      • API
        Adds AnnotationTool#ERASER, eraser is enabled only when ink annotations are editable and eraser tool is in the list of enabled annotation tools.
      • API
        Adds EraserDefaultsProvider for controlling eraser thickness.
    • API
      Adds support for digital signatures. (#11225)
      • API
        Adds SignatureManager to manage trusted CA certificates and registered signers.
      • API
        Adds SignatureFormElement and SignatureFormField to represent signature forms in the PDF document.
      • API
        Adds DigitalSignatureInfo and DocumentSignatureInfo to access all signing related information on a document.
      • API
        Adds DigitalSignatureValidator to provide validation for DigitalSignatureInfo. The validation result is returned as DigitalSignatureValidationResult.
      • API
        Adds SignatureInfoDialog for showing the result of a signature verification.
      • API
        Adds getDocumentSignatureInfo() call to PdfDocument to easily check for signature information and validity in a PDF document.
      • API
        Adds abstract Signer class that is used to digitally sign a SignatureFormField.
      • API
        Adds MemorySigner for signing documents using a pre-loaded PrivateKeyEntry.
      • API
        Adds Pkcs12Signer for signing documents using a PKCS#12 file.
      • API
        Adds SigningFailedException for signalizing a failure during signing.
      • API
        Adds SigningStatus to express the result of a signing operation during a failure.
      • API
        Adds SignatureSignerDialog for signing a single signature form field using a Signer.
      • API
        Adds DocumentSigningListener to listen to signing events on the SignatureSignerDialog.
      • API
        Adds PdfFragment#setDocumentSigningListener() to override the default signing listener used by the fragment.
      • API
        Adds Signature#getSignerIdentifier() to return the unique identifier of an associated Signer.
      • API
        Adds Signature#toInkAnnotation(com.pspdfkit.document.PdfDocument, int, android.graphics.RectF) for creating an InkAnnotation whose bounding box fixes the given RectF.
      • API
        Moves Signature class from com.pspdfkit.annotations.signatures to com.pspdfkit.signatures.
      • API
        Moves SignaturePickerFragment class from com.pspdfkit.annotations.signatures to com.pspdfkit.signatures.
      • Changed
        The SignaturePickerFragment provides a new, cleaner UI flow, allowing users to pick signatures from a list, and store them to a database.
    • API
      Adds DocumentListener#onDocumentSaveCancelled that is being called when document saving is skipped. (#11950)
    • API
      Adds API and UI for creating link annotations from selected text. (#11296, #12092)
      • API
        Adds 'Create link' button to the text selection toolbar (id: pspdf__text_selection_toolbar_item_link) for creating links on top of the selected text (fires up a dialog).
      • API
        Adds TextSelectionController#createLinkAboveSelectedText() method for creating links above selected text (fires up a dialog).
      • API
        Adds LinkAnnotation constructor method for creating link annotations.
      • API
        Adds UriAction constructor for creating URI actions with specified URL string.
      • API
        Adds GoToAction constructor for creating GoTo actions with specified target page index.
      • API
        Adds setAction() method on LinkAnnotation class for setting an Action to be triggered when link annotation is clicked.
      • API
        Adds LinkAnnotationHighlighter which highlightes newly created link annotations.
    • API
      Adds API for controlling defaults for annotation tools. This extends existing annotation defaults API. (#12100)
      • API
        Adds API to set annotation defaults provider for AnnotationTool in AnnotationDefaultsManager. Setting annotation defaults provider for AnnotationTool overrides defaults defined for underlying AnnotationType when creating annotations.
      • API
        Replaces AnnotationType with AnnotationTool in AnnotationPreferencesManager methods.
    • API
      Adds USER_INTERFACE_VIEW_MODE_MANUAL providing total control over user interface visibility. (#11791)
    • API
      Unifies and improves naming for listeners. (#9447)
      • API
        Renames DownloadDocumentTask.DownloadedFileCallback to DownloadDocumentTask.OnFileDownloadedListener.
      • API
        Renames ExtractAssetTask.OnDocumentExtractedCallback to ExtractAssetTask.OnDocumentExtractedListener.
      • API
        Renames InstantPdfDocument#registerInstantDocumentListener to InstantPdfDocument#addInstantDocumentListener.
      • API
        Renames InstantPdfDocument#unregisterInstantDocumentListener to InstantPdfDocument#removeInstantDocumentListener.
      • API
        Renames InstantPdfFragment#registerInstantDocumentListener to InstantPdfFragment#addInstantDocumentListener.
      • API
        Renames InstantPdfFragment#unregisterInstantDocumentListener to InstantPdfFragment#removeInstantDocumentListener.
      • API
        Renames OnAnnotationProviderUpdatedListener#onAnnotationDeleted to OnAnnotationProviderUpdatedListener#onAnnotationRemoved.
      • API
        Renames AnnotationProvider.OnAnnotationProviderUpdatedListener to AnnotationProvider.OnAnnotationUpdatedListener.
      • API
        Renames AnnotationProvider#registerOnAnnotationProviderUpdatedListener to AnnotationProvider#addOnAnnotationUpdatedListener.
      • API
        Renames AnnotationProvider#unregisterOnAnnotationProviderUpdatedListener to AnnotationProvider#removeOnAnnotationUpdatedListener.
      • API
        Renames ActionResolver#registerDocumentActionListener to ActionResolver#addDocumentActionListener.
      • API
        Renames ActionResolver#unregisterDocumentActionListener to ActionResolver#removeDocumentActionListener.
      • API
        Renames NewPageFactory.OnNewPageReadyCallback to NewPageFactory.OnNewPageReadyListener.
      • API
        Renames PdfLibrary#registerLibraryIndexingListener to PdfLibrary#addLibraryIndexingListener.
      • API
        Renames PdfLibrary#unregisterLibraryIndexingListener to PdfLibrary#removeLibraryIndexingListener.
      • API
        Renames FormProvider#registerOnFormFieldUpdatedListener to FormProvider#addOnFormFieldUpdatedListener.
      • API
        Renames FormProvider#unregisterOnFormFieldUpdatedListener to FormProvider#removeOnFormFieldUpdatedListener.
      • API
        Renames FormProvider#registerOnFormTabOrderUpdatedListener to FormProvider#addOnFormTabOrderUpdatedListener.
      • API
        Renames FormProvider#unregisterOnFormTabOrderUpdatedListener to FormProvider#removeOnFormTabOrderUpdatedListener.
      • API
        Renames FormProvider#registerOnTextFormFieldUpdatedListener to FormProvider#addOnTextFormFieldUpdatedListener.
      • API
        Renames FormProvider#unregisterOnTextFormFieldUpdatedListener to FormProvider#removeOnTextFormFieldUpdatedListener.
      • API
        Renames FormProvider#registerOnButtonFormFieldUpdatedListener to FormProvider#addOnButtonFormFieldUpdatedListener.
      • API
        Renames FormProvider#unregisterOnButtonFormFieldUpdatedListener to FormProvider#removeOnButtonFormFieldUpdatedListener.
      • API
        Renames FormProvider#registerOnChoiceFormFieldUpdatedListener to FormProvider#addOnChoiceFormFieldUpdatedListener.
      • API
        Renames FormProvider#unregisterOnChoiceFormFieldUpdatedListener to FormProvider#removeOnChoiceFormFieldUpdatedListener.
      • API
        Renames DefaultDocumentEditorListener.UriValidationCallback to DefaultDocumentEditorListener.UriValidationListener.
      • API
        Renames PdfDocumentEditorListenerCallback to OnFileWriteCompleteListener.
      • API
        Renames PSPDFKitViews#setDocumentEditorListener to PSPDFKitViews#setPdfDocumentEditorListener.
      • API
        Renames PdfFragment#registerDocumentListener to PdfFragment#addDocumentListener.
      • API
        Renames PdfFragment#unregisterDocumentListener to PdfFragment#removeDocumentListener.
      • API
        Renames PdfFragment#registerDocumentScrollListener to PdfFragment#addDocumentScrollListener.
      • API
        Renames PdfFragment#unregisterDocumentScrollListener to PdfFragment#removeDocumentScrollListener.
      • API
        Renames PdfOutlineView.OnAnnotationTappedListener to PdfOutlineView.OnAnnotationTapListener and its onAnnotationTapped method to onAnnotationTap.
      • API
        Renames PdfOutlineView.OnOutlineElementTappedListener to PdfOutlineView.OnOutlineElementTapListener and its onOutlineElementTapped method to onOutlineElementTap.
      • API
        Renames PdfOutlineView#setOnAnnotationTappedListener to PdfOutlineView#setOnAnnotationTapListener.
      • API
        Renames PdfOutlineView#setOnOutlineElementTappedListener to PdfOutlineView#setOnOutlineElementTapListener.
      • API
        Renames PdfThumbnailGrid#setDocumentEditorListener to PdfThumbnailGrid#setPdfDocumentEditorListener.
      • API
        Renames PdfThumbnailGrid#registerDocumentEditingModeChangeListener to PdfThumbnailGrid#addOnDocumentEditingModeChangeListener.
      • API
        Renames PdfThumbnailGrid#unregisterDocumentEditingModeChangeListener to PdfThumbnailGrid#removeOnDocumentEditingModeChangeListener.
      • API
        Renames PdfThumbnailGrid#registerDocumentEditingPageSelectionChangeListener to PdfThumbnailGrid#addOnDocumentEditingPageSelectionChangeListener.
      • API
        Renames PdfThumbnailGrid#unregisterDocumentEditingPageSelectionChangeListener to PdfThumbnailGrid#removeOnDocumentEditingPageSelectionChangeListener.
      • API
        Renames ActionMenu#registerActionMenuListener to ActionMenu#addActionMenuListener.
      • API
        Renames ActionMenu#unregisterActionMenuListener to ActionMenu#removeActionMenuListener.
      • API
        Renames FormEditingBar#registerFormEditingBarLifecycleListener to FormEditingBar#addOnFormEditingBarLifecycleListener.
      • API
        Renames FormEditingBar#unregisterFormEditingBarLifecycleListener to FormEditingBar#removeOnFormEditingBarLifecycleListener.
      • API
        Renames PropertyInspectorCoordinatorLayoutController#registerPropertyInspectorLifecycleListener to PropertyInspectorCoordinatorLayoutController#addPropertyInspectorLifecycleListener.
      • API
        Renames PropertyInspectorCoordinatorLayoutController#unregisterPropertyInspectorLifecycleListener to PropertyInspectorCoordinatorLayoutController#removePropertyInspectorLifecycleListener.
      • API
        Renames BookmarkViewAdapter#registerBookmarkChangeListener to BookmarkViewAdapter#addBookmarkListener.
      • API
        Renames BookmarkViewAdapter#unregisterBookmarkChangeLister to BookmarkViewAdapter#removeBookmarkListener.
      • API
        Renames OnModeChangedListener#OnPageTransitionChanged to OnModeChangedListener#OnScrollModeChange.
      • API
        Renames OnModeChangedListener#OnScrollDirectionChanged to OnModeChangedListener#OnScrollDirectionChange.
      • API
        Renames OnModeChangedListener#OnPageLayoutChanged to OnModeChangedListener#OnPageLayoutChange.
      • API
        Renames OnModeChangedListener#OnThemeChanged to OnModeChangedListener#OnThemeChange.
      • API
        Renames OnModeChangedListener#OnScreenTimeoutChanged to OnModeChangedListener#OnScreenTimeoutChange.
      • API
        Renames AnnotationManager#registerAnnotationSelectedListener to AnnotationManager#addOnAnnotationSelectedListener.
      • API
        Renames AnnotationManager#unregisterAnnotationSelectedListener to AnnotationManager#removeOnAnnotationSelectedListener.
      • API
        Renames AnnotationManager#registerAnnotationDeselectedListener to AnnotationManager#addOnAnnotationDeselectedListener.
      • API
        Renames AnnotationManager#unregisterAnnotationDeselectedListener to AnnotationManager#removeOnAnnotationDeselectedListener.
      • API
        Renames AnnotationManager#registerAnnotationUpdatedListener to AnnotationManager#addOnAnnotationUpdatedListener.
      • API
        Renames AnnotationManager#unregisterAnnotationUpdatedListener to AnnotationManager#removeOnAnnotationUpdatedListener.
      • API
        Renames AnnotationManager#registerAnnotationCreationModeChangeListener to AnnotationManager#addOnAnnotationCreationModeChangeListener.
      • API
        Renames AnnotationManager#unregisterAnnotationCreationModeChangeListener to AnnotationManager#removeOnAnnotationCreationModeChangeListener.
      • API
        Renames AnnotationManager#registerAnnotationCreationModeSettingsChangeListener to AnnotationManager#addOnAnnotationCreationModeSettingsChangeListener.
      • API
        Renames AnnotationManager#unregisterAnnotationCreationModeSettingsChangeListener to AnnotationManager#removeOnAnnotationCreationModeSettingsChangeListener.
      • API
        Renames AnnotationManager#registerAnnotationEditingModeChangeListener to AnnotationManager#addOnAnnotationEditingModeChangeListener.
      • API
        Renames AnnotationManager#unregisterAnnotationEditingModeChangeListener to AnnotationManager#removeOnAnnotationEditingModeChangeListener.
      • API
        Renames DocumentEditingManager#registerDocumentEditingModeChangeListener to DocumentEditingManager#addOnDocumentEditingModeChangeListener.
      • API
        Renames DocumentEditingManager#unregisterDocumentEditingModeChangeListener to DocumentEditingManager#removeOnDocumentEditingModeChangeListener.
      • API
        Renames DocumentEditingManager#registerDocumentEditingPageSelectionChangeListener to DocumentEditingManager#addOnDocumentEditingPageSelectionChangeListener.
      • API
        Renames DocumentEditingManager#unregisterDocumentEditingPageSelectionChangeListener to DocumentEditingManager#removeOnDocumentEditingPageSelectionChangeListener.
      • API
        Renames FormManager#registerFormElementSelectedListener to FormManager#addOnFormElementSelectedListener.
      • API
        Renames FormManager#unregisterFormElementSelectedListener to FormManager#removeOnFormElementSelectedListener.
      • API
        Renames FormManager#registerFormElementDeselectedListener to FormManager#addOnFormElementDeselectedListener.
      • API
        Renames FormManager#unregisterFormElementDeselectedListener to FormManager#removeOnFormElementDeselectedListener.
      • API
        Renames FormManager#registerFormElementUpdatedListener to FormManager#addOnFormElementUpdatedListener.
      • API
        Renames FormManager#unregisterFormElementUpdatedListener to FormManager#removeOnFormElementUpdatedListener.
      • API
        Renames FormManager#registerFormElementEditingModeChangeListener to FormManager#addOnFormElementEditingModeChangeListener.
      • API
        Renames FormManager#unregisterFormElementEditingModeChangeListener to FormManager#removeOnFormElementEditingModeChangeListener.
      • API
        Renames FormManager#registerFormElementClickedListener to FormManager#addOnFormElementClickedListener.
      • API
        Renames FormManager#unregisterFormElementClickedListener to FormManager#removeOnFormElementClickedListener.
      • API
        Renames TextSelectionManager#registerTextSelectionModeChangeListener to TextSelectionManager#addOnTextSelectionModeChangeListener.
      • API
        Renames TextSelectionManager#unregisterTextSelectionModeChangeListener to TextSelectionManager#removeOnTextSelectionModeChangeListener.
      • API
        Renames TextSelectionManager#registerTextSelectionChangeListener to TextSelectionManager#addOnTextSelectionChangeListener.
      • API
        Renames TextSelectionManager#unregisterTextSelectionChangeListener to TextSelectionManager#removeOnTextSelectionChangeListener.
      • API
        Changes ContextualToolbar#setToolbarCoordinatorController to accept @Nullable ToolbarCoordinatorLayoutController, so you can clear it by passing null.
      • API
        Removes ContextualToolbar#removeToolbarCoordinatorController, use ContextualToolbar#setToolbarCoordinatorController(null) instead.
      • API
        Changes ContextualToolbar#setOnMenuItemClickListener to accept @Nullable OnMenuItemClickListener, so you can clear it by passing null.
      • API
        Removes ContextualToolbar#removeOnMenuItemClickListener, use ContextualToolbar#setOnMenuItemClickListener(null) instead.
      • API
        Changes ContextualToolbar#setOnMenuItemLongClickListener to accept @Nullable OnMenuItemLongClickListener, so you can clear it by passing null.
      • API
        Removes ContextualToolbar#removeOnMenuItemClickListener, use ContextualToolbar#setOnMenuItemLongClickListener(null) instead.
    • Changed
      Increases touch target size of next and previous search result buttons. (#11454)
    • Changed
      Improves OutlineListView loading time when opening large documents providing fast and smooth UI and removing from the main thread any heavy computation. (#11839)
    • Changed
      Improves performance of PdfDocument methods getPageSize(), getPageRotation(), and getPageLabel(). (#12186)
    • Changed
      Improves shape annotations selection performance. (#12032)
      • Fixed
        Fixes a possible OOM exception that was occurring on some devices when using large zoom scale while having shape annotation selected.
      • Changed
        Updates to selected ink annotations are now redrawn much faster.
    • Changed
      Improves exact phrase matching in PdfLibrary. (#12261)
    • Changed
      Improves FloatingHintEditText.EditTextListener#onErrorDismissed flow, so it is not called on each text change event.
    • Changed
      Better memory handling for big documents. (#12045)
    • API
      Replaces framework's Optional with RxJava2 Maybe. (#10691)
      • API
        Return type changes for AnnotationProvider#getAnnotationAsync(int, int) from Observable<Optional<Annotation>> to Maybe<Annotation>.
      • API
        Return type changes for AnnotationProvider#getAnnotation(int, int) from Optional<Annotation> to @Nullable Annotation.
      • API
        Return type changes for FormProvider#getFormElementForAnnotationAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.
      • API
        Return type changes for FormProvider#getFormElementForAnnotation() from Optional<FormElement> to @Nullable FormElement.
      • API
        Return type changes for FormProvider#getFormFieldWithFullyQualifiedNameAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.
      • API
        Return type changes for FormProvider#getFormFieldWithFullyQualifiedName() from Optional<FormElement> to @Nullable FormElement.
      • API
        Return type changes for FormProvider#getFormElementWithNameAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.
      • API
        Return type changes for FormProvider#getFormElementWithName() from Optional<FormElement> to @Nullable FormElement.
      • API
        Return type changes for WidgetAnnotation#getFormElementAsync() from Observable<Optional<FormElement>> to Maybe<FormElement>.
      • API
        Return type changes for WidgetAnnotation#getFormElement() from Optional<FormElement> to @Nullable FormElement.
    • API
      Renames Annotation.OBJECT_NUMBER_NOT_ATTACHED_TO_PAGE to Anntoation.OBJECT_NUMBER_NOT_SET. (#11339)
    • API
      Renames HUD terminology to User Interface. (#12003)
      • API
        Renames HudViewMode enum to UserInterfaceViewMode and all its values are starting with USER_INTERFACE now.
      • API
        Renames getHudViewMode() to getUserInterfaceViewMode() on PdfActivityConfiguration, PdfActivity and PdfActivityApi. Its new return type is now UserInterfaceViewMode.
      • API
        Renames setHudViewMode(HudViewMode) to setUserInterfaceViewMode(UserInterfaceViewMode) on PdfActivityConfiguration, PdfActivity and PdfActivityApi.
      • API
        Renames HudViewMode to UserInterfaceViewMode on PdfActivityConfiguration.Builder.
    • API
      Changes type of thickness property of AnnotationCreationController from int to float. (#12291)
    • API
      Drops deprecated fields and methods. (#11896)
      • API
        Removes PdfActivityConfiguration.Builder#diskCacheSize(), PdfConfiguration.Builder#diskCacheSize() - disk cache is not supported.
      • API
        Removes PdfDocument#getUri() and PdfDocument#getUriList().
      • API
        Removes PdfYouTubeActivity#ARG_YOUTUBE_URL, use #ARG_MEDIA_URI for passing MediaUri objects through intent.
      • API
        Removes PdfMediaDialog#ARG_URI, use #ARG_MEDIA_URI for passing MediaUri objects through intent.
      • API
        Removes PrintOptions(PdfProcessorTask.AnnotationProcessingMode, ..) constructors, use PrintOptions(boolean, ..) instead.
      • API
        Removed PdfFragment#enterAnnotationCreationMode(AnnotationType), use enterAnnotationCreationMode(AnnotationTool) instead.
      • API
        Removed PdfFragment#clearTextSelection(), use exitCurrentlyActiveMode() instead.
      • API
        Removed PdfFragment#setTextSelection(), use enterTextSelectionMode() instead.
      • API
        Removed DocumentSharingManager#generateDocumentName(), use getTitle() instead.
    • Fixed
      Fixes a layout issue when entering long passwords. (#11792)
    • Fixed
      Fixes not scrolling to entire page when going through search results using a continuous layout manager. (#11454)
    • Fixed
      Fixes an issue when rendering decomposed UTF-8 strings (#11985)
    • Fixed
      Fixes the navigation buttons not being restored after an orientation change. (#12211)
    • Fixed
      Fixes form fields being rendered when the license doesn't have PDF forms enabled. (#12537)
    • Fixed
      Fixes a crash that could happen when moving files to the device's download folder on Android 8.0 Oreo or newer. (#12549)
    • Fixed
      Fixes resizing ink annotations in Instant documents being slow. (#12422)
    • Fixed
      Fixes PdfPasswordView being broken, while entering text on devices with a small screen. (#12210)
    • Fixed
      Fixes an issue where adding annotation after opening annotation list view is blocked in large documents. (#12010)
    • Fixed
      Fixes an issue where invalid value (-1) was being passed to setPage() in PdfFragment on document recreation. (#11888)
    • Fixed
      Fixes extra space after non-latin characters in form fields. (#11874)
    • Fixed
      Fixes an issue where document loading progress was not restored after rotation. (#11840)
    • Fixed
      Fixes an issue saving an original document after signing it. (#11911)
    • Fixed
      Fixes an issue where document saving blocked the main thread. (#11802)
    • Fixed
      Fixes an issue where horizontal resize guide was drawn incorrectly. (#12065)
    • Fixed
      Fixes an issue where NewPageDialog was not displaying correctly in RTL mode. (#10039)
    • Fixed
      Fixes an issue where navigation buttons were still clickable after PdfActivityConfiguration.hideNavigationButtons(). (#12023)
    • Fixed
      Fixes an issue where current page is not properly restored after configuration changes, in double page mode. (#12146)
    • Fixed
      Fixes an issue where flattening a document may generate warnings when it is open in third party readers. (#12066)
    • Fixed
      Fixes an issue where it wasn't possible to unset excluded annotations from renderer. (#12418)
    • Fixed
      Fixes an issue where taps on small form elements (such as checkboxes) were inaccurate. (#12545)
    • Changed
      Improves highlight annotations by adding additional padding to them. (#12548)
      • API
        Adds applyPadding parameter to PDFDocument#getPageTextRects() to make the return value better suited for being displayed.
    • Fixed
      Fixes an issue where adding image annotations to page failed randomly. (#12603)

    Instant

    • Added
      Adds more granular control over automatic document syncing. (#12292)
      • Added
        Adds setListenToServerChanges to InstantPdfDocument to control whether to listen to server changes.
      • Added
        Adds setDelayForSyncingLocalChanges to InstantPdfDocument to control delay of automatic syncing of local changes or to disable automatic syncing of local changes altogether.
      • Removed
        Deprecates setAutomaticSyncEnabled in InstantPdfDocument. Use setListenToServerUpdates and setDelayForSyncingLocalChanges instead.
      • Added
        Adds setListenToServerChangesWhenVisible to InstantPdfFragment to control whether to listen to server changes when fragment is visible. It's enabled by default.
    • Added
      Adds consumerProguardFiles, which specifies all needed rules for ProGuard to work with. This means that all ProGuard rules introduced with PSPDFKit Instant setup can be removed now.
    • Fixed
      Fixes an issue where an incorrect values could be persisted as PDF object IDs. (#11689)
    • Fixed
      Fixes an issue where annotation updates caused by server changes were not notified via OnAnnotationProviderUpdated. (#12420)

    3.3.3 31 Aug 2017

    • API
      Adds styling options for text selection. (#11694)
      • API
        Adds pspdf__textSelectionStyle attribute for setting text selection style.
      • API
        Adds pspdf__highlightColor attribute under the pspdf__textSelectionStyle style for setting text selection highlight color.
      • API
        Adds pspdf__leftHandleColor attribute under the pspdf__textSelectionStyle style for setting text selection left handle color.
      • API
        Adds pspdf__rightHandleColor attribute under the pspdf__textSelectionStyle style for setting text selection right handle color.
    • Fixed
      Fixes the items padding on the toolbars. (#11695)
      • Changed
        Back button is slightly larger and padding is fixed so that it matches the default Android metrics.
    • Fixed
      Fixes listener management methods on PdfFragment (register*Listener()/unregister*Listener()) which were sometimes not executed in the order they were called. (#11828)

    Instant

    • Added
      Adds support for note annotations. (#11704)
    • Changed
      InstantPdfFragment now shows document download progress. (#11508)

    3.3.2 17 Aug 2017

    • API
      Adds PdfFragment#getVisiblePdfRect(Rect rect, int pageIndex) that sets given rect to the visible portion of the given page. (#11601)
    • API
      Adds support for converting Annotations to Instant JSON and vice versa. (#11157)
      • API
        Adds Annotation#toInstantJson() for annotation to Instant JSON format conversion.
      • API
        Adds AnnotationProvider#createAnnotationFromInstantJson() for creating annotations from Instant JSON.
    • API
      Adds listener to allow custom handling of long clicks. (#11662)
      • API
        Adds setOnDocumentLongPressListener(OnDocumentLongPressListener) call to PdfFragment class.
    • Fixed
      Fixes an issue where extracted annotations where not rendered properly in grayscale and inverted color mode. (#9621)
    • Changed
      Improves form text rendering with non-latin characters. (#10996)
    • Changed
      Improves XFDF performance and compliance. (#11693)
    • Changed
      Improves performance of loading forms. (#11389)
    • Fixed
      Fixes an issue where property inspector width was calculated incorrectly. (#11676)
    • Fixed
      Fixes an issue where the use of transparent colors in property inspector was not prevented. (#11010)
    • Changed
      Improves the rendering of the non-embedded Courier font. (#11228)
    • Fixed
      Fixes an issue in Hud View Modes Example of the example catalog app where navigation buttons were not properly hidden. (#11744)
    • Fixed
      Fixes an issue where password protected document was not reopened with previously entered password after restoring PdfFragment. (#11774)
    • Fixed
      Fixes an unhandled NullPointerException thrown while restoring navigation history in non-retained PdfFragment. (#11775)
    • Fixed
      Fixes a bug where clicking on link annotations doesn't provide any feedback. (#11794)
    • Fixed
      Fixes an issue where state was not restored correctly when using activities that handle orientation changes themselves. (#11734)
    • Fixed
      Fixes an issue where PDF renderer used recycled bitmap. (#11640)
    • Changed
      Improves annotation selection border and annotation selection handle colors with a better high level contrast. (#11830)

    Instant

    • Added
      Adds onDocumentInvalidated and onDocumentCorrupted to InstantDocumentListener. (#11449)
      • Changed
        onDocumentInvalidated is called when document has been invalidated due to being garbage collected or its data being removed.
      • Changed
        onDocumentCorrupted is called when Instant has detected corruption in locally stored document data.
    • Added
      Adds logout button to Instant example. (#11405)
    • Fixed
      Fixes an incorrect log message format. (#11634)
    • Fixed
      Fixes deletion of multiple annotations at once. (#11651)
    • Fixed
      Fixes a failed assertion due to an improper format string. (#11747)

    3.3.1 26 Jul 2017

    • Fixed
      Fixes an issue where the downloaded Instant document could not be opened while offline. (#11560)
    • Fixed
      Fixes an unhandled NullPointerException thrown while displaying the contextual toolbar. (#11448)
    • Fixed
      Fixes a possible crash due to initialization race condition. (#11516)
    • Fixed
      Fixes a synchronization issue where thumbnail bar was not scrolling correctly to a selected page. (#10458)
    • Fixed
      Fixes a possible crash where framework was required before its initialization completed by the content provider. (#11537)
    • Fixed
      Fixes a bug where a link pointing to local data was recognized as media although it's not a media file. (#11530)
    • Fixed
      Fixes an issue where download job continued even after download progress dialog was dismissed. (#10237)

    Instant

    • Changed
      Optimizes battery usage while syncing annotations with Instant. (#11533)
    • Fixed
      Fixes incorrect handling/reporting of an authentication error during sync. (#11386)

    3.3.0 20 Jul 2017

    See the announcement post(opens in a new tab).

    • Added
      Adds Instant: an easy-to-integrate solution to connect your app to your PSPDFKit Server to download documents and synchronize annotations between users. Everything’s synced in an instant!
    • API
      Adds support for writing and parsing XFDF files, see XfdfFormatter class with parseXfdf[Async]() and writeXfdf[Async]() methods. (#5575)
    • API
      Adds ProgressDataProvider which can optionally be implemented by any DataProvider to support displaying the loading progress of not yet available documents. (#11032)
    • API
      DownloadProgressFragment is now extensible. Check out the CustomDocumentDownloadExample in the example catalog app for an example implementation. (#11214)
    • API
      Adds PdfProcessorTask.changeFormsOfType to configure how form elements should be processed. (#11096)
    • API
      Adds TextMarkupAnnotation#getHighlightedText() to easily retrieve highlighted text for a markup annotation. (#11288)
    • Added
      Adds support for annotation notes. (#9611)
    • Added
      Adds OnAnnotationProviderUpdatedListener for listening to annotation creation, update and deletion events on AnnotationProvider. (#11149)
    • Changed
      Improves RTL language support. (#11013, #9883)
    • Changed
      Improves memory management when rendering forms. (#11176)
    • Changed
      Video playback is now enabled by default if device is deemed secure, meaning it's running at least Android Marshmallow (API 23+) with security patch dating Feb 1st, 2016 or newer. (#11345)
    • Fixed
      Fixes very rare issue on saving files repeatedly. (#9477)
    • Fixed
      Fixes the crash that occurs when trying to display document navigation while the document is not ready. (#11129)
    • Fixed
      Fixes the crash that occurs when trying to zoom an inline video being played in the document. (#11357)
    • Fixed
      Fixes an issue where custom styles were not applied correctly. (#11139)
    • Fixed
      Fixes the crash occurring when navigation buttons are not present in the custom layout despite being disabled by the configuration. (#11273)
    • Fixed
      Fixes the annotation creation toolbar being dismissed on configuration change. (#10990)
    • Fixed
      Fixes minor accessibility issues where close button description was missing and color contrast when editing notes was unfriendly. (#11292)
    • Fixed
      Fixes minor accessibility issues where close button description was missing and color contrast was too low when editing notes. (#11292)
    • Fixed
      Fixes an issue where note icons selection was not properly updated. (#11450)

    3.2.1 21 Jun 2017

    • Changed
      Updates dependency - RxJava was updated to 2.1.1.
    • Fixed
      Fixes missing dependency issue when adding SDK to application. (#11031)
    • Fixed
      Fixes a possible crash due to initialization race condition. (#10745)

    3.2.0 15 Jun 2017

    See the announcement post(opens in a new tab).

    • API
      Adds PdfConfiguration.Builder#setAutomaticLinkGenerationEnabled and PdfDocument#setAutomaticLinkGenerationEnabled to enable automatic detection of web links in the document. (#9865)
    • API
      Adds PdfDocument#setWatermarkTextFilteringEnabled to exclude watermark text from selection and text extraction methods. (#10832)
    • API
      Adds PdfConfiguration.Builder#automaticallyGenerateLinks to enable automatic detection of web links in the document.
    • API
      Adds ImagePicker#wasStarted which returns a boolean whether an image picker request was already started and is running or not. (#10756)
    • API
      ImagePicker class is now final. (#10947)
    • Added
      Adds settings menu item for page transition, page layout, scroll direction and screen timeout: (#10345)
      • Added
        Adds PdfActivityConfiguration.Builder#[show/hide]SettingsMenu to show and hide setting menu icon.
      • Added
        Adds PdfActivityConfiguration.Builder#setSettingsMenuItems(EnumSet<SettingsMenuItemType>) to select which items to show.
      • Added
        Adds PdfActivityConfiguration#getDarkTheme to retrieve theme resource used to override dark theme of the launched activity.
      • Added
        Adds PdfActivityConfiguration#isSettingsItemEnabled to check whether the settings menu is shown or not.
      • Added
        Adds PdfActivityConfiguration#getSettingsMenuItemShown to check which items are shown in the settings menu.
      • Added
        Adds PdfActivityConfiguration#Builder(PdfActivityConfiguration, int themeRes, int themeDarkRes) to create a new builder from existing configuration with new default and new dark theme.
      • Added
        Adds PdfActivityConfiguration.Builder#themeDark(int) to set a new dark theme used to override predefined dark activity theme.
      • Added
        Adds PdfActivityConfiguration.Builder#themeMode(ThemeMode) to set the used theme mode.
    • Added
      Adds basic support for playing media annotations in documents: (#10769)
      • Added
        Adds PdfConfiguration.Builder#playingMultipleMediaInstancesEnabled() providing control over whether the multiple media files can be played at the same time.
      • Added
        Adds RichMediaAnnotation class representing RichMedia annotations.
      • Added
        Adds ScreenAnnotation class representing Screen annotations.
      • Changed
        Link annotations pointing to local media files, now play embedded on the page as well.
    • Changed
      Allows navigation between search results while search is still in progress (in case of inline search). (#10561)
    • Fixed
      Fixes an issue with saving files that did not conform completely to the PDF format. (#10712)
    • Fixed
      Fixes a leak when rendering bitmaps. (#10777, #10847)
    • Fixed
      Fixes an issue with saving link annotations. (#10355)
    • Fixed
      Fixes a crash on Android versions lower than 5.0. (#10822)
    • Fixed
      Fixes issue while saving PDF files. (#10849)
    • Fixed
      Fixes issue that sometimes prevented edited documents from saving via Save As... option on document editor. (#10771)
    • Fixed
      Fixes page tiles not being fully refreshed upon configuration change. (#10772)
    • Fixed
      Fixes TTS text reading by removing pauses between text lines in the document. (#10889)
    • Fixed
      Fixes a possible crash when retrieving active annotation editing tool before all views are properly instantiated. (#10939)

    3.1.1 25 May 2017

    • API
      Adds ImagePicker class. (#9287)
      • API
        Removes ImagePickerFragment, create ImagePicker instance and then use #startImageCapture() or #startImageGallery() to start picking/capturing image.
      • API
        ImagePickerFragment.OnImagePickedListener is now ImagePicker.OnImagePickedListener class.
        • API: onImagePickerError(int resultCode, @Nullable Intent data) is now onImagePickerUnknownError().
      • API
        Adds onCameraPermissionDeclined(boolean permanent) for warning about missing camera permissions.
    • API
      Empty OnImagePickedListener implementation called OnImagePickedListenerAdapter is now SimpleOnImagePickerListener.
    • Changed
      See DocumentProcessingExampleActivity in catalog for new image picker API usage.
  • Adds listener to allow custom handling of PDF actions. (#9964)
    • API
      Adds DocumentActionListener class which allows custom handling of PDF actions in onActionExecuted() class.
    • API
      Adds registerDocumentActionListener() and unregisterDocumentActionListener() calls to PdfFragment class.
    • API
      Adds classes for new action types - GoToRemoteAction, GoToEmbeddedAction, JavaScriptAction, LaunchAction and ImportDataAction.
  • Adds the ability to customize selected item colors in forms. (#10331).
    • Added
      Adds pspdf__itemHighlightColor theme attribute to pspdf_FormSelection style.
    • API
      Adds formItemHighlightColor() call to PageRenderConfiguration constructor.
  • Adds handling for new named actions - OUTLINE, PRINT, FIND, SEARCH and SAVEAS. (#10586)
  • Removes deprecated MemoryDataProvider and PdfActivityConfiguration#showThumbnailBar()/#hideThumbnailBar() (use setThumbnailBarMode() instead).
  • Changes default selection in sharing and printing dialog from Single Page - current to All pages. (#10563)
  • Improves saving behavior around encrypted files. (#9088)
  • Improves performance when reading page labels (#10575)
  • Improves performance around reading PDF files. (#10565)
  • Fixes annotations with the NoView and Print flags not being rendered. (#10549)
  • Fixes a crash when parsing invalid metadata. (#10611)
  • Fixes an issue where radio buttons were rendered incorrectly (#10631)
  • Fixes issues in PdfActivityConfiguration and PdfConfiguration. (#10649)
    • Fixed
      Fixes infinite recursion inside PdfActivityConfiguration.Builder#setCustomerSignatureFeatureEnabled().
    • Fixed
      Fixes PdfConfiguration copy constructor which was not copying property isCustomerSignatureFeatureEnabled().
  • Fixes an issue where BaseFileProvider would return paths to the internal app directory. (#10636)
  • Fixes an issue where FormProvider leaked memory. (#10693)
  • Fixes an issue where page position wasn't properly restored in some rare cases. (#10708, #10700)
  • 3.1.0 11 May 2017

    See the announcement post(opens in a new tab).

    Migration guide(opens in a new tab).

    • API
      Adds support for scrollable thumbnail bar. (#7376)
      • API
        Adds PdfActivityConfiguration.Builder#setThumbnailBarMode(ThumbnailBarMode) for selecting thumbnail bar mode.
      • API
        Deprecates PdfActivityConfiguration.Builder#showThumbnailBar and PdfActivityConfiguration.Builder#hideThumbnailBar. Use above method instead.
      • API
        Deprecates PdfActivityConfiguration.Builder#isThumbnailBarEnabled. Use PdfActivityConfiguration.Builder#getThumbnailBarMode() to get the thumbnail bar mode set on the activity.
    • API
      Removes theme configuration classes. Themes should be applied through Android's XML theme support or by directly accessing UI elements. (#7092)
      • API
        PdfConfiguration.Builder() constructors do not need the Context to be provided as a parameter anymore.
      • API
        PdfActivityConfiguration.Builder() secondary constructors do not need the Context to be provided as a parameter anymore.
      • API
        Adds PdfActivity#getActivityMenuManager that exposes PdfActivityMenuManager object, which you can use to control activity menu icons and colors programmatically (theme equivalent is using attributes declared in pspdf__ActionBarIcons and setting it through pspdf__actionBarIconsStyle):
        • API: Adds PdfActivityMenuManager#[set/get]ToolbarIconsColor(), also controlled by pspdf__iconsColor.
      • API
        Adds PdfActivityMenuManager#[set/get]ToolbarIconsColorActivated(), also controlled by pspdf__iconsColorActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]OutlineIcon(), also controlled by pspdf__outlineIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]OutlineIconActivated(), also controlled by pspdf__outlineIconActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]SearchIcon(), also controlled by pspdf__searchIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]SearchIconActivated(), also controlled by pspdf__searchIconActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]ThumbnailGridIcon(), also controlled by pspdf__gridIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]ThumbnailGridIconActivated(), also controlled by pspdf__gridIconActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]EditAnnotationsIcon(), also controlled by pspdf__editAnnotationsIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]EditAnnotationsIconActivated(), also controlled by pspdf__editAnnotationsIconActivated.
      • API
        Adds PdfActivityMenuManager#[set/get]ShareIcon(), also controlled by pspdf__shareIcon.
      • API
        Adds PdfActivityMenuManager#[set/get]PrintIcon(), also controlled by pspdf__printIcon.
    • API
      Removes DocumentThemeConfiguration, uses attributes from pspdf__SearchResultHighlighter attribute set (specified by theme attribute pspdf__searchResultHighlighterStyle) along with added methods:
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultBackgroundColor(), also controlled by pspdf__searchResultBackgroundColor.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultBorderColor(), also controlled by pspdf__searchResultBorderColor.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultBorderWidth(), also controlled by pspdf__searchResultBorderWidth.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultPadding(), also controlled by pspdf__searchResultPadding.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultAnnotationPadding(), also controlled by pspdf__searchResultAnnotationPadding.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultAnimationPadding(), also controlled by pspdf__searchResultAnimationPadding.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultCornerRadiusToHeightRatio(), also controlled by pspdf__searchResultCornerRadiusToHeightRatio.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultCornerRadiusMin(), also controlled by pspdf__searchResultCornerRadiusMin.
      • API
        Adds SearchResultHighlighter#[set/get]SearchResultCornerRadiusMax(), also controlled by pspdf__searchResultCornerRadiusMax.
    • API
      Removes ThumbnailBarThemeConfiguration:
      • API
        For default static thumbnail bar, uses attributes from pspdf__ThumbnailBar attribute set (specified by theme attribute pspdf__thumbnailBarStyle).
      • API
        For scrollable thumbnail bar, uses attributes from pspdf__ScrollableThumbnailBar attribute set (specified by theme attribute pspdf__scrollableThumbnailBarStyle).
      • API
        Adds PdfThumbnailBar#[set/get]BackgroundColor().
      • API
        Adds PdfThumbnailBar#[set/get]ThumbnailWidth().
      • API
        Adds PdfThumbnailBar#[set/get]ThumbnailHeight().
      • API
        Adds PdfThumbnailBar#[set/get]ThumbnailBorderColor().
      • API
        Adds PdfThumbnailBar#[set/get]SelectedThumbnailBorderColor().
    • API
      Adds PdfFragment#[set/get]BackgroundColor() for setting a background color on the fragment (extracted from DocumentThemeConfiguration), also configurable in the theme under the pspdf__backgroundColor attribute.
    • API
      Adds PdfFragment#setPasswordView(PdfPasswordView) and PdfFragment#getPasswordView() methods for controlling PdfPasswordView set on the fragment.
    • API
      Removes PasswordViewThemeConfiguration, uses attributes from pspdf__PasswordView attribute set (specified by theme attribute pspdf__passwordViewStyle) along with added methods:
      • API
        Adds PdfPasswordView#[set/get]Color(), also controlled by pspdf__color.
      • API
        Adds PdfPasswordView#[set/get]HintColor(), also controlled by pspdf__hintColor.
      • API
        Adds PdfPasswordView#[set/get]ErrorColor(), also controlled by pspdf__errorColor.
      • API
        Adds PdfPasswordView#[set/get]FloatingHintColor(), also controlled by pspdf__floatingHintColor.
      • API
        Adds PdfPasswordView#[set/get]IconResourceId(), also controlled by pspdf__icon.
      • API
        Adds PdfPasswordView#[set/is]IconTintingEnabled(), also controlled by pspdf__iconTintingEnabled.
    • API
      Removes InlineSearchThemeConfiguration, uses attributes from pspdf__SearchViewInline attribute set (specified by theme attribute pspdf__inlineSearchStyle) along with added methods:
      • API
        Adds PdfSearchViewInline#[set/get]TextColor(), also controlled by pspdf__textColor.
      • API
        Adds PdfSearchViewInline#[set/get]HintTextColor(), also controlled by pspdf__hintTextColor.
      • API
        Adds PdfSearchViewInline#[set/get]NavigationTextColor(), also controlled by pspdf__navigationTextColor.
      • API
        Adds PdfSearchViewInline#[set/get]PrevIconColorTint(), also controlled by pspdf__prevIconColorTint.
      • API
        Adds PdfSearchViewInline#[set/get]NextIconColorTint(), also controlled by pspdf__nextIconColorTint.
      • API
        Adds PdfSearchViewInline#[set/get]BackIconColorTint(), also controlled by pspdf__backIconColorTint.
      • API
        Adds PdfSearchViewInline#[set/get]PrevIcon(), also controlled by pspdf__prevIconDrawable.
      • API
        Adds PdfSearchViewInline#[set/get]NextIcon(), also controlled by pspdf__nextIconDrawable.
    • API
      Removes ModularSearchThemeConfiguration, uses attributes from pspdf__SearchViewModular attribute set (specified by theme attribute pspdf__modularSearchStyle) along with added methods:
      • API
        Adds PdfSearchViewModular#[set/get]BackgroundColor(), also controlled by pspdf__backgroundColor.
      • API
        Adds PdfSearchViewModular#[set/get]InputFieldTextColor(), also controlled by pspdf__inputFieldTextColor.
      • API
        Adds PdfSearchViewModular#[set/get]InputFieldHintColor(), also controlled by pspdf__inputFieldHintColor.
      • API
        Adds PdfSearchViewModular#[set/get]SeparatorColor(), also controlled by pspdf__separatorColor.
      • API
        Adds PdfSearchViewModular#[set/get]ListItemBackgroundColor(), also controlled by pspdf__listItemBackgroundColor.
      • API
        Adds PdfSearchViewModular#[set/get]ListItemTitleColor(), also controlled by pspdf__listItemTitleColor.
      • API
        Adds PdfSearchViewModular#[set/get]ListItemSubtitleColor(), also controlled by pspdf__listItemSubtitleColor.
      • API
        Adds PdfSearchViewModular#[set/get]ListSelector(), also controlled by pspdf__listItemSelector.
      • API
        Adds PdfSearchViewModular#[set/get]HighlightBackgroundColor(), also controlled by pspdf__highlightBackgroundColor.
      • API
        Adds PdfSearchViewModular#[set/get]HighlightBorderColor(), also controlled by pspdf__highlightBorderColor.
      • API
        Adds PdfSearchViewModular#[set/get]HighlightTextColor(), also controlled by pspdf__highlightTextColor.
    • API
      Removes OutlineViewThemeConfiguration, uses attributes from pspdf__OutlineView attribute set (specified by theme attribute pspdf__outlineViewStyle) along with added methods:
      • API
        Adds PdfOutlineView#[set/get]BackgroundColor(), also controlled by pspdf__backgroundColor.
      • API
        Adds PdfOutlineView#[set/get]ListSelector(), also controlled by pspdf__listItemSelector.
      • API
        Adds PdfOutlineView#[set/get]DefaultTextColor(), also controlled by pspdf__defaultTextColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksBarBackgroundColor(), also controlled by pspdf__bookmarksBarBackgroundColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksBarIconColor(), also controlled by pspdf__bookmarksBarIconColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksAddIcon(), also controlled by pspdf__bookmarksAddIcon.
      • API
        Adds PdfOutlineView#[set/get]BookmarksEditIcon(), also controlled by pspdf__bookmarksEditIcon.
      • API
        Adds PdfOutlineView#[set/get]BookmarksDoneIcon(), also controlled by pspdf__bookmarksDoneIcon.
      • API
        Adds PdfOutlineView#[set/get]GroupIndicatorIconColor(), also controlled by pspdf__bookmarksGroupIndicatorIconColor.
      • API
        Adds PdfOutlineView#[set/get]TabIndicatorColor(), also controlled by pspdf__tabIndicatorColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksDeleteIcon(), also controlled by pspdf__bookmarksDeleteIcon.
      • API
        Adds PdfOutlineView#[set/get]BookmarksDeleteIconColor(), also controlled by pspdf__bookmarksDeleteIconColor.
      • API
        Adds PdfOutlineView#[set/get]BookmarksDeleteBackgroundColor(), also controlled by pspdf__bookmarksDeleteBackgroundColor.
    • API
      Removes ThumbnailGridThemeConfiguration, uses attributes from pspdf__ThumbnailGrid attribute set (specified by theme attribute pspdf__thumbnailGridStyle) along with added methods:
      • API
        Adds PdfThumbnailGrid#[set/get]BackgroundColor(), also controlled by pspdf__backgroundColor.
      • API
        Adds PdfThumbnailGrid#[set/get]ItemLabelTextStyle(), also controlled by pspdf__itemLabelTextStyle.
      • API
        Adds PdfThumbnailGrid#[set/get]ItemLabelBackground(), also controlled by pspdf__itemLabelBackground.
    • API
      Adds setters and getters for UI properties on FormEditingBar, uses attributes from pspdf__FormEditingBar attribute set (specified by theme attribute pspdf__formEditingBarStyle) along with added methods:
      • API
        Adds FormEditingBar#[set/get]IconsColor, also controlled by pspdf__iconsColor.
      • API
        Adds FormEditingBar#[set/get]BackgroundColor, also controlled by pspdf__backgroundColor.
      • API
        Adds FormEditingBar#[set/get]TextColor, also controlled by pspdf__textColor.
      • API
        Adds FormEditingBar#[set/get]PrevIcon, also controlled by pspdf__prevIconDrawable.
      • API
        Adds FormEditingBar#[set/get]NextIcon, also controlled by pspdf__nextIconDrawable.
    • API
      Removes FormEditingConfiguration, use attributes from pspdf__FormSelection attribute set (specified by theme attribute pspdf__formSelectionStyle) to configure UI:
      • API
        Adds enableFormEditing() and disableFormEditing() to the PdfConfiguration and PdfActivityConfiguration builders (pulled out of FormEditingConfiguration)
    • API
      Removes AnnotationEditingConfiguration, use attributes from pspdf__AnnotationSelection attribute set (specified by theme attribute pspdf__annotationSelectionStyle) to configure UI. Other methods are extracted to PdfConfiguration.Builder() and PdfActivityConfiguration.Builder():
      • API
        Adds Pdf[Activity]Configuration.Builder#disableAnnotationEditing().
      • API
        Adds Pdf[Activity]Configuration.Builder#enableAnnotationEditing().
      • API
        Adds Pdf[Activity]Configuration.Builder#editableAnnotationTypes().
      • API
        Adds Pdf[Activity]Configuration.Builder#enabledAnnotationTools().
      • API
        Adds Pdf[Activity]Configuration.Builder#setSelectedAnnotationResizeEnabled().
      • API
        Adds Pdf[Activity]Configuration.Builder#setSelectedAnnotationResizeGuidesEnabled().
      • API
        Adds Pdf[Activity]Configuration.Builder#setResizeGuideSnapAllowance().
      • API
        Adds Pdf[Activity]Configuration.Builder#setResizeGuideLineIntervals().
      • API
        Adds Pdf[Activity]Configuration.Builder#setAnnotationInspectorEnabled().
      • API
        Adds Pdf[Activity]Configuration.Builder#setSignatureSavingEnabled().
      • API
        Adds Pdf[Activity]Configuration.Builder#setCustomerSignatureFeatureEnabled().
    • API
      Removes deprecated defaultAnnotationCreator() method from AnnotationEditingConfiguration#Builder, use PSPDFKitPreferences#setAnnotationCreator(String) to set annotation creator name.
    • API
      Removes AnnotationRenderConfiguration, use attributes from pspdf__Annotation attribute set (specified by theme attribute pspdf__annotationStyle) to configure UI. Other methods are extracted to PdfConfiguration.Builder() and PdfActivityConfiguration.Builder():
      • API
        Adds Pdf[Activity]Configuration.Builder#excludedAnnotationTypes().
  • Adds annotation indexing capabilities to PdfLibrary. (#9235)
    • API
      Adds IndexingOptions and PdfLibrary#enqueueDocuments(documents, indexingOptions) overloads which allow to disable annotation or document text indexing.
    • API
      Adds QueryOptions.Builder#ignoreAnnotations() and QueryOptions.Builder#ignoreDocumentText()
    • API
      Renames QueryOptions methods: isMatchExactPhrases to shouldMatchExactPhrases, isMatchExactWords to shouldMatchExactWords, and generateTextPreviews to shouldGenerateTextPreviews.
    • Changed
      Updates IndexedFullTextSearchExample in the catalog app, to showcase new query options.
    • Added
      Adds enqueueDocumentSources and enqueueDocumentSourcesWithMetadata to PdfLibrary to allow indexing documents without opening them first. This fixes OOM issues when indexing large amount of PDF documents.
  • Adds support for the NeedAppearances form flag. (#10288)
  • Adds the ability to modify document PDF and XMP metadata. (#10494)
    • API
      Adds set(), get(), setInXmp() and getInXmp() methods to DocumentMetadata class.
    • Changed
      DocumentMetadata object isn't parcelable anymore.
    • Changed
      PdfProcessorTask#withMetadata() now accepts HashMap<String,String> instead of DocumentMetadata class.
  • Adds AesDataProvider and AesEncryptedFileExample to catalog app. (#10230)
  • Deprecates MemoryDataProvider. (#10451)
  • Improves reliability of reading from data providers. (#10382)
  • Fixes missing PdfActivity documentation. (#10300)
  • Fixes page not being properly settled on startup until the first touch. (#10155)
  • Fixes wrong view state being restored in double page mode and single page document. (#10157)
  • Fixes an issue where red border was rendered around required form fields even when form editing was disabled. (#10331)
  • Fixes failed manifest verification if DocumentSharingProvider class was renamed. (#10174)
  • Fixes a unhandled NullPointerException thrown while initializing documents forms. (#10418)
  • Fixes a runtime failure occurring due to framework initialization process not being properly synced. (#10309)
  • Fixes an issue where circle and square annotations grown in size when drawing while zoomed in. (#10347)
  • Fixes an issue that could result in a very long running loop when rendering PDF documents with broken dashed lines. (#9764)
  • 3.0.0 12 Apr 2017

    See the announcement post(opens in a new tab).

    Migration guide(opens in a new tab).

    • API
      Update RxJava to 2.0.8 and RxAndroid to 2.0.1. (#9254)
      • Changed
        All public facing methods are now using the new RxJava 2 types Observable, Flowable, Single, Completable.
      • Changed
        For a comprehensive overview of the changes in RxJava 2, please have a look at the official RxJava 2 documentation(opens in a new tab).
    • API
      Removes license from the configuration files, the framework is now implicitly initialized using <meta-data> tag in your AndroidManifest.xml. More information in the guides. (#9791)
      • API
        Adds PSPDFKit#setApplicationPolicy() which is now a preferred way of changing application policy instead of re-initializing the whole framework.
      • API
        Removes deprecated PSPDFActivityConfiguration.Builder#activity(). Target activity is now set through PdfActivityIntentBuilder#activityClass() with extras being added to the intent created with PdfActivityIntentBuilder#build().
    • API
      Adds support for programmatic forms filling. (#9656)
      • API
        Adds FormsProvider class for handling all forms related operations. It can be retrieved by calling PSPDFDocument#getFormsProvider().
      • API
        Adds FormField class representing the single field in an interactive form.
      • API
        Adds FormElement class representing visible form control. Each FormElement has exactly one parent FormField. Each FormField can have multiple child FormElement (for example radio button group is a FormField, while each radio button in a group is a FormElement).
    • API
      Moves PSPDFKit#openDocument, PSPDFKit#openDocuments and PSPDFKit#openDocumentAsync calls to PdfDocument class. (#5330)
      • Changed
        Drops several of more complex overloads in favor of passing document information with DocumentSource parameter.
    • API
      Moves and renames PSPDFKit#invalidateDocumentCache to PdfDocument#invalidateCache and PSPDFKit#invalidatePageCache to PdfDocument#invalidateCacheForPage. (#5330)
    • API
      PSPDFActivity renamed to PdfActivity. (#9680)
      • API
        Replaces PSPDFActivity.IntentBuilder() with PdfActivityIntentBuilder that is used creating an intent for starting PdfActivity instance.
      • API
        Removes PSPDFActivity#showDocument() for creating documents from multiple sources and just keeps the simpler ones, use PdfActivityIntentBuilder for full control over the document opening process.
      • API
        Removes deprecated PSPDFActivity#onToggleActionbarVisibility().
      • API
        PSPDFActivity#setDocument() methods have been renamed to specific ones depending on the parameters, so setDocumentFromUri(), setDocumentFromUris(), setDocumentFromDataSource(), setDocumentFromDataSources().
      • API
        Removes methods for explicitly removing single listeners from PdfActivity, use setXYListener(null).
    • API
      Drops PSPDF prefix for several classes: (#6520)
      • Changed
        PSPDFActivity to PdfActivity.
      • Changed
        PSPDFDocument to PdfDocument, PSPDFDocumentMetadata to DocumentMetadata, PDFVersion to PdfVersion.
      • Changed
        PSPDFFragment to PdfFragment.
      • Changed
        PSPDFPreferences to PSPDFKitPreferences.
      • Changed
        PSPDFTextBlock to TextBlock.
      • Changed
        PSPDFLibrary to PdfLibrary.
      • Changed
        PSPDFAnnotationManager to AnnotationManager.
      • Changed
        PSPDFProcessor to PdfProcessor, PSPDFProcessorTask to PdfProcessorTask, PSPDFProcesorException to PdfProcessorException.
      • Changed
        PSPDFSearchOptions to SearchOptions, PSPDFSearchResult to SearchResult, PSPDFTextSearch to TextSearch.
      • Changed
        PSPDFException to PSDPDFKitException.
      • Changed
        PSPDFNotInitializedException to PSPDFKitNotInitializedException, PSPDFInitializationFailedException to InitializationFailedException.
      • Changed
        PSPDFInvalidLayoutException to InvalidLayoutException, PSPDFInvalidLayoutException to InvalidLayoutException, PSPDFInvalidPasswordException to InvalidPasswordException.
      • Changed
        PSPDFInvalidSignatureException to InvalidSignatureException, PSPDFMissingDependencyException to MissingDependencyException.
      • Changed
        PSPDFYouTubeActivity to PdfYouTubeActivity.
      • Changed
        PSPDFDrawableManager to PdfDrawableManager, PSPDFDrawableProvider to PdfDrawableProvider, PSPDFDrawable to PdfDrawable.
      • Changed
        PSPDFOutlineView to PdfOutlineView, PSPDFThumbnailBar to PdfThumbnailBar, PSPDFThumbnailGrid to PdfThumbnailGrid.
      • Changed
        PSPDFSearchView to PdfSearchView.
      • Changed
        PSPDFViews to PSPDFKitViews and PdfActivity#getPSPDFViews() to PdfActivity#getPSPDFKitViews().
    • API
      PSPDFActivityConfiguration renamed to PdfActivityConfiguration (#10131)
    • API
      PSPDFConfiguration renamed to PdfConfiguration (#10131)
    • API
      Changes how colors are modeled on free text annotations to be consistent with how these properties are shown in the inspector.
      • Removed
        Removes FreeTextAnnotation#getTextColor() and FreeTextAnnotation#setTextColor().
      • Changed
        Changes FreeTextAnnotation#getColor() and FreeTextAnnotation#setColor() to get and set the text color instead of the fill color.
      • Changed
        Changes FreeTextAnnotation#getFillColor() and FreeTextAnnotation#setFillColor() to get and set the fill color instead of doing nothing.
    • API
      Removes deprecated method PSPDFActivityConfiguration.Builder#printingEnabled(), use PdfActivityConfiguration#enablePrinting() and PdfActivityConfiguration#disablePrinting() instead.
    • API
      Adds StampAnnotation#setBitmap() for re-setting an image on StampAnnotation. (#9803)
    • API
      Adds setFormMappingNameMappings() and setFormFieldNameMappings() call to PSPDFProcessorTask to allow renaming of form fields.
    • API
      Camel case syntax refactorings ():
      • API
        PDFUtils to PdfUtils along with method createPDFRectUnion() to createPdfRectUnion().
      • API
        PagePDF to PagePdf.
      • API
        PDFBox to PdfBox.
      • API
        URIAction to UriAction.
      • API
        HUDViewMode to HudViewMode.
      • API
        PSPDFDocumentEditor to PdfDocumentEditor.
      • API
        PSPDFDocumentEditorListener to PdfDocumentEditorListener.
      • API
        PSPDFDocumentEditorListenerCallbacks to PdfDocumentEditorListenerCallbacks.
      • API
        In PdfFragment:
        • API: convertViewRectToPDFRect() to convertViewRectToPdfRect()
      • API
        convertPDFRectToViewRect() to convertPdfRectToViewRect()
      • API
        convertViewPointToPDFPoint() to convertViewPointToPdfPoint()
      • API
        convertPDFPointToViewPoint() to convertPdfPointToViewPoint()
      • API
        getVisiblePDFRect() to getVisiblePdfRect()
  • Adds support for interactive forms. (#2939)
    • API
      Adds PSPDFFragment#registerFormElementSelectedListener for listening to form element selection.
    • API
      Adds PSPDFFragment#registerFormElementDeselectedListener for listening to form element deselection.
    • API
      Adds PSPDFFragment#registerFormElementUpdatedListener for listening to form element updates.
    • API
      Adds PSPDFFragment#setSelectedFormElement for selecting form element and PSPDFFragment#getSelectedFormElement for getting selected form element.
    • API
      Adds FormEditingConfiguration that can be used to control form editing configuration.
  • Adds support for filling text form fields. (#8984)
  • Adds support for filling list and combo box fields. (#8986)
  • Adds support for keyboard shortcuts when editing forms. (#8987)
  • Adds FormEditingBar that helps with form filling. (#9978)
  • Adds support for changing configuration at runtime. (#2966)
    • Added
      Adds setConfiguration to PdfActivity to change PdfActivityConfiguration at runtime.
    • Changed
      Allow creation of PdfActivityConfiguration.Builder and PdfConfiguration.Builder from existing configuration.
    • Added
      Adds DynamicConfigurationExample showcasing how to modify PdfActivity configuration at runtime.
    • Added
      Adds CustomFragmentDynamicConfigurationExample showcasing how to modify PSPDFFragment configuration at runtime when used with custom activity.
  • Adds support for HideAction and ResetFormAction. (#9971)
  • Adds getState and setState methods to PdfFragment for saving and restoring fragment state. (#9605)
  • Adds a feature for saving internal UI Context when possible. (#7260)
  • Improves stream handling in DocumentDownloadExample. (#10161)
  • Improves PdfLibrary search when using FTS5. (#10018)
  • Improves memory usage. (#10082)
  • Improves stability in low memory situations. (#10086)
  • Fixes symbol characters being used for rendering text in certain situations. (#9878)
  • Fixes an issue where autocorrection didn't work for edited free text annotations. (#9887)
  • Fixes an issue with error handling when enqueuing a print job was not successful. (#9913)
  • Fixes full text search results returning incorrect results when an unmatched quote character is included in the search string. (#9831)
  • Fixes an issue where view state could not be restored correctly in some cases when using continuous scrolling mode. (#9682)
  • Fixes an issue where the page is not settled after the keyboard is dismissed or the screen size changes. (#9793)
  • Fixes an issue where incorrect page is restored in double page mode. (#9683)
  • Fixes memory leak when form field is selected. (#10124)
  • 2.9.4 22 Mar 2017

    • Changed
      Updates dependencies - RxJava to 1.2.7 and support libraries to 25.3.0.
    • API
      Introduces PSPDFPreferences to read and write global framework preferences. (#7300)
      • API
        Deprecates AnnotationEditingConfiguration.defaultAnnotationCreator. Use PSPDFPreferences.setAnnotationCreator to configure the annotation creator name.
    • API
      Introduces AnnotationPreferences to access and change the annotation creator name. (#7300)
      • Added
        Adds AnnotationEditingConfiguration.annotationCreator to set the default creator name or override the stored one.
      • Removed
        Deprecates AnnotationEditingConfiguration.defaultAnnotationCreator. Use above method instead.
    • API
      DocumentListener#onDocumentSaveFailed(Throwable) is now changed to onDocumentSaveFailed(PSPDFDocument, Throwable) providing the document for which the saving failed. (#9817)
    • Added
      Adds helpers for changing screen timeout through PSPDFActivity#setScreenTimeout(long). (#8527)
    • Fixed
      Fixes an issue where failing to save the document would not clear the cache thus keeping the incorrect document cached.
    • Fixed
      Fixes an issue where document pages had incorrect height when using vertical paginated scrolling. (#9671)
    • Fixed
      Fixes an issue where click events on link annotation where not properly handled. (#9772)
    • Fixed
      Fixes an issue where dragging an annotation using the long-press gesture would not work if another annotation was currently selected. (#9786)
    • Fixed
      Fixes incorrect continuous mode scrolling to the rect that's on the different page than the current one. (#9664)
    • Fixed
      Fixes an issue where document saving would fail when only permissions were protected by a document password. (#9623)
    • Fixed
      Fixes an issue where thumbnail bar wasn't hidden when showing soft keyboard after the document has been edited. (#9806)
    • Fixed
      Fixes an issue where NewPageDialog wasn't calling the onDialogCancelled listener when being dismissed via back button or touch event. (#9820)
    • Fixed
      Fixes an issue where thumbnails in the thumbnail grid would be stuck, when quickly starting to scroll after the grid became visible. (#9821)
    • Fixed
      Fixes an issue where clicking on the annotation would not invoke DocumentListener#onPageClick() listener. (#9815)
    • Fixed
      Fixes an issue where document editing from unsupported sources was not consistent. (#7656)
    • Fixed
      Fixes incorrect animations in outline list when expanding or collapsing an outline on Android API 17 and lower. (#9899)
    • Fixed
      Fixes a issue on incrementally saving using a data provider. (#9410)

    2.9.3 28 Feb 2017

    • Added
      Adds keyboard navigation using left/right keys. (#9370)
    • Changed
      Changes the note annotation creation flow. (#9645)
      • Changed
        It is now possible to create empty note annotation using the note annotation editor.
      • Added
        Newly created note annotations are now automatically selected.
    • Fixed
      Fixes an issue where navigation bar got transparent when returning from multi-window mode. (#9530)
    • Fixed
      Fixes an issue where toolbar layout could get broken because it was incorrectly allowed to be vertical on certain screen sizes. (#9488)
    • Fixed
      Fixes an issue where document title view could get hidden behind action bar when switching to multi-window mode. (#9545)
    • Fixed
      Fixes an issue where deselecting an annotation tapping on the document background was hiding the user interface. (#9550)
    • Fixed
      Fixes incorrect animation in annotation inspector when showing soft keyboard. (#9527)
    • Fixed
      Fixes possible NullPointerException in the catalog example. (#9561)
    • Fixed
      Fixes an issue where setting double page mode in combination with continuous scroll doesn't properly fall back to single page layout mode in the thumbnail bar. (#9567)
    • Fixed
      Fixes an issue where PSPDFActivity would hide the thumbnail bar on devices with high density screens. (#9597)
    • Fixed
      Fixes double page mode scrolling being broken in some cases (inline search results navigation, state restoration, etc.) (#9626)
    • Fixed
      Fixes an issue where using the soft keyboard in password view in immersive mode would result in wrongly rendered UI below translucent navigation bar. (#9658)

    2.9.2 14 Feb 2017

    • Changed
      Updates dependencies - Support libraries to 25.1.1, RxJava to 1.2.6.
    • Added
      Adds support for annotation flags in Annotation class and user interface. (#6939)
      • Added
        Adds support for HIDDEN flag. If set, do not display or print the annotation and prevent annotation editing.
      • Added
        Adds support for PRINT flag. Annotation is printed only when this flag is set.
      • Added
        Adds support for NOVIEW flag. If set, do not display the annotation and prevent annotation editing. However, printing is still allowed when PRINT flag is set.
      • Added
        Adds support for READONLY flag. If set, prevent annotation editing.
      • Added
        Adds support for LOCKED flag. If set, annotation can't be deleted, dragged or resized.
      • Added
        Adds support for LOCKEDCONTENTS flag. If set, annotation contents can't be changed.
    • Added
      Adds an API to manipulate user interface visibility in PSPDFActivity. (#8348)
      • Added
        Adds showUserInterface to show user interface controls.
      • Added
        Adds hideUserInterface to hide user interface controls.
      • Added
        Adds toggleUserInterface to toggle user interface visibility.
      • Added
        Adds setUserInterfaceVisible to force show/hide user interface with or without animation.
      • Added
        Adds isUserInterfaceVisible to query user interface visibility.
      • Added
        Adds PSPDFActivity.onUserInterfaceVisibilityChanged to listen to user interface visibility changes.
      • Removed
        Deprecates Commands.ToggleSystemBars. Use above methods instead.
      • Removed
        Deprecates PSPDFActivity.onToggleActionbarVisibility.
    • Added
      Adds ToolbarCoordinatorLayout.OnContextualToolbarPositionListener that listens for toolbar position within the ToolbarCoordinatorLayout, set through PSPDFActivity#setOnContextualToolbarPositionListener(listener). (#9212)
    • Added
      Adds ContextualToolbar#isDraggable to query whether contextual toolbar is currently draggable. (#9212)
    • Changed
      Improves search highlighter and search navigation. (#8327)
    • Changed
      Hides HUD when creating annotations and annotation toolbar is in vertical position. (#9212)
      • Added
        Adds hideHudWhenCreatingAnnotations to PSPDFActivityConfiguration to control this behavior.
    • Changed
      Disables immersive mode when running in multi-window mode. (#9491)
    • Fixed
      Fixes an issue where it wasn't possible to draw annotations under system bars. (#9220)
    • Fixed
      Fixes an issue causing the thumbnail grid to crash certain devices when opened in landscape orientation. (#9433)
    • Fixed
      Fixes a possible resource leak that caused warnings in strict mode during library initialization. (#9405)
    • Fixed
      Fixes an issue where tapping while scrolling in paginated mode makes scrolling stuck between pages. (#7971)
    • Fixed
      Fixes an issue where scrolling gets stuck after snapping back from zoom-out action. (#9380)
    • Fixed
      Fixes an issue where wrong document insets were calculated when showing keyboard in multi-window mode. (#9487)
    • Fixed
      Fixes an issue where PSPDFThumbnailBar would throw an exception when switching from double-page mode back to single-page mode. (#9490)
    • Fixed
      Fixes a crash in PSPDFThumbnailBar when number of pages drops under 2. (#9352)
    • Fixed
      Fixes an UI bug where drag button doesn't reappear on the toolbar once the keyboard is hidden and there's enough room for it to move. (#9322)

    2.9.1 31 Jan 2017

    • Added
      Adds a feature to search the outline, showing also parent sections. (#9101, #9215)
    • Fixed
      Fixes a crash when opening single-paged documents in double page mode. (#9269)
    • Fixed
      Fixes an issue where DocumentListener save callbacks sometimes weren't called after PSPDFFragment was detached. (#9319)
    • Fixed
      Fixes an issue where FTS 5 PSPDFLibrary searches with only whitespace failed to execute. (#9271)
    • Fixed
      Fixes an issue where ImagePickerFragment was not asking for camera permission when required. (#9231)
    • Fixed
      Fixes an issue where it was possible to enter emojis in custom stamps text. (#9227)
    • Fixed
      Fixes an issue where FAB was not hidden when CustomStampCreatorLayout was loaded for the first time. (#9229)
    • Fixed
      Fixes an UI bug where annotation toolbar submenu overflows the main toolbar. (#8970)
    • Fixed
      Fixes an issue where PSPDFDocument#wasModified returned false if only bookmarks were modified. (#9320)
    • Fixed
      Fixes an issue where search button in catalog app could be lost after searching. (#9344)
    • Fixed
      Fixes an issue where PSPDFActivity was using wrong insets when running immersively in multi-window mode. (#9321)

    2.9.0 25 Jan 2017

    See the announcement post(opens in a new tab).

    • Fixed
      Fixes a security issue where DocumentSharingProvider could expose other private application files. (#9136)
    • Added
      Adds paginated double page layout for browsing documents. (#5670)
      • Added
        Adds PageLayoutMode which is set through PSPDFConfiguration and has values AUTO, SINGLE, DOUBLE. AUTO mode will display double page layout on larger devices in landscape, and single page layout on all other.
      • Added
        Adds firstPageAlwaysSingle property to the PSPDFConfiguration that controls whether to keep first page as a cover and display it as a single, or include it in double page mode.
      • Added
        Adds showGapBetweenPages property to the PSPDFConfiguration that controls whether there should be gap between sibling pages or if they should be touching each other.
    • Added
      Adds support for styling modal dialogs used across the framework. (#7970)
      • Changed
        Make sure that AlertDialogs use theme specified in alertDialogTheme theme attribute.
      • Added
        Adds pspdf__modalDialogStyle theme attribute for styling common properties of custom modal dialogs - share/print options dialog, Annotation inspector, Action menus, Stamp and Signature pickers, New page dialog.
      • Added
        Adds pspdf__sharingdialogStyle theme attribute for styling share/print options dialog.
      • Added
        Adds pspdf__newPageDialogStyle theme attribute for styling new page dialog in document editor.
      • Added
        Adds pspdf__stampPickerStyle theme attribute for styling stamp picker.
      • Added
        Adds pspdf__actionMenuStyle theme attribute for styling action menus.
    • Added
      Adds LocalizationListener interface used to override built-in UI strings programatically. (#5187)
    • Added
      Adds an API for using existing signature picker in custom UI. (#9081)
      • Added
        Adds Signature representing single signature.
      • Added
        Adds SignaturePickerFragment encapsulating signature picker flow and signature storage handling.
      • Added
        Adds CustomInkSignatureExample to catalog app showcasing how to use this API to integrate signature picker in custom activity that is using PSPDFFragment.
    • Added
      Adds PSPDFFragment#addAnnotationToPage() which simplifies adding annotations to page. (#9081)
    • Added
      Adds support for free-text annotations fill color. (#9020)
    • Added
      Adds getHudViewMode() method to PSPDFActivity for querying currently used HUD view mode. (#9100)
    • Added
      Adds setRotation and getRotation properties to PageImage object to allow rotation of images when using the PSPDFProcessor. (#9096)
    • Added
      Adds a usage example of PSPDFThumbnailGrid to the CustomFragmentActivity of the FragmentExample inside the catalog app. (#9133)
    • Added
      Adds size and getIndexedUIDs method calls to PSPDFLibrary. (#9192)
    • Added
      Adds LibraryIndexingListener and registerLibraryIndexingListener/unregisterLibraryIndexingListener to PSPDFLibrary. (#9192)
    • Added
      Adds support for FTS5 to PSPDFLibrary, when available. Note that this upgrade will require all documents to be reindexed. (#9026)
    • Added
      Adds enabledAnnotationTools to AnnotationEditingConfiguration.Builder for controlling which annotation tools are enabled when creating annotations. (#8201)
    • Added
      Adds a new PSPDFFragment#newInstance method which accepts an already opened PSPDFDocument as a parameter. (#8199)
    • Added
      Adds setting to prevent copying of selected text, see CustomApplicationPolicyExample from the catalog app. (#8728)
    • Changed
      Renames AnnotationCreationMode enum to AnnotationTool. (#9119)
      • Changed
        Renames getActiveAnnotationCreationMode in AnnotationCreationController to getActiveAnnotationTool.
      • Removed
        Removes deprecated methods getCurrentlyEditedAnnotationType and changeAnnotationCreationMode in AnnotationCreationController.
      • Changed
        Changes Analytics.Data#ANNOTATION_CREATION_MODE constant to ANNOTATION_TOOL.
    • Changed
      Changes default search result limit of library searches to 500. Use maximumSearchResultsTotal() and maximumPreviewResultsTotal() methods in QueryOptions to change this. (#9131)
    • Changed
      Improves custom stamps creation API. (#8571, Z#4917)
      • Added
        Adds fromBitmap, fromPredefinedType and fromSubject to StampPickerItem to access builders for creating custom stamps.
      • Removed
        Removes create* methods from StampPickerItem and StampAnnotationDefaultsProvider.
      • Changed
        Moves StampPickerItem and PredefinedStampType to com.pspdfkit.annotations.stamps package.
    • Changed
      DownloadJob now executes ProgressListener callbacks on the main thread. (#9162)
    • Changed
      DocumentPrintManager is now a singleton and not a static class anymore. Retrieve the instance with the get() method. (#9179)
    • Changed
      Improves performance of library indexing and preview snippet generation. (#9131)
    • Fixed
      Fixes an issue where it wasn't possible to scroll to parts of the document that were hidden under system bars when using HUD_VIEW_MODE_VISIBLE in PSPDFActivity. (#9078)
    • Fixed
      Fixes an issue when adding JPEG images to pages with PSPDFProcessor would load them all into memory and cause OutOfMemory exceptions. (#9096)
    • Fixed
      Fixes an issue where ink thickness was not recalculated when resizing. (#4808)
    • Fixed
      Fixes an issue where note annotation text was not being processed during searching immediately after creating note annotations. (#8889)
    • Fixed
      Fixes an issue where an outline element which referenced an invalid page index would cause an exception. (#8855)
    • Fixed
      Fixes an issue where back button wasn't visible when showing custom stamp layout on tablets (#8962)
    • Fixed
      Fixes a crash when using custom versions of SQLite 3.11 or higher. (#8967)
    • Fixed
      Fixes an issue where document editor has been closed after a configuration change. (#5979)
    • Fixed
      Fixes an issue where new page dialog stopped working after a configuration change. (#8989)
    • Fixed
      Fixes an issue where document editing toolbar wasn't hidden after leaving document editor. (#8982)
    • Fixed
      Fixes an issue where tapping on document background didn't toggle the HUD. (#8965)
    • Fixed
      Fixes an issue where note annotation editor remained in broken state after restoring application's state. (#9100)
    • Fixed
      Fixes an issue where active text selection was lost after configuration change. (#7366)
    • Fixed
      Fixes an issue where application state could not be restored properly in some cases. (#9099)
    • Fixed
      Fixes an issue where PSPDFThumbnailGrid failed to render images if not properly laid out. (#9134)
    • Fixed
      Fixes an issue where PSPDFThumbnailGrid could not be shown immediately after being hidden. (#9151)
    • Fixed
      Fixes an issue where touch gesture could get handled after the document has been reloaded which could cause a crash. (#9145)
    • Fixed
      Fixes an issue where last letter of a sentence couldn't be highlighted in some cases. (#8751)
    • Fixed
      Fixes an issue where repeatedly highlighting same sentence would make the highlight darker and underlines overlap. (#4913)
    • Fixed
      Fixes an issue where it was possible to create empty custom stamps. (#8969)
    • Fixed
      Fixes an issue where annotation list items were missing icons for certain annotations. (#9206)

    2.8.1 13 Dec 2016

    • Added
      Adds NewPageDialog. (#8759)
      • Added
        Adds NewPageFactory interface and PSPDFThumbnailGrid#setNewPageFactory. The factory returns NewPage instances that are used by the document editor when adding a page.
      • Added
        Adds DialogNewPageFactory for creating new pages using the NewPageDialog. This is the default factory.
      • Added
        Adds ValueNewPageFactory that allows programmatically specifying a single NewPage instances that is used by the document editor.
    • Added
      Adds divider after annotation preview as a visual cue that annotation preview is clipped. (#8827)
    • Added
      Adds support for PropertyInspector#ItemDecoration that can be used to implement custom dividers between inspector views. (#8849)
    • Added
      Adds Slovak language localization. (#8928)
    • Added
      Adds the ability to disable annotations from rendering via PSPDFActivityConfiguration#annotationRenderConfiguration(AnnotationRenderConfiguration), see AnnotationRenderingExample from the catalog app. (#7571)
    • Changed
      Improves grouping of icons in AnnotationCreationToolbar. (#8863)
      • Changed
        Items are now grouped more by the context and not just extracted if enough space (which was leading to strange structures).
      • Changed
        Groups are predefined and can be found in AnnotationCreationToolbarItemPresets.
      • Changed
        Grouping is being done by AnnotationCreationToolbarGroupingRule instead of being directly passed to setMenuItems() - flat list of items is passed now.
    • Changed
      Improves DocumentEditingToolbar by making it draggable and introducing pre-defined item groupings same as for AnnotationCreationToolbar. (#8898)
      • Changed
        Groups are predefined and can be found in DocumentEditingToolbarItemPresets.
      • Changed
        Grouping is being done by DocumentEditingToolbarGroupingRule instead of being directly passed to setMenuItems() - flat list of items is passed now.
      • Changed
        Drag position is saved and the toolbar's default position on the tablet is on the left side.
    • Fixed
      Fixes an issue where AnnotationCreationToolbar single menu items cannot be deselected. (#8852)
    • Fixed
      Fixes an issue with loading invalid annotations. (#8869)
    • Fixed
      Fixes an issue where an invalid page index read from the document store could cause an exception. (#8858)
    • Fixed
      Fixes an issue while garbage collecting PDF objects on saving non-incrementally. (#8901)
    • Fixed
      Fixes an issue where opening note annotation dialog twice at the same time broke UI. (#8854)
    • Fixed
      Fixes thumbnail bar flickering when changing pages. (#4894)
    • Fixed
      Fixes an issue where edit annotation menu item is not selected once the annotation creation mode is activated. (#7513)
      • Added
        Adds pspdf__editAnnotationsIconActivated for specifying custom icon when annotation creation mode is active. This is contained in pspdf__ActionBarIcons style.
      • Changed
        Selected icon color is controlled by pspdf__ActionBarIcons_pspdf__iconsColorActivated style parameter.
    • Changed
      Lets com.pspdfkit.utils.Size implement Parcelable. (#8765)
    • Fixed
      Fixes an exception in UnitSelectionEditText for Arabic devices. (#8738)
    • Fixed
      Fixes an issue where leaving annotation creation mode could lead to an exception. (#8860)
    • Fixed
      Fixes an issue causing an IndexOutOfBoundsException when selecting text on a page. (#8922)
    • Fixed
      Fixes an issue where sharing with WhatsApp triggered an exception. (#8424)

    2.8.0 1 Dec 2016

    See the announcement post(opens in a new tab).

    • Changed
      Updates dependencies - Support libraries to 25.0.1, RxJava to 1.2.3.
    • Added
      Adds automated saving and restoration of the last viewed page in a document (#8744)
      • Added
        Adds PSPDFConfiguration#isLastViewedPageRestorationEnabled and respective setters PSPDFConfiguration.Builder#restoreLastViewedPage and PSPDFActivityConfiguration.Builder#restoreLastViewedPage.
      • Added
        Adds constant PSPDFFragment#DOCUMENTSTORE_KEY_LAST_VIEWED_PAGE_INDEX that is used by the fragment as key for storing the last viewed page index inside the DocumentDataStore of the loaded document.
      • Added
        Adds catalog app setting "Restore last viewed page".
    • Added
      Adds feature to reveal the URL stored inside a link annotation when long-pressing the annotation. (#5558)
    • Added
      Adds support for square and circle annotations. (#8548)
      • Added
        Adds SquareAnnotation and CircleAnnotation classes.
      • Added
        Adds UI to add and edit square and circle annotations on the page.
      • Added
        Adds ShapeAnnotationDefaultsProviderproviding defaults for creating and editing square and circle annotations.
    • Added
      Adds support for polygon and polyline annotations. (#8625)
      • Added
        Adds PolygonAnnotation and PolylineAnnotation classes.
      • Added
        Adds UI to add and edit polygon and polyline annotations on the page.
      • Changed
        Defaults for polygon annotations are provided by ShapeAnnotationDefaultsProvider.
      • Changed
        Defaults for polyline annotations are provided by LineAnnotationDefaultsProvider.
    • Added
      Adds support for storing persistent per-document preferences. (#8638, #8703).
      • Added
        Adds DocumentDataStore public class to access the document preferences.
    • Added
      Adds support for line annotations with filled line ends. (#8455)
    • Added
      Adds support for editing annotation points for line, polygon and polyline annotations. (#8456)
    • Added
      Adds missing setAlpha setter to Annotation class. (#8398)
    • Changed
      Improves the ContextualToolbar so that items are dynamically re-grouped once the size of the toolbar changes. (#8173)
      • Added
        Adds DefaultMenuItemGroupingRule which is an implementation of MenuItemGroupingRule interface. You can use these two to implement your custom grouping of menu items. The DefaultMenuItemGroupingRule is generic and somewhat complex. It's set by calling ContextualToolbar#setMenuItemGroupingRule().
    • Changed
      Improves the positioning of the items in the AnnotationCreationToolbar: annotation menu items are on the left side (top when vertical) and control buttons (close, open color picker and drag) are on the right side (bottom when vertical). (#8615)
    • Changed
      Improves memory handling in low-memory situations and with many open documents. (#8352, #8447)
    • Changed
      Improves performance of decoding JPEG images. (#8712, #8673)
    • Changed
      Improves bookmark handling in Processor and DocumentEditor. (#8091)
    • Changed
      Improves annotation deletion speed. (#8788)
    • Changed
      Improves loading time of large documents lazily loading page sizes, labels and rotations. (#7842)
    • Changed
      Disables resize guides for line annotations. (#8696)
    • Fixed
      Fixes an issue where line annotation ends were being clipped by annotation's bounding box. (#8357)
    • Fixed
      Fixes pixelated ink paths when drawing on zoomed page. (#8696)
    • Fixed
      Fixes an issue where ink/lines could dissappear while drawing in Android 4.1. (#8811)
    • Fixed
      Fixes an issue where annotation selection didn't reflect annotation bounding box changes. (#8696)
    • Fixed
      Fixes an issue where white and transparent colors could not be distinguished from background in annotation inspector. (#8548)
    • Fixed
      Fixes an issue where a page would not be properly refreshed when adding certain annotation types. (#8577)
    • Fixed
      Fixes an issue with opening a PDF with bookmarks in Preview.app. (#8591)
    • Fixed
      Fixes an issue where it wasn't possible to resize image stamps with large aspect ratios. (#8570)
    • Fixed
      Fixes an issue where PSPDFPasswordView would still apply color filters if tinting was deactivated via PasswordViewThemeConfiguration#isIconTintingEnabled. (#8607)
    • Fixed
      Fixes an issue where the toolbar was clipped when animating its visibility in immersive viewing mode. (#8681)
    • Fixed
      Fixes label backgrounds in page grid when the page has a long page label. (#8745)
    • Fixed
      Fixes an issue where markup annotation wasn't updated when changing its color. (#8749)
    • Fixed
      Fixes unnecessary page render when creating annotations. (#8700)
    • Fixed
      Fixes an issue where parceled DataProvider instances were not correctly loaded by PSPDFFragment. (#8743)

    2.7.0 7 Nov 2016

    See the announcement post(opens in a new tab).

    • Changed
      Updates dependencies - Support libraries to 25.0.0, RxJava to 1.2.2.
    • Changed
      Updates target to 25 - Android Nougat 7.1.
    • Added
      Adds full support for Android Nougat multi-window mode.
    • Added
      Adds support for signatures. (#6582)
      • Added
        Adds UI for adding, selecting and deleting signatures, which are then added to the page as ink annotations.
      • Added
        Adds two modes for handling signature annotations: "My Signature" (stores added signatures) and "Customer Signature" (one time signature).
      • Added
        Adds setCustomerSignatureFeatureEnabled(boolean) and setSignatureSavingEnabled(boolean) to AnnotationEditingConfiguration.Builder for configuring previously mentioned modes.
      • Added
        Adds pspdf__signatureLayoutStyle attribute for styling the signature dialog.
    • Added
      Adds support for line annotations. (#8339)
      • Added
        Adds LineAnnotation class.
      • Added
        Adds UI to add and edit line annotations on the page.
      • Added
        Adds LineAnnotationDefaultsProvider providing defaults for creating and editing line annotations.
    • Added
      Adds setBorderColor, setBorderWidth, setBorderStyle and setBorderDashArray (and getters) to Annotation class. (#8301)
    • Added
      Adds support for stamps with images captured from camera. (#8218)
    • Added
      Adds ready to use API for picking images from gallery or capturing images via camera. (#8190)
      • Added
        Adds ImagePickerFragment that encapsulates whole picker lifecycle.
      • Added
        Adds BitmapUtils class for decoding Bitmap from Uris retrieved via ImagePickerFragment#OnImagePickedListener.
      • Added
        Adds an example to catalog app showcasing how to use this API to create new pages with images captured by camera.
    • Added
      Adds #toString methods to DownloadRequest and URLDownloadSource. (#8264)
    • Added
      Adds PasswordViewThemeConfiguration.Builder#iconTintingEnabled which allows turning off tinting of the password view drawable. (#8403)
    • Added
      Adds close button to annotation property inspector. (#8262)
    • Added
      Adds scrollbars and document scrolling API. (#8388)
      • Changed
        Enables default Android scrollbars on the PSPDFFragment. You can disable them using #scrollbarsEnabled on the PSPDFConfiguration.Builder or PSPDFActivityConfiguration.Builder.
      • Added
        Adds styleable attribute pspdf__documentViewStyle that accepts a style defining View attributes for modifying the appearance of scrollbars. If not overridden by the active theme, this attribute is set to the pspdf__DocumentView style.
      • Added
        Adds scrollbar theming example to the existing DarkThemeExample.
      • Added
        Adds DocumentScrollListener interface for observing scrollbar movement of the current document.
      • Added
        Adds PSPDFFragment#registerDocumentScrollListener and PSPDFFragment#unregisterDocumentScrollListener
      • Added
        Adds VerticalScrollBar widget, a customizable scrollbar with draggable indicator (for quick page browsing).
      • Added
        Adds VerticalScrollBarExample to showcase scrollbar usage inside a custom activity.
    • Added
      Adds the ability to disable bookmark renaming with PSPDFOutlineView#setBookmarkRenamingEnabled. (#8118)
    • Added
      Adds PSPDFKit#setLoggingEnabled method for enabling or disabling PSPDFKit debug output in logcat. (#8515)
    • Added
      Adds an API for dynamic modification of certain properties of the active annotation selection. (#8150)
      • Added
        Adds new method onPrepareAnnotationSelection to PSPDFAnnotationManager.OnAnnotationSelectedListener.
      • Added
        Adds AnnotationSelectionController exposing multiple properties for controlling active annotation selection.
      • Added
        Adds AnnotationSelectionCustomizationExample showcasing this new API.
      • Added
        Adds OnAnnotationSelectedListenerAdapter which is an empty implementation of the PSPDFAnnotationManager.OnAnnotationSelectedListener interface.
    • Removed
      Removes PSPDFConfiguration#isLoggingEnabled and corresponding builder methods. (#8515)
    • Changed
      Improves large memory usage handling of PSPDFProcessor. (#8291, #8352)
    • Fixed
      Fixes an exception thrown by a DownloadJob if the parent folder of the output file did not exist. The DownloadJob will now try to create the folder itself, or throw an exception if not able to do so. (#8265)
    • Fixed
      Fixes an unlikely crash in annotation parsing. (#8295)
    • Fixed
      Fixes an issue causing a NullPointerException when exiting text selection mode while a highlight annotation is being created. (#8299)
    • Fixed
      Fixes a rare issue in the Document Editor. (#8370)
    • Fixed
      Fixes typo in class name: FloatingHitEditText is now called FloatingHintEditText. (#8404)
    • Fixed
      Fixes an issue where bookmark name edit dialog could not be confirmed with enter key. (#8328)
    • Fixed
      Fixes an issue where annotations could be rendered with a wrong image. (#8493)
    • Fixed
      Fixes an issue where document wasn't resized correctly after hiding keyboard in immersive mode. (#8494)
    • Fixed
      Fixes an issue where grid view was always showing page labels even if disabled. (#8046)

    2.6.1 17 Oct 2016

    • Added
      Adds support for custom stamps. (#8062)
    • Added
      Adds progress dialog when sharing file without processing. (#8156)
    • Added
      Adds web download capabilities to DownloadJob. (#8160)
      • Changed
        DownloadJob will now use a temporary file for writing while downloading. This prevents corrupted files when downloads are interrupted. To not use a temporary file set DownloadRequest.Builder#useTemporaryOutputFile to false
      • Added
        Adds DownloadProgressFragment#setDialogOnCancelListener for setting a listener that will be notified of when the progress dialog was cancelled by the user.
      • Added
        Adds URLDownloadSource that can download PDF documents from a URL object.
      • Added
        Adds detection of http and https URIs using DownloadRequest.Builder#uri.
      • Removed
        Removes @Nullable annotation from DownloadProgressFragment#getJob.
    • Added
      Adds ActionResolver for executing PDF actions from the com.pspdfkit.annotations.actions package. PSPDFFragment implements this interface, allowing to execute PDF actions on the document. (#8205)
    • Added
      Adds missing BookmarkViewAdapter interface which can be set by PSPDFOutlineView#setBookmarkViewAdapter. (#8117)
    • Changed
      Automatically uses ReLinker(opens in a new tab) to load native library if available. This fixes UnsatisfiedLinkError exceptions on some older devices. For more information on ReLinker usage and configuration see our guide article: https://pspdfkit.com/guides/android/current/miscellaneous/relinker/ (#8197)
    • Changed
      Change occurrences of pageNumber, page, etc. to pageIndex. (#8115)
      • Changed
        Renames PSPDFSearchResult#pageNumber to PSPDFSearchResult#pageIndex.
      • Changed
        Renames GoToAction#getPage to #getPageIndex.
      • Changed
        Renames QueryPreviewResult#getPage to #getPageIndex.
      • Changed
        Renames StampPickerDialog#setPageNumber and #getPageNumber to #setPageIndex and #getPageIndex respectively.
      • Changed
        Renames Bookmark#getPage to #getPageIndex.
      • Changed
        Renames TextSelection#page to #pageIndex.
      • Changed
        Renames OnZoomFactorChangedEvent#page to #pageIndex.
    • Fixed
      Fixes an issue where swiping through a large PDF could cause a crash. (#8141)
    • Fixed
      Fixes an issue that caused crashes on some documents when dragging selection handles. (#8186)
    • Fixed
      Fixes an issue where document insets were not applied when creating free-text annotations. (#8185)
    • Fixed
      Fixes inconsistent peek height of the bottom sheet ActionMenu. (#8071)
    • Fixed
      Fixes an issue where contextual toolbars weren't updating toolbar icons correctly. (#8193)
    • Fixed
      Fixes an issue where share button stopped working after reloading the document. (#8198)
    • Fixed
      Fixes an issue that caused duplicated text rendering when creating free-text annotation. (#8243)
    • Fixed
      Fixes an issue where document editor persisted edited state across editing sessions even when editing had been cancelled. (#8241)
    • Fixed
      Fixes an issue where DownloadProgressFragment would always switch to indeterminate progress bar style after a configuration change. (#8166)
    • Fixed
      Fixes an issue where images captured by device camera had wrong orientation when used as stamp image or PageImage. (#8221)
    • Fixed
      Fixes an issue where image annotations weren't rotated correctly on rotated PDF pages. (#8135)
    • Fixed
      Fixes an issue where an invalid modification or creation date inside the PDFs metadata would cause a crash. (#8236)

    2.6.0 3 Oct 2016

    See the announcement post(opens in a new tab).

    • Added
      Adds support for image and stamp annotations. (#5628)
      • Added
        Adds StampAnnotation object representing both image and stamp annotations.
      • Added
        Adds UI to add and edit stamp annotations on the page.
      • Added
        Adds UI to add pictures from device library to the pages.
    • Added
      Adds a new bottom sheet sharing dialog that replaces the share/print menu. (#7598)
      • Added
        Adds ActionMenu for displaying list of ActionMenuItem inside grid list bottom sheet.
      • Added
        Adds SharingMenu which extends ActionMenu to display list of sharing targets.
      • Added
        Adds DefaultSharingMenu which extends SharingMenu to display print and view actions.
      • Added
        Adds PSPDFActivity#setSharingMenuListener(listener) for listening to default sharing menu lifecycle and click events.
    • Added
      Adds download API for saving PDF documents to the local filesystem. (#7553)
      • Added
        Adds DownloadRequest and DownloadJob for configuring and performing a download.
      • Added
        Adds DownloadSource interface for defining different types of remote PDF document sources.
      • Added
        Adds AssetDownloadSource for copying a PDF document from the app's assets.
      • Added
        Adds ContentResolverDownloadSource for saving a PDF document from a content provider.
    • Added
      Adds sub-menus to the ContextualToolbar instead of displaying a new set of items. Sub-menus are activated with long-pressing the items with sub-menu indicators. (#7116)
      • Added
        Adds pspdf__contextualToolbarSubmenuBackground for controlling the background of sub-menus, alongside the already existing pspdf__contextualToolbarBackground which is now applied to the main menu bar.
      • Added
        Adds ContextualToolbarMenuBar class which represents a single bar inside the ContextualToolbar serving as a ViewGroup.
    • Added
      Adds CustomSharingMenuExample to catalog app showcasing how to add custom share actions to sharing menu. (#7564)
    • Added
      Adds set of new methods to DocumentSharingManager accepting ShareTarget for sharing documents to single share target. (#7604).
    • Added
      Adds async versions for methods in DocumentSharingIntentHelper that could potentially block UI thread. (#7822)
    • Added
      Adds methods PSPDFKit#invalidateDocumentCache and PSPDFKit#invalidatePageCache for clearing the render cache of a document or page respectively. (#7739)
    • Added
      Adds new document processing examples inside the DocumentProcessorExample of the catalog app. (#7594, #7797)
      • Added
        Adds example on how to rotate pages.
      • Added
        Adds example on how to add new pages to a document.
    • Added
      Adds better support for preserving passwords from the original document when saving or processing. (#6665)
    • Added
      Adds PSPDFKit#openDocument(context, DocumentSource) and PSPDFKit#openDocuments(context, List<DocumentSources>) methods. A DocumentSource object describes the source of a document which can be either a Uri or a DataProvider. (#7994)
      • Removed
        Removes PSPDFKit#openDocuments(List<Uri>). It had to be removed instead of deprecated due to Java generics type erasure. It has been replaced with PSPDFKit#openDocuments(List<DocumentSource>).
      • Added
        Adds PSPDFDocument#getDocumentSource() and PSPDFDocument#getDocumentSources() methods for retrieving the source of document PDF data.
      • Removed
        Deprecates all PSPDFKit#open methods which accepted a DataProvider or list of document Uris. The new methods accepting DocumentSource objects should be used instead.
      • Removed
        Deprecates PSPDFDocument#getUri(), PSPDFDocument#getUriList(). The new getDocumentSource() and getDocumentSources() methods should be used instead.
    • Added
      Adds position independent executable flag (-fpie) for further security hardening of the native code. (#7731)
    • Added
      Adds keyboard shortcuts. (#7750)
      • Added
        Adds Ctrl+P for opening the printer dialog.
      • Changed
        Selected annotations can now be deleted by pressing backspace or delete.
    • Added
      Adds AnnotationCreationMode enum that is used instead of AnnotationType to control active annotation tool in annotation creation mode. (#7883)
      • Removed
        Deprecates PSPDFFragment#enterAnnotationCreationMode(AnnotationType). Use #enterAnnotationCreationMode(AnnotationCreationMode) instead.
      • Removed
        Deprecates AnnotationCreationController#getCurrentlyEditedAnnotationType. Use #getActiveAnnotationCreationMode instead.
      • Removed
        Deprecates AnnotationCreationController#changeAnnotationCreationMode(AnnotationType). Use #changeAnnotationCreationMode(AnnotationCreationMode) instead.
    • Added
      Adds analytics API allowing developers to collect framework data. (#7836)
      • Added
        Adds AnalyticsClient interface. This can be implemented to receive various analytics events and data from the framework.
      • Added
        Adds Analytics.Event and Analytics.Data classes defining all existing analytics events and their carried data.
      • Added
        Adds PSPDFKit#addAnalyticsClient and PSPDFKit#removeAnalyticsClient for adding and removing AnalyticsClient instances respectively.
    • Added
      Adds an option to limit the maximum number of search results. See SearchConfiguration.Builder#maxSearchResults(int). (#7512)
    • Changed
      Significantly improves rendering performance by partially rendering zoomed pages. (#7531)
      • Fixed
        Fixes fuzzy text while scrolling around the page.
      • Changed
        Significantly reduces memory usage of the application.
    • Changed
      Default position of the AnnotationCreationToolbar is now Position.LEFT on tablet devices with sw600dp. (#7517)
    • Changed
      Clicking on annotation editing button now toggles annotation creation mode. (#8069)
    • Changed
      Improves rendering of annotations on rotated documents. (#6312, #7185, #7792)
    • Changed
      Improves memory usage when searching in a large document. (#7958)
    • Changed
      Improves font size picker in SliderPickerInspectorView. (#8014)
    • Changed
      PSPDFKit.open*Async methods now return a Single<PSPDFDocument> instead of Observable<PSPDFDocument>. (#7994)
    • Changed
      Renames controller binding methods in ContextualToolbar implementations: (#7908)
      • Changed
        AnnotationCreationToolbar#bindAnnotationCreationController(), DocumentEditingToolbar#bindDocumentEditingController() and TextSelectionToolbar#bindTextSelectionController() are all renamed to bindController().
      • Changed
        AnnotationCreationToolbar#unbindAnnotationCreationController(), DocumentEditingToolbar#unbindDocumentEditingController() and TextSelectionToolbar#unbindTextSelectionController() are all renamed to unbindController().
    • Fixed
      Fixes toolbar icon when sharing is disabled - the icon will now show a printer to accurately reflect the remaining action. (#8045)
    • Fixed
      Fixes an issue where a highlight annotation was rendered with a border. (#7618)
    • Fixed
      Fixes an issue where some documents couldn't be exported or printed. (#7585)
    • Fixed
      Fixes an incorrect bitmap recycling when the PSPDFActivity is finishing, possibly causing out-of-memory errors when quickly being restarted. (#7659)
    • Fixed
      Fixes a build tools issue causing resource resolution errors at runtime. (#7672)
    • Fixed
      Fixes a crash originating inside the ContentResolverDataProvider if the used content provider was not supporting append operations. (#7716)
    • Fixed
      Fixes an issue where the text selection offsets were wrong in certain documents, causing highlight annotations to be misaligned. (#7271)
    • Fixed
      Fixes an issue where text selection mode was exited when dragging both handles to the same text index. (#7652)
    • Fixed
      Fixes an issue where document editor didn't re-render changed pages. (#7690)
    • Fixed
      Fixes an issue where document didn't refresh when creating highlight annotation from selected text. (#7729)
    • Fixed
      Fixes an issue where markup annotation color wasn't applied before leaving annotation inspector. (#7786)
    • Fixed
      Fixes clipped background of selected toolbar icons on some density configurations. (#7741)
    • Fixed
      Fixes DocumentListener callbacks onPageChanged(PSPDFDocument, int) and onDocumentZoomed(PSPDFDocument, int, float) inconsistent with paginated scrolling. (#6727)
    • Fixed
      Fixes bookmark list view losing changed sort order when a bookmark is deleted. (#7977)
    • Fixed
      Fixes wrong tint of bookmark edit button. (#8001)
    • Fixed
      Fixes autocorrect not working for free text annotations. (#7857)
    • Fixed
      Fixes markup annotations sometimes being rendered on top of other annotations. (#8029)
    • Fixed
      Fixes rendering of compound documents with annotations. (#8048)
    • Fixed
      Fixes an issue where thumbnail bar is being kept on top of the keyboard, thus reducing the available space on the screen. (#7999)

    2.5.1 29 Aug 2016

    • Added
      Adds preview of free-text and ink annotations to annotation inspector when creating annotations. (#7330)
    • Added
      Adds example on how to add custom share actions to the CustomActionsExample of the catalog app. (#7564)
    • Added
      Adds example on how to rotate pages using the PSPDFProcessor to the DocumentProcessingExample of the catalog app. (#7594)
    • Changed
      Renames PropertyInspectorView#bindToController() to PropertyInspectorView#bindController(). (#7540)
    • Changed
      Catalog app now asks for external storage read/write permissions when opening files from implicit intents on Android M and higher. (#7150)
    • Changed
      Allows re-selecting text via long press gesture when text is already selected. (#7566)
    • Fixed
      Fixes an issue where windowSoftInputMode set on PSPDFActivity was overwritten with SOFT_INPUT_ADJUST_NOTHING when opening password protected documents. (#7431)
    • Fixed
      Fixes crash when deselecting FreeText annotations with null contents. (#7584)
    • Fixed
      Fixes an issue where ink annotations that were created with smaller bounding box than the minimum bounding box size could not be resized to their original size. (#7438)
    • Fixed
      Fixes an issue with single dot ink annotation disappearing when moved around the page. (#7436)
    • Fixed
      Fixes an issue where HUD disappeared when tapping menu item while HUD was hiding. (#7502)
    • Fixed
      Fixes an issue where annotation creation mode was left after creating note annotation on single page documents. (#7516)
    • Fixed
      Fixes an issue that could lead to inconsistent UI when clicking on HUD buttons while selecting annotations. (#7520)
    • Fixed
      Fixes an issue where ink annotations resized to their maximum size were rendered without alpha. (#7534)
    • Fixed
      Fixes an issue where creating multiple free-text annotations would exit annotation creation mode. (#7591)

    2.5.0 15 Aug 2016

    See the announcement post(opens in a new tab).

    • Changed
      Updates dependencies - support libraries have been reverted to 23.4.0 until release of Android Nougat. RxJava was updated to version 1.1.9.
    • Added
      Adds bookmark support to the UI and APIs. Bookmarks are stored inside the PDF document itself in a portable manner. (#5787)
      • Added
        Adds Bookmarks tab to the outline view with controls to add and delete bookmarks.
      • Added
        Adds BookmarkProvider class handling all Bookmark related operations. It can be retrieved by calling PSPDFDocument#getBookmarkProvider().
      • Added
        Adds BookmarkListView as a view to display bookmark list inside a document.
    • Added
      Adds annotation property inspector replacing old color and thickness picker dialog. (#3594)
      • Changed
        IMPORTANT: The property inspector coordinator needs to be present in activity layout for annotation inspector to work correctly. If you are using custom view in PSPDFActivity, add com.pspdfkit.ui.inspector.PropertyInspectorCoordinatorLayout with id R.id.pspdf__inspector_coordinator (for example, see custom_pdf_activity.xml from the catalog app).
      • Added
        Adds PropertyInspectorView interface with implementations ColorPickerInspectorView and SliderPickerInspectorView for picking colors and thickness/text size.
      • Added
        Adds PropertyInspector used as a container for PropertyInspectorViews.
      • Added
        Adds PropertyInspectorCoordinatorLayout used for displaying instances of PropertyInspector and handling animations and interactions between them.
      • Changed
        Updates AnnotationToolbarFragmentExample from the catalog app to show how to incorporate PropertyInspectorCoordinatorLayout with working annotation inspector in PSPDFFragment within the custom activity.
      • Added
        Adds CustomAnnotationInspectorExample showing how to add views to existing annotation inspector and how to create custom annotation inspector UI from scratch.
    • Added
      Adds PSPDFActivity.IntentBuilder that builds an Intent to display a PDF document. This allows customization of Intent flags and extras before starting the activity. (#7158)
    • Added
      Adds an API for controlling annotation inspector when creating or editing annotations.
      • Added
        Adds AnnotationInspectorController through which the annotation inspector can be fully customised.
      • Added
        Adds bindAnnotationInspectorController and unbindAnnotationInspectorController to AnnotationCreationController and AnnotationEditingController.
      • Added
        Adds AnnotationCreationInspectorController and AnnotationEditingInspectorController managing annotation inspector in annotation creation and editing modes.
    • Added
      Adds an API for controlling annotation editing defaults and preferences.
      • Added
        Adds AnnotationDefaultsManager handling defaults and allowed values for annotation properties.
      • Added
        Adds set of AnnotationDefaults*Provider interfaces for supported annotation properties and FreeTextAnnotationDefaultsProvider, InkAnnotationDefaultsProvider, MarkupAnnotationDefaultsProvider and NoteAnnotationDefaultsProvider providing annotation defaults for supported annotation types.
      • Added
        Adds AnnotationPreferencesManager handling annotation editing preferences.
      • Added
        Adds PSPDFFragment#getAnnotationDefaults() and PSPDFFragment#getAnnotationPreferences to access AnnotationDefaultsManager and AnnotationPreferencesManager.
      • Added
        Adds AnnotationDefaultsExample showing how to use the new annotation defaults API.
    • Changed
      Improves configuring search and adds more options to the search API. (#7246)
      • Added
        Adds SearchConfiguration to PSPDFActivityConfiguration containing properties for searching the document.
      • Added
        Adds SearchView#setSearchConfiguration() for setting the SearchConfiguration to the SearchView implementation.
      • Added
        Adds an option to start search on the current page in the search views. See SearchConfiguration.Builder#setStartSearchOnCurrentPage().
      • Added
        Adds getters and setters for SearchConfiguration properties applied to PSPDFSearchViewInline and PSPDFSearchViewModular.
      • Added
        Adds setting up priority pages when performing a search. Those pages will be the first ones to search, before the other ones. See PSPDFSearchOptions#priorityPages().
      • Removed
        Removes setSnippetLength() and setStartSearchChars() (along with its XML counterparts) from ModularSearchThemeConfiguration since those don't really belong to the theme, moved to SearchConfiguration.
      • Removed
        Removes setStartSearchChars() (along with its XML counterparts) from InlineSearchThemeConfiguration since that doesn't really belong to the theme, moved to SearchConfiguration.
    • Added
      Adds PropertyInspectorCoordinatorLayout.PropertyInspectorLifecycleListener that listens for property inspector lifecycle within the PropertyInspectorCoordinatorLayout (preparing, displaying, removing), set through PSPDFActivity#setPropertyInspectorLifecycleListener(listener) and removed through PSPDFActivity#removePropertyInspectorLifecycleListener().
    • Added
      Adds support for annotation resizing guides. (#5555)
    • Added
      Adds theme attributes for ToolbarCoordinatorLayout set through: <item name="pspdf__toolbarCoordinatorLayoutStyle"/> with dragTargetColor attribute for setting a color of the target area when dragging the toolbars. It can also be set programmatically through ToolbarCoordinatorLayout#setDragTargetColor. (#7165)
    • Added
      Adds ToolbarCoordinatorLayout.LayoutParams to be used for positioning ContextualToolbar within ToolbarCoordinatorLayout. (#7161)
      • Added
        Adds allowedPositions property as part of the ToolbarCoordinatorLayout.LayoutParams that allows selecting which toolbar positions are allowed.
      • Changed
        Improves toolbar position changes: when forcefully pinned to the top due to the lack of space, the toolbar will restore it's original position once there's enough space again.
      • Removed
        Removes ContextualToolbar#setPosition() and ContextualToolbar#getPosition() calls. Set position parameter through ToolbarCoordinatorLayout.LayoutParams, set on the ContextualToolbar.
    • Added
      Adds DocumentSharingProvider automatically to the manifest through manifest merging (no need to set them manually). (#7287)
    • Added
      Adds android:largeHeap="true" to the AndroidManifest.xml using manifest merging. (#7287)
    • Changed
      Renames Annotation#getPageNumber() to Annotation#getPageIndex() to avoid confusion about zero indexing. (#7340)
    • Changed
      Renames MediaAssetsContentProvider to AssetsContentProvider. It's authority is changed to {$applicationId}.pdf.assets and it is not added automatically to the app's manifest. (#7391)
    • Changed
      Improves compatibility when flattening documents with non-standard headers. (#7212)
    • Changed
      Improves logic around copying forms via the processor when the source document has invalid form entries. (#7273)
    • Changed
      Improves JPEG2000 decoding performance. (#7307)
    • Removed
      Deprecates PSPDFActivityConfiguration#printingEnabled() and replaces it with enablePrinting() / disablePrinting() methods for consistency. (#7476)
    • Fixed
      Fixes all documents using the same thread pool causing severe performance issues when trying to do background operations like thumbnail generation. (#7240)
    • Fixed
      Fixes an issue where note annotation wasn't created with last used color and icon. (#7107)
    • Fixed
      Fixes several issues found when editing annotation in compound documents. (#7192)
    • Fixed
      Fixes improper toolbar height on pre-Lollipop devices. (#7334)
    • Fixed
      Fixes incorrect InvalidThemeException being thrown when the context provided to the theme configuration builders is not using some NoActionBar theme. (#7463)
    • Fixed
      Fixes an issue where annotation could not be resized when scale handle moved outside of a page. (#7367)
    • Fixed
      Fixes an issue where annotation could not be resized when scale handles moved outside of a page. (#4814)
    • Fixed
      Fixes an issue that could result in infinite search when performing inline search. (#7410)
    • Fixed
      Fixes false positive warnings when detecting missing android:largeHeap flag. (#7262)
    • Fixed
      Fixes an issue when inline search query is not cleared up when exiting the search bar. (#7453)
    • Fixed
      Fixes an issue where annotation resizing couldn't be disabled via AnnotationEditingConfiguration.Builder#setSelectionResizeEnabled. (#7488)

    2.4.3 6 Jul 2016

    • Added
      Adds pspdf__tabIndicatorColor attribute to the pspdf__OutlineView styleable. The attribute defaults to ?colorPrimary. (#7091)
    • Changed
      Marks exception parameters in DocumentListener#onDocumentLoadFailed and DocumentListener#onDocumentSaveFailed as @NonNull. (#7122)
    • Changed
      DocumentSharingProvider will now return the android.provider.OpenableColumns when queried for a shared file. (#7131)
    • Fixed
      Fixes an issue where PSPDFKit thought it runs in debug mode. (#7129)
    • Fixed
      Fixes an issue where the soft keyboard was not closed after exiting search on some Samsung devices. (#7145)

    2.4.2 28 Jun 2016

    • Changed
      Updates dependencies - Support libraries (support-v4, appcompat-v7, recyclerview-v7, cardview-v7 and design) have been updated to version 24.0.0. RxJava was updated to 1.1.6 and RxAndroid to 1.2.1.
    • Added
      Adds ToolbarsInFragmentExample instead of AnnotationToolbarFragmentExample in the catalog app, incorporating all new toolbars instead of just annotation creation toolbar. (#6914)
    • Added
      Adds a lot of the documentation with the matched styling across the framework. (#6406, #6404)
    • Added
      Adds InvalidThemeException that may be thrown if an invalid theme is used. (#6942, #6943)
    • Added
      Adds theme validation to PSPDFActivity#onCreate which will throw an exception if the used theme is incompatible with the activity. (#6942)
    • Changed
      ThumbnailBarThemeConfiguration#getBackgroundColor now defaults to the theme's ?colorPrimary attribute. (#6943)
    • Added
      Adds a default icon to the PDF password screen. To disable the icon set pspdf__icon of your theme's pspdf__passwordViewStyle to @null. (#6943)
    • Changed
      Improves rendering performance in certain situations. (#6944)
    • Changed
      Improves thumbnail grid to render thumbnails in page order. (#5307)
    • Changed
      Changes the toolbar drag being activated with a long press on the drag button. Now it starts as soon as the drag button is touched. (#6927)
    • Fixed
      Fixes an issue where rotated pages were not rendered correctly in print preview. (#6892)
    • Fixed
      Fixes an issue with print dialog being canceled when changing orientation. (#6755)
    • Fixed
      Fixes an issue where overriding menu item clicks in ContextualToolbar through ContextualToolbar.OnMenuItemClickListener was not correctly applied and the default action was executed alongside the custom one. (#6995)
    • Fixed
      Fixes a native crash caused when passing null as license to Nutrient#initialize. The method will now throw a PSPDFInvalidLicenseException if called with a null license. (#7055)
    • Fixed
      Fixes keyboard not closing after exiting search in some cases. (#7070)

    2.4.1 10 Jun 2016

    • Changed
      Theme attribute actionModeBackground is no longer used for setting default color for all contextual toolbars. Please use pspdf__contextualToolbarBackground instead. (#6912)
    • Removed
      Removes the no longer used TextSelectionListener interface. Please use the newer OnTextSelectionChangedListener(opens in a new tab) instead. (#6896)
    • Fixed
      Fixes an issue causing a license error when initializing the PSPDFThumbnailGrid. (#6910)
    • Fixed
      Fixes an issue where text in note annotation editor had low contrast when using certain background colors. (#6819)
    • Fixed
      Fixes an issue where annotation color picker didn't show correct color when editing annotations. (#6875)
    • Fixed
      Fixes crash in ContextualToolbar that occurred when theme didn't define the actionModeBackground attribute. (#6906)
    • Fixed
      Fixes PSPDFFragment#onSaveInstanceState blocking the main thread when being called while the fragment was on the fragment back stack without being displayed. (#6971)
    • Fixed
      Fixes an issue with print dialog being canceled when changing orientation. (#6755)

    2.4.0 7 Jun 2016

    See the announcement post(opens in a new tab).

    PSPDFKit 2.4 for Android is one of our largest releases so far. A new annotation toolbar, printing and many smaller improvements to almost all parts of the SDK make this a worthy upgrade.

    • Changed
      IMPORTANT: PSPDFActivity now uses android.support.v7.widget.Toolbar as action bar instead of the default one (#6036). These are the necessary migration changes:
      • Changed
        If using custom view in PSPDFActivity, add android.support.v7.widget.Toolbar with id R.id.pspdf__toolbar_main contained within the com.pspdfkit.ui.toolbar.ToolbarCoordinatorLayout with id R.id.pspdf__toolbar_coordinator. The toolbar coordinator needs to contain main toolbar as a child so the new toolbars can be displayed and animated properly (for example, see custom_pdf_activity.xml from the catalog app).
      • Changed
        The theme applied to the activity should have Theme.AppCompat.Light.NoActionBar as a parent, with these attributes: <item name="windowActionBar">false</item>, <item name="windowNoTitle">true</item> and <item name="windowActionModeOverlay">true</item>. The default color for all the contextual toolbars is set through <item name="actionModeBackground">.
    • Added
      Adds support for printing documents in Android 4.4 (API level 19) and higher. (#2936)
      • Added
        Adds PrintAdapter class to manually handle PDF processing for printing.
      • Added
        Adds DocumentPrintDialog to display a dialog with printing options.
    • Added
      Adds an API for controlling the annotation creation mode:
      • Added
        Adds method to start the annotation creation: PSPDFFragment#enterAnnotationCreationMode(AnnotationType annotationType).
      • Added
        Adds listeners for mode changes: PSPDFAnnotationManager.OnAnnotationCreationModeChangeListener and PSPDFAnnotationManager.OnAnnotationCreationModeSettingsChangeListener.
      • Added
        Adds methods for registering those listeners in PSPDFFragment: registerAnnotationCreationModeChangeListener() and registerAnnotationCreationModeSettingsChangeListener() along with unregister* calls.
      • Added
        Adds AnnotationCreationController provided by listener callbacks through which the annotation creation mode can be controlled programmatically.
    • Added
      Adds an API for controlling the annotation editing mode:
      • Added
        Adds method to start the annotation editing: PSPDFFragment#enterAnnotationEditingMode(Annotation annotation).
      • Added
        Adds listener for mode changes: PSPDFAnnotationManager.OnAnnotationEditingModeChangeListener.
      • Added
        Adds methods for registering that listener in PSPDFFragment: registerAnnotationEditingModeChangeListener() along with unregister* call.
      • Added
        Adds AnnotationEditingController provided by listener callbacks through which the annotation editing mode can be controlled programmatically.
    • Added
      Adds an API for controlling the text selection mode:
      • Added
        Adds method to start the text selection mode: PSPDFFragment#enterTextSelectionMode(int pageNumber, Range textRange).
      • Added
        Adds listeners for mode changes: TextSelectionManager.OnTextSelectionModeChangeListener and TextSelection.OnTextSelectionChangeListener.
      • Added
        Adds methods for registering those listeners in PSPDFFragment: registerTextSelectionModeChangeListener() and registerTextSelectionChangeListener() along with unregister* calls.
      • Added
        Adds TextSelectionController provided by listener callbacks through which the text selection mode can be controlled programmatically.
      • Removed
        Deprecates PSPDFFragment#setTextSelection() (use PSPDFFragment#enterTextSelectionMode()) and PSPDFFragment#clearTextSelection() (use PSPDFFragment#exitCurrentlyActiveMode()).
    • Added
      Adds PSPDFFragment#exitCurrentlyActiveMode() for exiting any currently active mode such as text selection, annotation creation and annotation editing.
    • Added
      Adds an API for controlling the document editing mode:
      • Added
        Adds methods to start and exit document editing mode: PSPDFThumbnailGrid#enterDocumentEditingMode() and PSPDFThumbnailGrid#exitDocumentEditingMode().
      • Added
        Adds listeners for mode changes: PSPDFThumbnailGrid.OnDocumentEditingModeChangeListener and PSPDFThumbnailGrid.OnDocumentEditingPageSelectionChangeListener.
      • Added
        Adds methods for registering those listeners in PSPDFThumbnailGrid: registerDocumentEditingModeChangeListener() and registerDocumentEditingPageSelectionChangeListener() along with unregister* calls.
      • Added
        Adds DocumentEditingController provided by listener callbacks through which the document editing mode can be controlled programmatically.
    • Added
      Adds toolbars for special modes (all extend ContextualToolbar): AnnotationCreationToolbar, AnnotationEditingToolbar, DocumentEditingToolbar and TextSelectionToolbar.
    • Added
      Adds ToolbarCoordinatorLayout used for animating views and handling animations and interactions between them. Toolbars can now be dragged to the sides of the screen (if enough room).
    • Added
      Adds ToolbarCoordinatorLayout#displayContextualToolbar(ContextualToolbar toolbar, boolean animate) and ToolbarCoordinatorLayout#removeContextualToolbar(boolean animate) methods for displaying/removing contextual toolbars from the coordinator.
    • Added
      Adds ToolbarCoordinatorLayout.OnContextualToolbarLifecycleListener that listens for toolbar lifecycle within the ToolbarCoordinatorLayout (preparing, displaying, removing), set through PSPDFActivity#setOnContextualToolbarLifecycleListener(listener) and removed through PSPDFActivity#removeOnContextualToolbarLifecycleListener().
    • Added
      Adds ToolbarCoordinatorLayout.OnContextualToolbarMovementListener that listens for toolbar movements within the ToolbarCoordinatorLayout, set through PSPDFActivity#setOnContextualToolbarMovementListener(listener) and removed through PSPDFActivity#removeOnContextualToolbarMovementListener().
    • Added
      Adds theme attributes for new toolbar views icons, set through: <item name="pspdf__annotationCreationToolbarIconsStyle"/>, <item name="pspdf__annotationEditingToolbarIconsStyle"/>, <item name="pspdf__textSelectionToolbarIconsStyle"/> and <item name="pspdf__documentEditingToolbarIconsStyle"/>.
    • Added
      Adds ContextualToolbarMenuItem class which represents a single item in the ContextualToolbar.
    • Added
      Adds AnnotationToolbarFragmentExample to the catalog app. It shows how to incorporate ToolbarCoordinatorLayout in PSPDFFragment within the custom activity to get toolbar animations.
    • Added
      Adds support for Now-On-Tap feature introduced in Android Marshmallow. (#5294)
    • Added
      Adds fullscreen version of Document Editor page creator dialog for small devices. (#5984)
    • Added
      Adds ScreenReaderExample which showcases how to build a screen reader using PSPDFKit. (#6489)
    • Added
      Adds highlighting of the currently active page to PSPDFThumbnailGrid. (#6601)
    • Added
      Adds new ThumbnailGridThemeConfiguration styleable fields: pspdf__itemLabelTextStyle and pspdf__itemLabelBackground. (#6445)
    • Added
      Adds a new option to control video playback via PSPDFActivityConfiguration.Builder#videoPlaybackEnabled. This is useful for environments with increased security requirements or to work around old Android devices that might be affected by the Stagefright vulnerability. (#6455)
    • Added
      Adds PSPDFProcessorTask(NewPage) constructor for creating a new single-page document. (#6643)
    • Added
      Adds PSPDFProcessor#processDocumentAsync override accepting OutputStream as processor output. (#6666)
    • Added
      Adds an updated Guide.pdf to the catalog app. (#6483)
    • Added
      Adds support for scrolling the page while performing a pinch-zoom gesture. (#4797)
    • Added
      Adds ability to modify page media and crop box to PSPDFProcessor with PSPDFProcessorTask#setPageBox method. (#6746)
    • Added
      Adds getBox to PSPDFDocument to allow retrieval of page media box and crop box. (#6775)
    • Added
      Adds PSPDFProcessorTask#scalePage for scaling document pages. (#6655)
    • Removed
      Removes AnnotationToolbarIconsConfiguration.
    • Removed
      Removes PSPDFFragment#clearAnnotationListeners() and PSPDFFragment#clearDrawableProviders(). Each of the registered listeners or drawable providers should be removed using unregister calls. (#6571)
    • Removed
      Removes #notifyAnnotationSelected, #notifyAnnotationDeselected, and #notifyAnnotationUpdated from PSPDFFragment. If your code was using those methods, use #setSelectedAnntaton, #clearSelectedAnnotations, and #notifyAnnotationHasChanged respectively. (#6419)
    • Changed
      Refinements of the drawable provider API.
      • Changed
        Increases visibility of PSPDFDrawableProvider#notifyDrawablesChanged() and PSPDFDrawableProvider#notifyDrawablesChanged(int) from protected to public.
      • Changed
        Changes PSPDFDrawableProvider#getDrawablesForPage and PSPDFDrawableProvider#getDrawablesForPageAsync to use the upperbounded wildcard ? extends PSPDFDrawable.
    • Changed
      PSPDFThumbnailGrid will now automatically scroll to the currently active page when being opened. (#5578)
    • Changed
      PSPDFFragment now correctly restores visible viewport and zoom scale after rotating the device. (#6531)
    • Removed
      Deprecates Intent extras PSPDFYouTubeActivity#ARG_YOUTUBE_URL and PSPDFMediaDialog#ARG_URI. Instead use PSPDFYouTubeActivity#ARG_MEDIA_URI and PSPDFMediaDialog#ARG_MEDIA_URI with MediaUri values. (#6621)
    • Changed
      Improves rendering performance for some complex documents. (#6686)
    • Changed
      Improves security in various critical areas of the framework via using checked memory functions.
    • Changed
      Correctly cancels document processing after unsubscribing from Observable returned by PSPDFProcessor#processDocumentAsync. (#6666)
    • Fixed
      Fixes ConcurrentModificationException being thrown when registering/unregistering DocumentListeners in PSPDFFragment. (#6744)
    • Fixed
      Fixes ConcurrentModificationException being thrown when registering/unregistering OnVisibilityChangedListeners in OnVisibilityChangeListenerManager. (#6866)
    • Fixed
      Fixes possible multiple registrations of OnVisibilityChangedListener instances inside OnVisibilityChangeListenerManager. (#6800)
    • Fixed
      Fixes crash in PSPDFThumbnailBar that appeared when opening certain documents. (#6830)
    • Fixed
      Fixes an issue where sharing was canceled when rotating device. (#6062)
    • Fixed
      Fixes a race condition that could cause a NullPointerException when calling methods on the PSPDFFragment. (#6644, #6650)
    • Fixed
      Fixes an issue causing a NullPointerException when injecting a key event before the document has been loaded. (#6680)
    • Fixed
      Fixes an issue where the scrolling is blocked when performed on a page while another page is in text selection mode. (#6807)
    • Fixed
      Fixes issues while parsing many annotations on page and lifts limit of 500 annotations per page. (#6629)
    • Fixed
      Fixes an issue where "light" weight font was selected in font substitution process instead of the missing "regular" weight font. (#6487)
    • Fixed
      Fixes an issue where note annotations were not probably displayed when consecutively added within a short timeframe. (#6585)
    • Fixed
      Fixes an issue where annotation wasn't deselected when tapping on document background or on a different page. (#5991)
    • Fixed
      Fixes an issue where PSPDFFragment#clearSelectedAnnotations and PSPDFFragment#getSelectedAnnotations worked only on annotations on the current page. (#6592)

    2.3.3 10 May 2016

    • Changed
      Updates dependencies - RxJava to 1.1.5, RxAndroid to 1.2.0.
    • Added
      Adds new PSPDFThumbnailGrid UI. (#6437)
    • Added
      Adds improved support for Accessibility services and screen readers (#6495)
    • Added
      Adds improved support for hardware keyboard shortcuts.
    • Added
      Adds keepPages helper method to PSPDFProcessorTask.
    • Added
      Adds factory method DocumentSaveOptions#createDefaultsFromDocument for creating default save options when processing documents with PSPDFProcessor. (#6412)
    • Added
      Adds support for XML vector drawables on Android devices back to API 16. (#6207)
    • Added
      Adds PSPDFFragment#setInsets and PSPDFFragment#addInsets that makes document insets configurable. (#6299)
    • Removed
      Removes DocumentEditorThemeConfiguration. (#6437)
    • Changed
      Changes DocumentSharingProvider authority - in AndroidManifest.xml the provider authority must be <application package>.pdf.share not com.pspdfkit.share. (#6460)
    • Changed
      PSPDFThumbnailGrid page click listener is now registered via PSPDFThumbnailGrid#setOnPageClickListener.
    • Changed
      Changes PSPDFThumbnailGrid default background color to light gray. (#6437)
    • Changed
      Improves exception message when calling PSPDFFragment#setSelectedAnnotation or PSPDFFragment#setSelectedAnnotations from a thread other than the main-thread. (#6339)
    • Changed
      Marks PSPDFFragment#getSelectedAnnotations return type as @NonNull. The method will now return an empty list if no annotations were selected. (#6339)
    • Changed
      PSPDFFragment#setSelectedAnnotation will no longer automatically change the current page, but rather a separate call to PSPDFFragment#setPage is now required. (#6339)
    • Changed
      Free text annotation is now brought to view when user starts typing. (#5347)
    • Fixed
      Fixes possible crash when checking provider configuration if application contained no providers. (#6527)
    • Fixed
      Fixes appearance of duplicate letters on some devices when editing Free Text annotations. (#6308)
    • Fixed
      Fixes sharing issues on Samsung devices. Note that DocumentSharingProvider now MUST be exported. For security reasons, files may only be shared from an isolated directory. (#6462)
    • Fixed
      Fixes an issue where fragment transactions were possibly not committed before the activity was destroyed, resulting in a missing fragment while activity recreation. (#6326)
    • Fixed
      Fixes DocumentEditor visibility. (#6437)
    • Fixed
      Fixes an issue where PSPDFProcessor would incorrectly throw a PSPDFInvalidLicenseException when processing certain documents. (#6409)
    • Fixed
      Fixes an issue where search results could get hidden behind HUD. (#4190)
    • Fixed
      Fixes an issue where document sharing dialog didn't use activity title as default document name when explicitly set in PSPDFActivityConfiguration. (#6426, Z#3575)
    • Fixed
      Fixes an issue where text markup annotations couldn't be selected via PSPDFFragment#setSelectedAnnotation. (#6378)
    • Fixed
      Fixes an issue where annotation couldn't be reselected from a previously selected note annotation. (#6476)
    • Fixed
      Fixes a NullPointerException that was generated when launching a PSPDFActivity with an invalid license. (#6499)

    2.3.2 26 Apr 2016

    • Changed
      Text search now also searches over annotation contents. (#5790)
    • Added
      Adds support for search result highlighting customization. (#6206)
    • Changed
      PSPDFThumbnailBar now implements DocumentListener and has to be registered via fragment.registerDocumentListener(thumbnailBar). (#6171)
    • Added
      Adds boolean return type to PSPDFDocument#saveIfModified methods returning true if there were any changes to save. (#6317)
    • Changed
      Nutrient#initialize will now log a warning message if android:largeHeap="true" was not declared inside the app's AndroidManifest.xml. (#6157, #6321)
    • Changed
      Shows soft keyboard when opening annotation creator name dialog. (#6306)
    • Removed
      Deprecates methods setBackgroundColor, setSearchResultBorderColor and setSearchResultBackgroundColor in DocumentThemeConfiguration#Builder. Use backgroundColor, searchResultBorderColor and searchResultBackgroundColor instead. (#6206)
    • Changed
      PSPDFThumbnailBar now implements OnAnnotationUpdatedListener and has to be registered via fragment.registerAnnotationUpdatedListener(thumbnailBar). (#6205)
    • Added
      Adds PSPDFThumbnailGrid.OnPageTappedListener and #setOnPageTappedListener(OnPageTappedListener). (#6172)
    • Added
      Adds PSPDFThumbnailBar.OnPageChangedListener and #setOnPageChangedListener(OnPageChangedListener). (#6171)
    • Changed
      Drops EventBus events Events#OnAnnotationUpdated, Events#OnAnnotationSelected and Events#OnAnnotationDeselected. (#6205)
      • Added
        Adds PSPDFFragment#registerAnnotationSelectedListener for listening to annotation selection.
      • Added
        Adds PSPDFFragment#registerAnnotationDeselectedListener for listening to annotation deselection.
      • Added
        Adds PSPDFFragment#registerAnnotationUpdatedListener for listening to annotation updates.
    • Fixed
      Fixes an issue in certain documents where text selection contained more text that was actually selected. (#6213, Z#3424)
    • Fixed
      Fixes an issue where selecting a note annotation on a recycled page would create an exception. (#6183, Z#3403)
    • Fixed
      Fixes an issue where markup annotations couldn't be deselected by tapping on empty document area. (#6228)
    • Fixed
      Fixes an issue where saving an ink annotation would throw a NullPointerException on older devices. (#6276, #6300)
    • Fixed
      Fixes an issue where newly created note annotations where not correctly added to the document after a configuration change. (#6301)
    • Fixed
      Fixes an issue where flattening and removing annotations at the same time caused problems. (#6344)

    2.3.1 8 Apr 2016

    • Added
      Adds support for exporting selected pages with the Document Editor. (#5987)
    • Added
      Adds sharing support. (#5633)
      • Changed
        Allows sharing selected text.
      • Changed
        Allows sharing free-text and note annotation contents.
      • Changed
        Allows sharing documents.
      • Added
        Adds DocumentSharingProvider which provides access to shared files for other applications.
    • Added
      Adds com.pspdfkit.utils.PDFUtils#createPDFRectUnion for calculating the union of a list of PDF rects. (#6117)
    • Added
      Adds catalog examples CustomInlineSearchExample and CustomSearchUiExample. (#6037, #6106)
    • Added
      Adds option to set custom password, pdf version and permissions when saving documents. (#6014)
      • Added
        Adds DocumentSavingOptions parameter to onSaveDocument() call in DocumentListener for customization.
      • Added
        Adds DocumentSavingOptions parameter to save methods in PSPDFDocument.
      • Added
        Adds getDefaultDocumentSavingOptions() method to PSPDFDocument to retrieve document options representing the current document parameters.
      • Added
        Adds option to disable incremental saving via DocumentSavingOptions.
    • Added
      Adds maximumPreviewResultsPerDocument and maximumPreviewResultsTotal to QueryOptions to allow limitation of preview results in full-text search. (#6047, #6017)
    • Changed
      Marks the return values of various PSPDFKit#openDocument* methods as @NonNull. (#6133)
    • Fixed
      Fixes possible OutOfMemory exceptions when resizing PSPDFThumbnailBar. (#6083, Z#3358)
    • Fixed
      Fixes a misleading build error message shown when dependency com.android.support:cardview-v7 is missing. (#6073)
    • Fixed
      Fixes a possible activity leak. (#6111, Z#3380)

    2.3.0 31 Mar 2016

    This release features the new Document Editor. This component allows users to access a whole host of page editing features, including new page creation, page duplication, reordering, rotation or deletion, as well as creating a new document from pages selected across multiple existing documents. If you like to add the Document Editor to your license, ping our sales team to receive a quote.

    • Added
      Adds Document Editor. (#5719)
    • Added
      Adds handling for document permission flags. (#5151)
    • Changed
      Updates dependencies - com.android.support:recyclerview-v7:23.2.1, com.android.support:cardview-v7:23.2.1 and com.android.support:design:23.2.1 have been added, updates RxJava to 1.1.1, RxAndroid to 1.1.0 and support library to 23.2.1.
    • Added
      New page drawable API. (#5766)
      • Added
        Adds PSPDFDrawable to draw arbitrary content on top of rendered pages.
      • Added
        Adds PSPDFDrawableProvider which can serve one or multiple drawables for a page.
      • Added
        Adds PSPDFFragment#registerDrawableProvider, PSPDFFragment#unregisterDrawableProvider, and PSPDFFragment#clearDrawableProviders for managing drawable providers.
    • Added
      New text search API allowing to manually search a document and build custom search implementations. (#5463)
      • Added
        Adds PSPDFTextSearch for searching a document. Searching a document will return a list of PSPDFSearchResult objects.
      • Added
        Adds PSPDFSearchResultHighlighter for visually highlighting one or multiple search results using the new drawable API.
      • Changed
        Search views (PSPDFSearchViewInline and PSPDFSearchViewModular) are now inside package com.pspdfkit.ui.search. This package also contains all other search UI related classes.
    • Added
      Adds PSPDFFragment#scrollTo for scrolling to rects on a page. (#5597)
    • Added
      Adds PSPDFKitActivityConfiguration#setHudViewMode(int) that makes showing/hiding HUD and system bars configurable. (#5566)
    • Added
      Adds PSPDFActivity#setHudViewMode(HudViewMode) that makes showing/hiding HUD and system bars configurable at runtime. (#5566)
    • Changed
      Contextual action modes now behave more consistently. (#5414)
    • Changed
      Inline search now scrolls to search results even when they are outside of the current viewport. (#5560)
    • Changed
      Annotation#getBoundingBox now returns a copy of the internal rectangle to prevent inconsistent API behavior. (#5122)
    • Changed
      PSPDFDocument#getPermissions now returns a copy of the internal permissions set. (#5722)
    • Added
      Adds a warning if text-to-speech service is unavailable. (#5552)
    • Changed
      Disables entering emojis into free text annotation. (#5840)
    • Fixed
      Fixes an issue where ink paths got lost after zooming while drawing on multiple pages. (#5604)
    • Fixed
      Fixes an issue where it was possible to create empty free text annotations. (#5468)
    • Fixed
      Fixes an issue where selected annotation wasn't unselected after selecting text markup annotation. (#5523)
    • Fixed
      Fixes an issue where scrolling while having text selected would crash the app. (#5653, Z#3160)
    • Fixed
      Fixes an issue where scrolling by touching some tappable area causes it to highlight for a split second. (#5698)
    • Fixed
      Fixes an issue where drawing dots with ink is not shown on the screen. (#5614)
    • Fixed
      Fixes an issue where reading note annotations is not possible if annotation editing is disabled. (#5665)
    • Fixed
      Fixes ink annotation drawing performance regression. (#5557)
    • Fixed
      Fixes saving to files with non-ASCII filenames. (#5839)
    • Fixed
      Fixes an issue where the page 2 places to the left of the last page would disappear when the last page becomes the current one. (#5694)
    • Fixed
      Fixes an issue in the continuous scroll mode where setting the specific page would align left edge of the screen with the one of the page, instead of the middles. (#5745)
    • Fixed
      Fixes an issue where annotation was displayed twice when moving or disappeared when unselected. (#5727)
    • Fixed
      Fixes an issue when using PSPDFThumbnailBar in custom layouts. (#5763)
    • Fixed
      Fixes an issue where PSPDFActivity wouldn't listen to events after loading new document. (#5785)
    • Fixed
      Fixes an issue appearing randomly when changing orientation after highlighting text selection. (#5798)
    • Fixed
      Fixes an issue where changing text size of a free text annotation to 1pt didn't work. (#5799)
    • Fixed
      Fixes an issue where note annotation wasn't deselected after being deleted in note editor. (#5791)
    • Fixed
      Fixes an issue when soft keyboard is not dismissed after quitting free text annotation editing. (#5843)
    • Fixed
      Fixes an issue where it wasn't possible to pick grey color in note annotation editor. (#5794)
    • Fixed
      Fixes an issue with leaking the activity context when initializing in short-lived activities. (#5879)
    • Fixed
      Fixes an issue where documents where loaded multiple times when using a DataProvider as source. (#5869)
    • Fixed
      Fixes an issue where editing annotations would produce flickering. (#5931)
    • Fixed
      Fixes several out-of-memory errors caused by intensive bitmap allocations. (#5724)
    • Fixed
      Fixes non-natural fling gestures after pinch-zooming into the document. (#4798)

    2.2.1 26 Feb 2016

    • Changed
      Improves text highlighting by using a smart paragraph selection and not just the selected rect. (#5032)
    • Added
      Adds support for reading documents from a ContentProvider serving data through a pipe (i.e. via ParcelFileDescriptor.createPipe()).
    • Added
      Adds com.pspdfkit.listeners.SimpleDocumentListener which is an empty implementation of the DocumentListener interface. (#5512)
    • Changed
      Inline search now shows results starting from the current page. (#5579)
    • Changed
      Minor cosmetic tweaks in annotation list. (#5559)
    • Fixed
      Fixes an issue with duplicated search results when searching from text selection. (#5553)
    • Fixed
      Fixes an issue when selecting "Testcase_No_Annotations.pdf" example in PSPDFKit catalog's "Document switcher example" would crash the app.
    • Fixed
      Fixes an issue where edge pages are never marked as current in continuous scroll mode because they never reach the middle of the screen. (#4964)
    • Fixed
      Fixes an issue where certain characters (like parenthesis, brackets, etc.) could not be searched. (#5596, Z#3117)
    • Fixed
      Fixes performance regression when editing large annotations. (#5618)

    2.2.0 19 Feb 2016

    See the announcement post(opens in a new tab).

    • Changed
      Enables annotation editing on multiple pages, as well as switching pages while editing. (#5346, #5289)
    • Added
      Adds search menu option for selected text in the document. (#5298)
    • Added
      Adds PSPDFKit#openDocumentFromSource. (Z#2985)
    • Changed
      Keeps parameter names of public API methods. (#5019)
    • Changed
      Displays page number indicator overlay after system bars are shown. (#5299)
    • Changed
      Note annotation editor can now be opened by double-tapping a selected annotation. (#5290)
    • Changed
      Free text annotation editor now differentiates between editing and writing modes. (#5296)
    • Changed
      PSPDFFragment can now be nested as a child fragment. (#5476)
    • Changed
      Allows scrolling while in drawing mode. (#5252, Z#2861)
    • Fixed
      Fixes an issue where saving to ContentProviders which don't support appending would fail.
    • Fixed
      Fixes an issue in the free text annotation editor where the soft-keyboard wasn't hidden after selection ended.
    • Fixed
      Fixes an issue in the free text annotation editor where the soft-keyboard wasn't automatically opened in the landscape screen orientation. (#5503)
    • Fixed
      Fixes an issue where text couldn't be pasted into the free text annotation editor. (#5123)
    • Removed
      Removes wrong @Nullable annotation from PageRenderConfiguration.Builder#build.
    • Changed
      Clicking text markup annotations won't start edit mode if annotation editing is disabled. (#5434)
    • Fixed
      Fixes an issue where AssetDataProvider would return an invalid Uri via #getUri. (#5420)
    • Fixed
      Fixes IllegalStateException crash appearing randomly in paginated layout. (#5361)
    • Fixed
      Fixes animation transition from selected text to ActionMode. (#5378)
    • Fixed
      Fixes an issue that could cause a crash when opening documents with large number of annotations in a page. (#5455)
    • Fixed
      Fixes an issue where highlight annotations created from text selection action bar had undefined author field. (#5343)
    • Fixed
      Fixes an issue where outline button was disabled even when annotation list was available. (#5287)
    • Fixed
      Fixes an issue where Bitmap objects returned by PSPDFDocument#renderPageToBitmap would not have premultiplied alpha values. (#5412)
    • Fixed
      Fixes an issue where immersive mode wasn't handled correctly while contextual action mode was active.
    • Fixed
      Fixes MediaController displacement. (#5314)
    • Fixed
      Fixes a non-fatal exception on Samsung devices failing to unparcel framework classes. (#5456)
    • Fixed
      Fixes an issue where annotation editing button was clickable even when disabled visually. (#5288, #5464, Z#3035)
    • Fixed
      Fixes an issue where drawing ink annotations outside of the page makes it larger than the page itself. (#5498)
    • Fixed
      Fixes an issue that would cause exceptions when accessing AnnotationProvider#getAnnotations concurrently. (#5500)
    • Fixed
      Fixes an issue when adding multiple annotations at the same time programmatically would cause MissingBackpressureException to be thrown. (#5233)

    2.1.1 2 Feb 2016

    • Added
      Added PSPDFKit#openDocumentsFromSources, PSPDFActivity#showDocumentsFromSources and PSPDFFragment#newInstanceFromSources to allow opening of compound PDF documents from multiple DataProviders.
    • Fixed
      Fixes preserving page sharpness when performing zoom actions on already zoomed page (#5302)
    • Fixed
      Fixes an issue where a subscription license would stop working once expired. (#5327)
    • Changed
      Outline and search view are now dismissed when entering annotation editing mode. (#5326)
    • Changed
      Preserving page sharpness when performing zoom actions on already zoomed page (#5302).
    • Changed
      In PSPDFSearchViewInline, methods getPrevIconColorFilter and getNextIconColorFilter are renamed to getPrevIconColorTint and getNextIconColorTint respectively.
    • Added
      Adds closing back arrow to inline search. (#5291)

    2.1.0 28 Jan 2016

    See the announcement post(opens in a new tab).

    Migration guide(opens in a new tab).

    • Changed

      IMPORTANT: PSPDFActivity is now always based on AppCompatActivity and PSPDFAppCompatActivity class has been removed. This change has been made because new annotation editing UI elements need support-v7 and appcompat-v7 dependency.

    • Changed

      Indexed full text search is now supported via the PSPDFLibrary class. This feature needs to be enabled for your license. See https://pspdfkit.com/pdf-sdk/android/indexed-search/ for details.

    • Added

      Adds PSPDFProcessor to split/merge/flatten PDF documents.

    • Added

      Adds support for incremental PDF saving:

      • Changed
        Files will now be appended to instead of being fully rewritten on each save.
      • Added
        Added ContentResolverDataProvider incremental saving support for files opened via SAF or other content providers.
      • Added
        Added supportsAppending method to WritableDataProvider. It should return true if the DataProvider supports appending to PDF file and then handle writing with WrideMode.APPEND_TO_FILE mode.
      • Changed
        Due to encryption, password protected files cannot be incrementally written. They will always be fully rewritten and encrypted.
    • Changed

      getUid() method added to PSPDFDocument. UID represents a unique ID for a document and is derived from getUid call in DataProvider if one is used.

    • Added

      Adds the list of annotations under the outline menu. (#5039)

    • Changed

      getAllAnnotationsOfType added to AnnotationProvider for easy retrieval of all annotations of certain types from the document.

    • Added

      Adds PSPDFActivity#showDocument(Context, DataProvider, PSPDFActivityConfiguration) method overload (without password parameter).

    • Added

      Adds PSPDFActivity#getDocument method which returns the currently loaded document. (#5260)

    • Added

      Adds PSPDFActivity#getPSPDFFragment() which is a shorthand getter to retrieve the activities fragment.

    • Added

      Adds PSPDFFragment#getVisiblePDFRect(int page) and PSPDFFragment#getVisiblePages() for accessing current visible rect on the page and fetching a list of visible pages. (#4086)

    • Added

      Adds PSPDFFragment#setScrollingEnabled(boolean enabled) and PSPDFFragment#setZoomingEnabled(boolean enabled) that can disable zooming/scrolling in the document view. (#4931)

    • Added

      Adds DocumentListener#onDocumentZoomed(PSPDFDocument document, int pageNumber, float scaleFactor) callback method for receiving page zoom changes. (#5017)

    • Added

      Adds PSPDFDocument#getUri and PSPDFDocument#getUriList (for compound documents). (#5015)

    • Added

      New text selection API (#5020)

      • Added
        Added typed TextSelection class which holds page number, text and rects of the current selection.
      • Changed
        Current selection can be retrieved by calling PSPDFFragment#getTextSelection.
      • Changed
        Selection can be set using PSPDFFragment#setTextSelection.
      • Changed
        A simpler TextSelectionListener interface allowing you to intercept all selection events (selection, changes, deselection), and to cancel them.
    • Added

      Adds PSPDFConfiguration#pagePadding for customizing the padding between pages. (#5136)

    • Changed

      Replaces "Loading.." text while the page is being loaded with the progress bar (throbber). (#3640)

    • Changed

      In PSPDFAppCompatActivity and PSPDFActivity, the method getPSPDFKitViews() is renamed to getPSPDFViews(). (#5134)

    • Changed

      Copying selected text to clipboard displays a toast message as a feedback (#5253).

    • Fixed

      Fixes transfer of document permissions and password to saved documents.

    • Fixed

      Fixes a performance regression that caused jank while scrolling large documents. (#5071)

    • Fixed

      Fixes an issue on certain devices when accessing external cache directory. (#5103)

    • Fixed

      Fixes an issue caused by switching the active annotation editing tool for annotations not attached to a document. (#5061)

    • Fixed

      Fixes setting of creation date on newly created annotations. (#5124)

    • Fixed

      Fixes link annotation touch feedback being cleared on long-press. (#4891)

    2.0.1 16 Dec 2015

    • Changed
      Greatly improved high-resolution detail rendering performance. (#4886, #4546)
    • Fixed
      Fixes an issue where highlight annotations were getting darker each time a new one was added. (#4886)
    • Changed
      Improves browsing performance - UI more responsive during the rendering. (#4914, #4674)
    • Changed
      PDF parsing/rendering improvements for older, non-compliant versions. (#4903)
    • Changed
      Proper handling of orientation changes when having android:configChanges="orientation|screenSize" declared in manifest. (#4955)
    • Fixed
      Fixes an issue where annotation is deselected if annotation editor was opened. (#4902)
    • Fixed
      Fixes an issue where thumbnail bar was dismissed when dragging a finger over it. (#4896)
    • Fixed
      Fixes transition into the highlighted search result while in zoom mode. (#4893)
    • Fixed
      Fixes an issue where certain unicode (emoji) characters in the PDF could be converted into invalid UTF-8. (#4946)
    • Changed
      Don't deselect annotation immediately as page starts scrolling. (#4880)
    • Fixed
      Fixes a crash where some theme items weren't resolved on API < 15. (#4941)
    • Changed
      WriteableDataProvider renamed to WritableDataProvider.
    • Fixed
      Fixes search highlighting issues. (#4947)

    2.0.0 7 Dec 2015

    See the announcement post(opens in a new tab).

    PSPDFKit 2 for Android is a major new release, adding support for creating/editing annotations. See the announcement article for details(opens in a new tab). The new minimum API level is 16 (Android 4.1 Jelly Bean).

    • Changed
      PSPDFDocument now has getAnnotationProvider() call which returns AnnotationProvider object that handles all Annotation related operations.
    • Changed
      getPageAnnotations call from PSPDFDocument has been moved to AnnotationProvider class.
    • Changed
      Implemented public constructors, getters and setters for newly supported annotation classes. Those are:
      • Changed
        HighlightAnnotation
      • Changed
        StrikeOutAnnotation
      • Changed
        SquigglyAnnotation
      • Changed
        UnderlineAnnotation
      • Changed
        InkAnnotation
      • Changed
        FreeTextAnnotation
      • Changed
        NoteAnnotation
    • Added
      Added Annotation editing user interface. Configuration is controlled by several classes in PSPDFConfiguration:
      • Changed
        AnnotationEditingConfiguration can be used to enable/disable editing per annotation type or altogether.
      • Changed
        AnnotationToolbarThemeConfiguration and connected theme classes can be used to customize editing toolbar icons.
    • Added
      Added ability to disable editing for some annotation types. Currently supported editable annotation types are: HIGHLIGHT, STRIKEOUT, SQUIGGLY, UNDERLINE, FREETEXT, INK and NOTE.
    • Changed
      PSPDFKit can now display contents of Note annotations and allows editing of color, contents and icon.
    • Added
      Added WriteableDataProvider which extends existing DataProvider and allows writing of edited PDF documents.
    • Changed
      PSPDFDocument now has save and saveIfModified methods for saving in synchronous and asynchronous way.
    • Removed
      Removed previously deprecated setDisplayedPage in PSPDFFragment. Use setPage instead. (#4210)
    • Changed
      Changed behaviour of TextSelectionListener - if false is returned in onTextSelectionStarted, onTextSelectionEnded will be called immediately after it.
    • Changed
      Previously deprecated PSPDFFragment#getPageToScreenTransformation now removed. Use PSPDFFragment#getPageToViewTransformation instead.
    • Changed
      In PSPDFFragment, renamed convertPage[Rect/Point]ToView[Rect/Point] to convertPDF[Rect/Point]ToView[Rect/Point], convertView[Rect/Point]ToPage[Rect/Point] to convertView[Rect/Point]ToPDF[Rect/Point]
    • Changed
      getModDate() in PSPDFDocumentMetadata class was renamed to getModificationDate().

    1.5.0 28 Oct 2015

    • Added
      Added loadingProgressDrawable PSPDFKitConfiguration option that enables configuration of the document loading throbber. Setting it to null will disable the throbber. (#4259)
    • Removed
      Removed PSPDFThumbnailBar#setCurrentPage. The thumbnail bar is now automatically tied to the document view using the internal event bus. (#4291)
    • Changed
      Stop spoken text when text selection ends. (#4391)
    • Changed
      Updated support library dependencies to version 23.1.0.
    • Fixed
      Fixed an issue which prevented to open documents with an empty set of PDF permissions. (#4336)
    • Fixed
      Fixed an issue where improper text extraction was causing wrong search results. (#4187, #4189)
    • Fixed
      Fixed an issue where InputStreamDataProvider would fail reading data from intermittent input streams. (#4275)
    • Fixed
      Fixed an issue where link annotations and search results would be drawn as black blocks on some pre-Jellybean devices. (#4396)

    1.4.1 5 Oct 2015

    • Added
      Added getTitle() call to DataProvider interface that lets implementor specify a fallback title of the document if none is available in metdata.
    • Changed
      Significantly improved performance of loading documents from a DataProvider. (#4143)
    • Fixed
      Fixed page rendering bug where wrong page could be momentarily rendered on some Android 5.x devices. (#4148)
    • Fixed
      Fixed improper page transitions controlled by boolean animate argument in setPage(int page, boolean animate). (#4112)
    • Fixed
      Fixed locked first swipe after a zoom-out in PER_PAGE mode.
    • Fixed
      Fixed an issue where main thread document access could cause jank when opening a document.

    1.4.0 24 Sep 2015

    See the announcement post(opens in a new tab).

    • Added
      New catalog examples: DocumentSwitcherExample, SplitDocumentExample, RandomDocumentReplacementExample, MemoryDataProviderExample, and CustomDataProviderExample. (#3869)
    • Added
      New PSPDFActivity#getConfiguration and PSPDFAppCompatActivity#getConfiguration allow to easily access the configuration object which was passed while launching the activity.
    • Changed
      Converted DataProvider to an interface for more flexibility. Previously, it was an abstract class.
    • Changed
      Moved DataProvider to com.pspdfkit.document.providers package.
    • Added
      Added MemoryDataProvider to load documents directly from byte arrays.
    • Added
      Added constants DataProvider#NO_DATA_AVAILABLE which has to be returned by a DataProvider if it fails to read data inside DataProvider#read. (#3952)
    • Added
      Added constant DataProvider#FILE_SIZE_UNKNOWN which has to be returned by the DataProvider if it fails to retrieve the correct data size.
    • Changed
      Changed search input field and password field to material design. pspdf__backgroundColor, pspdf__borderColor and pspdf__borderWidth properties have been removed. (#3693)
    • Changed
      Greatly improved data provider Javadoc documentation. (#3952)
    • Changed
      Updated dependencies: RxJava 1.0.14, Support libraries 23.0.1, RxAndroid 1.0.1.
    • Fixed
      Fixed a problem where DocumentListener objects were removed when calling PSPDFActivity#setDocument or PSPDFAppCompatActivity#setDocument.
    • Fixed
      Fixed a bug where padding of PSPDFThumbnailGrid was applied multiple times.
    • Fixed
      Fixed obfuscation problems in the data provider API. (#3952)
    • Changed
      Updated dependencies - RxJava - 1.0.14, Support libraries - 23.0.1, RxAndroid - 1.0.1.
    • Added
      Added zoom calls to PSPDFFragment for zooming to a specified rect or to a specified zoom scale (zoomTo()). Also, the document can now be scaled by a given scale factor with zoomBy(). (#3704)
    • Changed
      Three new properties added to a configuration - startZoomScale that enables starting the document at a specified scale, maxZoomScale which controls the document zoom limit, and zoomOutBounce defining should the page have that bounce effect when zoomed out or not.
    • Changed
      onDocumentLoaded() callback is now invoked when both document is loaded and layout displaying the document is ready
    • Fixed
      Fixed invoking multiple onPageChanged() calls. (#3845)
    • Changed
      Enabled hiding page labels and showing the page number instead, both while scrolling pages and in outline view. (#3927)
    • Changed
      Disabled bounce effect on pages in per-page mode, causing some unintuitive behavior. (#3691)
    • Changed
      Improved file opening performance when accessing DocumentProvider files.
    • Fixed
      Fixed issues with opening files from SD Card on Android 6.0.

    1.3.1 1 Sep 2015

    • Changed
      Page labels are now displayed in page number popup, outline view and grid view if applicable.
    • Changed
      Enabled retrieval of page labels via getPageLabel() and getPageIndexForPageLabel() methods on PSPDFDocument class.
    • Added
      Added getPermissions() call on PSPDFDocument class to retrieve PDF document permissions.
    • Changed
      Replaced PSPDFFragment#setDocumentListener by PSPDFFragment#registerDocumentListener and PSPDFFragment#unregisterDocumentListener.
    • Changed
      PSPDFActivity and PSPDFAppCompatActivity now implement the DocumentListener interface and allow access to listener methods by overriding.
    • Changed
      show() and hide() calls on PSPDF views now properly update state of menu items in the Activity.
    • Changed
      setOnVisibilityChangedListener in PSPDF views has been replaced with addOnVisibilityChangedListener and removeOnVisibilityChangedListener calls.
    • Fixed
      Fixed a possible memory leak when closing PSPDFFragment before document is loaded.
    • Changed
      Prevent crash when invalid start page is passed in PSPDFActivityConfiguration.
    • Fixed
      Fixed some annotations sticking around on wrong pages after orientation change.
    • Fixed
      Fixed issues with link annotation tap highlights.
    • Changed
      Multiple UI fixes and improvements for immersive mode.
    • Changed
      Improved fling on the pages while zoomed.
    • Changed
      Faster settle after a zoom-out.
    • Fixed
      Fixed diagonal scroll invoking incorrect page fling in FIT_TO_WIDTH mode.
    • Changed
      Rendering high-resolution image at default zoom scale with insignificant performance hit (#2972).
    • Fixed
      Fixed detail view clipping in paginated mode (#3696).
    • Fixed
      Fixed slow vertical fling (#3692).
    • Changed
      Moving page opposite of the scroll direction in CONTINUOUS scroll mode is now limited by the border.

    1.3.0 19 Aug 2015

    See the announcement post(opens in a new tab).

    • Changed
      IMPORTANT Classes prefixed with PSPDFKit have been renamed to PSPDF for consistency and future-proofness (e.g. PSPDFKitActivity is now PSPDFActivity)
    • Changed
      PSPDFKit can now open content provider URIs directly without copying files to internal cache. isOpenableUri will now return true for all such URIs that can be opened.
    • Changed
      PSPDFCatalog example has been updated to demonstrate opening documents from document provider.
    • Changed
      Activities derived from PSPDFKitActivity or PSPDFKitAppCompatActivity can now load another PDF document using setDocument parent call.
    • Changed
      Bookmark class has been renamed to OutlineElement to better reflect it's function. PSPDFDocument.getBookmarks() was also renamed to PSPDFDocument.getOutline().
    • Changed
      An error graphic will now appear in PSPDFKitFragment / PSPDFKitActivity / PSPDFKitAppCompatActivity when attempting to open an invalid file.
    • Changed
      AssetDataProvider was added to allow opening of PDF documents from APK assets directly. Use it with open methods that accept a DataProvider source.
    • Changed
      ContentResolverDataProvider was added to open arbitrary content provider URIs. It will be used automatically in all open methods.
    • Added
      Add PSPDFDocument#getCharIndexAt to retrieve the index of a character on a page at the given page coordinates.
    • Changed
      Improved log messages when encountering incompatible device ABIs.
    • Fixed
      Fixed a problem where the catalog app would restart itself after closing it when being launched using an external intent.
    • Fixed
      Fixed a crash when using PSPDFKitThumbnailBar in custom activities. (#3420)
    • Fixed
      Fixed a crash due to inconsistent state in PSPDFKitSearchView (#1695)
    • Changed
      Various performance and stability improvements to the PDF rendering backend.
    • Added
      Added Finnish, Slovenian, Czech and Greek localization.
    • Changed
      Loading... text display colors are now properly inverted when invertColors configuration parameter is set.
    • Added
      Added new annotation type classes: FreeTextAnnotation, UnderlineAnnotation, SquigglyAnnotation, StrikeoutAnnotation, HighlightAnnotation and InkAnnotation
    • Changed
      Disabled disk cache by default - for simple text document this means a significant performance boost.

    1.2.3 6 Jul 2015

    • Fixed
      Fixed corrupt PDFs crashing the library.
    • Fixed
      Fixed a crash bug caused by swiping before the document was fully initialized.
    • Added
      Added NoteAnnotation class to represent note annotations in the document.
    • Changed
      Annotation object now exposes contents and rich text contents of each annotation.
    • Changed
      Documents now expose getAnnotations(page) call which returns annotations on the page.
      • Changed
        Unknown annotations will be returned as UnknownAnnotation object with proper type.
    • Added
      Added LeakCanary support. (#3241)
    • Changed
      Expose com.pspdfkit.ui.PSPDFKitFragment.getPageToScreenTransformation. (#3195)
    • Fixed
      Fixed bug causing stack overflow when exiting text selection mode. (#3284)
    • Changed
      In-memory caching of rendered pages is now noticeably faster
    • Added
      Added FragmentExample and CustomFragmentActivity. (#3338)

    1.2.2 23 Jun 2015

    • Added
      Added support for Named action type in link annotations.
    • Added
      Added PSPDFKitActivityConfiguration#layout(int). (#3075)
    • Added
      Added CustomLayoutExample to catalog app. (#3075)
    • Changed
      Exposed menu action ids for action bar menu customization:
      • Changed
        com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_THUMBNAIL_GRID
      • Changed
        com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_SEARCH
      • Changed
        com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_OUTLINE
    • Fixed
      Fixed page not switching properly on small scroll in PER_PAGE scroll mode. (#2905)
    • Fixed
      Fixed multi-line search. (#2993)
    • Changed
      Exposed startSearch() calls in PSPDFKitSearchViewModular and PSPDFKitSearchViewInline. (#2971)
    • Changed
      Quick switching between menu items now works correctly. (#3157)
    • Changed
      Modular search improved - selected result animated and border coloring added.
    • Changed
      Optimized performance on ARMv7 devices.

    1.2.1 6 Jun 2015

    • Added
      Add a new advanced catalog example showing customization and other features.
    • Changed
      Notify users for missing dependencies. (#3047)
    • Changed
      Automatically hide keyboard when browsing through the list of search results. (#2978)
    • Changed
      Exposed custom intent data to be added when launching activities. (#3073)

    1.2.0 1 Jun 2015

    See the announcement post(opens in a new tab).

    • Changed
      Theming support - all PSPDFKit views are now customized via themes. Existing appearance configuration in PSPDFKitActivityConfiguration and related have been moved to theme attributes. See CUSTOMIZATION.html for more information.
    • Changed
      Text selection is now implemented and allows users to copy and listen to selected text.
    • Changed
      Text selection listeners are now implemented.
    • Changed
      Media framework with PSPDFKit extensions for Gallery, offline videos and Youtube videos is now implemented.
    • Changed
      Implemented scroll direction lock for easier reading of content in columns.
    • Fixed
      Fixed memory caching issues which could lead to a OOM crash.
    • Added
      Added inline search (search as action view) option.
    • Changed
      getPageTextRect has been changed into getPageTextRects that returns multiple rects if the range requires them.
    • Added
      Added more than 20 new localizations.
    • Added
      Added getPage and setPage(int) calls to PSPDFKitActivity, PSPDFKitAppCompatActivity and PSPDFKitFragment.
    • Changed
      setDisplayedPage(int) deprecated, use setPage(int) instead.
    • Added
      Added page numbers to table of contents.
    • Changed
      A bucket full of bug fixes.

    1.1.1 17 Apr 2015

    • Changed
      Custom Activity extended from either PSPDFKitActivity or PSPDFKitAppCompatActivity can now be used by setting classname with activityClass() in PSPDFKitActivityConfiguration for easier customization.
    • Changed
      getPSPDFKitViews() method was added to Activity classes to make access to PSPDFKit views easier when extending the activity.
    • Added
      Added getBookmarks() call to PSPDFDocument which retrieves PDF bookmarks. (Table of Contents)
    • Fixed
      Fixed PSPDFKitFragment wrongly expecting a Parcelable DataSource.
    • Changed
      Improvements to fit to width and zooming code.
    • Changed
      Improved look of page grid display on smaller devices.
    • Fixed
      Fixed an issue where setDisplayedPage call on PSPDFFragment didn't work before layout.
    • Fixed
      Fixed severe performance degradation on some high-resolution devices like Samsung Note 4.
    • Fixed
      Fixed accidentally obfuscated listener interfaces.

    1.1.0 3 Apr 2015

    • Changed
      Page view may now be fit to width by using fitMode setting in PSPDFKitConfiguration.
    • Changed
      PDF documents can now be loaded from a custom source with DataProvider class.
    • Added
      Added DocumentListener which allows handling page loading events and page tap events.
    • Changed
      Flinging pages in PER_PAGE scrolling mode now always flings a single page.
    • Fixed
      Fixed issue where entered password was lost when changing orientation.
    • Fixed
      Fixed issue where current page was being changed when changing orientation while using a Fragment.
    • Changed
      Zoomed view rendering is now significantly faster.
    • Changed
      RxJava and support library dependency versions updated to 1.0.8 and 22.0.0 respectively.

    1.0.4 11 Mar 2015

    • Fixed
      Fixed an issue where zoomed view was larger than maximum allowed texture size on some devices.

    1.0.3 9 Mar 2015

    • Added
      Added password parameter to openDocument Activity API to allow for opening password protected documents.
    • Added
      Added user password prompt when attempting to open password-protected PDF without passed password.
    • Changed
      Minor bugfixes.

    1.0.2 4 Mar 2015

    • Changed
      Minor documentation and bug fixes.

    1.0.1 3 Mar 2015

    • Changed
      Minor documentation and bug fixes.

    1.0.0 27 Feb 2015

    • Changed
      Fast and responsive PDF viewer.
    • Changed
      Annotation display.
    • Changed
      Support for PDF links.
    • Changed
      Display document outline.
    • Changed
      Display thumbnail bar and thumbnail grid.
    • Changed
      Support for document search.
    • Changed
      Support for rendering into bitmaps.