Changelog
Follow us on Twitter for updates. Our blog highlights the best new features and changes.
Newest Release
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-45204)
- 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)
Previous Releases
2024.6.0 - 6 Sep 2024
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 theDocumentConnection
. (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
withPdfFragment#refreshPages
when a document’schildView
s (pages) are cleared. (J#ANDR-786) - Changed
Improve evaluation experience. (J#CORE-667)
- Changed
Replaces the old simple example with the Compose wrapper example app, which can be found here https://github.com/PSPDFKit/pspdfkit-jetpack-compose-pdf-viewer. (J#ANDR-790)
- Changed
Upgrades NDK to 27 from 25. (J#ANDR-183)
- Fixed
Fixes a very rare potential corrupt file case when using
PdfFragment#save
.save
is now blocking and safe.saveAsync
has been added for original functionality, which doesn’t block the UI, and a spinner is shown during the saving process. (J#ANDR-541) - Fixed
Fixes an issue where a PDF rendered incorrectly. (J#CORE-643)
- Fixed
Fixes an issue where annotations exported to XFDF and then imported again may lose their text color. (J#CORE-648)
- Fixed
Fixes an issue where converting a bitonal TIFF with a lot of pages consumed too much memory. (J#CORE-621)
- Fixed
Fixes an issue where opening image files with broken XMP/EXIF headers may crash the app. (J#CORE-665)
- Fixed
Fixes an issue where signatures on rotated documents were displayed incorrectly. (J#CORE-672)
- Fixed
Fixes an issue with highlight shape when adding text highlights on rotated pages. Text highlights now cover only the rectangle of the relevant text, without using curved edges. (J#ANDR-313, J#ANDR-314, J#ANDR-194)
2024.5.1 - 30 Aug 2024
- Changed
Improves the evaluation experience. (J#CORE-667)
2024.5.0 - 6 Aug 2024
Version 2024.5 is a routine release with a few upgrades, fixes, and small features, outlined below.
UI
- Added
Adds a
pspdf__scaleListItemBackgroundColor
attribute to set the color of the list item background of the measurement scales list. (J#ANDR-772) - Added
Adds a feature to configure the hidden and visible state of the
VerticalScrollbar
view. (J#ANDR-750) - Fixed
Fixes an issue where ink annotations can get clipped slightly when the tool is deselected. (J#ANDR-679)
- Fixed
Fixes an issue where the document text search was very slow after changing the search query string. (J#ANDR-618)
- Fixed
Fixes an issue where the saving spinner would never get dismissed when redaction saving failed. (J#ANDR-530)
- Fixed
Fixes an issue where the virtual keyboard was wrongly hidden during content editing. (J#ANDR-608)
- Fixed
Fixes an issue with the virtual keyboard in the context of a vertical continuous scrolling page configuration. (J#ANDR-419)
Model
- Changed
Updates HarfBuzz library to 9.0.0. (J#CORE-625)
- Fixed
Fixes a potential crash when clearing listeners in the
DocumentView
if it happens before the document has been loaded. (J#ANDR-753) - Fixed
Fixes an case where a custom
DataProvider
that doesn’t support appending was writing with append during redaction application, in turn causing failed redaction. (J#ANDR-530)
Instant
- Fixed
Fix an issue where the Instant client incorrectly removes the path segment from a server URL when parsing it. (J#ANDR-757)
2024.4.0 - 22 Jul 2024
Migration guide. Version 2024.4 adds support for Android 15 and 16KB page sizes, better ink annotation rendering, and many more fixes, improvements, upgrades, and small features, which are outlined below.
It’s important to note that the deprecation period for the legacy digital signature APIs has passed, and users now have to use the new API. See the migration guide linked above for details.
UI
- Added
Adds a button to the date and time pickers to clear form fields with dates when said fields aren’t empty. (J#ANDR-436)
- Added
Adds the ability to fix the aspect ratio for free text annotations using the
setKeepAspectRatioEnabled
API. (J#ANDR-579) - Added
Adds a feature to configure expanded and collapsed state of outline elements. (J#ANDR-546)
- Added
Adds a feature to update the style with the Material Theme for MainToolbar Composable. (J#ANDR-524)
- Added
Adds the eraser tool to the tools that are supported by the palm rejection mode. (J#ANDR-598)
- Changed
Changes the default state of the stylus to be disabled so that stylus-only input will be activated once an annotation has been made using the stylus and so that
enableStylusOnDetection()
in the configuration is set totrue
. (J#ANDR-542) - Changed
Exposes
AnnotationConfigurationRegistry
in theDocumentConnection
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
toRegExp.$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 composeDocumentView
. (J#ANDR-653) - Removed
Removes the deprecated legacy digital signatures code, as well as a few related classes and APIs. Full details in the migration guide. (J#ANDR-203)
- Changed
Renames the internal
OutOfMemory
thread toMemoryHandling
to reduce confusion in stack traces. (J#CORE-581) - Changed
Replaces the
Uri
API for output documents in the digital signaturessignDocument
API with a fully customizableDataProvider
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 theField
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 theDocumentConnection
interface of our Jetpack Compose SDK. (J#ANDR-585) - Fixed
Fixes an issue where the
PdfThumbnailGrid
displayed the wrong amount of columns after a device rotation. (J#ANDR-583) - Fixed
Fixes an issue where the size of an ellipse or rectangle annotation changes when you select and deselect it after setting the border style to/from cloudy. (J#ANDR-536)
- Fixed
Fixes an issue where an annotation drawn on top of a
LinkAnnotation
does not intercept a click event first. (J#ANDR-490) - Fixed
Fixes an issue where cloudy borders change size when first created and deselected. (J#ANDR-600)
Model
- Changed
Improves the performance of the snapping tool with construction documents. (J#CORE-536)
- Fixed
Fixes a potential crash when accessing a
ShapeAnnotationView
Annotation
object if the view has !=1 annotation associated. (J#ANDR-540) - Fixed
Fixes an issue where
OnAnnotationSelectedListener.onAnnotationSelectionFinished
wasn’t called under certain circumstances. (J#ANDR-537) - Fixed
Fixes an issue where, after redacting, some images were displaying wrong (e.g. black instead of white). (J#CORE-561)
- Fixed
Fixes an issue where changing to cloudy border style via the inspector resulted in the shape disappearing. (J#ANDR-536)
- Fixed
Fixes an issue where exporting and importing Instant JSON may incorrectly move annotations or forms. (J#CORE-589)
- Fixed
Fixes an issue where the ‘value’ property of the ‘Field’ object in JavaScript may return an incorrect type in some cases. (J#CORE-582)
- Fixed
Fixes an issue where the line dash pattern was rendered differently from other PDF readers. (J#CORE-540)
- Fixed
Fixes an issue where the page labels may be incorrect in some documents. (J#CORE-560)
- Fixed
Fixes an issue where too many fonts were added to the PDF in certain rare circumstances, causing crashes. (J#CORE-605)
- Fixed
Fixes an issue where, in some cases, PDF JavaScript that changes the value of a form field was not executed correctly. (J#CORE-590)
- Fixed
Fixes an issue where some digital signatures may incorrectly report as invalid. (J#CORE-597)
- Fixed
Fixes an issue where some digital signatures may not be validated correctly. (J#CORE-607)
2024.3.0 - 5 Jun 2024
Migration guide. Version 2024.3 introduces snappier page transitions, as well as proper stylus handling and palm rejection. You can now draw annotations with the stylus while moving the page or switching pages with a finger. There are more bug fixes and improvements. See details below.
UI
- Added
Adds a configuration option to disable the annotation popup toolbar when you long-press a selected annotation (see
annotationPopupToolbarEnabled
). (J#ANDR-468) - Added
Adds palm rejection handling on all devices. (J#ANDR-88)
- Added
Adds the ability to draw with a stylus and pan or scroll a document with a finger once the setting has been enabled. (J#ANDR-457)
- Changed
Exposes
onDocumentScroll
to theDocumentView
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
anddocumentIdString
inPdfDocument
. (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
inonAnnotationCreated()
. (J#ANDR-479) - Fixed
Fixes an issue where deleting the value of a form field may incorrectly show the previous value in some situations. (J#CORE-531)
- Fixed
Fixes an issue where measurement labels on rotated pages weren’t exported correctly. (J#CORE-529)
- Fixed
Fixes an issue where pages could be rendered too small. (J#CORE-550)
- Fixed
Fixes an issue where pages could be rendered upside down. (J#CORE-545)
- Fixed
Fixes an issue where redaction annotations could not be applied by third-party software like Adobe Acrobat. (J#CORE-555)
- Fixed
Fixes an issue where text highlights were split when there was a tiny gap in a sentence. (J#CORE-510)
- Fixed
Fixes an issue where the email preset didn’t mark some email addresses for redaction. (J#CORE-514)
- Fixed
Fixes an issue where the redaction tool may redact a bigger area than necessary in some documents. (J#CORE-562)
- Fixed
Fixes an issue where the text in a callout annotation may appear in the wrong position. (J#CORE-466)
- Fixed
Fixes an issue where the text selection rectangle was too big, resulting in squashed text. (J#CORE-496)
- Fixed
Fixes an issue with PDF comparison when the content stream didn’t contain any stroke color commands. (J#CORE-533)
- Fixed
Fixes an issue where the page labels may be incorrect in some documents. (J#CORE-560)
Instant
- Fixed
Fixes a deadlock when syncing annotations on a certain document containing stamp annotations in PSPDFKit Instant. (J#ANDR-277)
2024.2.1 - 10 Apr 2024
UI
- Fixed
Fixes a regression where selecting a free text annotation would occasionally not display all the text until the bounding box is updated. (J#ANDR-460)
2024.2.0 - 9 Apr 2024
Welcome to the second major release of PSPDFKit for Android in 2024! We’ve fixed a lot of bugs (see below), and we added some great improvements and features:
- Added
Jetpack Compose!
- Added
New Jetpack Compose main toolbar! This makes it super easy to add and remove custom buttons and customize the toolbar however you want.
- Changed
We also migrated some of our UI to Jetpack Compose: the document information screen, and the settings menu.
- Changed
Annotation Multi-Selection!
- Changed
A new toolbar item has appeared! You can use it to select multiple annotations and group, move, copy, or resize them all at once! This brings us up to par with our iOS product, which also has this feature.
- Changed
We’ve cleaned up our SDK
initialize
API (refer to the migration guide linked below). - Changed
Our free text and callout annotations now render much more cleanly and with better performance.
- Changed
We’ve expanded the customization options for measurement annotations.
- Changed
Loads more bug fixes and improvements — see the list below.
- Changed
Enjoy!
UI
- Added
Adds
FreeTextAnnotations
to the list of annotations that obey theNOZOOM
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 methodsgetCurrentlySelectedAnnotations
,getCurrentSingleSelectedAnnotation
andhasCurrentlySelectedAnnotations
should be used instead. TheOnAnnotationSelectedListener
interface got a new methodonAnnotationSelectionFinished()
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 takesInitializationOptions
. All otherinitialize
methods are deprecated and will be removed in 2025. (J#ANDR-142) - Added
Adds the
AnnotationViewsListener
interface, which informs listeners about theEditText
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) andisValidForEditing
, which is replaced withisWritableAndCanSave
. (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 inPdfFragment
) related to a layout listener. (J#ANDR-353) - Fixed
Fixes a memory leak related to the
NavigationBackStack
when destroying and recreatingPdfFragment
’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 callPdfOutlineView#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 inPdfFragment
) 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 ofPrivateKeyEntry
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 deprecatedSignatureManager
. 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 inSigningManager.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 theDocumentCreationFragment
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 theXfdfFormatter
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.
UI
- Added
Adds a confirmation dialog when calibrating a measurement scale as clearer UX to show a scale was added to the list. (J#ANDR-12)
- Added
Adds date and time picker support for form fields. (J#ANDR-87)
- Added
Adds resize-to-fit-text functionality to the
FreeTextAnnotation
class. (J#ANDR-89) - Fixed
Fixes an issue with freetext annotations, where the text was painted over with the background color. (J#ANDR-93)
- Fixed
Fixes vertical positioning of popup toolbars. (J#ANDR-124)
- Fixed
Fixes and issue where selecting small amounts of text with the redaction tool causes the text to stop getting selected. (J#ANDR-105)
Model
- Added
Adds new, simpler APIs for Digital Signatures,
SigningManager
. Providing PAdES level B-B (basic CAdES advances signing) and B-T (basic + timestamping) signatures. (J#ANDR-19)- Changed
See our Catalog examples
DigitalSignatureExample
andManualSigningExample
for examples on how to use the new API. - Changed
See the migration guide for details on migrating from our previous signature APIs.
- Changed
Improves low memory logging and OS signal handling. (#41805)
- Changed
Improves (reduces) memory usage on pages with a lot of vector graphics. (J#CORE-210)
- Changed
Updates the HarfBuzz library to 8.2.1. (J#CORE-229)
- Fixed
Fixes broken Kotlin API docs which can be accessed here https://pspdfkit.com/api/android/kdoc/. (#41683)
- Fixed
Fixes an issue where embedded files were not transferred when using the PdfProcessor. (J#CORE-205)
- Fixed
Fixes an issue where some color was lost when redacting documents. (J#CORE-201)
- Fixed
Fixes an issue where the font name was incorrectly inherited in certain form hierarchies. (J#CORE-69)
- Fixed
Fixes an issue with dependency clash when upgrading to Jetpack Compose 1.5+. (J#ANDR-94)
Instant
- Fixed
Fixes the unsetting of annotation flags via Instant JSON. (J#CORE-183)
8.8.1 - 1 Sep 2023
UI
- Fixed
Fixes an error where a stamp annotation wasn’t rendered under certain circumstances. (#41776)
- Fixed
Fixes bug where multi-line free-text annotations are being cut off at the bottom. (J#ANDR-38)
- Fixed
Fixes bug where the
PDFOutlineView
occasionally crashes when hiding. (J#ANDR-35) - Fixed
Fixes crash where the initialisation of the
MeasurementScaleView
caused a crash even when measurement tools deactivated. (J#ANDR-84) - Fixed
Fixes the QR code scanner in the
InstantExample
. (#41733)
Model
- Added
Adds a
WavWriter
class which can be used to extract audio data from sound annotations and other audio sources. (#41680) Also adds a Catalog example to show how it worksSoundAnnotationDataExtractionExample
. - 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.
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 thePdfDocumentInfoView
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
andlockedContents
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
toMeasurementPrecision
. (#40085) - Fixed
Fixes an issue if the content editor is used on a page without a font dictionary. (#40803)
- Fixed
Fixes a potential crash in the Android font subsystem by switching to the more battle-tested Linux font subsystem. (#40587)
- Fixed
Fixes a potential crash when parsing the reading order in an invalidly tagged PDF. (#40419)
- Fixed
Fixes a rare crash that can happen when importing Instant JSON if an annotation has a non-default blend mode. (#39457)
- Fixed
Fixes an issue when redacting images with a mask referencing a color. (#41558)
- Fixed
Fixes an issue where ‘borderColor’ wasn’t serialized for ‘pspdfkit/text’ annotations. (#40905)
- Fixed
Fixes an issue where certain PDF documents couldn’t be opened in Adobe Acrobat after flattening some form annotations. (J#CORE-79)
- Fixed
Fixes an issue where exporting custom stamp annotations to XFDF and then importing them cause them to show blurry. (J#CORE-113)
- Fixed
Fixes an issue where images could be inverted when redacting JBIG2 images. (#40341)
- Fixed
Fixes an issue where processing would endless loop on malformed PDFs. (#40388)
- Fixed
Fixes an issue where redaction annotations applied on pages with rotation may not appear correctly. (#25007)
- Fixed
Fixes an issue where sometimes the wrong font is used when applying changes in the content editor. (#40663)
- Fixed
Fixes an issue where the ‘updatedAt’ field in annotations wasn’t preserved correctly when importing JSON. (#37490)
- Fixed
Fixes an issue where the bold or italic attribute of a font got lost when saving changes from the content editor. (#40663)
- Fixed
Fixes an issue where the cloudy border effect was set when importing InstantJSON annotations. (#40472)
- Fixed
Fixes an issue where validating some digital signatures created by DocuSign may incorrectly report additional changes. (#39972)
- Fixed
Fixes small signatures not being detected correctly on large signature form fields. (#40900)
Instant
- Added
Adds API to export Instant JSON in V1 format. See
DocumentJsonFormatter.exportDocumentJson(document, outputStream, InstantJsonVersion.V1)
. (#40611) - Fixed
Fixes an issue where the text highlight popup bar showed disabled buttons incorrectly in Instant. (#40058)
8.7.3 - 13 Jun 2023
UI
- Fixed
Fixes a bug where the back arrow during search is not pointing in the right direction when the layout is in RTL mode. (#40281)
- Fixed
Fixes a bug which caused the back button in inspector detail views to be hidden. (#39953)
- Fixed
Fixes strikeout and underline buttons missing from the text highlight popup toolbar on non-tablet devices and adds a Catalog example to show how to configure it,
TextHighlightPopupCustomisationExample
. (#40060)
Model
- Fixed
Fixes a potential race condition when accessing font data in our core library. (#40587)
- Fixed
Fixes an issue where text in multi line form field was cut off after two newlines. (#40504)
- Fixed
Fixes library size increase due to shipping of unstripped OCR library. (#40614)
- Fixed
Fixes the unstripped NDK library symbol files that are shipped in the SDK release zip. These can now be used to symbolicate stack traces for
libpspdfkit.so
crashes. (#40614) - Fixed
Fixes a crash that occurred when the thumbnail bar was set to
PINNED
mode. (#40411)
8.7.2 - 15 May 2023
UI
- Added
Adds support for the
displayPageLabels
configuration option to the modular search view and the bookmarks view. (#33658) - Changed
Improves calculation of the cursor position when editing a text-block in the Content Editor. (#40014)
- Changed
Content editing inspector views can now be properly dismissed by touching outside of their view. (#40053)
- Fixed
Fixes Settings dialog radio buttons misalignment when using a non-PSPDFKit theme. (#39970)
- Fixed
Fixes a bug in the CustomFragmentExample where the current page was not updated in the bookmark view. (#39955)
- Fixed
Fixes a bug with uri write permission on Android 11 devices. (#40236)
- Fixed
Fixes the occasional wrong calculation of the vertical position of submenu toolbars. (#40277)
Model
- Added
Adds line spacing for multiline form elements and free text annotations to match that of other platforms and external PDF viewer applications. (#39224)
- Changed
Invalidate caches after the document is loaded in
PdfFragment
to avoid unsaved annotations from showing in the thumbnail bar. (#38764) - Fixed
Fixes a Content Editing crash in the Simple example app to do with a missing transitive dependency
androidx.fragment:fragment-ktx
. (#40168) - Fixed
Fixes a bug where the annotation toolbar did not have any menu items for large screens. (#40013)
- Fixed
Fixes a crash when entering Content Editor in a document containing Type 3 fonts. (#3)
- Fixed
Fixes an issue with Full-Text Search queries containing
,
characters. (#39309)
Instant
- Changed
Retains the current text selection that is visible when an inspector window is displayed during content editing. (#39974)
- Fixed
Fixes syncing annotations from the server failing after not handling a 502 error correctly. (#40288)
8.7.1 - 19 Apr 2023
Model
- Fixed
Fixes a build issue where the
kotlinx-serialization-json
dependency could not be downloaded. (#40029)
8.7.0 - 18 Apr 2023
This release adds the Content Editor component. You can learn more in the announcement post. If you’d like to add this component to your license, please contact our sales team to receive a quote.
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
UI
- Fixed
Fixes a bug where the height in
dp
set in a custom style for theContextualToolbar
was not converted topx
. (#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 bySignatureFormElement#getOverlappingSignature()
. - Changed
Legacy
PKCS7
constructor. - Changed
Legacy
PKCS7SignatureContents
constructors. - Changed
PdfThumbnailGrid#setOnDocumentSavedListener
replaced byaddOnDocumentSavedListener(OnDocumentSavedListener)
. - Changed
PdfDrawable#getPDFToPageTransformation
andPdfDrawable#updatePDFToViewTransformation
replaced bygetPdfToPageTransformation
andupdatePdfToViewTransformation
.
- Changed
Upgrades RxJava from 2 to 3. (#38838)
- Changed
You will need to add or upgrade the transitive dependencies for
rxjava
andrxandroid
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
fromorg.jetbrains.kotlin:kotlin-stdlib
toorg.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
andPolylineIntent
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 theLoadingView
used in thePdfFragment
. (#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 inSearchResultHighlighter
and by usingpspdf__searchResultPadding
andpspdf__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
withandroidx.preference
. (#38428) - Fixed
Fixes a crash caused by interacting with Note annotations when both Annotation Editing and Electronic Signature license features are missing. (#39095)
- Fixed
Fixes a crash when opening the settings dialog in the Simple example app. (#38834)
- Fixed
Fixes an issue where applying a redaction annotation may incorrectly invert the colors of certain documents. (#38722)
- Fixed
Fixes an issue where memory usage was very high when searching large documents. (#37893)
- Fixed
Fixes an issue where saving a PDF file with a indirect null object could cause a crash. (#39127)
- Fixed
Fixes an issue where the file size increased too much after adding emojis. (#38393)
- Fixed
Fixes an issue where the package versions in README.html were not updated correctly when creating the release package. (#38181)
- Fixed
Fixes an issue where the redaction tool may incorrectly displace text in some situations. (#38642)
- Fixed
Fixes an issue where the unicode checkmark character wasn’t rendered correctly. (#36785)
- Fixed
Fixes displaying the current page on rotation when
configuration.page()
and.restoreLastViewedPage(true)
are used together. (#37699) - Fixed
Fixes janky
.java
file formatting throughout the codebase including public facing code and examples. (#29084) - Fixed
Fixes some issues where the redaction tool may incorrectly remove more vector graphics than strictly necessary. (#38295)
- Fixed
Fixes the
InlineMediaExample
Catalog example YouTube links behaviour by starting the YouTube API service in the manifest. (#38953) - Fixed
Fixes the redaction button moving up the screen each time the user exits full screen mode. (#36079)
8.5.0 - 12 Jan 2023
See the announcement post.
UI
- Added
Adds two presets for the settings dialog which allow to quickly switch between two common vertical and horizontal view configurations. (#35295)
- Added
Adds a popup toolbar which allows users to view Note Annotation comments if no annotation editing license is available. (#34780)
- Changed
Improves small screen device experience by showing settings view as a fullscreen dialog. (#34055)
- Changed
Improves the annotation toolbar appearance. (#35152)
- Changed
Updates the appearance of the
PdfThumbnailBar
. (#34977) - Fixed
Fixes an initialization issue in the annotation inspector with the line-end property of the freetext callout annotation. (#36824)
- Fixed
Fixes an issue where full-color items where not displayed correctly in contextual toolbars because tinting couldn’t be disabled. (#19009)
- Changed
Improves
CustomAnnotationCreationToolbarExample
adding a full-color item and showcasing how to disable tinting.
- Fixed
Fixes the release build variants for example apps Catalog and Simple. (#35923)
Model
- Added
Adds Hebrew localization. (#36047)
- Added
Adds a
ImageDocumentView
composable for loading image documents. (#36881) - Added
Adds support for converting multi-image TIFF files to multi page PDFs. (#36108)
- Added
Adds support for serializing and deserializing annotations with measurement info to the XFDF format. (#36936)
- Added
Adds support for the non-standard imagedata XFDF element in stamp annotations. (#36518)
- Changed
Improves calculation of line height when a line is wrapped in a multi-line text form. (#36385)
- Changed
Improves compatibility with other PDF software when rendering multi-line form field text. (#37072)
- Changed
Improves error handling in the
DocumentSharingController
to catch a possibleActivityNotFoundException
. (#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)
andFormProvider#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
andspotless
to the latest versions improving public Kotlin code formatting and best practices. (#37512) - Fixed
Fixes a crash while redacting documents containing the ’ PDF operator. (#36778)
- Fixed
Fixes an exception when importing annotations with measurement information from Instant JSON. (#36537)
- Fixed
Fixes an issue generating PDFs from HTML when checkboxes are defined and customer stylesheets are referenced in the HTML head. (#34453)
- Fixed
Fixes an issue when using undo/redo on shape annotations could throw an exception if Measurements are not licensed. (#37678)
- Fixed
Fixes an issue where JPEG2000 images were rendered blurry. (#37829)
- Fixed
Fixes an issue where form field flags weren’t preserved correctly when repairing form fields. (#33878)
- Fixed
Fixes an issue where passing a new license key does not reinitialise license features, and therefore may cause an exception from a license feature mismatch between Android and our Core C++ library. (#37822)
- Fixed
Fixes an issue where paths in content may not be rendered. (#35988)
- Fixed
Fixes an issue where redacting certain documents may render some document pages blank. (#35776)
- Fixed
Fixes an issue where redaction draws invalid black boxes on the page. (#37863)
- Fixed
Fixes an issue where sharing a PDF to Google Drive did not open up the Drive app dialog. (#36095)
- Fixed
Fixes an issue where specific PDFs could cause a crash when you quickly switch between pages. (#37498)
- Fixed
Fixes an issue where temporary files could have been written into /. (#36239)
- Fixed
Fixes an issue where text selection wasn’t working properly on PDFs with corrupted fonts. (#32468)
- Fixed
Fixes an issue where the font information for annotations wasn’t loaded correctly. (#36933)
- Fixed
Fixes an issue with custom font paths where subfolders in
assets
are not picked up correctly. (#36366) - Fixed
Fixes an issue where the package versions in README.html were not updated correctly when creating the release package. (#38181)
- Fixed
Fixes crashes related to font loading in specific documents. (#36284)
Instant
- Fixed
Fixes an issue where syncing of a newly created annotation in a fresh document would sometimes not work. (#37552)
- Fixed
Fixes the Annotation Eraser tool not appearing in the annotation toolbar when using PSPDFKit Instant for Android. (#37952)
8.4.1 - 30 Sep 2022
UI
- Changed
Improves the label for area measurements in the annotation inspector. (#35726)
- Changed
Improves Dark Theme example in the Catalog app adding a new customized style for
pspdf__popupToolbarStyle
. (#36338) - Changed
Updates sample PDFs in Catalog app. (#32347)
- Fixed
Fixes a potential crash during the
SystemFontManager
initialization. (#36444) - Fixed
Fixes an issue where the measurement text view could cause a
ViewRootImpl$CalledFromWrongThreadException
. (#36280)
Model
- Changed
Avoids a crash if the
NativeTextParser
cannot be obtained. (#36445) - Fixed
Fixed a crash by avoiding to create zero-sized bitmaps. (#36429)
- Changed
Updates libexpat to version 2.4.9. (#36612)
- Fixed
Fixes a crash after a
null
clipboard data was received. (#36446) - Fixed
Fixes a license issue validating or adding annotations with measurement information via Instant JSON. (#36660)
- Fixed
Fixes a rare crash when trying to refresh a
FreeTextAnnotation
with an invalid scaling value. (#36447) - Fixed
Fixes an issue where AP streams weren’t reliably generated for form text fields. That resulted in other readers potentially not showing the text. (#36236)
- Fixed
Fixes an issue where certain documents could cause a crash when opening them. (#36272)
- Fixed
Fixes an issue where font styles weren’t always discovered correctly. (#35955)
8.4.0 - 18 Aug 2022
See the announcement post.
UI
- Added
Adds a Catalog example showcasing the new PSPDFKit for Android Measurement Tools. Includes example measurements and logic for processing them and listening for newly created measurements. (#35452)
- Added
Adds a measurement value display above the magnifier as a helpful way of observing the currently edited measurement value while drawing. This fixes the issue of the magnifier or finger obscuring the measurement value on the page. (#34650, #35200, #35349)
- Added
Adds new style attribute to the
PSPDFKit.MeasurementTools
style to customize the background color of the pop up view. (#35821) - Added
Adds annotation inspector support for configuring page scale used for measurement annotation tools. (#33914)
- Added
Adds annotation inspector support for floating point precision used in measurement tools. (#33579)
- Added
Adds support for calibrating the length of a distance annotation in order to help set the page scale based on a known distance. (#34156, #34396)
- Added
Adds support for the Android magnifier to appear when creating and editing measurements to help with making more precise measurements. (#34110)
- Added
Adds the Measurement Tools feature including distance, perimeter, and area (elliptical, rectangular, polygonal) measurements. (#33967)
- Added
Adds the distance measurement tool used to measure the distance of a line on the page. (#33579, #34204, #34316, #34627, #34933, #35150, #35064)
- Added
Adds the perimeter measurement tool in the annotation toolbar used to measure cumulative line distances. (#34596, #35061, #35064)
- Added
Adds the polygonal area measurement tool in the annotation toolbar used to measure the area of custom-drawn shapes. (#35024, #35064)
- Added
Adds the rectangular and elliptical area measurement tools in the annotation toolbar. These can be used to help measure round or box shaped objects on the PDF. (#34991, #34962)
- Changed
Improves the measurement magnifier behavior by increasing zoom amount and hiding the edit handle that is currently being touched so as to better see the measurement point. (#35533)
- Changed
Implements displaying the measurement value in the Annotation Editing Inspector. (#35726)
- Changed
Updates annotation inspector z-order picker icon tint to dark blue. (#35526)
- Changed
Updates minimum supported API version for the native magnifier to API 29 from API 28 in order to support the measurement tools value text to be displayed above it. (#35246)
- Changed
Updates the Catalog examples list with new sections “Industry Examples” and “Components”, and updates some of the Catalog PDF assets. (#35618)
- Changed
Updates the default annotation toolbar groups to make room for, and add, measurement annotation tools. (#33447)
- Changed
Updates the support magnifier (used on APIs < 29) to match the rounded corners of the native magnifier. (#35624)
- Fixed
Fixes an issue where lines with a length less than 1 are still counted as valid. (#35716)
Model
- Added
Adds API to get measurement information on the base
Annotation
class:getMeasurementInfo
. (#34538) - Added
Adds API to set scale and precision on a
ShapeAnnotation
programmatically, thus making them measurement annotations. (#35390) - Added
Adds new
LineAnnotation
,PolylineAnnotation
,PolygonAnnotation
,CircleAnnotation
, andSquareAnnotation
constructors for creating measurement annotations programmatically. (#35071) - Added
Adds new license feature flag, “Measurement Tools”, checked when configuring the annotation toolbar, creating/editing measurements, and other measurement API calls. (#34495, #34531)
- Added
Adds support for storing and retrieving measurement annotation data inside the document. (#34351)
- Changed
Updates the minimum required Android SDK version for native magnifier support to API 29 from API 28. Users with pre API 29 devices will rely on the support magnifier. (#35246)
- Fixed
Fixes an issue where measurement text was not getting rendered when drawing shapes very quickly. (#35419)
8.3.0 - 2 Aug 2022
See the announcement post.
UI
- Added
Adds
PlaygroundExample
to the Catalog app that shows how to customize the behavior of thePdfActivity
. (#35206) - Added
Adds new construction example to the Catalog app that shows how to better configure PSPDFKit to display a building floor plan. (#33433)
- Added
Adds new example
ContainedPadesSignaturesExample
to the Catalog app showcasing how to embed PKCS7 container as a PAdES Advanced Digital Signature. (#33251) - Added
Adds new menu item to the main toolbar that shows document info view. (#34480)
- Added
Adds new circle, line, line arrow, polyline, square, and polygon icons to Annotation Creation and Annotation Editing Toolbars. (#35271)
- Fixed
Fixes a crash when a full-page rendering was requested with a width or height of zero. (#32871)
- Fixed
Fixes an issue affecting the scrubber bar where, on certain devices, the scrolling may lead to a crash. (#32551)
- Fixed
Fixes an issue with Jetpack Compose where the annotation inspector appears only once. (#33556)
- Fixed
Fixes an issue with the annotation overlay implementation where the page loading spinner was not hidden correctly after a page was rendered. (#35424)
- Fixed
Fixes permission errors when saving external files on Android 12 and higher. (#34928)
- Fixed
Fixes the
External Document
examples in the Catalog to properly open documents from Google Drive. (#35248) - Changed
Updates visual appearance for the document tab bar. (#34865)
Model
- Added
Adds support for PAdES (ETSI.CAdES.detached) signing method. (#33251)
- Changed
Implements
FilterSubtype
to specify the format to use when creating the signasture. - Removed
Deprecates
PKCS7SignatureContents
constructors in favor of new ones where the filter subtype can be explicitly set. - Removed
Deprecates method
PKCS7#create(byte[], KeyStore.PrivateKeyEntry, HashAlgorithm)
in favor of a new one where the filter subtype can be explicitly set.
- Changed
Improves XFDF serialization of ink annotations by including their variant. (#34354)
- Changed
Improves error reporting when an invalid license key is entered. (#33758)
- Changed
Changes the default color for annotation note to yellow, to match PSPDFKit for Web and iOS. (#34145)
- Changed
Changes the stamp annotation creation so that if only one
StampItem
is available, the stamp picker dialog is skipped and the annotation is created with the only item available. (#34282) - Fixed
Fix insufficient Android 12 uri permission handling in
ContentResolverDataProvider
. (#35578) - Fixed
Fix package name for
SignatureBitmapStorage
class that was erroneously set to a wrong one. (#35273) - Changed
Overloads the method
AbstractPdfSearchView#performSearch(String, EnumSet<CompareOptions>)
adding a new parameter to customize the compare options when performing a search action. (#35217) - Removed
Removes the
RECORD_AUDIO
permission from the Android manifest file that was erroneously added in a previous release. To delve more into the topic refer to the Audio Recording Permission section of our guides. (#34424) - Changed
Updates boost to 1.79.0. (#34723)
- Fixed
Fixes a crash on Android 12 and higher when trying to persist Uri permissions for internal files. (#35535)
- Fixed
Fixes the error “The timestamp token couldn’t be parsed” that may appear with some digital signature timestamps. (#35394)
- Fixed
Fixes an issue in the Catalog app where Kotlin examples were launched instead of Java examples. (#35103)
- Fixed
Fixes an issue when importing a InstantDocument JSON where both a form field and a form annotation were modified at the same time. (#35454)
- Fixed
Fixes an issue where dates weren’t parsed correctly due to the parser being too strict. (#34079)
- Fixed
Fixes an issue where form fields were showing NaN (not a number) if the form value could not be formatted correctly. This returns an empty string now and shows an error message in the console. (#34017)
- Fixed
Fixes an issue where having huge amounts of data on the clipboard can cause a
DeadSystemException
. (#34487) - Fixed
Fixes an issue where the
PdfSearchViewModular
visibility state is not initialized correctly, thus breaking theisShown()
method. (#34391) - Fixed
Fixes an issue where the dialog for adding notes was transparent and causing glitches if the property
COLOR
was disabled. (#34055) - Fixed
Fixes an issue where the file size of the PDF grew a lot when entering Arabic text into form fields. (#35381)
- Fixed
Fixes an issue where the swipe gesture wasn’t applied correctly for the horizontal paginated layout on several PDF documents. (#31886)
- Fixed
Fixes an issue where the wrong text was highlighted when searching. (#33867)
- Fixed
Fixes corruption of CMYK colorspace images in PDFs after redaction. (#34453)
- Fixed
Fixes the query of potential document sharing targets for devices running Android 11 and higher. (#34542)
- Fixed
Fixes an issue affecting Android API 29 and upwards where saving a document reusing the same filename may lead to a document saved with the wrong extension. (#35728)
8.2.1 - 6 May 2022
Model
- Fixed
Fixes a crash when trying to setup a database which violated a unique constraint. (#34027)
- Fixed
Fixes an issue when accessing a SQLite database concurrently. (#34027)
- Changed
Improves cache handling of forms in case of exceptions by logging the message instead of crashing the process. (#34027)
- Changed
Updates the Zlib library to version 1.2.12. (#34305)
- Changed
Updates the Freetype library to version 2.12.1. (#34326)
- Fixed
Fixes an issue where retrieving annotations from the
AnnotationProvider
using object numbers was returning an empty list although matching annotations were available. (#34270)
8.2.0 - 20 Apr 2022
See the announcement post.
UI
- Added
Adds a “Remove Signature” button to the
SignatureInfoDialog
. (#33113) - Added
Adds a cloudy annotation item to the default annotation creation toolbar. (#32909)
- Changed
Defaults border style to
BorderStyle.SOLID
for Polygon annotation. (#31998) - Removed
Removes initial permission check from
External Document
example and shows request permission dialog with extensive info. (#16772) - Fixed
Fixes a problem where some form fields with JavaScript formatting scripts may be incorrectly formatted with thousands separators. (#32596)
- Fixed
Fixes a problem where the Sign overlay of unsigned signatures may incorrectly appear in some situations. (#32310)
- Fixed
Fixes a problem where the outline elements of some documents did not point to the correct page. (#32970)
- Fixed
Fixes a problem with the SaveAs file picker not allowing to specify a new filename. (#33023)
- Fixed
Fixes font size calculations for freetext annotation font scaling. (#33229)
Model
- Added
Adds
getSelectedPages()
method toPdfThumbnailGrid
. (#33032) - Added
Adds more detailed logging for signature verification errors during development of custom signing implementations. (Z#28856)
- Added
Adds new methods
removeAllDocuments
andremoveAllDocumentsExceptVisible
to theDocumentCoordinator
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
ifDocumentView
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 withremoveSignature
. (#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
andPdfBox.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 theRenderScript
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 anull
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
andCVE-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 callingDocumentView#removeListeners()
before thedocumentPopupToolbarCoordinator
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 version1.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 introducedaddOnDocumentSavedListener
/removeOnDocumentSavedListener
, because overwriting the default implementation withsetOnDocumentSavedListener
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
andsetDocumentEditorExportEnabled
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 theCheckBoxFormElement
type. (#25122) - Changed
Handles exception when dispatching tap onto form element before a page is ready. (#30274)
- Fixed
Fixes a
Magnifier
issue whereonDetachedFromWindow
calls would crash the application under certain conditions. (#31700) - Fixed
Fixes an issue where annotations weren’t always rendered in the correct z-order. (#31671)
- Fixed
Fixes an issue where the appearance stream of unsigned signature fields wasn’t rendered. (#31015)
Instant
- Changed
Improves the behavior of reauthentication before accessing the document of an
InstantDocumentDescriptor
. (Z#27871) - Changed
Improves the level of detail in log messages when failing to access the record store to help diagnosing obscure I/O errors. (#31815)
8.0.1 - 25 Oct 2021
Model
- Fixed
Fixes a crash when restoring the
ElectronicSignatures
dialog from parcel data on low memory devices. (#31602) - Fixed
Fixes a memory leak when validating digital signatures. (#31520)
- Fixed
Fixes an issue where setting
event.value
inside a validation script may not work as expected. (#31286)
8.0.0 - 7 Oct 2021
See the announcement post.
This release adds the Electronic Signatures and built-in support for Jetpack Compose via the DocumentView
composable function. If you’d like to add Electronic Signatures to your license, please contact our sales team to receive a quote. To learn more about the breaking changes introduced with the new APIs, check out our migration guide for this release.
UI
- Added
Adds built-in support for Jetpack Compose via the
DocumentView
composable function. (#30779) - Added
Adds support for Electronic Signatures.
- Added
Adds a new signing UI with the
ElectronicSignatureFragment
, along with associated APIs, as part of the Electronic Signatures component. (#29282) - Added
Adds new public ID
R.id.pspdf__menu_option_signature
for a signature creation button in the main toolbar. (#28065) - Added
Adds new styleable attributes
pspdf__signatureIcon
andpspdf__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 byViewProjection
. (#31214) - Removed
Removes
PdfActivityToolbarApi
class which was not used by PSPDFKit for Android. (#30836) - Fixed
Fixes
PdfActivity
immersive mode inset handling on API 29+ devices. (#30190) - Fixed
Fixes a crash that could happen when navigating to a page containing a newly created
LinkAnnotation
. (#30232) - Fixed
Fixes ink signature annotations getting alpha blended into form field backgrounds when they are excluded from the annotation overlay view. (#31474)
- Fixed
Fixes the
isCopyPasteEnabled
configuration option not being respected. (#30654)
Model
- Changed
Improves rendering non-latin text (like Arabic) when selecting specific fonts. (#30517)
- Changed
Reduces memory consumption when encoding JPEG images. (#31205)
- Changed
Reduces memory consumption when PDF objects need compressing. (#31317)
- Removed
Renames methods on
PdfDrawable
to follow the SDK-wide camel casing convention. (#31186)- Removed
Deprecates
updatePDFToViewTransformation()
andgetPDFToPageTransformation()
. - Added
Adds
updatePdfToViewTransformation()
andgetPdfToPageTransformation()
.
- 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.
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 tonormal
. (#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 usingPdfDocument#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 theInstantPdfFragment
displaying theInstantPdfDocument
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 aslicenseKey
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 callingPdfFragment#notifyLayoutChanged()
. (#22744)
6.6.0 - 11 Jan 2021
See the announcement post.
UI
- Added
Adds support for setting bold and italic fonts via
FreeTextAnnotation#setFontName()
. (#25843) - Added
Improves annotation selection UI customization by introducing
AnnotationSelectionViewThemeConfiguration
. (#26212)- Added
Adds
AnnotationSelectionController#getAnnotationSelectionViewThemeConfiguration()
to get the theme configuration used to customize the annotation selection view. - Added
Adds
AnnotationSelectionController#setAnnotationSelectionViewThemeConfiguration(AnnotationSelectionViewThemeConfiguration)
to set a theme configuration to customize the annotation selection view. - Added
Adds new Java example
AnnotationSelectionViewStylingActivity
that shows how to customize the annotation selection layout.
- Fixed
Fixes an issue affecting some foreign languages where the inline search layout had the wrong spacing when no results were found. (#24577)
- Fixed
Fixes an issue where internal usage of specific resource identifiers on
com.pspdfkit.R
would lead to crashes when using PSPDFKit inside a dynamic feature module. (#26984) - Changed
Improves documentation for custom annotation selection background as this feature is not supported by callout annotations. (#27677)
- Fixed
Fixes an issue where callout annotation text was rendered incorrectly. (#27600)
- Fixed
Fixes an issue where ink annotations’ bounding boxes were incorrectly rotated. (#27148)
- Fixed
Fixes an issue where the app would crash when requesting camera access from the system. (#27609)
Model
- Added
Adds a new document signature integrity status for when the digital signature type that is being validated is not supported. (#25030)
- Added
Adds constant field
WidgetAnnotation.FONT_SIZE_AUTO
which can be used withsetFontSize()
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()
togetFontSize()
. 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
FreeTextAnnotation
s andWidgetAnnotation
s: (#23523)- Added
Adds
FreeTextAnnotation#set/getVerticalTextAlignment()
to set and get the vertical text alignment. - Added
Adds
WidgetAnnotation#set/getVerticalTextAlignment()
to set and get the vertical text alignment.
- Changed
Improves font selection process for bold and italic fonts. (#26719)
- Changed
Improves how certificate expiration in digital signatures is handled. (#27047)
- Changed
Improves performance loading some documents with broken internal links (named destinations). (#24398, #26099)
- Changed
Improves performance with path drawing by removing unnecessary path operations. (#25922)
- Changed
Improves rendering performance of documents with lots of image patterns. (#26186)
- Changed
Improves simplified and traditional Chinese font selection. (#26674)
- Changed
Digital signatures don’t show framework version numbers when inspected using third party software. (#26183)
- Changed
Reduces the memory required to load PDF documents by 15% to 35%, depending on the document. (#27182)
- Removed
Removes DeviceYearClass dependency that has been now deprecated, and adds an in-house implementation that does not require a third-party library to optimize the default configuration. (#24036)
- Changed
Updates Botan to 2.17.1. (#26794)
- Changed
Updates Duktape to 2.6.0. (#26435)
- Changed
Updates Kotlin to 1.4.21. (#26805)
- Changed
Updates the Android Gradle Plugin used by all example apps to version 4.1.1. (#26806)
- Fixed
Fixes a problem where signing a document again after filling a form field may invalidate existing digital signatures. (#25637)
- Fixed
Fixes a problem where some DER-encoded signatures may not be validated correctly. (#25757)
- Fixed
Fixes a problem where the signature reason, name or location may not appear correctly if they contain non-ASCII characters. (#26671)
- Fixed
Fixes an assert that was triggered by malformed documents that contained fonts that were not indirect objects. (#26450)
- Fixed
Fixes an issue in the Document Editor when adding an item to a imported page. (#25837)
- Fixed
Fixes an issue where OCR could not be performed on a certain image due to an incorrect render scale. (#26118)
- Fixed
Fixes an issue where an app would crash on trying to load an embedded file in a PDF document created using multiple data providers. (#26023)
- Fixed
Fixes an issue where appearance streams weren’t re-generated when using the processor even though ‘NeedAppearances’ was set in the PDF. (#26123)
- Fixed
Fixes an issue where documents with high object numbers were identified as corrupt. (#26062)
- Fixed
Fixes an issue where form calculation was triggered when setting an empty string on a form field that didn’t have a value. (#26345)
- Fixed
Fixes an issue where importing annotation appearance streams from XFDF would not work. (#25100)
- Fixed
Fixes an issue where partially redacted curved path objects may be misdrawn. (#26698)
- Fixed
Fixes an issue where paths overdraws resulting in incorrect shapes. (#27330)
- Fixed
Fixes duplication of newly created pages in the Document Editor. (#26074)
- Fixed
Fixes rendering a wrong color if the color was using a ICC color profile and the color was out of bounds. (#26535)
- Fixed
Fixes text clipping for form fields exceeding their
maxLen
due to programmatic changes. (#26340) - Fixed
Fixes the PDF JavaScript function
getNthFieldName
to return the FQN of the form field. (#26144) - Fixed
Fixes an issue where loading from a checkpoint for a document failed in certain instances. (#27576)
- Fixed
Fixes an issue where the signature description was cut off in narrow signature fields. (#27540)
6.5.3 - 27 Oct 2020
PSPDFKit 6.5.3 is a security patch release fixing a single CVE in one of our dependencies.
- Fixed
Fixes CVE-2020-15999 in upstream dependency Freetype. (#26610)
6.5.2 - 24 Sep 2020
UI
- Added
Adds new style attributes to the
PSPDFKit.AnnotationSelection
style to customize annotation selection UI: (#25552)- Added
Adds style attributes to change the drawable for each of the eight annotation scale handles:
pspdf__topLeftScaleHandleDrawable
,pspdf__topCenterScaleHandleDrawable
,pspdf__topRightScaleHandleDrawable
,pspdf__centerLeftScaleHandleDrawable
,pspdf__centerRightScaleHandleDrawable
,pspdf__bottomLeftScaleHandleDrawable
,pspdf__bottomCenterScaleHandleDrawable
,pspdf__bottomRightScaleHandleDrawable
. - Added
Adds
pspdf__rotationHandleDrawable
style attribute to change the drawable of the rotation handle. - Added
Adds
pspdf__backgroundDrawable
to change the background drawable of the annotation selection layout.
- Changed
Improves performance of Reader View feature by only starting the reflow process when the view is shown and cancelling it when the view is hidden. (#24400)
- Fixed
Fixes an issue related to tabbed documents where under certain conditions switching document may lead to an ANR. (#24693)
- Fixed
Fixes an issue where
PdfFragment
could become unresponsive when opening PDF documents with many pages and forms. (#25911) - Fixed
Fixes an issue where the blending between the selected text element background color and the document background was not calculated correctly for colors with transparency. (#24156)
- Fixed
Fixes an issue where the input
EditText
inside the custom stamps dialog would use the wrong input type and accept multi-line text. (#25871) - Fixed
Fixes an issue where the keyboard was not correctly hidden when a free text annotation was selected but not in writing mode. (#25886)
- Fixed
Fixes an issue where the zoom level of protected documents was not calculated correctly. (#24934)
Model
- Added
Adds support for PEM format PKCS#1 private keys for use with digital signatures. (#24919)
- Changed
Improves Processor behavior when license doesn’t include the forms component. (#24604)
- Changed
Improves font rendering in forms with Chinese, Japanese, Korean and Thai characters. (#24337)
- Changed
Improves log reducing noise in the OCR Library by removing unnecessary log messages in release mode. (#25532)
- Changed
Enhances the flattening of note annotations by rendering the root comment rather than the note icon. (#22673)
- Changed
OCR now uses NEON and AVX intrinsics for better performance. (#24870)
- Changed
Updates HarfBuzz to version 2.7.2. (#25717)
- Fixed
Fixes FTS queries with three or more words when searching for an exact match when using the unicode tokenizer. (#25068)
- Fixed
Fixes a crash that could happen as a result of a race condition when form fields were repaired and the page was rendered at the same time. (#24885)
- Fixed
Fixes a crash that could happen when creating form fields. (#25806)
- Fixed
Fixes a problem where some certificates with CRL distribution point extensions may not be validated correctly. (#24660)
- Fixed
Fixes an issue where appearance streams of form field widgets weren’t preserved correctly. (#25550)
- Fixed
Fixes an issue where Bézier paths were drawn incorrectly when a miter limit was set. (#25758)
- Fixed
Fixes an issue where form elements were included in the page rendering which shouldn’t have been. (#25799)
- Fixed
Fixes an issue where form fields may not be editable in some cases. (#23123)
- Fixed
Fixes an issue where image annotations could not be imported from XFDF files. (#25100)
- Fixed
Fixes an issue where text form fields weren’t displayed correctly after flattening due to their appearance stream being wrong in the original document. (#24918)
- Fixed
Fixes an issue where the digital signature advanced properties contained the signature creator twice. (#25611)
- Fixed
Fixes an issue where warning messages were displayed in other readers when flattening a signature form field. (#25923)
- Fixed
Fixes duplicate string occurrences when copy and pasting from documents with duplicate content. (#25108)
- Fixed
Fixes form field JavaScript actions in the generated documents when merging two or more documents together. (#25603)
- Fixed
Fixes the placement of the popup annotation linked to a note annotation. When a note annotation is moved, the popup annotation will now follow the location and is always placed within the bounds of the page. (#24468)
- Fixed
Fixes the saving of small shapes with large line widths. Shapes with these characteristics in documents saved by PSPDFKit will now be visible on any reader. (#25531)
Examples
- Added
Adds new
AnnotationSelectionViewStylingExample
that shows how to customize the annotation selection layout. (#25552) - Added
Adds new
PdfFromImageExample
which shows how to convert image files to PDF files using thePdfProcessor
. (#24996)
6.5.1 - 28 Jul 2020
UI
- Changed
Improves scrolling to page in continuous mode so that the scrolling goes to the beginning of the page, not the middle. (#24364)
- Fixed
Fixes an issue where document scrollbars were not visible when using
PdfFragment
inside a custom activity. (#24174) - Fixed
Fixes an issue where paste option is available on document long-press even if disabled by
PdfConfiguration
. (#24685) - Fixed
Fixes an issue where selecting a form field from a different page programmatically, would not switch page or would not show keyboard if the page was switched manually. (#24364)
Model
- Changed
Improved handling of native references which could previously lead to performance issues in documents with with large numbers of annotations. (#23587)
- Fixed
Fixes a problem where signing a document with existing digital signatures may invalidate them. (#24780)
- Fixed
Fixes an issue last viewed PdfFragment page restoration would crash if DocumentDataStore would not be properly initialized. The exception is now logged since it’s not critical for the work of the PdfFragment. (#22428)
- Fixed
Fixes an issue where objects rendered with the Overlay blend mode didn’t always render correctly. (#24298)
- Fixed
Fixes an issue where our text parser returned descending characters from the line above the intended search area. (#24709)
- Fixed
Fixes an issue where text with word or character spacing is shifted after redaction has been applied. (#24476)
6.5.0 - 30 Jun 2020
See the announcement post.
UI
- Added
Adds
values-v21/dark_theme.xml
which holds API 21+ theme overrides forPSPDFKit.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 arecroatian
,czech
,danish
,dutch
,english
,finnish
,french
,german
,indonesian
,italian
,malay
,norwegian
,polish
,portuguese
,serbian
,slovak
,slovenian
,spanish
,swedish
,turkish
, andwelsh
. - 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)
toPdfProcessorTask
. - 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.
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
toPdfActivity
which is accessible via a new primary toolbar action with the IDR.id.pspdf__menu_option_reader_view
. The reader view toolbar action is disabled by default, and can be enabled usingPdfActivityConfiguration.Builder#enableReaderView(boolean)
. - Added
Adds a
ReaderViewExample
to the Catalog which demonstrates how to configure and usePdfReaderView
inside aPdfActivity
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 usingSignatureGraphic.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 theXfdfFormatter.parseXfdf()
method would be reset upon adding the annotations to aPdfDocument
usingAnnotationProvider#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 aPdfUiFragment
. (#24401) - Changed
Updates the Android Gradle Plugin used by all example apps to version
3.6.3
. (#23995)
6.3.0 - 13 Apr 2020
See the announcement post.
UI
- Added
Adds support for changing the background color and hiding the sign here overlay that is shown in signature form fields. (#14685)
- Added
Adds
Pdf[Activity]Configuration#showSignHereOverlay()
to enable and disable the sign here overlay arrow being shown. - Added
Adds
PdfActivityConfiguration#enableMagnifier()
to enable and disable the magnifier being shown. - Added
Adds new style attribute
pspdf__signHereOverlayBackgroundColor
to control the background color of the sign here arrow. This should be added topspdf__FormSelection
style.
- Added
Adds support for keeping multiple
PdfFragment
s in the same view hierarchy. (#23619) - Added
Adds
PdfUiFragmentBuilder#pdfFragmentTag()
to configure a custom tag to be used for the internally hostedPdfFragment
. - Added
Adds
activityClass()
toPdfActivityIntentBuilder
andInstantPdfActivityIntentBuilder
that accept Kotlin’sKClass
type as activity class. (#23681) - Changed
Improves multimedia UI by adding the black background to the videos and by not allowing overlapping control bars. (#19279)
- Changed
Improves search performance by filling the page cache with already parsed pages. (#15947)
- Fixed
Fixes an issue where undo/redo did not revert/reapply the last action after importing a document in Document Editor. (#23361)
- Added
Adds method
PdfDocumentEditor#addPages(int, List<NewPage>)
to allow Document Editor to import multiple pages to a destination index.
- Fixed
Fixes a possible
NullPointerException
that could be emitted while quickly switching between opened tabs. (#23440) - Fixed
Fixes a potential
IllegalStateException
that could have been thrown when trying to render the image of a recycled page view. (#23591) - Fixed
Fixes an issue where “Accepted” and “Rejected” stamps border size changed slightly when rotated. (#19404)
- Fixed
Fixes an issue where Redo command might have failed after importing a document in Document Editor. (#23362)
- Fixed
Fixes an issue where
PdfFragment
could get stuck while loading password protected document. (#23521) - Fixed
Fixes an issue where annotation inspector did not save properties of edited callout annotations to annotation preferences. (#23441)
- Fixed
Fixes an issue where document outline and document info views were not updated after switching documents. (#23427)
- Fixed
Fixes an issue where items in the annotation list were displayed in the wrong order. (#23469)
- Fixed
Fixes an issue where the soft keyboard did not hide after dismissing the note editor by tapping outside of its dialog window. (#23650)
- Fixed
Fixes an issue where under certain conditions a crash could occur when the password view was displayed in a Xamarin Forms application. (#23300)
- Fixed
Fixes an issue where it was possible to create invisible redaction annotations. (#19716)
Model
- Added
Adds KDoc support available offline in the binary release. (#16045)
- Added
Adds new
getTargetFormFieldsAsync()
method toAbstractFormAction
. (#16968) - API
The
id
passed in forMenuItem
that containssubmenuIds
now always containsgroup
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
, andpspdf__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 to2.1.1
. (#23518) - Changed
Updates
PdfUiFragment
to internally use the child fragment manager, this fixes a crash that could happen in our react-native wrapper. (#23673) - Changed
Updates the Android Gradle Plugin to 3.6.2. (#23449)
- Removed
Improves consumer proguard rules. (#23658)
- Removed
Removes
-renamesourcefileattribute SourceFile
rule since it caused issues with some bug reporting solutions. - Changed
Ignores Proguard warnings for
com.pspdfkit.internal
.
- Fixed
Fixes a potential issue resulting in data loss after saving. (#23474, #23485)
- Fixed
Fixes an issue flattening form fields correctly when the
ArtBox
of the page contains an offset. (#23385) - Fixed
Fixes an issue that caused a crash when rendering certain pages from multiple threads. (#23209, #23339)
- Fixed
Fixes an issue where document save listener was not notified when saving image documents. (#23472)
- Fixed
Fixes an issue where loading multiple unavailable documents into the
DocumentCoordinator
could lead to crash. (#23705) - Fixed
Fixes an issue where multiple form elements that are related to the same form field could not be targeted as a group in JavaScript actions, as described by the PDF Reference. (#22755)
- Fixed
Fixes an issue where shared image documents were empty. (#23416)
- Changed
Document save methods of the image document’s
PdfDocument
now throwUnsupportedOperationException
. UsesaveIfModified()
on theImageDocument
instance instead.
- Fixed
Fixes an issue where spacing between words was far too large. (#23439)
- Fixed
Fixes an issue where the HTML-to-PDF converter could not be initialized on devices using the AOSP
WebView
instead of Chromium. (#23776) - Fixed
Fixes an issue where the JNI’s limit of a maximum number of 65k global references could lead to a crash due to not releasing annotation objects requested through user interaction or through API calls. (#23587)
- Fixed
Fixes an issue where values of text form fields were only visible after being selected. (#23652)
- Fixed
Fixes internal form initialization and caching logic that could lead to a deadlock when changing form values while the forms were initializing. This could happen in multiple scenarios, for example when importing Document JSON or changing form values via JavaScript. (#23617)
- Fixed
Fixes potential document corruption when incremental saving encrypted documents. (#23689)
- Fixed
Fixes some rare stability issues when filling a form document with JavaScript scripts. (#23443)
Instant
- Added
Adds support for stamp annotations in Instant. (#19737)
- Added
Adds detailed error message when Instant connection fails. (#23574)
- Fixed
Fixes an issue where documents shared from Instant did not contain annotations. (#23377)
Examples
- Added
Improves Kotlin examples coverage in Catalog. (#11429)
- Changed
Shows language badges (Kotlin or Java) next to each example in the examples list.
- Added
Adds a configuration option to the Catalog preferences for choosing the preferred programming language. Kotlin is now the default preferred language.
- Added
Adds Kotlin version for most existing examples.
- Changed
Improves the structure of Catalog and Instant examples. (#23534)
- Changed
Renames the Instant example package to
com.pspdfkit.instant.example
. Renames the Catalog package tocom.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.
- Changed
Updates the Android Gradle Plugin to 3.5.3. (#23079)
UI
- Removed
Deprecates
setPdfView()
,performApplyConfiguration()
,getPdfParameters()
andgetHostingActivity()
inPdfActivity
andPdfUiFragment
. These symbols were never meant for public usage and will be removed with the next major version. (#22933) - Removed
Moves internal
PdfUiImpl
from public packagecom.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()
, usegetPdfFragment()
defined on eitherPdfActivity
orPdfUiFragment
.
- 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. Anull
value indicates that this font isn’t supported on the current device.
- Added
Adds localized strings for British English (
en-rGB
locale). (#23092) - Added
Adds support for undoing the removal of annotations after using the “Clear All” button inside the annotation list. (#20310)
- Added
Adds
PdfOutlineView#setUndoManager()
to configure the undo manager that is used for tracking annotation removals.
- Changed
Improves animations when scrolling to search results in inline search. (#22921)
- Added
Improves document loading and UI performance. (#23166)
- Changed
Improves performance when zooming pages with multiple ink or stamp annotations.
- Changed
Improves document loading times for larger documents when the license supports digital signatures.
- Added
Adds
PdfDocument#getDocumentSignatureInfoAsync()
to retrieve the signature info in a non-blocking manner.PdfDocument#getDocumentSignatureInfo()
should no longer be called on the main thread.
- Changed
Improves document loading performance when having the redaction UI disabled using the
PdfActivityConfiguration.Builder#setRedactionUiEnabled()
. (#22927) - Changed
Improves page rendering performance. (#22298)
- Changed
Increases priority for rendering visible pages.
- Changed
Optimizes time to prepare annotation overlay.
- Changed
Delays display of page loading view. This improves feeling when switching to pages that are rendered fast or have cached rendering.
- Fixed
Improves property inspector behavior. (#22072)
- Changed
PropertyInspectorCoordinatorLayout
now internally uses bottom sheet implementation from the material components library. - Fixed
Fixes property inspector in immersive mode.
- Removed
Deprecates
setResizable()
andisResizable()
inPropertyInspector
. 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 inPdfThumbnailGrid
after enabling user interface. (#23373)
Model
- API
Moves private PSPDFKit API’s from package
com.pspdfkit.framework
to packagecom.pspdfkit.internal
, as well as fromcom.pspdfkit.instant.framework
tocom.pspdfkit.instant.internal
respectively. (#22985) - Added
Adds custom lint check to ensure that
android:configChanges
is not configured forPdfActivity
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 returnedfalse
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 tofalse
. (#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 istrue
by allowing every thumbnail to be a different size. (#22378) - Fixed
Fixes a
MissingWebViewPackageException
that could be thrown when invokingPdfMediaDialog
when the system WebKit package was not installed. (#22712) - Fixed
Fixes a possible
NullPointerException
that could be thrown when invokingUriAction
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 thePdfActivity
. (#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.
- 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
to29
. (#21645)
Private APIs
This release adds a linter check that will warn developers when using PSPDFKit’s private APIs, i.e. classes, methods or fields which are parts of the com.pspdfkit.framework
Java package. Usage of private APIs is unsupported and will break starting with PSPDFKit 6.2 for Android in early 2020. If you are receiving linter warnings about private API usage after updating to 6.1, or if you are not sure whether your app is using private APIs, please reach out to our customer support team at https://pspdfkit.com/support/request/ or via mail to support@pspdfkit.com.
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
, useDefaultDocumentSharingController
instead. (#22382) - Removed
Deprecates multiple methods inside
DocumentSharingIntentHelper
. (#22379)- Removed
Deprecates
DocumentSharingIntentHelper.createChooser()
since its functionality regressed on devices running Android 10. UseIntent#createChooser()
together with an implicitIntent
instead. - Removed
Deprecates
DocumentSharingIntentHelper.queryMailToActivities()
. UseDocumentSharingIntentHelper#queryIntentActivities()
using anIntent
havingIntent#ACTION_SENDTO
and amailto:
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()
andPdfFragment#removeOverlayViewProvider()
to add and remove customOverlayViewProvider
. - 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 aDocumentOutlineProvider
. - Added
Adds
OutlineElement#Builder
for creatingOutlineElement
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()
toPdfActivity
andPdfUiFragment
as@NonNull
variant of thegetPdfFragment()
method. This method always returns instance of thePdfFragment
or throws an exception if it is not yet initialized. (#21765) - Added
Adds
onPrepareFormElementSelection()
toOnFormElementSelectedListener
that can be used to prevent form element selection by returningfalse
from this method. (#22062) - Added
Adds support for multi-line bookmark titles. (#20712)
- Added
Adds
onSignatureUiDataCollected()
method to theSignaturePickerFragment.OnSignaturePickedListener
. You can use it to retrieve the raw drawing data for the created signature. Data is inside theSignaturePickerFragment.SignatureUiData
object and contains pressure list, point sequences, touch radii, etc. (#22176) - Changed
Improves performance when quickly scrolling through document pages. (#22067)
- Changed
Improves scrolling behaviour when in paginated mode by making it harder to accidentally change pages. (#21809)
- Added
The file picker which is used when saving a document after redaction now pre-fills the default file name. (#22254)
- Added
Adds overload for
FilePicker#getDestinationUri()
that gives control over the default file name that is used by the system file picker. - Fixed
Fixes an issue where the document title returned by
ContentResolvedDataProvider
would be the file name including the file extension.
- Fixed
Fixes an issue where annotations that were being created were rendered behind already added annotations instead of on top of them. (#22619)
- Fixed
Fixes a crash that would happen when adding and removing annotation replies. (#22456)
- Fixed
Fixes a possible
NullPointerException
that could be thrown when creating annotation eraser preview in annotation inspector. (#22441) - Fixed
Fixes a possible exception caused by accessing
getAnnotationPreferences()
orgetAnnotationConfiguration()
inPdfFragment
before views were created. (#22485) - Fixed
Fixes a possible unhandled
NullPointerException
when accessingNavigationBackStack
while initializingPdfActivity
. (#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 aPdfActivity
inside the user’s shared preferences. (#22080) - Added
Adds
getCustomTitle()
method toDocumentDescriptor
. Use this method to retrieve custom document title set viasetTitle()
. (#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)
inPdfActivityConfiguration.Builder
andPdfConfiguration.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()
returnedfalse
for file-basedUri
s 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 usingPdfActivity#setConfiguration()
. (#21536)
Model
- Added
Adds
hasBorder()
method toBorderStylePreset
that returnstrue
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 arenull
or empty. (#21581) - Fixed
Fixes
PdfUiFragment
not implementingPdfActivityComponentsApi
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
orTIME
asTextInputFormat
has been changed fromInputType#TYPE_CLASS_DATETIME
toInputType#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 inLinkAnnotationHighlighter
. (#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.
- 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 thePdfActivity
but as a fragment that can be included as part of another activity. ThePdfUiFragment
is considered experimental and the API may change or be removed in future framework releases. (#20981)- Added
Adds
PdfUiFragmentBuilder
to create newPdfUiFragment
instances. - Added
Adds
PdfUi
, an interface containing methods that are shared by both thePdfActivity
as well as thePdfUiFragment
. - Removed
Removes
PdfActivityApi
, this was replaced byPdfUi
.
- 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()
andsetRotationEnabled()
method toAnnotationSelectionController
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 ofPdfProjection
. - 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 ofViewProjection
. - 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)
. UseViewProjection#getPageToViewTransformation(int, Matrix)
instead. - Removed
Deprecates
PdfFragment#getPageToViewTransformation(int, Matrix)
. UseViewProjection#getPageToViewTransformation(int, Matrix)
instead. - Removed
Deprecates
PdfFragment#convertViewPointToPdfPoint(PointF, int)
. UseViewProjection#toPdfPoint(PointF, int)
instead. - Removed
Deprecates
PdfFragment#convertPdfPointToViewPoint(PointF, int, boolean)
. UseViewProjection#toViewPoint(PointF, int)
instead. - Removed
Deprecates
PdfFragment#convertPdfPointToViewPoint(PointF, int)
. UseViewProjection#toViewPoint(PointF, int)
instead. - Removed
Deprecates
PdfFragment#convertViewRectToPdfRect(RectF, int)
. UseViewProjection#toPdfRect(RectF, int)
instead. - Removed
Deprecates
PdfFragment#convertPdfRectToViewRect(RectF, int)
. UseViewProjection#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 aViewPager
. (#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
NullPointerException
s 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 ofToolbarCoordinatorLayout#displayContextualToolbar()
andToolbarCoordinatorLayout#removeContextualToolbar()
was ignored and the animation was always shown. (#21075)
Model
- API
Removes all previously deprecated symbols. (#20504)
- Removed
Removes
PdfFragment#getAnnotationDefaults()
. UsePdfFragment#getAnnotationConfiguration()
instead. - Removed
Removes
PdfFragment#setAnnotationDefaultsProvider()
. UseAnnotationConfigurationRegistry#put()
instead. - Removed
Removes
PSPDFKit#setLoggingEnabled()
. To disable logging, remove all loggers viaPdfLog#removeAllLoggers()
. Alternatively implement custom logging policy by setting multiple customLogger
s viaPdfLog#setLoggers(Logger...)
. - Removed
Removes
AnnotationDefaultsManager
. Replaced by theAnnotationConfigurationRegistry
. - Removed
Removes
AnnotationDefaultsProvider
. Replaced byAnnotationConfiguration
. - Removed
Removes
com.pspdfkit.annotations.defaults.AnnotationProperty
. Usecom.pspdfkit.annotations.configuration.AnnotationProperty
instead. - Removed
Removes
AnnotationAggregationStrategyDefaultsProvider
. UseAnnotationAggregationStrategyConfiguration
instead. - Removed
Removes
AnnotationDefaultsAlphaProvider
. UseAnnotationAlphaConfiguration
instead. - Removed
Removes
AnnotationDefaultsBorderStyleProvider
. UseAnnotationBorderStyleConfiguration
instead. - Removed
Removes
AnnotationDefaultsColorProvider
. UseAnnotationColorConfiguration
instead. - Removed
Removes
AnnotationDefaultsFillColorProvider
. UseAnnotationFillColorConfiguration
instead. - Removed
Removes
AnnotationDefaultsFontProvider
. UseAnnotationFontConfiguration
instead. - Removed
Removes
AnnotationDefaultsLineEndTypeProvider
. UseAnnotationLineEndsConfiguration
instead. - Removed
Removes
AnnotationDefaultsNoteIconProvider
. UseAnnotationNoteIconConfiguration
instead. - Removed
Removes
AnnotationDefaultsOutlineColorProvider
. UseAnnotationOutlineColorConfiguration
instead. - Removed
Removes
AnnotationDefaultsOverlayTextProvider
. UseAnnotationOverlayTextConfiguration
instead. - Removed
Removes
AnnotationDefaultsPreviewProvider
. UseAnnotationDefaultsProvider
instead. - Removed
Removes
AnnotationDefaultsRepeatOverlayTextProvider
. UseAnnotationOverlayTextConfiguration
instead. - Removed
Removes
AnnotationDefaultsTextSizeProvider
. UseAnnotationTextSizeConfiguration
instead. - Removed
Removes
AnnotationDefaultsThicknessProvider
. UseAnnotationThicknessConfiguration
instead. - Removed
Removes
AnnotationDefaultsStampProvider
. UseStampAnnotationConfiguration.Builder
instead. - Removed
Removes
EraserDefaultsProvider
. UseEraserToolConfiguration.Builder
instead. - Removed
Removes
FileAnnotationDefaultsProvider
. UseFileAnnotationConfiguration.Builder
instead. - Removed
Removes
FreeTextAnnotationDefaultsProvider
. UseFreeTextAnnotationConfiguration.Builder
instead. - Removed
Removes
InkAnnotationDefaultsProvider
. UseInkAnnotationConfiguration.Builder
instead. - Removed
Removes
LineAnnotationDefaultsProvider
. UseLineAnnotationConfiguration.Builder
instead. - Removed
Removes
MarkupAnnotationDefaultsProvider
. UseMarkupAnnotationConfiguration.Builder
instead. - Removed
Removes
NoteAnnotationDefaultsProvider
. UseNoteAnnotationConfiguration.Builder
instead. - Removed
Removes
RedactionAnnotationDefaultsProvider
. UseRedactionAnnotationConfiguration.Builder
instead. - Removed
Removes
ShapeAnnotationDefaultsProvider
. UseShapeAnnotationConfiguration.Builder
instead. - Removed
Removes
StampAnnotationDefaultsProvider
. UseStampAnnotationConfiguration.Builder
instead. - Removed
Removes
AnnotationPreferencesManager#getBorderStyle()
. UseBorderStylePreset#getBorderStyle()
on border style preset returned viaAnnotationPreferencesManager#getBorderStylePreset()
. - Removed
Removes
AnnotationPreferencesManager#setBorderStyle()
. UseBorderStylePreset
set viaAnnotationPreferencesManager#setBorderStylePreset()
. - Removed
Removes
AnnotationPreferencesManager#getBorderDashArray()
. UseBorderStylePreset#getDashArray()
on border style preset returned viaAnnotationPreferencesManager#getBorderStylePreset()
. - Removed
Removes
AnnotationPreferencesManager#setBorderDashArray()
. UseBorderStylePreset
set viaAnnotationPreferencesManager#setBorderStylePreset()
. - Removed
Removes
PdfConfiguration.Builder#textSharingEnabled()
. UsePdfConfiguration.Builder#setEnabledShareFeatures()
withShareFeatures#TEXT_SELECTION_SHARING
,ShareFeatures.NOTE_ANNOTATION_SHARING
andShareFeatures.FREE_TEXT_ANNOTATION_SHARING
instead. - Removed
Removes
PdfConfiguration.Builder#embeddedFileSharingEnabled()
. UsePdfConfiguration.Builder#setEnabledShareFeatures()
withShareFeatures#EMBEDDED_FILE_SHARING
instead. - Removed
Removes
PdfConfiguration.Builder#sharingNoteEditorContentEnabled()
. UsePdfConfiguration.Builder#setEnabledShareFeatures()
withShareFeatures#NOTE_EDITOR_CONTENT_SHARING
instead. - Removed
Removes
PdfConfiguration.Builder#setSignatureSavingEnabled()
. UsePdfConfiguration.Builder#signatureSavingStrategy()
instead. - Removed
Removes
PdfConfiguration.Builder#setCustomerSignatureFeatureEnabled()
. UsePdfConfiguration.Builder#signatureSavingStrategy()
instead. - Removed
Removes
PdfConfiguration#isTextSharingEnabled()
. UsePdfConfiguration#getEnabledShareFeatures()
and check ifShareFeatures#TEXT_SELECTION_SHARING
is enabled. - Removed
Removes
PdfConfiguration#isEmbeddedFilesSharingEnabled()
. UsePdfConfiguration#getEnabledShareFeatures()
and check ifShareFeatures#EMBEDDED_FILE_SHARING
is enabled. - Removed
Removes
PdfConfiguration#isSharingNoteEditorContentEnabled()
. UsePdfConfiguration#getEnabledShareFeatures()
and check ifShareFeatures#NOTE_EDITOR_CONTENT_SHARING
is enabled. - Removed
Removes
PdfConfiguration#isSignatureSavingEnabled()
. UsePdfConfiguration#getSignatureSavingStrategy()
instead. - Removed
Removes
PdfConfiguration#isCustomerSignatureFeatureEnabled()
. UsePdfConfiguration#getSignatureSavingStrategy()
instead. - Removed
Removes
PdfActivityConfiguration.Builder#sharingNoteEditorContentEnabled()
. UsePdfActivityConfiguration.Builder#enabledShareFeatures()
withShareFeatures#NOTE_EDITOR_CONTENT_SHARING
instead. - Removed
Removes
PdfActivityConfiguration.Builder#enableShare()
. UsePdfActivityConfiguration.Builder#enabledShareFeatures()
withShareFeatures.all()
instead. - Removed
Removes
PdfActivityConfiguration.Builder#disableShare()
. UsePdfActivityConfiguration.Builder#enabledShareFeatures()
withShareFeatures.none()
instead. - Removed
Removes
PdfActivityConfiguration.Builder#setSignatureSavingEnabled()
. UsePdfActivityConfiguration.Builder#signatureSavingStrategy()
instead. - Removed
Removes
PdfActivityConfiguration.Builder#setCustomerSignatureFeatureEnabled()
. UsePdfActivityConfiguration.Builder#signatureSavingStrategy()
instead. - Removed
Removes
PdfActivityConfiguration#isShareEnabled()
. UsePdfActivityConfiguration#getEnabledShareFeatures()
instead. - Removed
Removes
ThumbnailBarMode#THUMBNAIL_BAR_MODE_DEFAULT
. UseThumbnailBarMode#THUMBNAIL_BAR_MODE_FLOATING
instead. - Removed
Removes
PdfProcessorTask#addPdfToPage()
. UsePdfProcessorTask#mergePage()
instead. - Removed
Removes
SearchOptions.Builder(Context)
. Use no parameter constructor instead. - Removed
Removes
TextSearch(Context, PdfDocument, PdfConfiguration)
. UseTextSearch(PdfDocument, PdfConfiguration)
instead. - Removed
Removes
Signer#OnSigningCompleteCallback
. - Removed
Removes
Signer#signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback)
. UseSigner#signFormField(SignerOptions)
instead. - Removed
Removes
Signer#signFormField(SignerOptions, OnSigningCompleteCallback)
. UseSigner#signFormField(SignerOptions)
instead. - Removed
Removes
Signer#signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream)
. UseSigner#signFormFieldAsync(SignerOptions)
instead. - Removed
Removes
SignaturePickerFragment#setSignaturePickerOrientation()
. Pass in the desiredSignatureOptions
toSignaturePickerFragment#show()
instead. - Removed
Removes
SignaturePickerFragment#showSignaturePicker()
. UseSignaturePickerFragment#show()
instead. - Removed
Removes
AnnotationCreationController#getBorderStyle()
. Use border style viaBorderStylePreset#getBorderStyle()
returned byAnnotationCreationController#getBorderStylePreset()
. - Removed
Removes
AnnotationCreationController#setBorderStyle()
. Set in a border preset viaAnnotationCreationController#setBorderStylePreset(BorderStylePreset)
. - Removed
Removes
AnnotationCreationController#getBorderDashArray()
. Use dash array viaBorderStylePreset#getDashArray()
returned byAnnotationCreationController#getBorderStylePreset()
. - Removed
Removes
AnnotationCreationController#setBorderDashArray()
. Set in a border preset viaAnnotationCreationController#setBorderStylePreset(BorderStylePreset)
.
- Added
Adds
ContainedSignaturesSigner
that simplifies usage of contained digital signatures. (#21309) - Added
Adds support for extracting and attaching binary Instant JSON attachments. (#15851)
- Added
Adds
Annotation#hasBinaryInstantJsonAttachment()
to check whether the annotation has an attachment. - Added
Adds
Annotation#fetchBinaryInstantJsonAttachment()
to get an existing attachment. - Added
Adds
Annotation#attachBinaryInstantJsonAttachment()
to create a new attachment.
- Added
Adds support for redaction annotations to Instant JSON. (#21389)
- Added
Adds support for rendering Emojis in FreeText annotation and forms. (#20629)
- Added
Adds support for reordering annotations based on the z-index. (#21235)
- Added
Adds
AnnotationProvider#moveAnnotation[Async](int pageIndex, int fromZIndex, int toZIndex)
. - Added
Adds
AnnotationProvider#moveAnnotation[Async](@NonNull Annotation annotation, int zIndex)
. - Added
Adds
AnnotationProvider#moveAnnotation[Async](@NonNull Annotation annotation, @NonNull AnnotationZIndexMove zIndexMove)``, where
AnnotationZIndexMovecan be one of the following actions:
MOVE_TO_FRONT,
MOVE_FORWARD,
MOVE_BACKWARD,
MOVE_TO_BACK`. - Added
Adds
AnnotationProvider#getZIndex(@NonNull Annotation annotation)
. - Added
Adds
OnAnnotationUpdatedListener#onAnnotationZOrderChanged(int pageIndex, @NonNull List<Annotation> oldOrder, @NonNull List<Annotation> newOrder)
that you can use to catch the annotation z-index changes.
- Changed
Improves JPEG2000 with transparency support. (#20483)
- Changed
Improves consumer Proguard configuration for use with R8. (#20745)
- Changed
Improves font rendering and fixes several edge cases. (#20930)
- Changed
Improves handling and documentation of custom digital signature sizes. Now cases where the signature size exceeds the reserved size in a document will be informed correctly. (#21304)
- Changed
Improves memory usage on complex documents. (#20970)
- Changed
Improves the stability of some PDF form operations. (#21032)
- Changed
Improves the validation of Instant JSON payloads so that case differences in properties are tolerated. (#21145)
- Changed
Improves handling of broken AcroForm dictionaries. (#21121)
- Changed
Changes
AnnotationProvider#getAllAnnotationsOfType()
to be a blocking call instead of async. (#20525) - Changed
Strengthens the validation of Instant JSON format in some corner cases. (#20748)
- Fixed
Fixes an issue where text after signing had incorrect characters after looking at it in another viewer. (#20930)
- Fixed
Fixes a bug in redaction rendering where the font size wasn’t consistent. (#21088)
- Fixed
Fixes a bug where measuring annotation selection layout could lead to a crash. (#20961)
- Fixed
Fixes a problem where some dates may be incorrectly formatted as Sunday. (#20363)
- Fixed
Fixes an issue when importing XFDF files in specific documents. (#21271)
- Fixed
Fixes an issue where a document with too many annotations would cause a crash by exceeding the global JNI reference count. (#20977)
- Fixed
Fixes an issue where images with the lighten blend mode didn’t get rendered correctly. (#20642)
- Fixed
Fixes an issue where loading a document would fail if it contained JPEG2000 images not specifying a color space. (#21311)
- Fixed
Fixes pasted rotated vector stamps being double rotated which resulted in clipping. (#20916)
- Fixed
Fixes some stability issues when fonts are loaded from a document. (#21042)
- Fixed
Fixes some use cases where PDFs with JavaScript validation scripts may not work as expected. (#21291)
- Fixed
Fixes page indices being incorrect after the first data provider when exporting Instant JSON from a document with multiple data providers. (#20343)
- Fixed
Fixes a possible
NullPointerException
that could occur when changing pages while having free-text annotation selected. (#21459)
Instant
- Removed
Instant library has been merged with PSPDFKit for Android. (#20364)
- Removed
Removes
com.pspdfkit:pspdfkit-instant
artefact from the PSPDFKit’s maven repo andpspdfkit-instant.aar
from the distribution package. - Removed
Removes
PSPDFKitInstant
andPSPDFKitInstantInitializationProvider
. Instant is now initialized together withPSPDFKit
. - Changed
InstantClient
now checks for OkHttp dependency and throws an error if it is missing. If you wish to use Instant addimplementation "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
andsignFormField()
method that used it inSigner
. (#20815) - Added
Adds support for contained digital signatures. (#20493)
- Added
Adds
prepareFormFieldForSigningAsync()
toSigner
. Use this method to reserve space in a signature form field so that it can be signed later. - Added
Adds
embedSignatureInFormFieldAsync()
toSigner
. Use this method to embed a digital signature in a document that has been already prepared for signing. - Added
Adds
SignatureContents
interface.SignerOptions
now hassignatureContents
property that represents raw content that should be embedded as a digital signature in the document. - Added
Adds
PKCS7
that implements PKCS7 cryptographic container andPKCS7SignatureContents
that wraps the PKCS7 container as a signature contents. - Added
Adds
getHashForDocumentRange()
toPdfDocument
to hash part of the document indicated by the byte range of the prepared signature. - Added
Adds
ContainedSignaturesExample
that shows how to build customSigner
for signing a document using thePKCS7
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.
PSPDFKit is now built with Android Gradle Plugin 3.4.2
and Gradle 5.5.1
.
UI
- Added
Adds
enableMagnifier()
toPdfConfiguration.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
, andpspdf__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 viaPdfActivityConfiguration.Builder#setThumbnailBarMode()
. - Added
Adds
ThumbnailBarMode#THUMBNAIL_BAR_MODE_PINNED
used to select pinned (old) thumbnail bar viaPdfActivityConfiguration.Builder#setThumbnailBarMode()
. - Removed
Deprecates
ThumbnailBarMode#THUMBNAIL_BAR_MODE_DEFAULT
. TheThumbnailBarMode#THUMBNAIL_BAR_MODE_FLOATING
is now used as a default value. - Added
Adds
PdfThumbnailBar#setThumbnailBarMode()
to set the mode dynamically on theThumbnailBar
. - Added
Adds
PdfStaticThumbnailBar.LayoutStyle
enum that defines two possible layout styles for the static thumbnail bar (FLOATING
andPINNED
). Also addssetLayoutStyle()
andgetLayoutStyle()
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
andPdfFragment
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 ofAnnotationProvider#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 onPdfFragment
orPdfActivity
was not called when callingPdfDocument#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 thepspdf__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 flagsREADONLY
,LOCKED
orLOCKEDCONTENTS
). (#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
PropertyInspectorView
s were restored twice reporting wrong values in the UI. (#20305)- Added
Adds
PropertyInspectorView#isViewStateRestorationEnabled()
to determine whether to save the state by calling theView#saveHierarchyState
andView#restoreHierarchyState
to restore it. Defaults tofalse
.
- Fixed
Fixes an issue where switching pages would cause the selected annotation tool variant to be lost. (#20371)
- Fixed
Fixes an issue where text form fields were not scrolled into view when displaying soft keyboard in immersive mode. (#20251)
- Fixed
Fixes an issue where the redaction UI would reappear after clearing all redactions. (#20323)
- Fixed
Fixes an issue where the tab bar was cut off in immersive mode. (#20341)
- Fixed
Fixes an issue where the text selection popup performance degraded while using it. (#20326)
- Fixed
Fixes an issue where using the “Clear All” option in the annotation list would not update the page thumbnails. (#20330)
- Fixed
Fixes an issue where exporting pages from Document Editor may cause a crash when the page index is not the first. (#20331)
Model
- Changed
Improves loading performance for documents with complex outlines. (#20279)
- Changed
Improves the deletion behavior for note annotations with associated popup annotations. The latter used to become “orphaned”. (#19853)
- Added
Improves the document loading performance by parsing outline asynchronously. (#20171)
- Changed
Improves
PdfDocument#getOutline()
that now parses outline on first use. This operation could take a while and should not be executed on the main thread. - Added
Adds
PdfDocument#getOutlineAsync()
for parsing outline asynchronously. - Added
Adds
PdfDocument#hasOutline()
that is resolved while loading document. Use this method to check whether outline is present in the document without parsing the whole outline.
- Changed
Improves the performance when loading documents with many link annotations and form fields. (#20171)
- Changed
Improves automatic repair of AcroForms when loading documents with a large number of annotations. (#19990)
- Fixed
Fixes an issue where
AnnotationConfiguration#builder()
had no implementation for sound annotation configuration. (#20292) - Fixed
Fixes an issue where exiting annotation editing mode via toolbar, would call
OnAnnotationEditingModeChangeListener#onExitAnnotationEditingMode()
twice. (#20172) - Fixed
Fixes an issue where proguard consumer file was missing some rules that might cause a crash on release builds. (#20286)
- Fixed
Fixes an issue where some documents signed with invisible signatures could not be validated correctly. (#20277)
Instant
- Fixed
Fixes an issue where “Save as” share action did not work with Instant documents. (#20140)
- Fixed
Fixes an issue where annotations could not be removed in Instant documents. (#20337)
Examples
- Fixed
Fixes an infinite recursion when requesting external storage permission in Document Tabs Example in Catalog app. (#20339)
- Fixed
Fixes an issue in Annotation Creation example of Catalog app where the annotation creator was always overridden even if already set. (#20253)
5.4.1 - 29 May 2019
UI
- Added
Adds error handling for XFDF parsing in
XfdfExample
. (#20049) - Changed
Updates the default color palettes provided when creating and editing annotations. (#19843)
- Changed
XfdfExample
now shows how to export all annotations in the document. (#20050) - Fixed
Fixes an issue in
CustomAnnotationInspectorExample
where custom annotation color picker indicated incorrect selected color. (#20069) - Fixed
Fixes an issue where background color and border color were not displayed correctly for free text annotations while in night mode. (#20037)
- Fixed
Fixes an issue where in some cases
FreeTextAnnotation
preferences were not saved correctly. (#20032) - Fixed
Fixes an issue where slider picker text values were not applied after leaving inspector. (#20043)
- Fixed
Fixes an issue where text form fields could cause a
NullPointerException
. (#20084) - Fixed
Fixes an issue where some simple signatures were distorted before adding them to the document. (#20090)
- Fixed
Fixes an issue with the contextual toolbars where clicking on the close button multiple times might cause a potential crash. (#20048)
Model
- Added
Adds support to use LeakCanary 2 with PSPDFKit. (#20020)
- Fixed
Fixes an issue that lead to the
Custom Stamp Annotations
example crashing when started. (#20044) - Fixed
Fixes an issue where JavaScript API
doc.getField()
could get into a state where it wasn’t possible to retrieve newly created form fields. (#20027) - Fixed
Fixes an issue where closing the
Image Document
example might lead to crashes. (#20041) - Fixed
Fixes an issue where displaying the
PopupToolbar
close to the edge of the screen lead to animation artifacts when opening and closing the overflow menu. (#20033) - Fixed
Fixes an issue where the
AesDataProvider
provided with the Catalog sample app was not compatible with multithreaded rendering. (#19994)
Instant
- Fixed
Fixes
NoClassDefFoundError
that occurred while creatingInstantClient
. (#20031)
5.4.0 - 23 May 2019
See the announcement post.
PSPDFKit is now built with Android Gradle Plugin 3.4.1
and Gradle 5.4.1
. This release adds a new transitive dependency to androidx.palette:palette:1.0.0
.
UI
- API
Existing API for controlling annotation editing defaults and preferences has been replaced. (#19252)
- Changed
All interfaces and classes in package
com.pspdfkit.annotations.defaults
have been deprecated in favor of new annotation configuration API incom.pspdfkit.annotations.configuration
. - Added
Adds
AnnotationConfigurationRegistry
which manages a list ofAnnotationConfiguration
s for each annotation type or tool. Can be retrieved viaPdfFragment#getAnnotationConfiguration()
. - Added
Adds
<AnnotationType>Configuration
for each annotation type (or multiple similar types in case ofMarkupAnnotationConfiguration
andShapeAnnotationConfiguration
) 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 toAnnotationColorConfiguration
,AnnotationFillColorConfiguration
, andAnnotationOutlineColorConfiguration
. - Added
Adds
setCustomColorPickerEnabled()
toAnnotationColorConfiguration.Builder
,AnnotationFillColorConfiguration.Builder
, andAnnotationOutlineColorConfiguration.Builder
. - Added
Adds
getRecentlyUsedColors()
andsetRecentlyUsedColors()
toPSPDFKitPreferences
. - Added
Adds
CustomColorPickerInspectorDetailView
which provides a UI for the user to select predefined colors as well as entering their own. - Removed
Removes
ColorPickerInspectorDetailView.ColorPickerListener
useColorPickerInspectorView.ColorPickerListener
instead.
- Added
Adds a new improved UI for displaying bookmarks to make it easier to associate a given bookmark with a page. (#19109)
- Added
Adds
onBookmarkAdded()´ method to
BookmarkProvider.BookmarkListener`.
- Added
Adds magnifier widget when selecting text to make text selection more precise by unobscuring the area covered by the finger. Uses system magnifier on API 28+ and a custom magnifier implementation on older versions of Android. (#19273)
- Added
Adds options to clear all annotations and delete single annotations to annotations outline view. (#19568)
- Added
Adds
PdfOutlineView#setAnnotationEditingEnabled()
to control whether this new feature is enabled. - Added
Adds style attributes
pspdf__annotationsBarBackgroundColor
,pspdf__annotationsBarIconColor
,pspdf__annotationsDeleteIcon
,pspdf__annotationsDeleteIconColor
,pspdf__annotationsEditIcon
, andpspdf__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()
andsetBorderEffectIntensity()
toAnnotation
. 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 viaAnnotationBorderStyleConfiguration
. - Removed
Deprecates border style and border dash array properties from
AnnotationPreferences
andAnnotationCreationController
. 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 viaPdfFragment#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 aAnnotationToolVariant
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 onAnnotationCreationToolbar
viasetItemToAnnotationToolMapper()
. - Added
Adds
CustomAnnotationCreationToolbarExample
to the Catalog showcasing how to implement custom tool variants to the annotation creation toolbar properly. - Added
Adds
PdfFragment#getActiveAnnotationTool()
andPdfFragment#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, andpspdf__annotation_creation_toolbar_item_ink_pen
andpspdf__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 editedFreeTextAnnotation
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 toNewPageDialog#show
,NewPageDialog#restore
, andDialogNewPageFactory()
which, if set totrue
, diplays custom page templates after page patterns provided by default. (#19433) - Added
Adds style attribute
pspdf__itemRippleBackgroundColor
to thepspdf__ThumbnailGrid
styleable, to change the ripple color for theThumbnailGrid
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
andNewPage#hasPatternSource
to help determine the source of the new page created usingNewPageDialog
. (#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.
UI
- Removed
Deprecates
PdfFragment#setAnnotationDefaultsProvider()
. Use methods defined onAnnotationDefaultsManager
that can be retrieved viaPdfFragment#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
andcoverImage
options. (#18206) - Added
Ink drawing is now automatically split into ink annotations based on strokes timing and distance between drawn points. (#13019)
- Added
Adds new defaults provider
AnnotationAggregationStrategyDefaultsProvider
that can be implemented for ink annotations to control ink splitting strategy.
- Changed
Improves
PdfActivity
startup time by optimizingPdfOutlineView
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
intoJSONObject
and vice-versa: (#18794)- Added
Adds static creator
Signature#fromJson()
(with or without a specified id) that parses the providedJSONObject
and creates a respectiveSignature
. - Added
Adds
Signature#toJson()
method that converts the givenSignature
to theJSONObject
.
- 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 toAnnotation
. This property can be used to store user-specified data related to Annotations. (#18927) - Added
Adds async method
executeDocumentLevelScriptsAsync()
toJavaScriptProvider
. (#18892) - Added
Adds support for modifying form fields and annotation widgets to Instant Document JSON. (#18771)
- Changed
Improves startup performance of PSPDFKit. (#19138)
- Changed
Improves the performance of documents with JavaScript interactivity in many common scenarios. (#19119)
- Changed
Loading PDF actions is now more reliable. (#18843)
- Changed
Update ICU to version 63.1. (#18974)
- Changed
Update libpng to 1.6.36. (#18972)
- Changed
Update zlib to 1.2.11. (#18975)
- Changed
Updates AndroidX Recycler View to 1.1.0-alpha02. (#19100)
- Changed
Updates build system dependencies. (#18912)
- Changed
Updates Gradle to 5.2.1.
- Changed
Updates the Android Gradle Plugin to 3.3.1.
- Fixed
Fixes an issue where form fields that were made visible using JavaScript would not show their formatted appearance. (#19119)
- Fixed
Fixes an issue exporting Instant shape annotations with transparent stroke colors. (#19120)
- Fixed
Fixes an issue when drawing a path using a pattern with alpha transparency. (#19148)
- Fixed
Fixes an issue when rendering text with an overlay blend mode. (#19151)
- Fixed
Fixes an issue when setting transparent colors in annotations. (#19120)
- Fixed
Fixes an issue where adding pages with forms using the
PdfProcessor
resulted in no AcroForms dictionary being added to the resulting document. (#18517) - Fixed
Fixes an issue where asynchronous layout callbacks were sometimes executed after
onStop
causing a crash. (#19206) - Fixed
Fixes an issue where documents could get opened with outdated changes after saving. (#18845)
- Fixed
Fixes an issue where entering text after a PDF document script has executed didn’t work correctly. (#19119)
- Fixed
Fixes an issue where some layers were hidden incorrectly. (#14439)
- Fixed
Fixes an issue where some memory may be leaked after running a script. (#19016)
- Fixed
Fixes an issue where using
PdfDocument#save(path)
would result in corrupt digital signatures in the output document. (#18689) - Fixed
Fixes an issue with instant ink annotation not being sent to clients. (#19325)
- Fixed
Fixes rendering of free text annotations with vertical alignment. (#19145)
Examples
- Added
Improves Catalog app example list. (#19193)
- Changed
Catalog app now uses
RecyclerView
instead ofListView
. - 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 ofFormsJavaScriptActivity
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
andSignaturePickerOrientation.LOCKED_LANDSCAPE
whereSignaturePickerDialog
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
inonGenerateMenuItemIds
oronCreateOptionsMenu
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
UI
- API
Improves handling custom menu items in the main menu toolbar of
PdfActivity
. (#6056)- API
Removes
PdfActivityMenuManager
class. - API
Removes
PdfActivity#getActivityMenuManager()
method. - Added
Adds
onGenerateMenuItemIds()
method to thePdfActivity
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 inonCreateOptionsMenu()
. You should useonCreateOptionsMenu()
to create your custom menu items and useonPrepareOptionsMenu()
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()
andPdfActivity#setDocumentInteractionEnabled()
to control whether the document view will accept inputs or not. (#18135) - Added
Adds
PdfFragment#setUserInterfaceEnabled()
andPdfActivity#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
andUNICODE_TOKENIZER
constants to specify the tokenizer.
- Added
Adds
isFormElementClickable()
toOnFormElementClickedListener
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 appTabbed 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 theMainActivity
declaration inAndroidManifest.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 usingaddLogger()
orsetLoggers()
methods inPdfLog
. - Removed
Deprecates
PSPDFKit#setLoggingEnabled()
. UsePdfLog#removeAllLoggers()
or customLogger
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()
toPdfConfiguration.Builder
andPdfActivityConfiguration.Builder
to control whether multithreaded rendering should be enabled for loaded documents. - Added
Adds
multithreadedRenderingEnabled
parameters to open methods inPdfDocumentLoader
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 aSignatureAppearance
. - 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 withSigner#signFormField[Async]()
. - Removed
Deprecates overloads of
Signer#signFormField[Async]()
that don’t takeSignerOptions
, use the new overloads usingSignerOptions
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 itsBuilder
’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 loadedImageDocument
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.
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()
toPdfThumbnailGrid
for setting the listener.
- Added
Adds unified configuration for all supported sharing features. (#16544)
- Added
Adds
setEnabledShareFeatures()
toPdfActivityConfiguration.Builder
andPdfConfiguration.Builder
. - Removed
Deprecates
isShareEnabled()
inPdfActivityConfiguration
. UsePdfConfiguration#getEnabledShareFeatures()
instead. - Removed
Deprecates
enableShare()
anddisableShare()
inPdfActivityConfiguration.Builder
. UsePdfActivityConfiguration.Builder#setEnabledShareFeatures()
instead. - Removed
Deprecates
isTextSharingEnabled()
,isEmbeddedFilesSharingEnabled
andisSharingNoteEditorContentEnabled()
inPdfConfiguration
. UsePdfConfiguration#getEnabledShareFeatures()
instead. - Removed
Deprecates
textSharingEnabled()
,embeddedFileSharingEnabled()
andsharingNoteEditorContentEnabled
inPdfConfiguration.Builder
. UsePdfConfiguration.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 ifSignatureSavingStrategy.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 viasignatureSavingStrategy()
inPdfConfiguration.Builder
andPdfActivityConfiguration.Builder
. - Changed
SignatureCertificateSelectionMode
is set viasignatureCertificateSelectionMode()
inPdfConfiguration.Builder
andPdfActivityConfiguration.Builder
. - Removed
Deprecates
setSignatureSavingEnabled()
inPdfConfiguration.Builder
andPdfActivityConfiguration.Builder
. - Removed
Deprecates
setCustomerSignatureFeatureEnabled()
inPdfConfiguration.Builder
andPdfActivityConfiguration.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. UseSignatureOptions.Builder
to build it. - Added
Adds additional
SignaturePickerFragment#show()
method that takes in theSignatureOptions
object, through which you can configure the signing UI. - Added
Adds
SignaturePickerFragment#dismiss()
method which you can use to hide theSignaturePickerFragment
. - Removed
Deprecates
SignaturePickerFragment#showSignaturePicker()
. The picker fragment should not be added manually with the tag anymore. You should just useSignaturePickerFragment#show()
to show the picker andSignaturePickerFragment#restore()
to restore it. The framework would take care of the actual fragment retrieval. - Removed
Deprecates
SignaturePickerFragment#setSignaturePickerOrientation()
, useSignatureOptions
for that.
- Added
Improves
PdfActivity
by allowing it to be started without loading a document. (#16601)- Added
Adds
PdfActivityIntentBuilder.emptyActivity()
to start aPdfActivity
with no document loaded. - API
PdfActivity#getFragment()
andPSPDFKitViews#getFragment()
are now@Nullable
since noPdfFragment
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
inPdfScrollableThumbnailBar
. (#17828) - Fixed
Fixes a potential
NullPointerException
on pages with video content. (#17861) - Fixed
Fixes a potential
UnsatisfiedLinkError
that could be thrown when accessingStampType
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 aStackOverflowError
. (#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 toSearchOptions.Builder
for configuring compare options. - Added
Adds
CompareOptions
enum with all supported compare options.- Changed
CASE_INSENSITIVE
enables case insensitive search. - Changed
DIACRITICS_INSENSITIVE
enables diacritics insensitive search. - Changed
SMART_SEARCH
enables smart search that ignores white-spaces, hyphens and resolves typographic quotes or apostrophes. - Changed
REGULAR_EXPRESSION
enables regular expression search.
- API
Changes
XfdfFormatter#writeXfdf[Async]()
to throw an exception when annotations that are not attached to the document are passed in. (#17786) - API
Deprecates constructors of
TextSearch
andSearchOptions.Builder
acceptingContext
. Use overloaded constructors without this parameter. (#17646) - Added
Adds
OutputStreamAdapter
which allows you to use anyWritableDataProvider
in place of anOutputStream
. (#16532)- Added
Adds
DirectWritingStrategy
for use withOutputStreamAdapter
. - Added
Adds
TempFileWritingStrategy
for use withOutputStreamAdapter
.
- Added
Adds compatibility of PSPDFKit and Instant Javadoc .jar files with Android Studio 3.2.1 and newer. (#17850)
- Added
Adds support for page bookmarks in compound documents. (#11008)
- Added
Adds support for stamp and free text annotation rotation in Instant JSON. (#18019)
- Changed
Improves compatibility with forms on malformed PDFs. (#17707)
- Changed
Improves handling of malformed documents when parsing the extended graphics state. (#18057)
- Changed
Improves the
PdfActivityConfiguration
returned byImageDocumentLoader#getDefaultImageDocumentActivityConfiguration()
by disabling annotations tools that do not work for image documents. (#17775) - Changed
Replaces support libraries with AndroidX. (#17830)
- Changed
The redaction feature now deletes annotations and form fields that intersect with a redact annotation. (#17390)
- Changed
Updates Kotlin to
1.3.0
. (#17784) - Changed
Updates RxJava to 2.2.4. (#17902)
- Fixed
Fixes
PdfActivity#isImageDocument()
returningfalse
for image documents in certain cases when switching tabs. (#17524) - Fixed
Fixes a crash parsing text on a very small number of documents. (#18032)
- Fixed
Fixes a potential exception that could occur when resolving system fonts on some devices. (#17647)
- Fixed
Fixes a problem where some text in a PDF document may be redacted incorrectly. (#17699)
- Fixed
Fixes an issue applying redactions on encrypted documents. (#17722)
- Fixed
Fixes an issue opening certain documents with invalid IRT fields. (#17797)
- Fixed
Fixes an issue that may happen after copying a page using the document editor. (#17825)
- Fixed
Fixes an issue when opening a rotated Image Document. (#17791)
- Fixed
Fixes an issue where XMP metadata was corrupted when saving password protected documents. This enables saving bookmarks into password protected documents. (#17238)
- Fixed
Fixes an issue where
PdfLibrary
would return incorrect results when searching within documents that contained Unicode surrogate pairs (like Emoji) in their text. (#3292) - Fixed
Fixes an issue where changing the button caption property of a button from JavaScript code may not change the button appearance. (#17719)
- Fixed
Fixes an issue where it wasn’t possible to reset annotation rotation to 0 which as causing issues when undoing stamp rotations. (#17867)
- Fixed
Fixes an issue where squiggly annotations may not be created correctly on rotated pages. (#17950)
- Fixed
Fixes an issue where text could not be selected in certain documents. (#17759)
- Fixed
Fixes an issue where the Javascript VM init sequence prevented errors from bubbling up to the user. (#17745)
- Fixed
Fixes an issue where the overlay text of a redaction may not be in the correct place in some cases. (#17695)
- Fixed
Fixes an issue where the signature overlay may show incorrect text in non-Western languages. (#17918)
- Fixed
Fixes an issue where underline annotations may not work correctly on rotated pages. (#14252)
- Fixed
Fixes an occasional issue when rendering text. (#17747)
- Fixed
Fixes issue where digitally signing a document would save changes to original document even when auto save was disabled. (#17696)
- Fixed
Fixes issues when importing annotations on rotated pages using InstantJSON. (#17814)
- Fixed
Fixes some issues creating highlight annotations on documents with rotated pages. (#18006)
Instant
- Added
Adds support for image stamp annotations. (#17691)
Examples
- Changed
Bumps Android Gradle Plugin version of all example apps to 3.2.1. (#17818)
5.0.2 - 29 Nov 2018
UI
- Fixed
Improves redaction button placement. (#17697)
- Fixed
Fixes an issue where redaction button was overlapping forward history button.
- Changed
Improves redaction button alignment in portrait and landscape.
- Changed
Implements
OnRedactionButtonVisibilityChangedListener
for receiving calls when redaction collapses or expands.
- Changed
Improves document opening performance by making loading of
PdfDrawables
asynchronous. (#17648) - Fixed
Fixes a potential
UnsatisfiedLinkError
that could be thrown when accessingStampType
class. (#17702) - Fixed
Fixes an issue where rotations could not be perfomed on stamp annotations after saving. (#17768)
- Fixed
Fixes a potential
NullPointerException
inPdfScrollableThumbnailBar
. (#17828) - Fixed
Fixes an issue where
PdfProcessorTask
with large number of operations could cause aStackOverflowError
. (#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()
returningfalse
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. usingandroid: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 withinFragment
. (#17396) - Fixed
Fixes an issue inserting Emoji, Arabic or East Asian text in form fields. (#17574)
- Fixed
Fixes an issue where locked, hidden, or read-only ink annotations could be erased with the eraser tool. (#17367)
- Fixed
Fixes an issue where wrong recycling of bitmaps could in some situations lead to unhandled
NullPonterExceptions
. (#17556)
Model
- Fixed
Fixes a crash that could happen when trying to generate the appearance stream of a push button. (#17627)
- Fixed
Fixes an issue where memory was leaked in certain situations. (#17610)
- Fixed
Fixes crash that could happen when changing text in multiline form field. (#17649)
Examples
- Added
Adds
DynamicMultimediaAnnotationsExample
showing how to dynamically add videos and galleries to PDF documents. (#17433)
5.0.0 - 7 Nov 2018
See the announcement post.
This release features two new components - Redaction and Comparison. If you would like to add either to your license, ping our sales team to receive a quote.
Below is a summary of the API changes in this release. For a full list, with our suggested migration strategy for each API that has been changed or removed, please see the migration guide.
UI
- API
PSPDFKit now ships with
public.txt
that contains all Android resources that are considered part of its public API. If lint starts emitting warnings in your code, you should stop using (#3809) these resources immediately because they could be removed in future versions. - Added
Extends
PdfActivityIntentBuilder
with an ability to open multiple tabs in a singlePdfActivity
. (#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 whenPdfActivity
starts. - Changed
contentSignatures()
andpasswords()
now throwIllegalStateException
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
andIntent#ACTION_CREATE_DOCUMENT
toDefaultFilePicker#getDestinationUri(String)
.
- Added
Improves default themes and styles. (#16089)
- Changed
Dark theme now uses white text instead of colored accent for easier readability.
- Changed
Styles for PSPDFKit views now pick
android:colorBackground
andandroid:colorForeground
from your theme as defaults for background and foreground colors. - Added
Adds
MainToolbar
that usespspdf__MainToolbarStyle
from your theme for easy toolbar theming. Take a look atpspdf__MainToolbar
styleable for all supported attributes. - Removed
Removes theme attributes
pspdf__mainToolbarTextColor
,pspdf__mainToolbarTheme
andpspdf__mainToolbarPopupTheme
. Usepspdf__textColor
,pspdf__toolbarTheme
andpspdf__tolbarPopupTheme
in thepspdf__mainToolbarStyle
instead. - Added
Adds
pspdf__contextualToolbarStyle
to theme for contextual toolbars styling. Take a look atpspdf__ContextualToolbar
styleable for all supported attributes. - Removed
Removes theme attributes
pspdf__contextualToolbarBackground
andpspdf__contextualToolbarSubmenuBackground
. Usepspdf__backgroundColor
andpspdf__submenuBackgroundColor
in thepspdf__ContextualToolbarStyle
instead. - Changed
Icon colors of all contextual toolbars now default to
pspdf__iconColor
andpspdf__iconColorActivated
that can be set in thepspdf__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 instyles.xml
toPSPDFKit.StyleName
. - Changed
Renames all styles with the name scheme
PSPDFKit.Theme.Dark.StyleName
defined indark_theme.xml
toPSPDFKit.StyleName.Dark
.
- Changed
Moves
NavigationBackStack
tocom.pspdfkit.ui.navigation
. (#16851) - Removed
Removes
EventBus
and all events and commands defined inEvents
andCommands
. (#9274)- Removed
Removes
Events.OnZoomScaleFactorChanged
, useDocumentListener#onDocumentZoomed()
instead. - Removed
Removes
Events.OnPageChanged
, useDocumentListener#onPageChanged()
instead. - Removed
Removes
Commands.ClearSelectedAnnotations
, usePdfFragment#clearSelectedAnnotations()
instead. - Removed
Removes
Commands.SelectAnnotation
, usePdfFragment#setSelectedAnnotation()
instead. - Removed
Removes
Commands.ToggleActionBarIconsVisibility
. - Removed
Removes
Commands.ExecuteAction
, usePdfFragment#executeAction()
instead. - Removed
Removes
Commands.ShowPage
usePdfFragment#setPageIndex()
instead. - Removed
Removes
Commands.ToggleSystemBars
, usePdfActivity#setUserInterfaceVisible()
instead. - Removed
Removes
Commands.SearchSelectedText
, requests for searching selected text are now handled byOnSearchSelectedTextListener
that can be set viaTextSelectionController#setOnSearchSelectedTextListener
. - Removed
Removes
Commands.ShowAnnotationEditor
, useshowAnnotationEditor()
defined inAnnotationCreationController
andAnnotationEditingController
instead.
- Removed
Removes
PSPDFKit#updateInternalUIContext()
. (#17039) - Fixed
Fixes an issue where
PdfFragment#isImageDocument()
returnedfalse
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()
andDocumentListener#onPageClick()
instead of just triggeringonDocumentClick()
. (#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
fromDocumentListener#onDocumentClick()
did not consume the event. (#16890) - Fixed
Fixes an issue where state restoration inside
PdfThumbnailGrid
would throw an exception when havingtargetSdkVersion
set to28
. (#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 anIllegalArgumentException
when receiving a null as argument. (#14266) - API
Converts
BookmarkProvider
from a class into an interface. To retrieve an implementation usePdfDocument#getBookmarkProvider()
. (#16868)- Changed
Renames
BookmarkProvider#isDirty()
toBookmarkProvider#hasUnsavedChanges()
. - Removed
Removes
BookmarkProvider#prepareToSave()
, this is handled automatically by the framework.
- API
Converts
DocumentPdfMetadata
andDocumentXmpMetadata
from a class to an interface. To retrieve an implementation usePdfDocument#getPdfMetadata()
andPdfDocument#getXmpMetadata()
. (#16936)- Removed
Removes
DocumentPdfMetadata#clearDirty()
andDocumentXmpMetadata#clearDirty()
, this is handled automatically by the framework. - Changed
Renames
DocumentPdfMetadata#isDirty()
andDocumentXmpMetadata#isDirty()
tohasUnsavedChanges()
.
- API
Converts
FormProvider
from a class to an interface. To retrieve an implementation usePdfDocument#getFormProvider()
. (#16847)- Changed
Renames
FormProvider#isDirty()
toFormProvider#hasUnsavedChanges()
.
- API
Converts
PdfDocument
from a class into an interface. UsePdfDocumentLoader#openDocument()
and associated methods to retrieve an implementation. (#14261)- Changed
Renames
PdfDocument#getPDFVersion()
togetPdfVersion()
. - Added
Adds
PdfDocumentLoader
class which contains methods to obtainPdfDocument
s. - 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 ofStampAnnotation
s, use the newsetStampType()
andsetTitle()
methods instead. (#15895)- Added
Adds
getStampType()
andsetStampType()
toStampAnnotation
. - Added
Adds
getTitle()
andsetTitle()
toStampAnnotation
. - Changed
Changes
com.pspdfkit.annotations.StampType
from an enum to a class found atcom.pspdfkit.annotations.stamps.StampType
. - Changed
Renames
StampType.fromSubject()
tofromName()
. - Changed
Renames
StampType#getSubject()
togetName()
. - Added
Adds
StampType#isStandard()
. - Changed
Renames
StampAnnotation#getSubtext()
andStampAnnotation#setSubtext()
togetSubtitle()
andsetSubtitle()
. - Added
Adds
StampPickerItem.fromStampType()
. - Changed
Renames
StampPickerItem.fromSubject()
tofromTitle()
. - Changed
Renames
StampPickerItem.Builder.withLocalizedSubject()
towithTitle()
. - Changed
Renames
StampPickerItem.Builder.withSubtext()
towithSubtitle()
. - Changed
Renames
StampPickerItem.Builder.withDateTimeSubtext()
towithDateTimeSubtitle()
. - Changed
Renames
StampPickerItem#getSubject()
togetStampType()
and changes return type toStampType
. - Changed
Renames
StampPickerItem#getLocalizedSubject()
togetTitle()
. - Changed
Renames
StampPickerItem#getSubtext()
togetSubtitle()
. - Changed
Renames
PredefinedStampType.fromSubject()
tofromName()
. - Changed
Renames
PredefinedStampType#getSubject()
togetName()
. - Added
Adds
PredefinedStampType#getStampType()
.
- Removed
Deprecates
PdfProcessorTask#addPdfToPage()
, use new methodmergePage()
instead. (#17150) - Added
Adds
Font#getDefaultTypeface()
to retrieve theTypeface
without causing additional disk I/O. (#16932)- Changed
Ensures that
Font
s can only be created from background threads, throwing anIllegalStateException
if created from the main thread.
- API
Removes all previously deprecated symbols. (#16895)
- Removed
Removes
com.pspdfkit.annotations.xfdf.XfdfFormatter
usecom.pspdfkit.document.formatters.XfdfFormatter
instead. - Removed
Removes
InstantPdfFragment.newInstance(String, String, String, PdfConfiguration)
usenewInstance(String, String, PdfConfiguration)
instead. - Removed
Removes
InstantPdfActivityIntentBuilder.fromInstantDocument(Context, String, String, String)
usefromInstantDocument(Context, String, String)
instead. - Removed
Removes
InstantPdfActivity.showInstantDocument(Context, String, String, String, PdfActivityConfiguration)
useshowInstantDocument(Context, String, String, PdfActivityConfiguration)
instead. - Removed
Removes
InstantDocumentDescriptor#getAuthenticationToken()
usegetJwt()
instead. - Removed
Removes
InstantClient#openDocument(String, String)
useopenDocument(String)
instead. - Removed
Removes
InstantClient#openDocumentAsync(String, String)
useopenDocumentAsync(String)
instead. - Removed
Removes
InstantClient#getInstantDocumentDescriptor(String)
usegetInstantDocumentDescriptorForJwt(String)
instead. - Removed
Removes
InstantPdfDocument#updateAuthenticationToken(String)
usereauthenticateWithJwt(String)
instead. - Removed
Removes
InstantPdfDocument#updateAuthenticationTokenAsync(String)
usereauthenticateWithJwtAsync(String)
instead. - Removed
Removes
InstantPdfDocument#setAutomaticSyncEnabled(boolean)
usesetListenToServerChanges(boolean)
andsetDelayForSyncingLocalChanges(long)
instead. - Removed
Removes
AnnotationSyncCoordinator#setAutomaticSyncEnabled(boolean)
usesetListenToServerChanges(boolean)
andsetDelayForSyncingLocalChanges(long)
instead. - Removed
Removes
AnnotationManager.OnAnnotationUpdatedListener
useAnnotationProvider.OnAnnotationUpdatedListener
instead. - Removed
Removes
SignatureSignerDialog.show(FragmentManager, PdfDocument, SignatureFormField, Signer, DocumentSigningListener)
useshow(FragmentManager, Options, DocumentSigningListener)
instead. - Removed
Removes
SignatureSignerDialog.show(FragmentManager, PdfDocument, SignatureFormField, Signer, BiometricSignatureData, DocumentSigningListener)
useshow(FragmentManager, Options, DocumentSigningListener)
instead. - Removed
Removes
ComboBoxFormConfiguration.Builder#setSelectedIndexes(List)
usesetSelectedIndex(Integer)
instead. - Removed
Removes
DocumentSharingProcessor
useDocumentSharingProviderProcessor#prepareDocumentForSharing(Context, PdfDocument, PdfProcessorTask, String)
instead. - Removed
Removes
DocumentSharingProvider#deleteTemporaryFile(Context, Uri)
usedeleteFile(Context, Uri)
instead. - Removed
Removes
PdfProcessorTask(PdfDocument)
usePdfProcessorTask.fromDocument(PdfDocument)
instead. - Removed
Removes
PdfProcessorTask(NewPage)
usePdfProcessorTask.newPage(NewPage)
instead. - Removed
Removes
Signer#signFormFieldAsync(SignatureFormField, KeyStore.PrivateKeyEntry, OutputStream)
usesignFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream)
instead. - Removed
Removes
Signer#signFormFieldAsync(SignatureFormField, KeyStore.PrivateKeyEntry, BiometricSignatureData, OutputStream)
usesignFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream)
instead. - Removed
Removes
Signer#signFormField(SignatureFormField, KeyStore.PrivateKeyEntry, OutputStream)
usesignFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback)
instead. - Removed
Removes
Signer#signFormField(SignatureFormField, KeyStore.PrivateKeyEntry, BiometricSignatureData, OutputStream)
usesignFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback)
instead. - Removed
Removes
MemorySigner#signFormFieldAsync(SignatureFormField, OutputStream)
usesignFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream)
instead. - Removed
Removes
MemorySigner#signFormField(SignatureFormField, OutputStream)
usesignFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback)
instead. - Removed
Removes
MemorySigner#getSigningKeyPair()
. - Removed
Removes
PdfFragment.PARAM_DOCUMENT_PATHS
,PdfFragment.PARAM_IMAGE_DOCUMENT_PATH
,PdfFragment.PARAM_PASSWORDS
, andPdfFragment.PARAM_CONTENT_SIGNATURES
. - Removed
Removes
PdfFragment#setCustomPdfSource(DataProvider, String)
usesetCustomPdfSource(DocumentSource)
instead. - Removed
Removes
PdfFragment#setCustomPdfSources(List, List)
usesetCustomPdfSources(List)
. - Removed
Removes
PdfFragment#[register/unregister]DrawableProvider()
usePdfFragment#[add/remove]DrawableProvider()
instead. - Removed
Removes
PdfThumbnailGrid#[add/remove]OnDocumentEditingModeChangeListener()
useDocumentEditingManager#[add/remove]OnDocumentEditingModeChangeListener()
instead. - Removed
Removes
PdfThumbnailGrid#[add/remove]OnDocumentEditingPageSelectionChangeListener()
useDocumentEditingManager#[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()
usehasUnsavedChanges()
instead. - Removed
Removes
PdfConfiguration#annotationReplyFeatureEnabled(boolean)
useannotationReplyFeatures(AnnotationReplyFeatures)
instead. - Removed
Removes
PdfConfiguration#isAnnotationReplyFeatureEnabled()
usegetAnnotationReplyFeatures()
instead. - Removed
Removes
PdfActivityConfiguration#annotationReplyFeatureEnabled(boolean)
useannotationReplyFeatures(AnnotationReplyFeatures)
instead. - Removed
Removes
RichMediaExecuteAction#getScreenAnnotationPageIndex()
. - Removed
Removes
RichMediaExecuteAction#getScreenAnnotationObjectNumber()
usegetRichMediaAnnotationObjectNumber()
. - 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 createdRedactionAnnotations
. - 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 supportsBlendMode
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 viaPSPDFKit#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 loadedPdfDocument
instances. (#17150) - Changed
Changes the format of the
InstantJSON
bookmark format. The id is now saved inpdfBookmarkId
andskippedBookmarkIds
has been renamed toskippedPdfBookmarkIds
. (#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 passingnull
toPredefinedStampType#fromSubject()
. Parameter is now marked as@Nullable
and properly checked fornull
. (#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
InstantPdfDocument
from a class into an interface. UseInstantClient#openDocument()
and associated methods to retrieve an implementation. (#14261)- Changed
Renames
InstantPdfDocument#getPDFVersion()
togetPdfVersion()
.
- 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 retainedPdfFragment
. (#16914) - Fixed
Fixes an issue where annotation or form selection is restored while the fragment is being destroyed, causing a crash. (#16480)
- Fixed
Fixes an issue where clicking on paste button in text selection popup toolbar could result in
IllegalStateException
. (#16764) - Fixed
Fixes an issue where documents that were saved to a
ContentResolverDataProvider
could return stale data after being reloaded. (#16753) - Fixed
Fixes an issue where forms in rotated documents are rendered rotated the wrong way. (#15549)
- Fixed
Fixes an issue where it was possible to paste annotations from another document even when cross document copy/pasting was disabled in configuration. (#16748)
- Fixed
Fixes an issue where it wasn’t possible to input decimal separators to form fields with number format. (#16825)
- Fixed
Fixes an issue where items in annotation creation toolbar with custom grouping rule (
CustomAnnotationCreationToolbarGroupingRule
) in our catalog app were not selectable. (#16793) - Fixed
Fixes an issue where signing documents with existing digital signatures made previous signatures invalid. (#16852)
- Fixed
Fixes an issue where stamp background disappeared after returning back from annotation note editor. (#15989)
- Fixed
Fixes an issue where the undo/redo buttons of the document editor were not enabled in some cases. (#16757)
- Fixed
Fixes an issue with resizing free text callouts in corners. (#16734)
Model
- Fixed
Fixes a possible
ConcurrentModificationException
thrown while initializing PSPDFKit. (#16831) - Fixed
Fixes an issue when extracting link annotations. (#16854)
- Fixed
Fixes an issue where JavaScript scripts that hold a strong local reference to event.target would not work correctly. (#16507)
- Fixed
Fixes an issue where document JSON wasn’t imported correctly on rotated PDF pages. (#16534)
- Fixed
Fixes an issue where image documents could not be opened from URIs without read permission for the filesystem. (#16686)
- Fixed
Fixes an issue where not all form fields were listable immediately after opening a document. (#16479)
- Fixed
Fixes an issue where programmatic annotation content changes would not be reflected in rendered free text annotation. (#16487)
- Fixed
Fixes an issue where some document outlines were not be persisted correctly after using the document processor. (#16688)
- Fixed
Fixes an issue where some documents with JavaScript would become unresponsive for a great amount of time. (#16886)
4.8.0 - 5 Sep 2018
See the announcement post.
Important: PSPDFKit now ships with x86_64 native libraries. This considerably increases its size. Please follow the framework size guide article for more information on how to reduce size of your apps by filtering native libraries for certain ABIs. (#6086)
UI
- Added
Adds support for document tabs. (#9399)
- Added
Adds
PdfDocumentCoordinator
that manages multiple documents inPdfActivity
and coordinates switching between these documents. It can be retrieved viaPdfActivity#getDocumentCoordinator()
. - Added
Adds
DocumentDescriptor
for describing loaded documents inPdfDocumentCoordinator
together with their state. - Added
Adds
PdfTabBar
that displays tabs for documents managed byPdfDocumentCoordinator
. - Added
Adds
setTabBarHidingMode()
toPdfActivityConfiguration.Builder
for controlling when to display tabs bar or to disable it altogether. - Added
Adds
DocumentTabsExample
that showcases how to usePdfDocumentCoordinator
inPdfActivity
to display tabs. - Changed
Adapts
DocumentSwitcherExample
to use thePdfDocumentCoordinator
API for faster document switching compared to previous solution. - Removed
Deprecates
EventBus
parameter inPSPDFKitViews#setDocument()
. - Removed
Deprecates
setCustomPdfSource()
andsetCustomPdfSources()
acceptingDataProvider
inPdfFragment
, use newly provided methods with the same name that acceptDocumentSource
instead.
- Added
Adds
FreeTextAnnotation#setFontName()
andgetFontName()
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()
toPdfFragment
. 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
forPdfFragment
andPdfActivity
to indicate whether the displayed document is an image or not. (#16661) - Added
Adds missing nullability annotations to
FormElementConfiguration
and its subclasses. (#16205) - Added
Adds new Document Editor API. (#15877)
- Added
Adds
PdfDocumentEditor
interface the public editor API.- Added
Adds
#saveDocument(Context, DocumentSaveOptions)
for saving a document in place. - Added
Adds
#saveDocument(Context, OutputStream, DocumentSaveOptions)
for saving a document to a given output stream. - Added
Adds
#exportPages(Context, OutputStream, Set<Integer>, DocumentSaveOptions)
for exporting a set of pages to a given output stream. - Added
Adds
#addPage(int, NewPage)
for adding a new page to a given index. - Added
Adds
#removePages(Set<Integer>)
for removing a set of pages from the document. - Added
Adds
#rotatePages(Set<Integer>, int)
for rotating a set of pages of a given angle. - Added
Adds
#duplicatePages(Set<Integer>)
for duplicating a given set of pages. - Added
Adds
#movePages(Set<Integer>, int)
for moving a set of pages to a given destination index. - Added
Adds
#importDocument(Context, DocumentSource, int)
for importing a document source to a given index. - Added
Adds
#canUndo
for checking if undo operation is possible. - Added
Adds
#canRedo()
for checking if redo operation is possible. - Added
Adds
#getRotatedPageSize(int)
to return the page size of a given page already rotated. - Added
Adds
#renderPageToBitmap(int, Bitmap, PageRenderConfiguration)
for rendering a given page into aBitmap
buffer. - 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
andPdfDocumentEditorListener
use a custom file picker instead. - Removed
Removes
DocumentEditor
interface. All Document Editor API placed inPdfDocumentEditor
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)
useDocumentEditingManager#addOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener)
instead. - Removed
Deprecates
PdfThumbnailGrid#removeOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener)
useDocumentEditingManager#removeOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener)
instead. - Removed
Deprecates
PdfThumbnailGrid#addOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener)
useDocumentEditingManager#addOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener)
instead. - Removed
Deprecates
PdfThumbnailGrid#removeOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener)
useDocumentEditingManager#removeOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener)
instead.
- Added
Adds popup toolbar for text selection and pasting. (#8520)
- Added
Adds
PopupToolbar
class which represents a generic popup toolbar similar to the Android framework text selection bar. - Added
Adds
TextSelectionPopupToolbar
which is aPopupToolbar
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 viaPdfFragment#setOnPreparePopupToolbarListener()
to get a callback before each of the toolbars is displayed. Use this to change menu items before the toolbar becomes visible. - Added
Adds
PopupToolbarMenuItem
which represents a single popup toolbar menu item. The menu item specifies an ID, title and whether it’s enabled or not.
- Added
Adds support for setting supported form flags on created form fields. (#15543)
- Added
Adds
setReadOnly()
andsetRequired()
toFormElementConfiguration
builders. - Added
Adds
setSpellCheckEnabled()
andsetMultiSelectionEnabled()
toComboBoxFormConfiguration
builder. - Added
Adds
setMultiLine()
,setPassword()
,setSpellCheckEnabled()
,setScrollEnabled()
andsetMaxLength()
toTextFormConfiguration
builder.
- Changed
Improves document password support and compatibility with third-party readers. (#15951)
- Changed
Ensures that the processor always encrypt documents using the 128-bit AES algorithm if the user didn’t change the defaults. (#15946)
- Added
Moves the document info view from its separate dialog to the outline view (
PdfOutlineView
) and adds new navigation view used to navigate between outline view components. (#15986)- Added
Adds
PdfOutlineView#[add/remove]OnDocumentInfoViewModeChangeListener()
for adding/removing the listener for document info mode changes. - Added
Adds
PdfOutlineView#[add/remove]OnDocumentInfoViewSaveListener()
for adding/removing the listener for document info value changes being saved to the document. - Added
Adds theming via XML for the document info view, using the outline view styleable (
pspdf__OutlineView
): - Added
Adds attributes for styling new navigation view:
- Added
Adds
pspdf__navigationTabOutlineIcon
for setting the tab icon for outline view. - Added
Adds
pspdf__navigationTabBookmarksIcon
for setting the tab icon for bookmarks view. - Added
Adds
pspdf__navigationTabAnnotationsIcon
for setting the tab icon for annotation list view. - Added
Adds
pspdf__navigationTabDocumentInfoIcon
for setting the tab icon for document info view. - Added
Adds
pspdf__navigationTabIconsColor
for setting the color for tab icons in the navigation bar. - Added
Adds
pspdf__navigationTabIconsColorSelected
for setting the color for the selected tab icon in the navigation bar. - Added
Adds
pspdf__navigationTabBackgroundColor
for setting the background color of the whole navigation view. - Added
Adds attributes for styling document info view:
- Added
Adds
pspdf__documentInfoGroupTitleTextColor
for setting the text color for the document info group title. - Added
Adds
pspdf__documentInfoItemTitleTextColor
for setting the text color for the document info item title. - Added
Adds
pspdf__documentInfoItemValueTextColor
for setting the text color for the document info item value. - Added
Adds
pspdf__documentInfoItemValueHintTextColor
for setting the text color for the document info value hint. - Added
Adds
pspdf__documentInfoGroupIconColor
for setting the icon color for the document info group icons. - Added
Adds
pspdf__documentInfoContentIcon
for setting the icon for the ‘Content’ group in document info view. - Added
Adds
pspdf__documentInfoChangesIcon
for setting the icon for the ‘Changes’ group in document info view. - Added
Adds
pspdf__documentInfoSizeIcon
for setting the icon for the ‘Size’ group in document info view. - Added
Adds
pspdf__documentInfoFabBackgroundColor
for setting the background color for the document info FAB. - Added
Adds
pspdf__documentInfoFabIconColor
for setting the icon color for the document info FAB. - Added
Adds
pspdf__documentInfoFabEditIcon
for setting the ‘Edit’ icon for the document info FAB. - Added
Adds
pspdf__documentInfoFabDoneIcon
for setting the ‘Done’ icon for the document info FAB. - API
Removes
PdfOutlineView
styling setters and getters. The UI should be changed exclusively through XML themes: - API
Removes
[set/get]BackgroundColor()
. - API
Removes
[set/get]ListSelector()
. - API
Removes
[set/get]DefaultTextColor()
. - API
Removes
[set/get]BookmarksBarIconColor()
. - API
Removes
[set/get]BookmarksBarBackgroundColor()
. - API
Removes
[set/get]BookmarksAddIcon()
. - API
Removes
[set/get]BookmarksEditIcon()
. - API
Removes
[set/get]BookmarksDoneIcon()
. - API
Removes
[set/get]GroupIndicatorIconColor()
. - API
Removes
[set/get]BookmarksDeleteIcon()
. - API
Removes
[set/get]BookmarksDeleteIconColor()
. - API
Removes
[set/get]BookmarksDeleteBackgroundColor()
.
- Changed
Updates
clipRect()
usage to be compliant with the new restrictions on Android P. (#16592) - Fixed
Fixes a problem where calling
InkAnnotation#isSignature()
on annotations created from signatures returnedfalse
. (#15907) - Fixed
Fixes a problem where creating a new page with fractional size caused problems when drawing on it using the
PageCanvas
API. (#16030) - Fixed
Fixes a problem where some XFA forms with JavaScript may show an alert message when the document is open. (#16000)
- Fixed
Fixes a race condition when opening compound documents made up of a large amount of documents. (#16274)
- Fixed
Fixes an issue exporting document pages with a rare outline configuration. (#15923)
- Fixed
Fixes an issue where
DocumentInfoView
was trying to calculate document size using wrong document source. (#16443) - Fixed
Fixes an issue where calling
save()
methods on aPdfDocument
backed by an image document would not trigger saving of metadata to the original image file. (#16077) - Fixed
Fixes an issue where the blend mode of ink annotations may not be persisted correctly. (#16376)
- Fixed
Fixes an issue where the digital signature validation UI may incorrectly inform about an expired certificate. (#16605)
- Fixed
Fixes a performance problem with documents that contain large clipping paths. (#16481)
- Fixed
Fixes a problem rendering documents with particular fonts. (#16361)
- Fixed
Fixes a problem with XFDF on rotated pages. (#16560)
- Fixed
Fixes an issue when entering text with non-latin characters. (#16626)
- Fixed
Fixes an issue when loading checkpoint files. (#16277)
Instant
- Added
Adds support for bookmarks to Instant Document JSON. (#16165)
Examples
- Changed
Hitting enter or submitting the search inside the Catalog app examples will now focus the first example inside the results. (#16604)
4.7.2 - 9 Aug 2018
UI
- Fixed
Fixes an issue where
FreeTextAnnotation
s stopped being editable when overlay mode is deactivated. (#16375) - Fixed
Fixes an issue where
FreeTextAnnotation
s 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
toPdfActivity
, showing document info dialog when executed. (#15983) - Fixed
Fixes an issue where changes made to image file loaded as
ImageDocument
inPdfActivity
orPdfFragment
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-backedImageDocument
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 anUri
has an image MIME type.
- Fixed
Fixes an issue where configuration options set on
PdfConfiguration
were ignored when wrapping activity configuration viaImageDocumentLoader#getDefaultImageDocumentActivityConfiguration()
. (#15963)- Added
Adds
getDefaultImageDocumentConfiguration(PdfConfiguration)
toImageDocumentLoader
to create configuration for image documents from existingPdfConfiguration
. - Changed
Return values of
getDefaultImageDocumentConfiguration()
andgetDefaultImageDocumentActivityConfiguration()
inImageDocumentLoader
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 ifPdfConfiguration#invertColors()
was used. Now instead, shape annotations will useBlendMode.SCREEN
for inverted colors. (#15990)
Model
- Added
Adds support for
RichMediaExecuteActionType
. (#15648) - Added
Adds support for calling
PdfActivity#setConfiguration
beforeonCreate
is called to set configuration without causing an activity restart. (#15926) - Added
Adds support for creating
NamedAction
,GoToEmbeddedFileAction
,HideAction
,ResetFormAction
andSubmitFormAction
. (#15235)- Added
Adds
getFieldNames()
toResetFormAction
andSubmitFormAction
that returns list of form field names that should be targeted by the action. - Added
Adds
shouldExcludeFormFields()
toResetFormAction
andSubmitFormAction
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 usingArrayList
. (#16015)
Example
- Added
Adds
XfdfExample
to Catalog app that shows how to import/export annotations to/from XFDF file format. (#15954) - Changed
Extends
ExternalDocumentExample
in the Catalog app to allow opening both PDF and image files. (#16053)
4.7.0 - 9 Jul 2018
See the announcement post.
UI
- Added
Adds document info view for displaying information about the document that’s being viewed: (#15850)
- Added
Adds document info view enabling and disabling, see
enableDocumentInfoView()
anddisableDocumentInfoView()
inPdfActivityConfiguration.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 containsPdfDocumentInfoView
connected with a toolbar for switching editing modes.
- Added
Adds
PdfThumbnailGrid
customization options for editing FAB icon color. (#15809)- Fixed
Fixes
ThumbnailGridItemView
not usingpspdf__selectionCheckBackgroundColor
- Added
Adds bookmark drag handle icon and color as customizable theme parameters for
pspdf__OutlineView
. (#15869) - Added
Adds new annotation tool for creating
FreeTextAnnotation
s 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 viaPdfDocument#getJavaScriptProvider()
. - Added
Adds support for creation and execution of
JavaScriptAction
. - Added
Adds
setJavaScriptEnabled()
toPdfConfiguration.Builder
andPdfActivityConfiguration.Builder
. Use this method to control whether JavaScript execution should be enabled inPdfFragment
orPdfActivity
. - Added
Adds
JavaScriptActionsExample
,JavaScriptFormFillingExample
andFormsJavaScriptExample
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()
andgetAdditionalActions()
for setting and getting additional actions forWidgetAnnotation
. - Added
Adds
setAdditionalAction()
toFormElementConfiguration.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
FreeTextAnnotation
s based on their text usingFreeTextAnnotationUtils#resizeToFitText
. (#12998) - Added
Adds support for setting text justification, and callouts to
FreeTextAnnotation
s. (#9609)- Added
Adds
setIntent
,setTextInsets
,setCallOutPoints
,setLineEnd
, andsetTextJustification
toFreeTextAnnotation
.
- 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
FreeTextAnnotation
s. (#15639)
4.6.1 - 14 Jun 2018
UI
- Added
Adds
enableAnnotationRotation
anddisableAnnotationRotation
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
andPdfConfiguration.Builder#annotationReplyFeatureEnabled
, usePdfConfiguration#getAnnotationReplyFeatures
andPdfConfiguration.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
insidePdfDocument
which could lead to memory leakage and OOMs. (#15518)
Model
- API
Change return type of
Signature#toInkAnnotation()
overrides fromAnnotation
toInkAnnotation
. (#15509) - Added
Adds
getExportValue()
toRadioButtonFormElement
. (#15535) - Added
Improves
SignaturePickerDialog
APIs. (#15513)- Added
Adds method
SignaturePickerDialog.restore()
for passing over a callback to the dialog after a configuration change happened. - Added
Adds
SignaturePickerDialogIntegrationExample
andSignaturePickerDialogIntegrationKotlinExample
to Catalog app which show how to manually integrate theSignaturePickerDialog
into an activity. - API
SignaturePickerDialog.show()
will now throw anIllegalArgumentException
ifnull
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 withDocumentSaveOptions
parameter. (#15514) - Fixed
Fixes an issue where closing documents with smart form tab orders could cause a crash. (#15580)
- Fixed
Fixes an issue where a form field could be rendered more times than necessary. (#15528)
- Fixed
Fixes an issue with
ImageDocumentExample
where recent changes to the image document were not properly loaded when reopening the example. (#15507) - Fixed
Fixes an issue with image documents where annotation changes in certain conditions were not properly saved. (#15604)
- Fixed
Fixes growing of image document file size after save. (#15479)
Instant
- Added
Adds support for annotation notes. (#15573)
4.6.0 - 31 May 2018
See the announcement post.
UI
- Added
Adds support 360° rotation of stamps and free text annotations. (#15325)
- Added
Adds
setRotation
,getRotation
, andadjustBoundsForRotation
toFreeTextAnnotation
andStampAnnotation
. - 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 sharingBitmaps
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 orientationSignaturePickerFragment
should use. (#13896) - Added
Adds
setEnableNoteAnnotationNoZoomHandling()
toPdfActivityConfiguration.Builder
andPdfConfiguration.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 aUnitSelectionEditText
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 callingPSPDFDocument#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 anImageDocument
from aDocumentSource
. - Added
Adds
PdfActivity#showImage()
for opening aPdfActivity
for a passed image document. - Added
Adds
PdfFragment#newImageInstance(Uri, PdfConfiguration)
andPdfFragment#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 withNewPageDialog
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
andDefaultOutlineViewListener
to make integration ofPdfOutlineView
withPdfFragment
easier. (#14370) - Added
Adds
SharingOptionsProvider
which can be set usingPdfActivity#setSharingOptionsProvider
. This allows you to provideShareOptions
without displaying aDocumentSharingDialog
. (#12699) - Added
Adds
PdfOutlineView
integration withPdfFragment
example toCustomFragmentActivity
. (#15360) - Added
Adds
pageIndex
parameter toPagePdf
constructors allowing creation ofPagePdf
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()
andempty()
toPdfProcessorTask
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 viaDocumentSharingProvider
. (#15019)- Added
Add methods for preparing
EmbeddedFile
,Bitmap
andDataProvider
data for sharing. - Removed
Deprecates
DocumentSharingProcessor
, useDocumentSharingProviderProcessor#prepareDocumentForSharing()
instead. - Removed
Deprecates
DocumentSharingProvider#deleteTemporaryFile()
, useDocumentSharingProvider#deleteFile()
instead.
- Added
Adds
getHighlightedTextBlocks()
to text markup annotations that returns list ofTextBlock
for markup annotations. (#12989) - Added
Adds annotation
name
to Instant JSON. Also renamespspdfkit/file
name
tofilename
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 toIllegalAccessError
. AddsFormCreationKotlinExample
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)
, useInstantClient#openDocument/Async(jwt)
instead. - Removed
Deprecates
InstantClient#getInstantDocumentDescriptor()
, useInstantClient#getInstantDocumentDescriptorForJwt()
instead. - Removed
Deprecates
InstantDocumentDescriptor#getAuthenticationToken()
, useInstantDocumentDescriptor#getJwt()
instead. - Removed
Deprecates
InstantPdfDocument#updateAuthenticationToken/Async()
, useInstantPdfDocument#reauthenticateWithJwt/Async()
instead. - Removed
Deprecates
InstantPdfActivityIntentBuilder#fromInstantDocument()
,InstantPdfActivity#showInstantDocument()
andInstantPdfFragment#newInstance()
withdocumentId
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()
toPdfConfiguration
andPdfActivityConfiguration
for enabling/disabling annotation replies in UI. - Added
Adds
Annotation#setInReplyTo(Annotation annotation)
andAnnotation#getInReplyTo()
for making annotation a reply.
- Added
Adds
FormElement#setPreviousElement()
andFormElement#setNextElement()
for setting previous and next form element. (#14523)- Added
Adds
FormProvider#addFormElementToPageAsync()
andFormProvider#addFormElementsToPageAsync()
that programmatically create and insert a form field into the document, asynchronously.
- Added
Adds support for canceling in progress page renders. (#14217)
- Changed
Filters out invalid characters from a page’s text. (#14516)
- Fixed
Fixes
PSPDFKit#initialize
resetting theApplicationPolicy
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()
andPdfFragment#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 ofDataProvider
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 methodBuilder.ListBoxFormConfiguration#setMultiSelectionEnabled
- API
Renames
Builder.ComboBoxFormConfiguration#setSelectedIndexes
toBuilder.ComboBoxFormConfiguration#setSelectedIndexes
becauseComboBoxFormElement
supports only single-selection. - Added
Adds
ComboBoxFormConfiguration
andListBoxConfiguration
examples toFormCreationExample
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.
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
andCheckBoxFormConfiguration.Builder
for creation and configuration ofCheckBoxFormElement
. - Added
Adds
ComboBoxFormConfiguration
andComboBoxFormConfiguration.Builder
for creation and configuration ofComboBoxFormElement
. - Added
Adds
ListBoxFormConfiguration
andListBoxFormConfiguration.Builder
for creation and configuration ofListBoxFormElement
. - Added
Adds
PushButtonFormConfiguration
andPushButtonFormConfiguration.Builder
for creation and configuration ofPushButtonFormElement
. - Added
Adds
RadioButtonFormConfiguration
andRadioButtonFormConfiguration.Builder
for creation and configuration ofRadioButtonFormElement
. - Added
Adds
SignatureFormConfiguration
andSignatureFormConfiguration.Builder
for creation and configuration ofSignatureFormElement
. - Added
Adds
TextFormConfiguration
andTextFormConfiguration.Builder
for creation and configuration ofTextFormElement
.
- API
Cleans up nullability annotations on our Annotation API. (#13956)
- Changed
Annotation methods marked with
@NotNull
will no longer ignore illegally passednull
values but will instead throw anIllegalArgumentException
. - Changed
InkAnnotation#getLines()
andInkAnnotation#setLines()
are now marked as@NonNull
. - Changed
PolygonAnnotation#getPoints()
andPolylineAnnotation#getPoints()
now return non-null values. - Changed
TextMarkupAnnotation#setRects()
andTextMarkupAnnotation#getRects()
are now marked as@NonNull
.
- API
Rects in
TextBlock
andTextSelection
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 andStampAnnotation#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 settingsearchOnlyInPriorityPages
to true. (#12772) - Added
Adds more specific Proguard rules to keep API related code and examples from obfuscation. (#14360)
- Added
Adds support for automatically updating the last modified date when changing annotations. (#14000)
- Added
Improves digital signing APIs to support external signature providers (such as HSMs). (#13932)
- Added
Adds
SignatureProvider
interface for implementing custom signature providers. - Added
Adds
PrivateKeySignatureProvider
implementation for signing PDF data using aPrivateKeyEntry
. - Added
Adds abstract method
Signer#prepareSigningParameters()
which has to be implemented by subclasses to return aSignatureProvider
instance. - Added
Adds
EncryptionAlgorithm
enum andHashAlgorithm
enum of various encryption and hash algorithms respectively that are supported when signing PDFs. - Added
Adds
InteractiveSigner
interface, which can be implemented by aSigner
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 aPrivateKeyEntry
. - API
Signer#getDisplayName()
is now final. Use the constructor to provide a display name for the signer instead. - Removed
Deprecates
Signer#signFormFieldAsync()
andSigner#signFormField()
methods taking aPrivateKeyEntry
as argument. Check out the 4.4 migration guide for alternative APIs. - Removed
Deprecates
MemorySigner#signFormField()
andMemorySigner#signFormFieldAsync()
. Use the equivalent methods on theSigner
base class.
- Changed
Methods in
PSPDFKit
now throw an exception when required parameters arenull
. (#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
andcreatorName
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
orNO_VIEW
flag are now displayed in the annotation list by default. (#13619) - Added
Update Kotlin to 1.2.21. (#13995)
- Added
Adds Kotlin extensions to Catalog app. See
PSPDFKitKotlin.kt
.
- Changed
Updates localized strings, fixing some minor issues. (#13155)
- Fixed
Fixes a crash caused by
NullPointerException
in the internalAnnotationClipboard
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 thePdfActivity
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()
andPdfConfiguration.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 returnstrue
when there are unsynced annotations changes. (#13988) - Fixed
Fixes an issue where thumbnail bar wasn’t refreshed after syncing annotations with Instant. (#13988)
4.3.0 - 24 Jan 2018
See the announcement post.
- Changed
Updated dependencies:
- Changed
Kotlin 1.2.20 /
org.jetbrains.kotlin:kotlin-stdlib:1.2.20
- Changed
Device Year Class 2.0.0 /
com.facebook.device.yearclass:yearclass:2.0.0
- Added
Adds support for annotation undo and redo. (#5626)
- Added
Adds
UndoManager
that manages a stack of edits on aPdfFragment
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()
andredoEnabled()
toPdfConfiguration
for selectively configuring whether undo and redo should be available to the user. - Added
Adds style attributes
pspdf__undoIcon
andpspdf__redoIcon
to thepspdf__AnnotationCreationToolbarIcons
styleable, to change the look of the undo and redo buttons.
- Added
Adds support for copying and pasting annotations. (#5556)
- Added
Adds
enableCopyPaste()
anddisableCopyPaste()
toPdfConfiguration
. - Added
Adds
setEnabledCopyPasteFeatures()
toPdfConfiguration
, 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 thepspdf__copyIcon
andpspdf__cutIcon
attributes on thepspdf__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 extendsPdfDrawableProvider
for drawing visual hints for supported annotation types. - Added
Adds
setAnnotationNoteHintingEnabled()
toPdfActivityConfiguration.Builder
to control whether annotation contents hints are enabled. - Added
Adds new
CustomAnnotationNoteHinterProviderExample
in catalog with an example on how to implement a custom annotation note hinter drawable provider.
- Added
Adds alpha rendering support for annotations. A call to
Annotation#setAlpha()
will now produce the expected transparency effects for rendered annotations. (#9618) - Added
Adds a smart low resolution render strategy using the Device Year Class library. (#13355)
- Added
Adds
PdfConfiguration.Builder#setFixedLowResRenderPixelCount()
andPdfConfiguration#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. IfAnnotationDefaultsProvider#getSupportedProperties()
for a given annotation type includesANNOTATION_NOTE
, annotation notes are enabled for the type.(#13560) - Added
Adds
getOverlappingInkSignature()
toSignatureFormElement
that can be used to retrieveInkAnnotation
s that are overlapping signature fields. (#10675) - Added
Adds
Annotation#setSubject()
to set the subject property of an annotation. (#13766)- Changed
Calling
setSubject()
onStampAnnotation
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()
, andAnnotationProvider#prepareForSave()
.
- Added
Adds form field values to Instant JSON. (#13335)
- Added
Adds support for PEM-encoded certificates in PKCS#7 files. (#13698)
- Added
Adds support for creating empty
FreeTextAnnotations
. (#13781) - Added
Adds Kotlin as transitive dependency. (#5638)
- Added
Adds a new
KotlinExample
which showcases how to use PSPDFKit with the Kotlin programming language.
- Changed
Improves the customizability of the navigation buttons declaring
pspdf__navigationHistoryIconColor
styleable. These allow you to change the chevrons color in the navigation buttons. (#13717) - Changed
“Sign here” badge is now hidden once an ink signature is drawn on top of the signature field. (#13456)
- Added
SignatureSignerDialog
can now sign documents without saving them first. This can be used to sign documents from read-only sources. (#13213)- Added
Adds
SignatureSignerDialog.Options
which allows you to specify the parameters for theSignatureSignerDialog
. - Removed
Deprecates
SignatureSignerDialog#show(FragmentManager, PdfDocument, SignatureFormField, Signer, BiometricSignatureData, DocumentSigningListener)
. UseSignatureSignerDialog#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
andLineAnnotation
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 onPdfActivity#getSiblingPageIndex()
from-1
to0
. (#13713) - API
InstantClient#create()
now throws anInstantException
instead of crashing when the client cannot be created. (#13365) - API
InstantClient#getInstantDocumentDescriptor
,InstantClient#openDocument
, andInstantClient#openDocumentAsync
now throw anInstantException
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
andpspdf__resultTextAppearance
topspdf__SearchViewInline
styleable. These allow you to change the text appearance of the input field and the result count view respectively. - Added
Adds
pspdf__throbberColor
topspdf__SearchViewInline
styleable. This allows you to change the color of the loading throbber. - Removed
Removes
pspdf__textColor
,pspdf__hintTextColor
, andpspdf__navigationTextColor
frompspdf__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()
andgetPageTextRects()
onPdfDocument
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()
toContextualToolbar
that should called by specific toolbar implementation when toolbar contents are changed. - Added
Adds
onContextualToolbarChanged()
toToolbarCoordinatorLayoutController
, 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 aInstantPdfDocument
can be in. (#11324)- Added
Adds
onDocumentStateChanged()
toInstantDocumentListener
, that is called whenever document state changes.
- Added
Adds
isListeningToServerChanges()
andgetDelayForSyncingLocalChanges()
toInstantPdfDocument
. (#13247) - API
Removes list of updated annotations from
InstantDocumentListener#onSyncFinished()
. (#13532) - API
Methods annotated with
@NotNull
will no longer ignore illegaly passednull
vaues but will instead throw anIllegalArgumentException
. (#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 afteronSaveInstanceState
. (#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 toPdfDocument
instances. (#11674)- Added
Adds new package
com.pspdfkit.document.formatters
for document serialization related classes. - Removed
Deprecates
com.pspdfkit.annotations.xfdf.XfdfFormatter
. Usecom.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 toBookmarkProvider
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 usingequals()
. (#13249) - Fixed
Fixes a crash that could happen when rendering the preview for stamp picker items with custom appearance streams. (#13196)
Instant
Important: This release requires PSPDFKit Server 2017.8 for syncing. If you try to connect to an older version of the server, syncing will fail. For further information, please refer to the migration guides for PSPDFKit Server and PSPDFKit Web.
- API
#getAnnotationProvider
inInstantPdfDocument
now returnsInstantAnnotationProvider
that extendsAnnotationProvider
with Instant related functionality. (#11682) - Added
Adds
#getIdentifierForAnnotation()
and#getAnnotationForIdentifier()
toInstantAnnotationProvider
. These APIs provide a stable, unique identifier for annotations managed by Instant. These identifiers are well suited to, for example, associate arbitrary data from external sources with an annotation. (#11682)
4.1.0 - 15 Nov 2017
See the announcement post.
- Added
Adds support for biometric signatures. (#12865)
- Added
Adds class
BiometricSignatureData
that can be written to a digital signature. - Added
Adds overloads to
Signer#signFormField()
andSigner#signFormFieldAsync()
that take aBiometricSignatureData
and will save it to the document while digitally signing it. - Added
Adds
getBiometricData()
to the existingSignature
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 suppliesDataProvider
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 andAnnotation#getAppearanceStreamGenerator()
to retrieve it. - Added
Adds
Annotation#generateAppearanceStream()
andAnnotation#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 ownAppearanceStreamGenerator
. AddsAnnotationProvider#removeAppearanceStreamGenerator()
to unregister appearance stream generator. - Added
Adds
AssetAppearanceStreamGenerator
andContentResolverAppearanceStreamGenerator
for generating appearance streams from documents stored in application assets or provided by content providers. - Added
Adds support for defining
StampPickerItem
with custom appearance stream generator. - Changed
Extends
AnnotationCreationExample
in catalog with an example on how to programatically create stamp annotations with custom appearance. - Changed
Extends
CustomStampAnnotationsExample
in catalog with an example on how to define stamp type with custom appearance stream generator. This can be used to create vector based stamps with transparent background.
- Added
Widens Drawable API support. Now available for
PdfThumbnailBar
,PdfThumbnailGrid
and as a part ofPageRenderConfiguration
. (#7121)- Added
Adds
pdfDrawables()
call toPageRenderConfiguration
constructor. - Added
Adds
addDrawableProvider(PdfDrawableProvider)
andremoveDrawableProvider(PdfDrawableProvider)
toPdfThumbnailBar
andPdfThumbnailGrid
for managing drawable providers. - Added
Adds
setDrawableProviders(List<PdfDrawableProvider>)
toThumbnailAdapter
,PdfThumbnailBarController
and its implementationsPdfThumbnailGrid
andPdfStaticThumbnailBar
.
- 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
andAnnotation#renderToBitmapAsync
acceptingAnnotationRenderConfiguration
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)
andunregisterDrawableProvider(PdfDrawableProvider)
inPdfFragment
. UseaddDrawableProvider(PdfDrawableProvider)
andremoveDrawableProvider(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 havingGOTO
action type set to it, instead ofGOTO_REMOTE
. (#13071) - Fixed
Fixes a problem where some PDF documents may not show every form field element. (#12998)
- Fixed
Fixes issue where text in form fields are always black. (#12449)
- Fixed
Fixes a display problem were previously stored signatures were clipped when displayed in the
SignaturePickerFragment
. (#13057) - Fixed
Fixes dangling symbols names in catalog app descriptions and Javadoc. (#13043)
- Fixed
Fixes an issue when trying to interact with a form whilst a PdfProcessorTask is in progress. (#12973)
Instant
Important: This is the last release of Instant compatible with PSPDFKit Server 2017.7 and earlier. The next release will require 2017.8. For further information, please refer to the migration guide.
- Added
Adds error codes to
InstantErrorCode
for the cases where the client and server have incompatible versions:OLD_CLIENT
andOLD_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 encounteringOLD_CLIENT
error and disables automatic sync when encountering eitherOLD_CLIENT
orOLD_SERVER
error codes. This is enabled by default and can be disabled viaInstantPdfFragment#setHandleCriticalInstantErrors()
(#12870) - API
Adds callbacks for authentication with Instant server to
InstantDocumentListener
:onAuthenticationFailed
called when authentication fails with an error andonAuthenticationFinished
when authentication finishes successfully. (#13136)
4.0.2 - 27 Oct 2017
- API
Adds two missing methods
#addOnFormTabOrderUpdatedListener()
and#removeOnFormTabOrderUpdatedListener()
toFormProvider
which allow management of the already existingOnFormTabOrderUpdatedListener
interface. (#12847) - API
Listener removal methods will no longer silently ignore illegally passed
null
values but will instead throw anIllegalArgumentException
. 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 toFormProvider
methods with@NonNull
parameters. (#12849)- Changed
FormProvider#getFormFieldWithFullyQualifiedNameAsync()
andFormProvider#getFormFieldWithFullyQualifiedName()
- Changed
FormProvider#getFormElementForAnnotationAsync()
andFormProvider#getFormElementForAnnotation()
- Changed
FormProvider#getFormElementWithNameAsync()
andFormProvider#getFormElementWithName()
- API
Changes type of exceptions thrown by some existing listener management methods. Methods that previously threw a
NullPointerException
when called with anull
value will now throw anIllegalArgumentException
. Affected methods: (#12849)- Changed
PdfFragment#addDocumentListener()
andPdfFragment#removeDocumentListener()
- Changed
PdfFragment#addDocumentScrollListener()
andPdfFragment#removeDocumentScrollListener()
- Removed
Improves UI design of signature dialog. (#12646)
- Removed
Removes
pspdf__colorIconsBorderColor
frompspdf__SignatureLayout
styleable. The signature dialog’s color picker is now using a FAB which doesn’t have a border. - Added
Adds
pspdf__clearSignatureCanvasIconBackgroundColor
topspdf__SignatureLayout
which enables you to set the background color of the button for clearing the signature. The default color used is Android’sColor.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
toInstantPdfFragment#removeInstantDocumentListener()
andInstantPdfFragment#addInstantDocumentListener()
the methods will now throw anIllegalArgumentException
instead of the previously thrownNullPointerException
. (#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
andActionMenu
. (#12688) - Changed
Calling
PdfFragment#setDocumentSigningListener()
without having Digital Signatures licensed will now throw anInvalidPSPDFKitLicenseException
. (#12761) - Fixed
Fixes a crash that happened when tapping a
SignatureFormElement
without having Digital Signatures or Annotation Editing features licensed. (#12705) - Fixed
Fixes several issues with the
AnnotationProvider
. (#12761)- Changed
Annotates return type of
AnnotationProvider.getAnnotations(int)
as@NonNull
. - Fixed
Fixes a bug where
annotationProvider.removeAnnotation(...)
would not properly remove annotation instances that were retained across activity configuration changes.
- Fixed
Fixes issues with font selection for non latin languages. (#12297, #11639)
- Fixed
Fixes annotations moving on rotated pages when flattening. (#8242)
- Fixed
Fixes the
SignatureSignerDialog
not being restored on orientation change. (#12615)- API
Adds
SignatureSignerDialog#setListener()
to allow you to set the listener of an already displayed dialog.
- Fixed
Fixes issues with corrupted documents when restoring data from checkpoints. (#12669)
- Fixed
Fixes an issue where text in form fields could be cut off. (#12494)
- Fixed
Fixes an issue where the UI wasn’t properly reset when setting a new document on a
PdfActivity
. (#12636) - Fixed
Fixes an issue with rendering text while zoomed into specific documents. (#12392)
- Fixed
Fixes an issue on Chromebook devices where share dialog was only partially visible. (#12683)
- Fixed
Fixes an issue where underline annotations and text extraction did not work correctly for some documents. (#12070)
Instant
- Fixed
Fixes lock inversions that could cause live- or deadlocks when syncing finished while the document was still being parsed. (#11739)
- Fixed
Fixes an issue where note annotation positions and renderings were not updated after syncing with Instant. (#12641)
4.0.0 - 12 Oct 2017
See the announcement post.
Below is a summary of the API changes in this release. For a full list, with our suggested migration strategy for each API that has been changed or removed, please see the migration guide
- Changed
The minimum required version is now Android 4.4 (API Level 19).
- Changed
Updates dependency - Support libraries to
26.0.2
, RxJava to2.1.3
. - API
Adds
PdfFragment#newInstance(PdfFragment fragment, PdfConfiguration configuration)
that copies the state of the givenPdfFragment
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
, useAnnotationProvider.OnAnnotationUpdatedListener
instead. You can register annotation updated listener viaPdfFragment#addOnAnnotationUpdatedListener
and remove it viaPdfFragment#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
andSignatureFormField
to represent signature forms in the PDF document. - API
Adds
DigitalSignatureInfo
andDocumentSignatureInfo
to access all signing related information on a document. - API
Adds
DigitalSignatureValidator
to provide validation forDigitalSignatureInfo
. The validation result is returned asDigitalSignatureValidationResult
. - API
Adds
SignatureInfoDialog
for showing the result of a signature verification. - API
Adds
getDocumentSignatureInfo()
call toPdfDocument
to easily check for signature information and validity in a PDF document. - API
Adds abstract
Signer
class that is used to digitally sign aSignatureFormField
. - API
Adds
MemorySigner
for signing documents using a pre-loadedPrivateKeyEntry
. - 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 aSigner
. - API
Adds
DocumentSigningListener
to listen to signing events on theSignatureSignerDialog
. - 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 associatedSigner
. - API
Adds
Signature#toInkAnnotation(com.pspdfkit.document.PdfDocument, int, android.graphics.RectF)
for creating anInkAnnotation
whose bounding box fixes the givenRectF
. - API
Moves
Signature
class fromcom.pspdfkit.annotations.signatures
tocom.pspdfkit.signatures
. - API
Moves
SignaturePickerFragment
class fromcom.pspdfkit.annotations.signatures
tocom.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 onLinkAnnotation
class for setting anAction
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
inAnnotationDefaultsManager
. Setting annotation defaults provider forAnnotationTool
overrides defaults defined for underlyingAnnotationType
when creating annotations. - API
Replaces
AnnotationType
withAnnotationTool
inAnnotationPreferencesManager
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
toDownloadDocumentTask.OnFileDownloadedListener
. - API
Renames
ExtractAssetTask.OnDocumentExtractedCallback
toExtractAssetTask.OnDocumentExtractedListener
. - API
Renames
InstantPdfDocument#registerInstantDocumentListener
toInstantPdfDocument#addInstantDocumentListener
. - API
Renames
InstantPdfDocument#unregisterInstantDocumentListener
toInstantPdfDocument#removeInstantDocumentListener
. - API
Renames
InstantPdfFragment#registerInstantDocumentListener
toInstantPdfFragment#addInstantDocumentListener
. - API
Renames
InstantPdfFragment#unregisterInstantDocumentListener
toInstantPdfFragment#removeInstantDocumentListener
. - API
Renames
OnAnnotationProviderUpdatedListener#onAnnotationDeleted
toOnAnnotationProviderUpdatedListener#onAnnotationRemoved
. - API
Renames
AnnotationProvider.OnAnnotationProviderUpdatedListener
toAnnotationProvider.OnAnnotationUpdatedListener
. - API
Renames
AnnotationProvider#registerOnAnnotationProviderUpdatedListener
toAnnotationProvider#addOnAnnotationUpdatedListener
. - API
Renames
AnnotationProvider#unregisterOnAnnotationProviderUpdatedListener
toAnnotationProvider#removeOnAnnotationUpdatedListener
. - API
Renames
ActionResolver#registerDocumentActionListener
toActionResolver#addDocumentActionListener
. - API
Renames
ActionResolver#unregisterDocumentActionListener
toActionResolver#removeDocumentActionListener
. - API
Renames
NewPageFactory.OnNewPageReadyCallback
toNewPageFactory.OnNewPageReadyListener
. - API
Renames
PdfLibrary#registerLibraryIndexingListener
toPdfLibrary#addLibraryIndexingListener
. - API
Renames
PdfLibrary#unregisterLibraryIndexingListener
toPdfLibrary#removeLibraryIndexingListener
. - API
Renames
FormProvider#registerOnFormFieldUpdatedListener
toFormProvider#addOnFormFieldUpdatedListener
. - API
Renames
FormProvider#unregisterOnFormFieldUpdatedListener
toFormProvider#removeOnFormFieldUpdatedListener
. - API
Renames
FormProvider#registerOnFormTabOrderUpdatedListener
toFormProvider#addOnFormTabOrderUpdatedListener
. - API
Renames
FormProvider#unregisterOnFormTabOrderUpdatedListener
toFormProvider#removeOnFormTabOrderUpdatedListener
. - API
Renames
FormProvider#registerOnTextFormFieldUpdatedListener
toFormProvider#addOnTextFormFieldUpdatedListener
. - API
Renames
FormProvider#unregisterOnTextFormFieldUpdatedListener
toFormProvider#removeOnTextFormFieldUpdatedListener
. - API
Renames
FormProvider#registerOnButtonFormFieldUpdatedListener
toFormProvider#addOnButtonFormFieldUpdatedListener
. - API
Renames
FormProvider#unregisterOnButtonFormFieldUpdatedListener
toFormProvider#removeOnButtonFormFieldUpdatedListener
. - API
Renames
FormProvider#registerOnChoiceFormFieldUpdatedListener
toFormProvider#addOnChoiceFormFieldUpdatedListener
. - API
Renames
FormProvider#unregisterOnChoiceFormFieldUpdatedListener
toFormProvider#removeOnChoiceFormFieldUpdatedListener
. - API
Renames
DefaultDocumentEditorListener.UriValidationCallback
toDefaultDocumentEditorListener.UriValidationListener
. - API
Renames
PdfDocumentEditorListenerCallback
toOnFileWriteCompleteListener
. - API
Renames
PSPDFKitViews#setDocumentEditorListener
toPSPDFKitViews#setPdfDocumentEditorListener
. - API
Renames
PdfFragment#registerDocumentListener
toPdfFragment#addDocumentListener
. - API
Renames
PdfFragment#unregisterDocumentListener
toPdfFragment#removeDocumentListener
. - API
Renames
PdfFragment#registerDocumentScrollListener
toPdfFragment#addDocumentScrollListener
. - API
Renames
PdfFragment#unregisterDocumentScrollListener
toPdfFragment#removeDocumentScrollListener
. - API
Renames
PdfOutlineView.OnAnnotationTappedListener
toPdfOutlineView.OnAnnotationTapListener
and itsonAnnotationTapped
method toonAnnotationTap
. - API
Renames
PdfOutlineView.OnOutlineElementTappedListener
toPdfOutlineView.OnOutlineElementTapListener
and itsonOutlineElementTapped
method toonOutlineElementTap
. - API
Renames
PdfOutlineView#setOnAnnotationTappedListener
toPdfOutlineView#setOnAnnotationTapListener
. - API
Renames
PdfOutlineView#setOnOutlineElementTappedListener
toPdfOutlineView#setOnOutlineElementTapListener
. - API
Renames
PdfThumbnailGrid#setDocumentEditorListener
toPdfThumbnailGrid#setPdfDocumentEditorListener
. - API
Renames
PdfThumbnailGrid#registerDocumentEditingModeChangeListener
toPdfThumbnailGrid#addOnDocumentEditingModeChangeListener
. - API
Renames
PdfThumbnailGrid#unregisterDocumentEditingModeChangeListener
toPdfThumbnailGrid#removeOnDocumentEditingModeChangeListener
. - API
Renames
PdfThumbnailGrid#registerDocumentEditingPageSelectionChangeListener
toPdfThumbnailGrid#addOnDocumentEditingPageSelectionChangeListener
. - API
Renames
PdfThumbnailGrid#unregisterDocumentEditingPageSelectionChangeListener
toPdfThumbnailGrid#removeOnDocumentEditingPageSelectionChangeListener
. - API
Renames
ActionMenu#registerActionMenuListener
toActionMenu#addActionMenuListener
. - API
Renames
ActionMenu#unregisterActionMenuListener
toActionMenu#removeActionMenuListener
. - API
Renames
FormEditingBar#registerFormEditingBarLifecycleListener
toFormEditingBar#addOnFormEditingBarLifecycleListener
. - API
Renames
FormEditingBar#unregisterFormEditingBarLifecycleListener
toFormEditingBar#removeOnFormEditingBarLifecycleListener
. - API
Renames
PropertyInspectorCoordinatorLayoutController#registerPropertyInspectorLifecycleListener
toPropertyInspectorCoordinatorLayoutController#addPropertyInspectorLifecycleListener
. - API
Renames
PropertyInspectorCoordinatorLayoutController#unregisterPropertyInspectorLifecycleListener
toPropertyInspectorCoordinatorLayoutController#removePropertyInspectorLifecycleListener
. - API
Renames
BookmarkViewAdapter#registerBookmarkChangeListener
toBookmarkViewAdapter#addBookmarkListener
. - API
Renames
BookmarkViewAdapter#unregisterBookmarkChangeLister
toBookmarkViewAdapter#removeBookmarkListener
. - API
Renames
OnModeChangedListener#OnPageTransitionChanged
toOnModeChangedListener#OnScrollModeChange
. - API
Renames
OnModeChangedListener#OnScrollDirectionChanged
toOnModeChangedListener#OnScrollDirectionChange
. - API
Renames
OnModeChangedListener#OnPageLayoutChanged
toOnModeChangedListener#OnPageLayoutChange
. - API
Renames
OnModeChangedListener#OnThemeChanged
toOnModeChangedListener#OnThemeChange
. - API
Renames
OnModeChangedListener#OnScreenTimeoutChanged
toOnModeChangedListener#OnScreenTimeoutChange
. - API
Renames
AnnotationManager#registerAnnotationSelectedListener
toAnnotationManager#addOnAnnotationSelectedListener
. - API
Renames
AnnotationManager#unregisterAnnotationSelectedListener
toAnnotationManager#removeOnAnnotationSelectedListener
. - API
Renames
AnnotationManager#registerAnnotationDeselectedListener
toAnnotationManager#addOnAnnotationDeselectedListener
. - API
Renames
AnnotationManager#unregisterAnnotationDeselectedListener
toAnnotationManager#removeOnAnnotationDeselectedListener
. - API
Renames
AnnotationManager#registerAnnotationUpdatedListener
toAnnotationManager#addOnAnnotationUpdatedListener
. - API
Renames
AnnotationManager#unregisterAnnotationUpdatedListener
toAnnotationManager#removeOnAnnotationUpdatedListener
. - API
Renames
AnnotationManager#registerAnnotationCreationModeChangeListener
toAnnotationManager#addOnAnnotationCreationModeChangeListener
. - API
Renames
AnnotationManager#unregisterAnnotationCreationModeChangeListener
toAnnotationManager#removeOnAnnotationCreationModeChangeListener
. - API
Renames
AnnotationManager#registerAnnotationCreationModeSettingsChangeListener
toAnnotationManager#addOnAnnotationCreationModeSettingsChangeListener
. - API
Renames
AnnotationManager#unregisterAnnotationCreationModeSettingsChangeListener
toAnnotationManager#removeOnAnnotationCreationModeSettingsChangeListener
. - API
Renames
AnnotationManager#registerAnnotationEditingModeChangeListener
toAnnotationManager#addOnAnnotationEditingModeChangeListener
. - API
Renames
AnnotationManager#unregisterAnnotationEditingModeChangeListener
toAnnotationManager#removeOnAnnotationEditingModeChangeListener
. - API
Renames
DocumentEditingManager#registerDocumentEditingModeChangeListener
toDocumentEditingManager#addOnDocumentEditingModeChangeListener
. - API
Renames
DocumentEditingManager#unregisterDocumentEditingModeChangeListener
toDocumentEditingManager#removeOnDocumentEditingModeChangeListener
. - API
Renames
DocumentEditingManager#registerDocumentEditingPageSelectionChangeListener
toDocumentEditingManager#addOnDocumentEditingPageSelectionChangeListener
. - API
Renames
DocumentEditingManager#unregisterDocumentEditingPageSelectionChangeListener
toDocumentEditingManager#removeOnDocumentEditingPageSelectionChangeListener
. - API
Renames
FormManager#registerFormElementSelectedListener
toFormManager#addOnFormElementSelectedListener
. - API
Renames
FormManager#unregisterFormElementSelectedListener
toFormManager#removeOnFormElementSelectedListener
. - API
Renames
FormManager#registerFormElementDeselectedListener
toFormManager#addOnFormElementDeselectedListener
. - API
Renames
FormManager#unregisterFormElementDeselectedListener
toFormManager#removeOnFormElementDeselectedListener
. - API
Renames
FormManager#registerFormElementUpdatedListener
toFormManager#addOnFormElementUpdatedListener
. - API
Renames
FormManager#unregisterFormElementUpdatedListener
toFormManager#removeOnFormElementUpdatedListener
. - API
Renames
FormManager#registerFormElementEditingModeChangeListener
toFormManager#addOnFormElementEditingModeChangeListener
. - API
Renames
FormManager#unregisterFormElementEditingModeChangeListener
toFormManager#removeOnFormElementEditingModeChangeListener
. - API
Renames
FormManager#registerFormElementClickedListener
toFormManager#addOnFormElementClickedListener
. - API
Renames
FormManager#unregisterFormElementClickedListener
toFormManager#removeOnFormElementClickedListener
. - API
Renames
TextSelectionManager#registerTextSelectionModeChangeListener
toTextSelectionManager#addOnTextSelectionModeChangeListener
. - API
Renames
TextSelectionManager#unregisterTextSelectionModeChangeListener
toTextSelectionManager#removeOnTextSelectionModeChangeListener
. - API
Renames
TextSelectionManager#registerTextSelectionChangeListener
toTextSelectionManager#addOnTextSelectionChangeListener
. - API
Renames
TextSelectionManager#unregisterTextSelectionChangeListener
toTextSelectionManager#removeOnTextSelectionChangeListener
. - API
Changes
ContextualToolbar#setToolbarCoordinatorController
to accept@Nullable ToolbarCoordinatorLayoutController
, so you can clear it by passingnull
. - API
Removes
ContextualToolbar#removeToolbarCoordinatorController
, useContextualToolbar#setToolbarCoordinatorController(null)
instead. - API
Changes
ContextualToolbar#setOnMenuItemClickListener
to accept@Nullable OnMenuItemClickListener
, so you can clear it by passingnull
. - API
Removes
ContextualToolbar#removeOnMenuItemClickListener
, useContextualToolbar#setOnMenuItemClickListener(null)
instead. - API
Changes
ContextualToolbar#setOnMenuItemLongClickListener
to accept@Nullable OnMenuItemLongClickListener
, so you can clear it by passingnull
. - API
Removes
ContextualToolbar#removeOnMenuItemClickListener
, useContextualToolbar#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
methodsgetPageSize()
,getPageRotation()
, andgetPageLabel()
. (#12186) - Fixed
Improves shape annotations selection performance. (#12032)
- Fixed
Fixes a possible OOM exception that was occurring on some devices when using large zoom scale while having shape annotation selected.
- Changed
Updates to selected ink annotations are now redrawn much faster.
- Changed
Improves exact phrase matching in
PdfLibrary
. (#12261) - Changed
Improves
FloatingHintEditText.EditTextListener#onErrorDismissed
flow, so it is not called on each text change event. - Changed
Better memory handling for big documents. (#12045)
- API
Replaces framework’s
Optional
with RxJava2Maybe
. (#10691)- API
Return type changes for
AnnotationProvider#getAnnotationAsync(int, int)
fromObservable<Optional<Annotation>>
toMaybe<Annotation>
. - API
Return type changes for
AnnotationProvider#getAnnotation(int, int)
fromOptional<Annotation>
to@Nullable Annotation
. - API
Return type changes for
FormProvider#getFormElementForAnnotationAsync()
fromObservable<Optional<FormElement>>
toMaybe<FormElement>
. - API
Return type changes for
FormProvider#getFormElementForAnnotation()
fromOptional<FormElement>
to@Nullable FormElement
. - API
Return type changes for
FormProvider#getFormFieldWithFullyQualifiedNameAsync()
fromObservable<Optional<FormElement>>
toMaybe<FormElement>
. - API
Return type changes for
FormProvider#getFormFieldWithFullyQualifiedName()
fromOptional<FormElement>
to@Nullable FormElement
. - API
Return type changes for
FormProvider#getFormElementWithNameAsync()
fromObservable<Optional<FormElement>>
toMaybe<FormElement>
. - API
Return type changes for
FormProvider#getFormElementWithName()
fromOptional<FormElement>
to@Nullable FormElement
. - API
Return type changes for
WidgetAnnotation#getFormElementAsync()
fromObservable<Optional<FormElement>>
toMaybe<FormElement>
. - API
Return type changes for
WidgetAnnotation#getFormElement()
fromOptional<FormElement>
to@Nullable FormElement
.
- API
Renames
Annotation.OBJECT_NUMBER_NOT_ATTACHED_TO_PAGE
toAnntoation.OBJECT_NUMBER_NOT_SET
. (#11339) - API
Renames HUD terminology to User Interface. (#12003)
- API
Renames
HudViewMode
enum toUserInterfaceViewMode
and all its values are starting withUSER_INTERFACE
now. - API
Renames
getHudViewMode()
togetUserInterfaceViewMode()
onPdfActivityConfiguration
,PdfActivity
andPdfActivityApi
. Its new return type is nowUserInterfaceViewMode
. - API
Renames
setHudViewMode(HudViewMode)
tosetUserInterfaceViewMode(UserInterfaceViewMode)
onPdfActivityConfiguration
,PdfActivity
andPdfActivityApi
. - API
Renames
HudViewMode
toUserInterfaceViewMode
onPdfActivityConfiguration.Builder
.
- API
Changes type of thickness property of
AnnotationCreationController
fromint
tofloat
. (#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()
andPdfDocument#getUriList()
. - API
Removes
PdfYouTubeActivity#ARG_YOUTUBE_URL
, use#ARG_MEDIA_URI
for passingMediaUri
objects through intent. - API
Removes
PdfMediaDialog#ARG_URI
, use#ARG_MEDIA_URI
for passingMediaUri
objects through intent. - API
Removes
PrintOptions(PdfProcessorTask.AnnotationProcessingMode, ..)
constructors, usePrintOptions(boolean, ..)
instead. - API
Removed
PdfFragment#enterAnnotationCreationMode(AnnotationType)
, useenterAnnotationCreationMode(AnnotationTool)
instead. - API
Removed
PdfFragment#clearTextSelection()
, useexitCurrentlyActiveMode()
instead. - API
Removed
PdfFragment#setTextSelection()
, useenterTextSelectionMode()
instead. - API
Removed
DocumentSharingManager#generateDocumentName()
, usegetTitle()
instead.
- Fixed
Fixes a layout issue when entering long passwords. (#11792)
- Fixed
Fixes not scrolling to entire page when going through search results using a continuous layout manager. (#11454)
- Fixed
Fixes an issue when rendering decomposed UTF-8 strings (#11985)
- Fixed
Fixes the navigation buttons not being restored after an orientation change. (#12211)
- Fixed
Fixes form fields being rendered when the license doesn’t have PDF forms enabled. (#12537)
- Fixed
Fixes a crash that could happen when moving files to the device’s download folder on Android 8.0 Oreo or newer. (#12549)
- Fixed
Fixes resizing ink annotations in Instant documents being slow. (#12422)
- Fixed
Fixes
PdfPasswordView
being broken, while entering text on devices with a small screen. (#12210) - Fixed
Fixes an issue where adding annotation after opening annotation list view is blocked in large documents. (#12010)
- Fixed
Fixes an issue where invalid value (-1) was being passed to setPage() in PdfFragment on document recreation. (#11888)
- Fixed
Fixes extra space after non-latin characters in form fields. (#11874)
- Fixed
Fixes an issue where document loading progress was not restored after rotation. (#11840)
- Fixed
Fixes an issue saving an original document after signing it. (#11911)
- Fixed
Fixes an issue where document saving blocked the main thread. (#11802)
- Fixed
Fixes an issue where horizontal resize guide was drawn incorrectly. (#12065)
- Fixed
Fixes an issue where
NewPageDialog
was not displaying correctly in RTL mode. (#10039) - Fixed
Fixes an issue where navigation buttons were still clickable after
PdfActivityConfiguration.hideNavigationButtons()
. (#12023) - Fixed
Fixes an issue where current page is not properly restored after configuration changes, in double page mode. (#12146)
- Fixed
Fixes an issue where flattening a document may generate warnings when it is open in third party readers. (#12066)
- Fixed
Fixes an issue where it wasn’t possible to unset excluded annotations from renderer. (#12418)
- Fixed
Fixes an issue where taps on small form elements (such as checkboxes) were inaccurate. (#12545)
- API
Improves highlight annotations by adding additional padding to them. (#12548)
- API
Adds
applyPadding
parameter toPDFDocument#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
toInstantPdfDocument
to control whether to listen to server changes. - Added
Adds
setDelayForSyncingLocalChanges
toInstantPdfDocument
to control delay of automatic syncing of local changes or to disable automatic syncing of local changes altogether. - Removed
Deprecates
setAutomaticSyncEnabled
inInstantPdfDocument
. UsesetListenToServerUpdates
andsetDelayForSyncingLocalChanges
instead. - Added
Adds
setListenToServerChangesWhenVisible
toInstantPdfFragment
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 thepspdf__textSelectionStyle
style for setting text selection highlight color. - API
Adds
pspdf__leftHandleColor
attribute under thepspdf__textSelectionStyle
style for setting text selection left handle color. - API
Adds
pspdf__rightHandleColor
attribute under thepspdf__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 toPdfFragment
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-retainedPdfFragment
. (#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
andonDocumentCorrupted
toInstantDocumentListener
. (#11449)- Changed
onDocumentInvalidated
is called when document has been invalidated due to being garbage collected or its data being removed. - Changed
onDocumentCorrupted
is called when Instant has detected corruption in locally stored document data.
- Added
Adds logout button to Instant example. (#11405)
- Fixed
Fixes an incorrect log message format. (#11634)
- Fixed
Fixes deletion of multiple annotations at once. (#11651)
- Fixed
Fixes a failed assertion due to an improper format string. (#11747)
3.3.1 - 26 Jul 2017
- Fixed
Fixes an issue where the downloaded Instant document could not be opened while offline. (#11560)
- Fixed
Fixes an unhandled
NullPointerException
thrown while displaying the contextual toolbar. (#11448) - Fixed
Fixes a possible crash due to initialization race condition. (#11516)
- Fixed
Fixes a synchronization issue where thumbnail bar was not scrolling correctly to a selected page. (#10458)
- Fixed
Fixes a possible crash where framework was required before its initialization completed by the content provider. (#11537)
- Fixed
Fixes a bug where a link pointing to local data was recognized as media although it’s not a media file. (#11530)
- Fixed
Fixes an issue where download job continued even after download progress dialog was dismissed. (#10237)
Instant
- Changed
Optimizes battery usage while syncing annotations with Instant. (#11533)
- Fixed
Fixes incorrect handling/reporting of an authentication error during sync. (#11386)
3.3.0 - 20 Jul 2017
See the announcement post.
- Added
Adds Instant: an easy-to-integrate solution to connect your app to your PSPDFKit Server to download documents and synchronize annotations between users. Everything’s synced in an instant!
- API
Adds support for writing and parsing XFDF files, see
XfdfFormatter
class withparseXfdf[Async]()
andwriteXfdf[Async]()
methods. (#5575) - API
Adds
ProgressDataProvider
which can optionally be implemented by anyDataProvider
to support displaying the loading progress of not yet available documents. (#11032) - API
DownloadProgressFragment
is now extensible. Check out theCustomDocumentDownloadExample
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 onAnnotationProvider
. (#11149) - Changed
Improves RTL language support. (#11013, #9883)
- Changed
Improves memory management when rendering forms. (#11176)
- Changed
Video playback is now enabled by default if device is deemed secure, meaning it’s running at least Android Marshmallow (API 23+) with security patch dating Feb 1st, 2016 or newer. (#11345)
- Fixed
Fixes very rare issue on saving files repeatedly. (#9477)
- Fixed
Fixes the crash that occurs when trying to display document navigation while the document is not ready. (#11129)
- Fixed
Fixes the crash that occurs when trying to zoom an inline video being played in the document. (#11357)
- Fixed
Fixes an issue where custom styles were not applied correctly. (#11139)
- Fixed
Fixes the crash occurring when navigation buttons are not present in the custom layout despite being disabled by the configuration. (#11273)
- Fixed
Fixes the annotation creation toolbar being dismissed on configuration change. (#10990)
- Fixed
Fixes minor accessibility issues where close button description was missing and color contrast when editing notes was unfriendly. (#11292)
- Fixed
Fixes minor accessibility issues where close button description was missing and color contrast was too low when editing notes. (#11292)
- Fixed
Fixes an issue where note icons selection was not properly updated. (#11450)
3.2.1 - 21 Jun 2017
- Changed
Updates dependency - RxJava was updated to
2.1.1
. - Fixed
Fixes missing dependency issue when adding SDK to application. (#11031)
- Fixed
Fixes a possible crash due to initialization race condition. (#10745)
3.2.0 - 15 Jun 2017
See the announcement post.
- API
Adds
PdfConfiguration.Builder#setAutomaticLinkGenerationEnabled
andPdfDocument#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 nowfinal
. (#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
, createImagePicker
instance and then use#startImageCapture()
or#startImageGallery()
to start picking/capturing image. - API
ImagePickerFragment.OnImagePickedListener
is nowImagePicker.OnImagePickedListener
class.- API
onImagePickerError(int resultCode, @Nullable Intent data)
is nowonImagePickerUnknownError()
. - API
Adds
onCameraPermissionDeclined(boolean permanent)
for warning about missing camera permissions.
- API
Empty
OnImagePickedListener
implementation calledOnImagePickedListenerAdapter
is nowSimpleOnImagePickerListener
. - Changed
See
DocumentProcessingExampleActivity
in catalog for new image picker API usage.
- Added
Adds listener to allow custom handling of PDF actions. (#9964)
- API
Adds
DocumentActionListener
class which allows custom handling of PDF actions inonActionExecuted()
class. - API
Adds
registerDocumentActionListener()
andunregisterDocumentActionListener()
calls toPdfFragment
class. - API
Adds classes for new action types -
GoToRemoteAction
,GoToEmbeddedAction
,JavaScriptAction
,LaunchAction
andImportDataAction
.
- Added
Adds the ability to customize selected item colors in forms. (#10331).
- Added
Adds
pspdf__itemHighlightColor
theme attribute topspdf_FormSelection
style. - API
Adds
formItemHighlightColor()
call toPageRenderConfiguration
constructor.
- Added
Adds handling for new named actions -
OUTLINE
,PRINT
,FIND
,SEARCH
andSAVEAS
. (#10586) - Removed
Removes deprecated
MemoryDataProvider
andPdfActivityConfiguration#showThumbnailBar()/#hideThumbnailBar()
(usesetThumbnailBarMode()
instead). - Changed
Changes default selection in sharing and printing dialog from
Single Page - current
toAll pages
. (#10563) - Changed
Improves saving behavior around encrypted files. (#9088)
- Changed
Improves performance when reading page labels (#10575)
- Changed
Improves performance around reading PDF files. (#10565)
- Fixed
Fixes annotations with the
NoView
andPrint
flags not being rendered. (#10549) - Fixed
Fixes a crash when parsing invalid metadata. (#10611)
- Fixed
Fixes an issue where radio buttons were rendered incorrectly (#10631)
- Fixed
Fixes issues in
PdfActivityConfiguration
andPdfConfiguration
. (#10649)- Fixed
Fixes infinite recursion inside
PdfActivityConfiguration.Builder#setCustomerSignatureFeatureEnabled()
. - Fixed
Fixes
PdfConfiguration
copy constructor which was not copying propertyisCustomerSignatureFeatureEnabled()
.
- Fixed
Fixes an issue where
BaseFileProvider
would return paths to the internal app directory. (#10636) - Fixed
Fixes an issue where
FormProvider
leaked memory. (#10693) - Fixed
Fixes an issue where page position wasn’t properly restored in some rare cases. (#10708, #10700)
3.1.0 - 11 May 2017
See the announcement post.
- API
Adds support for scrollable thumbnail bar. (#7376)
- API
Adds
PdfActivityConfiguration.Builder#setThumbnailBarMode(ThumbnailBarMode)
for selecting thumbnail bar mode. - API
Deprecates
PdfActivityConfiguration.Builder#showThumbnailBar
andPdfActivityConfiguration.Builder#hideThumbnailBar
. Use above method instead. - API
Deprecates
PdfActivityConfiguration.Builder#isThumbnailBarEnabled
. UsePdfActivityConfiguration.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 theContext
to be provided as a parameter anymore. - API
PdfActivityConfiguration.Builder()
secondary constructors do not need theContext
to be provided as a parameter anymore. - API
Adds
PdfActivity#getActivityMenuManager
that exposesPdfActivityMenuManager
object, which you can use to control activity menu icons and colors programmatically (theme equivalent is using attributes declared inpspdf__ActionBarIcons
and setting it throughpspdf__actionBarIconsStyle
):- API
Adds
PdfActivityMenuManager#[set/get]ToolbarIconsColor()
, also controlled bypspdf__iconsColor
. - API
Adds
PdfActivityMenuManager#[set/get]ToolbarIconsColorActivated()
, also controlled bypspdf__iconsColorActivated
. - API
Adds
PdfActivityMenuManager#[set/get]OutlineIcon()
, also controlled bypspdf__outlineIcon
. - API
Adds
PdfActivityMenuManager#[set/get]OutlineIconActivated()
, also controlled bypspdf__outlineIconActivated
. - API
Adds
PdfActivityMenuManager#[set/get]SearchIcon()
, also controlled bypspdf__searchIcon
. - API
Adds
PdfActivityMenuManager#[set/get]SearchIconActivated()
, also controlled bypspdf__searchIconActivated
. - API
Adds
PdfActivityMenuManager#[set/get]ThumbnailGridIcon()
, also controlled bypspdf__gridIcon
. - API
Adds
PdfActivityMenuManager#[set/get]ThumbnailGridIconActivated()
, also controlled bypspdf__gridIconActivated
. - API
Adds
PdfActivityMenuManager#[set/get]EditAnnotationsIcon()
, also controlled bypspdf__editAnnotationsIcon
. - API
Adds
PdfActivityMenuManager#[set/get]EditAnnotationsIconActivated()
, also controlled bypspdf__editAnnotationsIconActivated
. - API
Adds
PdfActivityMenuManager#[set/get]ShareIcon()
, also controlled bypspdf__shareIcon
. - API
Adds
PdfActivityMenuManager#[set/get]PrintIcon()
, also controlled bypspdf__printIcon
.
- API
Removes
DocumentThemeConfiguration
, uses attributes frompspdf__SearchResultHighlighter
attribute set (specified by theme attributepspdf__searchResultHighlighterStyle
) along with added methods:- API
Adds
SearchResultHighlighter#[set/get]SearchResultBackgroundColor()
, also controlled bypspdf__searchResultBackgroundColor
. - API
Adds
SearchResultHighlighter#[set/get]SearchResultBorderColor()
, also controlled bypspdf__searchResultBorderColor
. - API
Adds
SearchResultHighlighter#[set/get]SearchResultBorderWidth()
, also controlled bypspdf__searchResultBorderWidth
. - API
Adds
SearchResultHighlighter#[set/get]SearchResultPadding()
, also controlled bypspdf__searchResultPadding
. - API
Adds
SearchResultHighlighter#[set/get]SearchResultAnnotationPadding()
, also controlled bypspdf__searchResultAnnotationPadding
. - API
Adds
SearchResultHighlighter#[set/get]SearchResultAnimationPadding()
, also controlled bypspdf__searchResultAnimationPadding
. - API
Adds
SearchResultHighlighter#[set/get]SearchResultCornerRadiusToHeightRatio()
, also controlled bypspdf__searchResultCornerRadiusToHeightRatio
. - API
Adds
SearchResultHighlighter#[set/get]SearchResultCornerRadiusMin()
, also controlled bypspdf__searchResultCornerRadiusMin
. - API
Adds
SearchResultHighlighter#[set/get]SearchResultCornerRadiusMax()
, also controlled bypspdf__searchResultCornerRadiusMax
.
- API
Removes
ThumbnailBarThemeConfiguration
:- API
For default static thumbnail bar, uses attributes from
pspdf__ThumbnailBar
attribute set (specified by theme attributepspdf__thumbnailBarStyle
). - API
For scrollable thumbnail bar, uses attributes from
pspdf__ScrollableThumbnailBar
attribute set (specified by theme attributepspdf__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 fromDocumentThemeConfiguration
), also configurable in the theme under thepspdf__backgroundColor
attribute. - API
Adds
PdfFragment#setPasswordView(PdfPasswordView)
andPdfFragment#getPasswordView()
methods for controllingPdfPasswordView
set on the fragment. - API
Removes
PasswordViewThemeConfiguration
, uses attributes frompspdf__PasswordView
attribute set (specified by theme attributepspdf__passwordViewStyle
) along with added methods:- API
Adds
PdfPasswordView#[set/get]Color()
, also controlled bypspdf__color
. - API
Adds
PdfPasswordView#[set/get]HintColor()
, also controlled bypspdf__hintColor
. - API
Adds
PdfPasswordView#[set/get]ErrorColor()
, also controlled bypspdf__errorColor
. - API
Adds
PdfPasswordView#[set/get]FloatingHintColor()
, also controlled bypspdf__floatingHintColor
. - API
Adds
PdfPasswordView#[set/get]IconResourceId()
, also controlled bypspdf__icon
. - API
Adds
PdfPasswordView#[set/is]IconTintingEnabled()
, also controlled bypspdf__iconTintingEnabled
.
- API
Removes
InlineSearchThemeConfiguration
, uses attributes frompspdf__SearchViewInline
attribute set (specified by theme attributepspdf__inlineSearchStyle
) along with added methods:- API
Adds
PdfSearchViewInline#[set/get]TextColor()
, also controlled bypspdf__textColor
. - API
Adds
PdfSearchViewInline#[set/get]HintTextColor()
, also controlled bypspdf__hintTextColor
. - API
Adds
PdfSearchViewInline#[set/get]NavigationTextColor()
, also controlled bypspdf__navigationTextColor
. - API
Adds
PdfSearchViewInline#[set/get]PrevIconColorTint()
, also controlled bypspdf__prevIconColorTint
. - API
Adds
PdfSearchViewInline#[set/get]NextIconColorTint()
, also controlled bypspdf__nextIconColorTint
. - API
Adds
PdfSearchViewInline#[set/get]BackIconColorTint()
, also controlled bypspdf__backIconColorTint
. - API
Adds
PdfSearchViewInline#[set/get]PrevIcon()
, also controlled bypspdf__prevIconDrawable
. - API
Adds
PdfSearchViewInline#[set/get]NextIcon()
, also controlled bypspdf__nextIconDrawable
.
- API
Removes
ModularSearchThemeConfiguration
, uses attributes frompspdf__SearchViewModular
attribute set (specified by theme attributepspdf__modularSearchStyle
) along with added methods:- API
Adds
PdfSearchViewModular#[set/get]BackgroundColor()
, also controlled bypspdf__backgroundColor
. - API
Adds
PdfSearchViewModular#[set/get]InputFieldTextColor()
, also controlled bypspdf__inputFieldTextColor
. - API
Adds
PdfSearchViewModular#[set/get]InputFieldHintColor()
, also controlled bypspdf__inputFieldHintColor
. - API
Adds
PdfSearchViewModular#[set/get]SeparatorColor()
, also controlled bypspdf__separatorColor
. - API
Adds
PdfSearchViewModular#[set/get]ListItemBackgroundColor()
, also controlled bypspdf__listItemBackgroundColor
. - API
Adds
PdfSearchViewModular#[set/get]ListItemTitleColor()
, also controlled bypspdf__listItemTitleColor
. - API
Adds
PdfSearchViewModular#[set/get]ListItemSubtitleColor()
, also controlled bypspdf__listItemSubtitleColor
. - API
Adds
PdfSearchViewModular#[set/get]ListSelector()
, also controlled bypspdf__listItemSelector
. - API
Adds
PdfSearchViewModular#[set/get]HighlightBackgroundColor()
, also controlled bypspdf__highlightBackgroundColor
. - API
Adds
PdfSearchViewModular#[set/get]HighlightBorderColor()
, also controlled bypspdf__highlightBorderColor
. - API
Adds
PdfSearchViewModular#[set/get]HighlightTextColor()
, also controlled bypspdf__highlightTextColor
.
- API
Removes
OutlineViewThemeConfiguration
, uses attributes frompspdf__OutlineView
attribute set (specified by theme attributepspdf__outlineViewStyle
) along with added methods:- API
Adds
PdfOutlineView#[set/get]BackgroundColor()
, also controlled bypspdf__backgroundColor
. - API
Adds
PdfOutlineView#[set/get]ListSelector()
, also controlled bypspdf__listItemSelector
. - API
Adds
PdfOutlineView#[set/get]DefaultTextColor()
, also controlled bypspdf__defaultTextColor
. - API
Adds
PdfOutlineView#[set/get]BookmarksBarBackgroundColor()
, also controlled bypspdf__bookmarksBarBackgroundColor
. - API
Adds
PdfOutlineView#[set/get]BookmarksBarIconColor()
, also controlled bypspdf__bookmarksBarIconColor
. - API
Adds
PdfOutlineView#[set/get]BookmarksAddIcon()
, also controlled bypspdf__bookmarksAddIcon
. - API
Adds
PdfOutlineView#[set/get]BookmarksEditIcon()
, also controlled bypspdf__bookmarksEditIcon
. - API
Adds
PdfOutlineView#[set/get]BookmarksDoneIcon()
, also controlled bypspdf__bookmarksDoneIcon
. - API
Adds
PdfOutlineView#[set/get]GroupIndicatorIconColor()
, also controlled bypspdf__bookmarksGroupIndicatorIconColor
. - API
Adds
PdfOutlineView#[set/get]TabIndicatorColor()
, also controlled bypspdf__tabIndicatorColor
. - API
Adds
PdfOutlineView#[set/get]BookmarksDeleteIcon()
, also controlled bypspdf__bookmarksDeleteIcon
. - API
Adds
PdfOutlineView#[set/get]BookmarksDeleteIconColor()
, also controlled bypspdf__bookmarksDeleteIconColor
. - API
Adds
PdfOutlineView#[set/get]BookmarksDeleteBackgroundColor()
, also controlled bypspdf__bookmarksDeleteBackgroundColor
.
- API
Removes
ThumbnailGridThemeConfiguration
, uses attributes frompspdf__ThumbnailGrid
attribute set (specified by theme attributepspdf__thumbnailGridStyle
) along with added methods:- API
Adds
PdfThumbnailGrid#[set/get]BackgroundColor()
, also controlled bypspdf__backgroundColor
. - API
Adds
PdfThumbnailGrid#[set/get]ItemLabelTextStyle()
, also controlled bypspdf__itemLabelTextStyle
. - API
Adds
PdfThumbnailGrid#[set/get]ItemLabelBackground()
, also controlled bypspdf__itemLabelBackground
.
- API
Adds setters and getters for UI properties on
FormEditingBar
, uses attributes frompspdf__FormEditingBar
attribute set (specified by theme attributepspdf__formEditingBarStyle
) along with added methods:- API
Adds
FormEditingBar#[set/get]IconsColor
, also controlled bypspdf__iconsColor
. - API
Adds
FormEditingBar#[set/get]BackgroundColor
, also controlled bypspdf__backgroundColor
. - API
Adds
FormEditingBar#[set/get]TextColor
, also controlled bypspdf__textColor
. - API
Adds
FormEditingBar#[set/get]PrevIcon
, also controlled bypspdf__prevIconDrawable
. - API
Adds
FormEditingBar#[set/get]NextIcon
, also controlled bypspdf__nextIconDrawable
.
- API
Removes
FormEditingConfiguration
, use attributes frompspdf__FormSelection
attribute set (specified by theme attributepspdf__formSelectionStyle
) to configure UI:- API
Adds
enableFormEditing()
anddisableFormEditing()
to thePdfConfiguration
andPdfActivityConfiguration
builders (pulled out ofFormEditingConfiguration
)
- API
Removes
AnnotationEditingConfiguration
, use attributes frompspdf__AnnotationSelection
attribute set (specified by theme attributepspdf__annotationSelectionStyle
) to configure UI. Other methods are extracted toPdfConfiguration.Builder()
andPdfActivityConfiguration.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 fromAnnotationEditingConfiguration#Builder
, usePSPDFKitPreferences#setAnnotationCreator(String)
to set annotation creator name. - API
Removes
AnnotationRenderConfiguration
, use attributes frompspdf__Annotation
attribute set (specified by theme attributepspdf__annotationStyle
) to configure UI. Other methods are extracted toPdfConfiguration.Builder()
andPdfActivityConfiguration.Builder()
:- API
Adds
Pdf[Activity]Configuration.Builder#excludedAnnotationTypes()
.
- Added
Adds annotation indexing capabilities to
PdfLibrary
. (#9235)- API
Adds
IndexingOptions
andPdfLibrary#enqueueDocuments(documents, indexingOptions)
overloads which allow to disable annotation or document text indexing. - API
Adds
QueryOptions.Builder#ignoreAnnotations()
andQueryOptions.Builder#ignoreDocumentText()
- API
Renames
QueryOptions
methods:isMatchExactPhrases
toshouldMatchExactPhrases
,isMatchExactWords
toshouldMatchExactWords
, andgenerateTextPreviews
toshouldGenerateTextPreviews
. - Changed
Updates
IndexedFullTextSearchExample
in the catalog app, to showcase new query options. - Added
Adds
enqueueDocumentSources
andenqueueDocumentSourcesWithMetadata
toPdfLibrary
to allow indexing documents without opening them first. This fixes OOM issues when indexing large amount of PDF documents.
- Added
Adds support for the
NeedAppearances
form flag. (#10288) - Added
Adds the ability to modify document PDF and XMP metadata. (#10494)
- API
Adds
set()
,get()
,setInXmp()
andgetInXmp()
methods toDocumentMetadata
class. - Changed
DocumentMetadata
object isn’t parcelable anymore. - Changed
PdfProcessorTask#withMetadata()
now acceptsHashMap<String,String>
instead ofDocumentMetadata
class.
- Added
Adds
AesDataProvider
andAesEncryptedFileExample
to catalog app. (#10230) - Removed
Deprecates
MemoryDataProvider
. (#10451) - Changed
Improves reliability of reading from data providers. (#10382)
- Fixed
Fixes missing
PdfActivity
documentation. (#10300) - Fixed
Fixes page not being properly settled on startup until the first touch. (#10155)
- Fixed
Fixes wrong view state being restored in double page mode and single page document. (#10157)
- Fixed
Fixes an issue where red border was rendered around required form fields even when form editing was disabled. (#10331)
- Fixed
Fixes failed manifest verification if
DocumentSharingProvider
class was renamed. (#10174) - Fixed
Fixes a unhandled
NullPointerException
thrown while initializing documents forms. (#10418) - Fixed
Fixes a runtime failure occurring due to framework initialization process not being properly synced. (#10309)
- Fixed
Fixes an issue where circle and square annotations grown in size when drawing while zoomed in. (#10347)
- Fixed
Fixes an issue that could result in a very long running loop when rendering PDF documents with broken dashed lines. (#9764)
3.0.0 - 12 Apr 2017
See the announcement post.
- API
Update RxJava to
2.0.8
and RxAndroid to2.0.1
. (#9254)- Changed
All public facing methods are now using the new RxJava 2 types
Observable
,Flowable
,Single
,Completable
. - Changed
For a comprehensive overview of the changes in RxJava 2, please have a look at the official RxJava 2 documentation.
- API
Removes license from the configuration files, the framework is now implicitly initialized using
<meta-data>
tag in yourAndroidManifest.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 throughPdfActivityIntentBuilder#activityClass()
with extras being added to the intent created withPdfActivityIntentBuilder#build()
.
- API
Adds support for programmatic forms filling. (#9656)
- API
Adds
FormsProvider
class for handling all forms related operations. It can be retrieved by callingPSPDFDocument#getFormsProvider()
. - API
Adds
FormField
class representing the single field in an interactive form. - API
Adds
FormElement
class representing visible form control. EachFormElement
has exactly one parentFormField
. EachFormField
can have multiple childFormElement
(for example radio button group is aFormField
, while each radio button in a group is aFormElement
).
- API
Moves
PSPDFKit#openDocument
,PSPDFKit#openDocuments
andPSPDFKit#openDocumentAsync
calls toPdfDocument
class. (#5330)- Changed
Drops several of more complex overloads in favor of passing document information with
DocumentSource
parameter.
- API
Moves and renames
PSPDFKit#invalidateDocumentCache
toPdfDocument#invalidateCache
andPSPDFKit#invalidatePageCache
toPdfDocument#invalidateCacheForPage
. (#5330) - API
PSPDFActivity
renamed toPdfActivity
. (#9680)- API
Replaces
PSPDFActivity.IntentBuilder()
withPdfActivityIntentBuilder
that is used creating an intent for startingPdfActivity
instance. - API
Removes
PSPDFActivity#showDocument()
for creating documents from multiple sources and just keeps the simpler ones, usePdfActivityIntentBuilder
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, sosetDocumentFromUri()
,setDocumentFromUris()
,setDocumentFromDataSource()
,setDocumentFromDataSources()
. - API
Removes methods for explicitly removing single listeners from
PdfActivity
, usesetXYListener(null)
.
- API
Drops
PSPDF
prefix for several classes: (#6520)- Changed
PSPDFActivity
toPdfActivity
. - Changed
PSPDFDocument
toPdfDocument
,PSPDFDocumentMetadata
toDocumentMetadata
,PDFVersion
toPdfVersion
. - Changed
PSPDFFragment
toPdfFragment
. - Changed
PSPDFPreferences
toPSPDFKitPreferences.
- Changed
PSPDFTextBlock
toTextBlock
. - Changed
PSPDFLibrary
toPdfLibrary
. - Changed
PSPDFAnnotationManager
toAnnotationManager
. - Changed
PSPDFProcessor
toPdfProcessor
,PSPDFProcessorTask
toPdfProcessorTask
,PSPDFProcesorException
toPdfProcessorException
. - Changed
PSPDFSearchOptions
toSearchOptions
,PSPDFSearchResult
toSearchResult
,PSPDFTextSearch
toTextSearch
. - Changed
PSPDFException
toPSDPDFKitException
. - Changed
PSPDFNotInitializedException
toPSPDFKitNotInitializedException
,PSPDFInitializationFailedException
toInitializationFailedException
. - Changed
PSPDFInvalidLayoutException
toInvalidLayoutException
,PSPDFInvalidLayoutException
toInvalidLayoutException
,PSPDFInvalidPasswordException
toInvalidPasswordException
. - Changed
PSPDFInvalidSignatureException
toInvalidSignatureException
,PSPDFMissingDependencyException
toMissingDependencyException
. - Changed
PSPDFYouTubeActivity
toPdfYouTubeActivity
. - Changed
PSPDFDrawableManager
toPdfDrawableManager
,PSPDFDrawableProvider
toPdfDrawableProvider
,PSPDFDrawable
toPdfDrawable
. - Changed
PSPDFOutlineView
toPdfOutlineView
,PSPDFThumbnailBar
toPdfThumbnailBar
,PSPDFThumbnailGrid
toPdfThumbnailGrid
. - Changed
PSPDFSearchView
toPdfSearchView
. - Changed
PSPDFViews
toPSPDFKitViews
andPdfActivity#getPSPDFViews()
toPdfActivity#getPSPDFKitViews()
.
- API
PSPDFActivityConfiguration
renamed toPdfActivityConfiguration
(#10131) - API
PSPDFConfiguration
renamed toPdfConfiguration
(#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()
andFreeTextAnnotation#setTextColor()
. - Changed
Changes
FreeTextAnnotation#getColor()
andFreeTextAnnotation#setColor()
to get and set the text color instead of the fill color. - Changed
Changes
FreeTextAnnotation#getFillColor()
andFreeTextAnnotation#setFillColor()
to get and set the fill color instead of doing nothing.
- API
Removes deprecated method
PSPDFActivityConfiguration.Builder#printingEnabled()
, usePdfActivityConfiguration#enablePrinting()
andPdfActivityConfiguration#disablePrinting()
instead. - API
Adds
StampAnnotation#setBitmap()
for re-setting an image onStampAnnotation
. (#9803) - API
Adds
setFormMappingNameMappings()
andsetFormFieldNameMappings()
call toPSPDFProcessorTask
to allow renaming of form fields. - API
Camel case syntax refactorings ():
- API
PDFUtils
toPdfUtils
along with methodcreatePDFRectUnion()
tocreatePdfRectUnion()
. - API
PagePDF
toPagePdf
. - API
PDFBox
toPdfBox
. - API
URIAction
toUriAction
. - API
HUDViewMode
toHudViewMode
. - API
PSPDFDocumentEditor
toPdfDocumentEditor
. - API
PSPDFDocumentEditorListener
toPdfDocumentEditorListener
. - API
PSPDFDocumentEditorListenerCallbacks
toPdfDocumentEditorListenerCallbacks
. - API
In
PdfFragment
:- API
convertViewRectToPDFRect()
toconvertViewRectToPdfRect()
- API
convertPDFRectToViewRect()
toconvertPdfRectToViewRect()
- API
convertViewPointToPDFPoint()
toconvertViewPointToPdfPoint()
- API
convertPDFPointToViewPoint()
toconvertPdfPointToViewPoint()
- API
getVisiblePDFRect()
togetVisiblePdfRect()
- Added
Adds support for interactive forms. (#2939)
- API
Adds
PSPDFFragment#registerFormElementSelectedListener
for listening to form element selection. - API
Adds
PSPDFFragment#registerFormElementDeselectedListener
for listening to form element deselection. - API
Adds
PSPDFFragment#registerFormElementUpdatedListener
for listening to form element updates. - API
Adds
PSPDFFragment#setSelectedFormElement
for selecting form element andPSPDFFragment#getSelectedFormElement
for getting selected form element. - API
Adds
FormEditingConfiguration
that can be used to control form editing configuration.
- Added
Adds support for filling text form fields. (#8984)
- Added
Adds support for filling list and combo box fields. (#8986)
- Added
Adds support for keyboard shortcuts when editing forms. (#8987)
- Added
Adds
FormEditingBar
that helps with form filling. (#9978) - Added
Adds support for changing configuration at runtime. (#2966)
- Added
Adds
setConfiguration
toPdfActivity
to changePdfActivityConfiguration
at runtime. - Changed
Allow creation of
PdfActivityConfiguration.Builder
andPdfConfiguration.Builder
from existing configuration. - Added
Adds
DynamicConfigurationExample
showcasing how to modifyPdfActivity
configuration at runtime. - Added
Adds
CustomFragmentDynamicConfigurationExample
showcasing how to modifyPSPDFFragment
configuration at runtime when used with custom activity.
- Added
Adds support for
HideAction
andResetFormAction
. (#9971) - Added
Adds
getState
andsetState
methods toPdfFragment
for saving and restoring fragment state. (#9605) - Added
Adds a feature for saving internal UI Context when possible. (#7260)
- Changed
Improves stream handling in
DocumentDownloadExample
. (#10161) - Changed
Improves
PdfLibrary
search when using FTS5. (#10018) - Changed
Improves memory usage. (#10082)
- Changed
Improves stability in low memory situations. (#10086)
- Fixed
Fixes symbol characters being used for rendering text in certain situations. (#9878)
- Fixed
Fixes an issue where autocorrection didn’t work for edited free text annotations. (#9887)
- Fixed
Fixes an issue with error handling when enqueuing a print job was not successful. (#9913)
- Fixed
Fixes full text search results returning incorrect results when an unmatched quote character is included in the search string. (#9831)
- Fixed
Fixes an issue where view state could not be restored correctly in some cases when using continuous scrolling mode. (#9682)
- Fixed
Fixes an issue where the page is not settled after the keyboard is dismissed or the screen size changes. (#9793)
- Fixed
Fixes an issue where incorrect page is restored in double page mode. (#9683)
- Fixed
Fixes memory leak when form field is selected. (#10124)
2.9.4 - 22 Mar 2017
- Changed
Updates dependencies - RxJava to
1.2.7
and support libraries to25.3.0
. - API
Introduces
PSPDFPreferences
to read and write global framework preferences. (#7300)- API
Deprecates
AnnotationEditingConfiguration.defaultAnnotationCreator
. UsePSPDFPreferences.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 toonDocumentSaveFailed(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 theonDialogCancelled
listener when being dismissed via back button or touch event. (#9820) - Fixed
Fixes an issue where thumbnails in the thumbnail grid would be stuck, when quickly starting to scroll after the grid became visible. (#9821)
- Fixed
Fixes an issue where clicking on the annotation would not invoke
DocumentListener#onPageClick()
listener. (#9815) - Fixed
Fixes an issue where document editing from unsupported sources was not consistent. (#7656)
- Fixed
Fixes incorrect animations in outline list when expanding or collapsing an outline on Android API 17 and lower. (#9899)
- Fixed
Fixes a issue on incrementally saving using a data provider. (#9410)
2.9.3 - 28 Feb 2017
- Added
Adds keyboard navigation using left/right keys. (#9370)
- Changed
Changes the note annotation creation flow. (#9645)
- Changed
It is now possible to create empty note annotation using the note annotation editor.
- Changed
Newly created note annotations are now automatically selected.
- Fixed
Fixes an issue where navigation bar got transparent when returning from multi-window mode. (#9530)
- Fixed
Fixes an issue where toolbar layout could get broken because it was incorrectly allowed to be vertical on certain screen sizes. (#9488)
- Fixed
Fixes an issue where document title view could get hidden behind action bar when switching to multi-window mode. (#9545)
- Fixed
Fixes an issue where deselecting an annotation tapping on the document background was hiding the user interface. (#9550)
- Fixed
Fixes incorrect animation in annotation inspector when showing soft keyboard. (#9527)
- Fixed
Fixes possible
NullPointerException
in the catalog example. (#9561) - Fixed
Fixes an issue where setting double page mode in combination with continuous scroll doesn’t properly fall back to single page layout mode in the thumbnail bar. (#9567)
- Fixed
Fixes an issue where
PSPDFActivity
would hide the thumbnail bar on devices with high density screens. (#9597) - Fixed
Fixes double page mode scrolling being broken in some cases (inline search results navigation, state restoration, etc.) (#9626)
- Fixed
Fixes an issue where using the soft keyboard in password view in immersive mode would result in wrongly rendered UI below translucent navigation bar. (#9658)
2.9.2 - 14 Feb 2017
- Changed
Updates dependencies - Support libraries to
25.1.1
, RxJava to1.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 whenPRINT
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 theToolbarCoordinatorLayout
, set throughPSPDFActivity#setOnContextualToolbarPositionListener(listener)
. (#9212) - Added
Adds
ContextualToolbar#isDraggable
to query whether contextual toolbar is currently draggable. (#9212) - Changed
Improves search highlighter and search navigation. (#8327)
- Added
Hides HUD when creating annotations and annotation toolbar is in vertical position. (#9212)
- Added
Adds
hideHudWhenCreatingAnnotations
toPSPDFActivityConfiguration
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 afterPSPDFFragment
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
returnedfalse
if only bookmarks were modified. (#9320) - Fixed
Fixes an issue where search button in catalog app could be lost after searching. (#9344)
- Fixed
Fixes an issue where
PSPDFActivity
was using wrong insets when running immersively in multi-window mode. (#9321)
2.9.0 - 25 Jan 2017
See the announcement post.
- Fixed
Fixes a security issue where
DocumentSharingProvider
could expose other private application files. (#9136) - Added
Adds paginated double page layout for browsing documents. (#5670)
- Added
Adds
PageLayoutMode
which is set throughPSPDFConfiguration
and has valuesAUTO
,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 thePSPDFConfiguration
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 thePSPDFConfiguration
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
AlertDialog
s use theme specified inalertDialogTheme
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 usingPSPDFFragment
.
- 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 toPSPDFActivity
for querying currently used HUD view mode. (#9100) - Added
Adds
setRotation
andgetRotation
properties toPageImage
object to allow rotation of images when using thePSPDFProcessor
. (#9096) - Added
Adds a usage example of
PSPDFThumbnailGrid
to theCustomFragmentActivity
of theFragmentExample
inside the catalog app. (#9133) - Added
Adds
size
andgetIndexedUIDs
method calls toPSPDFLibrary
. (#9192) - Added
Adds
LibraryIndexingListener
andregisterLibraryIndexingListener
/unregisterLibraryIndexingListener
toPSPDFLibrary
. (#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
toAnnotationEditingConfiguration.Builder
for controlling which annotation tools are enabled when creating annotations. (#8201) - Added
Adds a new
PSPDFFragment#newInstance
method which accepts an already openedPSPDFDocument
as a parameter. (#8199) - Added
Adds setting to prevent copying of selected text, see
CustomApplicationPolicyExample
from the catalog app. (#8728) - Removed
Renames
AnnotationCreationMode
enum toAnnotationTool
. (#9119)- Changed
Renames
getActiveAnnotationCreationMode
inAnnotationCreationController
togetActiveAnnotationTool
. - Removed
Removes deprecated methods
getCurrentlyEditedAnnotationType
andchangeAnnotationCreationMode
inAnnotationCreationController
. - Changed
Changes
Analytics.Data#ANNOTATION_CREATION_MODE
constant toANNOTATION_TOOL
.
- Changed
Changes default search result limit of library searches to
500
. UsemaximumSearchResultsTotal()
andmaximumPreviewResultsTotal()
methods inQueryOptions
to change this. (#9131) - Added
Improves custom stamps creation API. (#8571, Z#4917)
- Added
Adds
fromBitmap
,fromPredefinedType
andfromSubject
toStampPickerItem
to access builders for creating custom stamps. - Removed
Removes
create*
methods fromStampPickerItem
andStampAnnotationDefaultsProvider
. - Changed
Moves
StampPickerItem
andPredefinedStampType
tocom.pspdfkit.annotations.stamps
package.
- Changed
DownloadJob
now executesProgressListener
callbacks on the main thread. (#9162) - Changed
DocumentPrintManager
is now a singleton and not a static class anymore. Retrieve the instance with theget()
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
inPSPDFActivity
. (#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 andPSPDFThumbnailGrid#setNewPageFactory
. The factory returnsNewPage
instances that are used by the document editor when adding a page. - Added
Adds
DialogNewPageFactory
for creating new pages using theNewPageDialog
. This is the default factory. - Added
Adds
ValueNewPageFactory
that allows programmatically specifying a singleNewPage
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)
, seeAnnotationRenderingExample
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 tosetMenuItems()
- flat list of items is passed now.
- Changed
Improves
DocumentEditingToolbar
by making it draggable and introducing pre-defined item groupings same as forAnnotationCreationToolbar
. (#8898)- Changed
Groups are predefined and can be found in
DocumentEditingToolbarItemPresets
. - Changed
Grouping is being done by
DocumentEditingToolbarGroupingRule
instead of being directly passed tosetMenuItems()
- 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 inpspdf__ActionBarIcons
style. - Changed
Selected icon color is controlled by
pspdf__ActionBarIcons_pspdf__iconsColorActivated
style parameter.
- Changed
Lets
com.pspdfkit.utils.Size
implementParcelable
. (#8765) - Fixed
Fixes an exception in
UnitSelectionEditText
for Arabic devices. (#8738) - Fixed
Fixes an issue where leaving annotation creation mode could lead to an exception. (#8860)
- Fixed
Fixes an issue causing an
IndexOutOfBoundsException
when selecting text on a page. (#8922) - Fixed
Fixes an issue where sharing with WhatsApp triggered an exception. (#8424)
2.8.0 - 1 Dec 2016
See the announcement post.
- Changed
Updates dependencies - Support libraries to
25.0.1
, RxJava to1.2.3
. - Added
Adds automated saving and restoration of the last viewed page in a document (#8744)
- Added
Adds
PSPDFConfiguration#isLastViewedPageRestorationEnabled
and respective settersPSPDFConfiguration.Builder#restoreLastViewedPage
andPSPDFActivityConfiguration.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 theDocumentDataStore
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
andCircleAnnotation
classes. - Added
Adds UI to add and edit square and circle annotations on the page.
- Added
Adds
ShapeAnnotationDefaultsProvider
providing defaults for creating and editing square and circle annotations.
- Added
Adds support for polygon and polyline annotations. (#8625)
- Added
Adds
PolygonAnnotation
andPolylineAnnotation
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 toAnnotation
class. (#8398) - Added
Improves the
ContextualToolbar
so that items are dynamically re-grouped once the size of the toolbar changes. (#8173)- Added
Adds
DefaultMenuItemGroupingRule
which is an implementation ofMenuItemGroupingRule
interface. You can use these two to implement your custom grouping of menu items. TheDefaultMenuItemGroupingRule
is generic and somewhat complex. It’s set by callingContextualToolbar#setMenuItemGroupingRule()
.
- Changed
Improves the positioning of the items in the
AnnotationCreationToolbar
: annotation menu items are o