Changelog for Android
RSS10.4.0 11 Jun 2025
Migration guide(opens in a new tab).
UI
- AddedAdds setters to make
useCubicInterpolationForInkAnnotations
configurable inPdfConfiguration
andPdfActivityConfiguration
. (J#ANDR-1330) - AddedAdds support for selecting existing annotations while in creation mode for certain annotation types. (J#ANDR-1031)
- ChangedOptimizes the character layout calculation for edited text blocks in the content editing feature. (J#ANDR-1309)
- FixedFixes a lifecycle issue with the save dialog of the content editing feature. (J#ANDR-1311)
- FixedFixes a regression in form field check boxes and selection boxes where the selection wasn't visible until leaving the form editing UI. (J#ANDR-1317)
- FixedFixes an issue where adjusting the opacity slider on certain annotations didn't correctly update the alpha of the annotation. (J#ANDR-1275)
- FixedFixes an issue where the
DocumentEditor
glitched if it was invoked before the initial UI layout was done. (J#ANDR-1305) - FixedFixes an occasional crash that occurred when entering the content editing mode and immediately switching pages. (J#ANDR-1310)
- FixedFixes content editing line height calculation for paragraphs with multiple font sizes. (J#ANDR-1318)
- FixedFixes the issue where PDF content is partially hidden behind the toolbar on initial load. (J#ANDR-1285)
- FixedFixes the issue where bookmarks fail to respect reordering after the list is closed. (J#ANDR-865)
- FixedFixes the issue where custom theme colors are ignored and Signature Dialog UI elements aren't picking the correct color attributes. Adds new style attributes that allow for customization of Signature Dialog UI elements such as 'pspdf__selectImageTextColor', 'pspdf__replaceImageTextColor', 'pspdf__clearSignatureTextColor', 'pspdf__selectedTabIndicatorColor', 'pspdf__typeSignatureFontColor', and 'pspdf__circleButtonBorderColor'. (J#ANDR-1329)
- FixedFixes the issue where the last letter of the text annotation isn't included in the highlight or underline operation. (J#ANDR-1276)
- FixedFixes the issue where vertical offset is applied in the signature dialog when drawing in portrait mode. (J#ANDR-1303)
- FixedFixes the problem where an extra status bar is added between the toolbar and the document in situations where an extra layout is provided above the document view. (J#ANDR-1297)
- FixedFixes an issue where setting
EdgeToEdge.enable
inside the SDK causes layouting issues with our cross platform libraries. (J#ANDR-1302) - FixedFixes the status bar colour so it does not change when opening any of the contextual toolbars and cover the status bar icons. (J#ANDR-1356)
Model
- AddedAdds the option
automaticallyInvertColorsForNightTheme
toPdfConfiguration
andPdfActivityConfiguration
to disable the automatic color inversion when switching to the night theme. (J#ANDR-1315) - ChangedImproves error handling for document loading. Previously, the loading screen was dismissed only when the cause was an
Exception
. It now also handlesErrors
, ensuring the screen is closed on any load failure. (J#ANDR-1308) - ChangedImproves font embedding behavior. Fonts will be embedded more often, resulting in better experience when viewed in outside viewers. (J#CORE-850)
- ChangedChanges annotation listener APIs slightly. There are different package names and methods to register/deregister listeners. Refer to the migration guide(opens in a new tab) for details. (#47611)
- RemovedRemoves the use of
setAllowFileAccess
onWebSettings
due to a security risk.setAllowFileAccess
can be set totrue
usingWebViewSecurityPolicy
. (J#ANDR-1306) - FixedFixes an issue where form fields weren't formatted correctly at all times. (J#CORE-676)
- FixedFixes an issue where some CA certificates weren't recognized as such. (J#CORE-857)
- FixedFixes an issue where the status of some long-term validation signatures may be 'invalid.' (J#CORE-858)
- FixedFixes a crash when creating a text parser for a page if verbose logging is enabled. (J#CORE-859)
- FixedFixes a modified annotations error in Adobe Reader after signing documents with ink and highlight annotations. (J#CORE-837)
- FixedFixes small ink signatures not being detected as overlapping when only covering a small portion of a signature form field. (Z#124893)
- FixedFixes the
UrlDataProvider
to work properly with image documents. (J#ANDR-1313) - FixedFixes the issue where the application crashes during custom stamp signature creation. Disables signature constructor usage by making it private and forces signature creation via two static methods (
createInkSignature
andcreateStampSignature
). (J#ANDR-1304)
Examples
- ChangedImproves colors in the default example document for better annotating and editing. (J#DESIGN-1467)
- ChangedMerges Kotlin example code and activity code into one file. This makes it easier to follow a single example and allows us to show the examples on the website more easily. (#47749)
- FixedFixes the issue in the simple Java example where the status bar color turned white in annotation editing mode. (J#ANDR-1296)
10.3.0 12 May 2025
Migration guide(opens in a new tab).
UI
- ChangedChanges the type of all
textBlockId
function parameters in the content editing feature fromUUID
toString
. (J#ANDR-1284) - FixedFixes an issue where, when long-pressing an annotation to show the popup toolbar, the popup was instantly dismissed. (J#ANDR-1273)
- FixedFixes an issue with a missing page refresh after performing an undo operation in context with annotation creation. (J#ANDR-1280)
- FixedFixes the layout issues on the Document Comparison screen. (J#ANDR-1195)
Model
- AddedAdds support for preserving PDF/UA tags when using the document editor. (J#CORE-750)
- AddedAdds support for the Acrobat JavaScript
AFTime_KeystrokeEx
API. (J#CORE-639) - AddedAdds support for the PDF JavaScript 'global' object. (J#CORE-801)
- ChangedImproves appearance stream rendering in single line callout and free text annotations to better fit the bounding box. (J#CORE-819)
- ChangedImproves the responsiveness of starting Content Editor on pages with complex vector graphics like building plans. (#47157)
- FixedFixes a regression where certain OCR-processed PDFs could no longer be read correctly. (J#CORE-825)
- FixedFixes an issue where TIFF files that switched between page sizes were rendered incorrectly. (J#CORE-820)
- FixedFixes an issue where certain form field flags weren't considered correctly. (J#CORE-838)
- FixedFixes an issue where the 'Widget' tab order was calculated incorrectly. (J#CORE-818)
- FixedFixes an issue where the message 'Unknown additional action trigger: Type' may appear repeatedly in logs. (J#CORE-801)
- FixedFixes an issue where the primary language of the document wasn't preserved when using the document editor. (J#CORE-840)
- FixedFixes occasional empty pages when trying to restore the page index. (J#ANDR-1110)
Instant
- AddedAdds AI Assistant support for Instant. (J#ANDR-1250)
10.2.0 7 Apr 2025
UI
- FixedFixes a layout issue with the
PdfOutlineView
in a Jetpack Compose environment. (J#ANDR-1230) - FixedFixes occasional flickering during the creation of ink annotations. (J#ANDR-1187)
- FixedFixes some memory leaks in context with internal Compose views. (J#ANDR-1163)
- FixedFixes an issue where, in some cases, form fields weren't properly recognized as time or date fields. (J#ANDR-1231)
- FixedFixes the issue where form field content isn't rendered unless focused. (J#ANDR-1247)
- FixedFixes an issue where the popup toolbar was immediately dismissed after long-pressing an annotation. (ANDR-1273)
Model
- AddedAdds support for passing numbers to
fields.setItems()
in PDF JavaScript. (J#CORE-794) - AddedAdds the ability to update the configuration and set the custom document source in
DocumentState
for Compose'sDocumentView
. (J#ANDR-1238) - ChangedChanges the
GoToAction
to set the destination to the page reference instead of the page index. This means theGoToAction
follows the page even if pages are moved or deleted. (J#CORE-813) - ChangedMoves some classes for content editing to the public API to fix issues with obfuscation. (J#ANDR-1245)
- FixedFixes an issue where calling
setAdditionalAction
on aWidgetAnnotation
didn't mark the document as modified. (J#ANDR-1237) - FixedFixes an issue where rebuilding the cross reference table on certain invalid PDFs didn't work correctly. (J#CORE-815)
- FixedFixes an issue where sometimes invalid trailer data was written when using
saveAs
. (J#CORE-815) - FixedFixes an issue with decoding certain Unicode text. (J#CORE-771)
- FixedFixes an issue with manual initialization throwing an exception incorrectly when using
nutrient_automatic_initialize
orpspdfkit_automatic_initialize
. (J#ANDR-1242)
Examples
- AddedAdds a dialog when launching an AIA example to allow entering the IP address of the server running AI Assistant. (J#ANDR-1211)
- FixedFixes the form field listener management in
CombineElectronicSignaturesWithDigitalSigningExample
. (J#ANDR-1164)
10.1.0 6 Mar 2025
UI
- AddedAdds AI Assistant, which can be used to summarize, translate, and ask questions about documents. This requires you to run Nutrient AI Assistant on your server. Once that’s set up, enable it in your
PdfActivityConfiguration
and add yourAiAssistant
instance toPdfDocument
. If you’d like to try this, get in touch(opens in a new tab). (J#ANDR-964) - AddedAdds an option to
PdfConfiguration
to switch between quadratic (faster) and cubic Bézier (slower) interpolation for ink annotations. (J#ANDR-1131) - AddedAdds new Material color scheme for Nutrient SDK and examples. (J#ANDR-1080)
- AddedAdds the ability to configure
windowInsets
in the ComposeMainToolbar
. (J#ANDR-1196) - ChangedImproves the positioning of text block resize handles, and fixes some clipping issues when dragging a text block over other ones. (J#ANDR-1156)
- ChangedImproves view initialization when the user interface is initially hidden. (J#ANDR-1124)
- FixedFixes a
Parcelize
crash that occurs when using the signature database to store an image or stamp signature. (J#ANDR-1128) - FixedFixes a content editing crash, which affected devices running Android 12 or lower. (J#ANDR-1157)
- FixedFixes an issue when picking an image for a signature annotation where duplicate "Media" buttons would show in the media source selection UI. (J#ANDR-1130)
- FixedFixes an issue where, when long-pressing an annotation to show the popup toolbar, it was too easy to dismiss when the touch moved only 1 pixel. (J#ANDR-1116)
- FixedFixes an issue with positioning the page number overlay after the thumbnail height has been manually changed. (J#ANDR-1113)
- FixedFixes line height calculation for content editing for devices running Android 15 and above. (J#ANDR-1188)
- FixedFixes multiline free text line spacing calculation on Android 15+. (J#ANDR-839)
- FixedFixes the crash when
DialogFragment
, includingPdfFragment
, gets dismissed. (J#ANDR-1160) - FixedFixes the enabled state and default coloring of the buttons in the styling bar of the content editor. (J#ANDR-1209)
- FixedFixes the enabled state of the "+" button in the bookmarks list view. (J#ANDR-1208)
- FixedFixes the issue where a custom stamp preview wasn't properly rendered in the selector dialog. (J#ANDR-1133)
- FixedFixes the shadows in the bookmarks list view. (J#ANDR-1135)
Model
- AddedAdds Nutrient-named strings for
AndroidManifest.xml
:nutrient_license_key
,nutrient_font_path
, andnutrient_automatic_initialize
. The PSPDFKit-branded strings are still supported. (J#ANDR-1127) - AddedAdds
PdfDocument.isEncrypted()
, which indicates if a document is password protected or not. (J#ANDR-1120) - AddedAdds the ability to increase the size of images that can be used in the SDK by overriding the
pspdf__max_image_memory_ratio
float dimension resource. (J#ANDR-1155) - AddedAdds the ability to perform digital signing in two steps using the
getDataToSign
andembedSignature
methods inSigningManager
. (J#ANDR-1094) - ChangedImproves memory usage when decoding large page streams, allowing better out-of-memory handling. (J#CORE-253)
- FixedFixes a crash when aligning documents using points on a straight line. (J#CORE-758)
- FixedFixes an issue where parsing certain kinds of timestamp certificates may cause a crash. (J#CORE-788)
- FixedFixes an issue with opening certain PDFs that have a broken encryption descriptor. (J#CORE-776)
- FixedFixes an issue when regenerating 'off' checkbox and radio button appearances. (J#CORE-773)
- FixedFixes the
isAutosaveEnabled
option on Android 15 when the app is closed via the app switcher. (J#ANDR-1126)
Examples
- AddedAdds a Catalog example showing how to display multiple documents in tabs using a Compose
HorizontalPager
. The example is calledDocumentPagerExample
. (J#ANDR-1191)
10.0.1 20 Feb 2025
Model
- FixedFixes a crash when aligning documents using points on a straight line. (J#CORE-758)
- FixedFixes an issue where a Freetext annotation exported in XFDF from the Nutrient Web SDK with rich-text enabled and edited in Android, did not show the updated contents when imported again in Web. (J#CORE-774)
10.0.0 13 Feb 2025
Nutrient Android SDK 10! This contains a fundamental rebranding change, which updates our Maven dependency name to io.nutrient:nutrient
. In addition, we reverted back to the major.minor.patch
versioning scheme. We changed some public APIs, consisting of some deprecations and some breaking changes. Refer to the migration guide(opens in a new tab) for all the details!
UI
- FixedFixes an issue in the annotation list where items were clipped at the bottom. (J#ANDR-1071)
- FixedFixes an issue on the annotation toolbar where the buttons were not correctly selected when in vertical layout. (J#ANDR-1045)
- FixedFixes an issue where disabling the scrollbars in the configuration caused a
CalledFromWrongThreadException
. (J#ANDR-755) - FixedFixes an issue where signature form fields could not be signed when other already signed adjacent signature form fields where present. (J#ANDR-1030)
- FixedFixes an issue where the
PdfScrollableThumbnailBar
lost the selection marker when the size of its parent view changed. (J#ANDR-1083) - FixedFixes an issue where the measurements magnifier view was not removed when the
PdfFragment
was destroyed. (J#ANDR-1044) - FixedFixes an issue where the user is able to add or edit bookmarks when the respective functionality is disabled. (J#ANDR-1086)
- FixedFixes an occasional exception when scrollbars were disabled in the
PdfConfiguration
. (J#ANDR-755) - FixedFixes edge-to-edge issues in Android 15 in the note creation and stamp picker screens. (J#ANDR-1046)
- FixedFixes the issue when eraser tool works inefficiently with overlapping ink strokes. (J#ANDR-1070)
- FixedFixes unwanted vertical scrolling in horizontal continuous and paginated layout when full page height is visible. (J#ANDR-1066)
- FixedFixes a crash that occurred when trying to digitally sign a signature form field whose
name
andfqn
where different. (J#ANDR-1081) - FixedFixes security issue related to WebView File Access. (J#ANDR-1106)
- FixedFixes double-tap gesture when already zoomed in so we don't auto-scale to full page if the user wants to manually double-tap scale with one finger. (J#ANDR-1112)
- ChangedImproves the UX for deleting bookmarks and annotations from the bookmark/annotation list views. (J#ANDR-1092)
Model
- AddedAdds
PdfDocument.isEncrypted()
, which indicates if a document is password protected or not. (J#ANDR-1120") - ChangedDisables keyboard word caching on sensitive text fields such as share screen document title and annotation author name. (J#ANDR-1076)
- ChangedUpdates our core
PSPDFKit
API toNutrient
(opens in a new tab) and various other rebrand changes, of which the most impactful are outlined in the migration guide(opens in a new tab). (J#ANDR-1090) - ChangedUpdates the Botan library to version 3.6.1. (J#CORE-683)
- ChangedUpdates AGP to 8.8.0. (#46386)
- ChangedUpdates Compose BOM to 2025.01.01. (J#ANDR-1107)
- FixedFixes an R8 ProGuard error pertaining to the
kotlinx.parcelize
package. (J#ANDR-1082) - FixedFixes an issue when content editing type3 fonts where some text boxes appeared far too small. (J#CORE-754)
- FixedFixes an issue where, in certain PDFs, the outline/bookmarks weren't preserved when using the document editor. (J#CORE-753, J#CORE-707)
- FixedFixes an issue where manually calling
PSPDFKit.initialize
with a valid license key would cause the trial mode warning to pop up incorrectly. (J#ANDR-1078) - FixedFixes an issue where the document IDs of some documents may be incorrectly truncated. (J#AI-123)
- FixedFixes note annotation comment restoration after JSON import with the
DocumentJsonFormatter
. (J#ANDR-1007) - FixedFixes a content editing issue where moving a piece of text with a subsetted font could cause a character swap in some viewers. (J#CORE-577)
- FixedFixes a crash when opening a PDF with malformed forms. (J#CORE-745)
- FixedFixes an issue with TIFF images with 0 DPI. (J#CORE-770)
- FixedFixes crash when dealing with malformed embedded files. (J#CORE-728)
- FixedFixes slowdown when decoding certain TIFF images. (J#CORE-757)
- FixedFixes an issue with KDoc API docs where classes and methods that were supposed to be hidden were not hidden. (46507)
- FixedFixes an issue where some annotations weren't drawn correctly on pages with transparency. (J#CORE-783)
- ChangedImproves handling of specific broken PDF forms, where multiple instances of the same form are combined into a single PDF. (J#CORE-646)
Examples
- ChangedUpdates our example apps with Nutrient brand icons and test documents. (J#ANDR-1093)
2024.9.2 13 Feb 2025
This version should not be used! It's here to warn library consumers who haven't read this that they should upgrade to version 10+ and change the Gradle package name. Refer to the migration guide(opens in a new tab) for more information.
- AddedAdds a runtime error message prompting users to change the dependency to
io.nutrient:nutrient
version 10+ and follow the migration guide.
2024.9.0 17 Dec 2024
Migration guide(opens in a new tab).
UI
- AddedAdds a search integration example for the
DocumentView
composable. (J#ANDR-882) - AddedAdds option to turn on/off the bookmark list view edit button and changes the
PdfOutlineView
APIs slightly. Refer to the migration guide for more details. (J#ANDR-1000) - ChangedExposes form field listeners to Compose
DocumentView
using theformListener
parameter ofDocumentManager
. (J#ANDR-897) - RemovedRemoves the two edit handles from callout annotations that cannot be edited. (J#ANDR-1013)
- FixedFixes a crash that can happen when opening the bookmarks screen in multiple documents when using the
PdfTabBar
. (J#ANDR-1028) - FixedFixes an issue in the outline list views (bookmark list, annotation list, embedded files list, etc.) where data can get duplicated when displaying multiple documents in the same activity. (J#ANDR-1012)
- FixedFixes an issue where free text annotations were not automatically deleted when empty once the editing operation ended. (J#ANDR-951)
- FixedFixes an issue where setting
automaticallyGenerateLinks
totrue
in the configuration did not create links properly, leaving them unclickable. (J#ANDR-1015) - FixedFixes an issue where touching an annotation on top of a link annotation would often cause the link to be clicked incorrectly. (J#ANDR-1005)
- FixedFixes an issue with calling
PdfOutlineView#hide()
when the view is/has disappeared — for example, when switching tabs inViewPager2
. (J#ANDR-749) - FixedFixes an issue with the outline view being too wide when its parent width is < 480DP. (J#ANDR-1029)
- FixedFixes page change animation when scrolling and releasing touch. (#45872)
Model
- AddedAdds
UrlDataProvider
which implements support for loading documents from a remote URL. (J#ANDR-481) - AddedAdds an API to retrieve all annotations of a page in JSON format. This is much faster than converting each annotation to JSON. See
AnnotationProvider#getAnnotationsJson(int pageIndex)
. (J#ANDR-993) - AddedAdds an API to save a document from Composable
DocumentView
. (J#ANDR-840) - ChangedUpdates the default watermark on visible digital signatures. (J#HG-1468)
- ChangedUpgrades dependencies: (#45822)
- ChangedAGP to 8.7.2
- ChangedCompose to 1.7.5
- FixedFixes an issue where PDFs with a large amount of unique fonts take up a lot of memory, especially during indexing. (J#CORE-748)
- FixedFixes an issue where callout annotations weren't rendered correctly in other PDF readers. (J#ANDR-937)
- FixedFixes lockup/crash issues when opening certain malformed PDF forms. (J#CORE-726)
- FixedFixes an issue with GoTo Remote and Goto Embedded actions. (J#CORE-751)
2024.8.1 22 Nov 2024
Patch release that fixes a regression in the Signature
class creation API (J#ANDR-1016). In version 2024.8, we removed the API to create a signature using a Bitmap
. Use the Signature
companion method, Signature.createStampSignature
, or createInkSignature
, to create these objects. Note that some constructor arguments in Signature
have changed slightly or been removed, as they weren’t necessary.
2024.8.0 21 Nov 2024
Migration guide(opens in a new tab).
UI
- AddedAdds a color correction filter to improve colors when inverted rendering is active. (J#ANDR-809)
- AddedAdds the ability to use the "fling" gesture with two fingers. This is useful when, for example, drawing an annotation with one finger and navigating to another page or part of the page with two fingers. (J#ANDR-914)
- ChangedImproves typing and drawing signature layouts to make use of the full screen width in landscape mode. (J#ANDR-945)
- AddedAdds the ability to add items in overflow menu in the Compose MainToolbar. (J#ANDR-864)
- ChangedShrinks the measurement text to fit inside the shape. (J#ANDR-798)
- FixedFixes an issue on Samsung devices where scrolling with two fingers was incorrectly recognized as a pinch/zoom. (J#ANDR-914)
- FixedFixes an issue on Samsung devices where zooming can cause the zoom center point to be locked to the top-left corner of the page instead of between the fingers. (J#ANDR-914)
- FixedFixes an issue with paginated layout managers where the displayed pages jumped briefly after a resize of the window. (J#ANDR-938)
- FixedFixes annotations count in the Annotations list tab. (J#ANDR-926)
- FixedFixes the pages preview in Document Editor when duplicating or adding more pages. (J#ANDR-928)
- FixedFixes the item colors of the bookmark list in dark mode. (J#ANDR-942)
- FixedFixes the text color of the
Clear All
annotations dialog in dark mode. (J#ANDR-941) - FixedFixes the text colors for the embedded files list in dark mode. (J#ANDR-919)
Model
- AddedAdds an API to control what
Edit
s are added to the undo/redo stack. This can be controlled via theOnAddNewEditListener
, which needs to be added to theUndoManager
viaUndoManager#setOnAddNewEditListener
. (J#ANDR-899) - AddedAdds support for reading the widget tab order. (J#CORE-660)
- ChangedImproves text extraction by replacing invalid characters with the Unicode Replacement Character (0xFFFD). (J#CORE-701)
- AddedAdds NavHost Compatibility with Compose DocumentView. (J#ANDR-912)
- ChangedChanges
BiometricSignatureData
to a Kotlin data class and removes itsBuilder
. It must be constructed using the constructor. (J#ANDR-852) - ChangedChanges
PdfConfiguration
andPdfActivityConfiguration
to Kotlin data classes.Builder
API is still there, although there are slight modifications to the APIs. See the migration guide for more details. (J#ANDR-852) - ChangedChanges
SearchConfiguration
to a data class and removes itsBuilder
. (J#ANDR-852) - ChangedChanges
SignatureAppearance
to a Kotlin data class and removes theBuilder
.SignatureAppearance
must be created via its constructor. (J#ANDR-852) - ChangedChanges
Signature
to a Kotlin data class. Static methods must be called with itscompanion
object from Java code. (J#ANDR-852) - ChangedChanges the search type to an enum,
SearchType
, which replaces the integer constants defined inPdfActivityConfiguration
(PdfActivityConfiguration.SEARCH_INLINE
,PdfActivityConfiguration.SEARCH_MODULAR
). (#45404) - FixedFixed back button behavior in the Compose wrapper. (J#ANDR-870)
- RemovedRemoves the
PdfConfiguration
option to setSignatureAppearance
. This is no longer used internally. The signature appearance is set via theDigitalSignatureMetadata
class and passed toSignerOptions
. (J#ANDR-852) - ChangedUpdates the HarfBuzz library to version 10.0.1. (J#CORE-693)
- FixedFixes a crash that may happen when saving LTV information in a document. (J#CORE-710)
- FixedFixes a potential ProGuard error related to
kotlinx.parcelize
since v2024.7. (J#ANDR-936) - FixedFixes an issue retrieving the text of a highlight annotation on rotated pages. (J#CORE-449)
- FixedFixes an issue where a misleading exception was thrown when trying to open an invalid URI. (J#ANDR-883)
- FixedFixes an issue where certain license keys couldn't be read correctly. (J#CORE-725)
- FixedFixes an issue where handwritten signatures may appear unexpectedly cropped. (J#CORE-713)
- FixedFixes an issue where the signature validation status after certificate revocation checks may be invalid if the document has multiple digital signatures. (J#AND-842)
- FixedFixes an issue where the tab index of signature fields wasn't calculated correctly. (J#CORE-660)
- FixedFixes an issue where too much memory was used when decoding JPEG2000 image masks. (J#CORE-636)
- FixedFixes the annotations count in the Annotations tab. (J#ANDR-926)
- FixedFixes issues with Type 3 fonts and text extraction. (J#CORE-703)
- FixedFixes the watermark not showing in the Thumbnail Bar when using Scrollable mode. (J#ANDR-845)
2024.7.0 17 Oct 2024
UI
- AddedAdds the ability to disable the stylus button on the
AnnotationCreationToolbar
usingannotationCreationToolbar.setShouldShowStylusButton(false)
, which can be accessed via theOnContextualToolbarLifecycleListener#onPrepareContextualToolbar
interface. (J#ANDR-812) - AddedAdds the ability to move the crosshair in document comparison mode so you can easily select points all over the document for alignment. (J#ANDR-894)
- ChangedImproves free text annotation rendering when zooming in and out while using
PLATFORM_RENDERING
. (J#ANDR-835) - ChangedImproves the default appearance of callout annotations. (J#ANDR-836)
- AddedAdds
ContextualToolbarListener
to configure menu items in the ComposeDocumentView
state. (J#ANDR-868) - FixedFixes an issue with missing text when adding new lines to a multiline callout annotation. (J#ANDR-841)
- FixedFixes the overflow menu visibility in the Compose main toolbar if overflow menu items are empty. (J#ANDR-869)
- FixedFixes issues with zooming performance on devices with more than 2 GB RAM. We now default most annotations to use AP stream rendering, which is more performant and does not have fidelity issues. This can be overridden using
PdfFragment#setOverlaidAnnotationTypes
and specifying the rendering strategy withsetAnnotationOverlayRenderStrategy
. (J#ANDR-884)
Model
- FixedFixes back button behavior in the Compose wrapper. (J#ANDR-870)
- ChangedReintroduces ProGuard to hide our internal APIs and reduce API misuse. If you have any ProGuard-related issues, contact us. (J#ANDR-810)
- RemovedRemoves
Builder
classes fromElectronicSignatureOptions
andSignatureOptions
. Internally, these are migrated to Kotlin’sdata class
to remove the@AutoValue
annotation. (J#ANDR-848) - ChangedUpgrades various key c (J#ANDR-838)
- ChangedAndroid Gradle Plugin: 8.6.0
- ChangedKotlin: 2.0.20
- ChangedCompose: 1.7.1
- FixedFixes an issue when parsing timestamp policies with short OIDs in digital signatures. (J#SERVER-1231)
- FixedFixes an issue where digitally signing a document may trigger an error in Adobe Acrobat about a modified page. (J#CORE-45204)
- FixedFixes an issue where digitally signing with the SHA384 hashing algorithm didn’t work. (Z#116874)
- FixedFixes an issue where form contents may be rotated after exporting and then importing from Instant JSON. (J#CORE-647)
- FixedFixes an issue where form flags were overwritten when using the processor and
NeedAppearances
was set in the PDF. (J#CORE-45331) - FixedFixes an issue where handwritten signatures may show distorted in some page orientations. (J#ANDR-824)
- FixedFixes an issue where some annotations may lose their font color when you export them to XFDF and import them again. (J#CORE-680)
- FixedFixes an issue where the blend mode wasn’t read correctly. (J#CORE-691)
- FixedFixes a rare crash due to concurrent access in the
AnnotationFlatbufferWriter
. (J#ANDR-895) - FixedFixes an issue where PDFs with millions of outline elements could exhaust the memory. (J#CORE-694)
2024.6.1 18 Sep 2024
Patch release containing some important fixes for adding digital signatures on certain documents.
Model
- FixedFixes an issue where PDF JavaScript may report an error when setting a custom value to a combo box form field. (J#CORE-675)
- FixedFixes an issue where digitally signing a document may trigger an error in Adobe Acrobat about a modified page. (J#CORE-682)
- FixedFixes an issue where some signatures with Long-Term Validation information may be incorrectly reported as invalid. (J#CORE-654)
- FixedFixes an issue where the same font was embedded multiple times when entering diacritics, leading to a massive file size. (J#CORE-634)
2024.6.0 6 Sep 2024
Migration guide(opens in a new tab).
UI
- AddedAdds a
pspdf__scaleListItemCheckColor
attribute to set the color of the selected item check mark in the measurement scales list. (J#ANDR-822) - AddedAdds 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)
- ChangedExposes the
PdfUi
interface in theDocumentConnection
. (J#ANDR-811) - FixedFixes 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)
- FixedFixes 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) - FixedFixes an issue where text editing was immediately canceled when the UI was configured with vertical continuous scrolling. (J#ANDR-823)
- FixedFixes an issue where the initial position of a page is incorrect if the previous page has a different orientation. (J#ANDR-672)
- FixedFixes an issue where the pages were improperly laid out after a resize of the
PdfFragment
. (J#ANDR-817) - FixedFixes vertical centering of the displayed PDF page after the height of its containing view was changed. (J#ANDR-805)
Model
- AddedAdds git history to public example app repositories. Beginning with this release, people can see what has changed from the last release. (J#ANDR-620)
- AddedAdds the ability to reinitialize
PdfFragment
withPdfFragment#refreshPages
when a document'schildView
s (pages) are cleared. (J#ANDR-786) - ChangedImprove evaluation experience. (J#CORE-667)
- ChangedReplaces 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)
- ChangedUpgrades NDK to 27 from 25. (J#ANDR-183)
- FixedFixes 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) - FixedFixes an issue where a PDF rendered incorrectly. (J#CORE-643)
- FixedFixes an issue where annotations exported to XFDF and then imported again may lose their text color. (J#CORE-648)
- FixedFixes an issue where converting a bitonal TIFF with a lot of pages consumed too much memory. (J#CORE-621)
- FixedFixes an issue where opening image files with broken XMP/EXIF headers may crash the app. (J#CORE-665)
- FixedFixes an issue where signatures on rotated documents were displayed incorrectly. (J#CORE-672)
- FixedFixes 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.0 6 Aug 2024
Version 2024.5 is a routine release with a few upgrades, fixes, and small features, outlined below.
UI
- AddedAdds a
pspdf__scaleListItemBackgroundColor
attribute to set the color of the list item background of the measurement scales list. (J#ANDR-772) - AddedAdds a feature to configure the hidden and visible state of the
VerticalScrollbar
view. (J#ANDR-750) - FixedFixes an issue where ink annotations can get clipped slightly when the tool is deselected. (J#ANDR-679)
- FixedFixes an issue where the document text search was very slow after changing the search query string. (J#ANDR-618)
- FixedFixes an issue where the saving spinner would never get dismissed when redaction saving failed. (J#ANDR-530)
- FixedFixes an issue where the virtual keyboard was wrongly hidden during content editing. (J#ANDR-608)
- FixedFixes an issue with the virtual keyboard in the context of a vertical continuous scrolling page configuration. (J#ANDR-419)
Model
- ChangedUpdates HarfBuzz library to 9.0.0. (J#CORE-625)
- FixedFixes a potential crash when clearing listeners in the
DocumentView
if it happens before the document has been loaded. (J#ANDR-753) - FixedFixes 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
- FixedFix an issue where the Instant client incorrectly removes the path segment from a server URL when parsing it. (J#ANDR-757)
2024.4.0 22 Jul 2024
Migration guide(opens in a new tab). Version 2024.4 adds support for Android 15 and 16KB page sizes, better ink annotation rendering, and many more fixes, improvements, upgrades, and small features, which are outlined below.
It's important to note that the deprecation period for the legacy digital signature APIs has passed, and users now have to use the new API. See the migration guide linked above for details.
UI
- AddedAdds a button to the date and time pickers to clear form fields with dates when said fields aren't empty. (J#ANDR-436)
- AddedAdds the ability to fix the aspect ratio for free text annotations using the
setKeepAspectRatioEnabled
(opens in a new tab) API. (J#ANDR-579) - AddedAdds a feature to configure expanded and collapsed state of outline elements. (J#ANDR-546)
- AddedAdds a feature to update the style with the Material Theme for MainToolbar Composable. (J#ANDR-524)
- AddedAdds the eraser tool to the tools that are supported by the palm rejection mode. (J#ANDR-598)
- ChangedChanges 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) - ChangedExposes
AnnotationConfigurationRegistry
in theDocumentConnection
interface of our Jetpack Compose SDK. (J#ANDR-585) - ChangedMoves the stylus button from the document settings to the toolbar during annotation creation and editing. (J#ANDR-582)
- ChangedUses 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) - FixedFixes UI layout issues after device rotation with certain activity configurations. (J#ANDR-652)
- FixedFixes a rare crash caused by the annotation eraser tool. (J#ANDR-589)
- FixedFixes 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) - FixedFixes an error where
ThumbnailGridView
displayed the page thumbnails with an incorrect height after device rotation. (J#ANDR-651) - FixedFixes an issue where cloudy borders change size when first created and deselected. (J#ANDR-600)
- FixedFixes an issue where deleting selected annotations did not properly exit the annotation editing mode. (J#ANDR-676)
- FixedFixes an issue where ink annotation render changes drastically when the tool is deselected. (J#ANDR-220)
- FixedFixes an issue where the
PdfThumbnailGrid
displayed the wrong amount of columns after a device rotation. (J#ANDR-583) - FixedFixes 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)
- FixedFixes free text annotation shrinking in size when deselected. (J#ANDR-599)
- FixedFixes free text annotation wobble when zooming in and out of a page. (J#ANDR-599)
- FixedFixes an issue where an annotation drawn on top of a
LinkAnnotation
doesn't intercept a click event first. (J#ANDR-490) - FixedFixes a rare crash that happens when
AnnotationCreatorInputDialogFragment
is opened for some devices. (J#ANDR-542) - FixedFixes 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)
- FixedFixes an issue where undoing the deletion of a custom stamp annotation didn't restore its bitmap. (J#ANDR-544)
- FixedFixes an issue where ink annotations can get clipped slightly when the tool is deselected. (J#ANDR-679)
Model
- AddedAdds 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)
- AddedAdds support for 16KB page size devices in Android 15. (J#ANDR-644)
- AddedAdds support for Android 15! (J#ANDR-660)
- AddedAdds support for
RegExp.$1
toRegExp.$9
to allow accessing regular expression capturing groups from PDF scripts. (J#CORE-567) - AddedAdds support for parsing custom colors in PDF JavaScript and converting color spaces by using the color.convert API. (J#CORE-580)
- ChangedImproves TIFF image document quality by respecting the embedded DPI values. (J#CORE-522)
- ChangedImproves the performance of the snapping tool with construction documents. (J#CORE-536)
- AddedAdds
DataProvider
support in composeDocumentView
. (J#ANDR-653) - RemovedRemoves the deprecated legacy digital signatures code, as well as a few related classes and APIs. Full details in the migration guide(opens in a new tab). (J#ANDR-203)
- ChangedRenames the internal
OutOfMemory
thread toMemoryHandling
to reduce confusion in stack traces. (J#CORE-581) - ChangedReplaces 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) - ChangedUpdates the Botan library to version 2.19.5. (J#CORE-633)
- ChangedUpdates the HarfBuzz library to version 8.5.0. (J#CORE-583)
- ChangedUpdates the STB library to version 2.30. (J#CORE-570)
- ChangedUpdates Android Gradle Plugin from 8.2.1 to 8.5.1 and Gradle to 8.7. (J#ANDR-646)
- ChangedUpdates various transitive dependencies: (J#ANDR-649)
- ChangedKotlin 1.9.20 -> 1.9.24
- ChangedfragmentKtx 1.6.2 -> 1.8.1
- ChangedAppCompat 1.6.1 -> 1.7.0
- ChangedMaterial 1.11.0 -> 1.12.0
- ChangedViewPager2 1.0.0 -> 1.1.0
- ChangedWebKit 1.1.0 -> 1.11.0
- ChangedCompose 1.5.4 -> 1.6.8
- FixedFixes a crash when editing the content of some documents. (J#CORE-601)
- FixedFixes a potential crash when accessing a
ShapeAnnotationView
Annotation
object if the view has !=1 annotation associated. (J#ANDR-540) - FixedFixes an issue where
OnAnnotationSelectedListener.onAnnotationSelectionFinished
wasn't called under certain circumstances. (J#ANDR-537) - FixedFixes 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)
- FixedFixes an issue where, after redacting, some images were displaying wrong (e.g. black instead of white). (J#CORE-561)
- FixedFixes an issue where changing to cloudy border style via the inspector resulted in a shape disappearing. (J#ANDR-536)
- FixedFixes an issue where exporting and importing Instant JSON may incorrectly move annotations or forms. (J#CORE-589)
- FixedFixes an issue where redaction didn't handle certain text objects correctly, resulting in some displaced text. (J#CORE-612)
- FixedFixes an issue where some digital signatures may incorrectly report as invalid. (J#CORE-597)
- FixedFixes an issue where some digital signatures may not be validated correctly. (J#CORE-607)
- FixedFixes an issue where the
value
property of theField
object in JavaScript may return an incorrect type in some cases. (J#CORE-582) - FixedFixes an issue where the date and time pickers weren't added reliably. (J#CORE-520)
- FixedFixes an issue where the line dash pattern was rendered differently from other PDF readers. (J#CORE-540)
- FixedFixes an issue where the page labels may be incorrect in some documents. (J#CORE-560)
- FixedFixes an issue where too many fonts were added to the PDF in certain rare circumstances, causing crashes. (J#CORE-605)
- FixedFixes an issue where, in some cases, PDF JavaScript that changes the value of a form field wasn't executed correctly. (J#CORE-590)
- FixedFixes an issue where custom fonts aren't loaded. (J#ANDR-613)
- FixedFixes 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
- ChangedExposes the
AnnotationConfigurationRegistry
in theDocumentConnection
interface of our Jetpack Compose SDK. (J#ANDR-585) - FixedFixes an issue where the
PdfThumbnailGrid
displayed the wrong amount of columns after a device rotation. (J#ANDR-583) - FixedFixes 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)
- FixedFixes an issue where an annotation drawn on top of a
LinkAnnotation
does not intercept a click event first. (J#ANDR-490) - FixedFixes an issue where cloudy borders change size when first created and deselected. (J#ANDR-600)
Model
- ChangedImproves the performance of the snapping tool with construction documents. (J#CORE-536)
- FixedFixes a potential crash when accessing a
ShapeAnnotationView
Annotation
object if the view has !=1 annotation associated. (J#ANDR-540) - FixedFixes an issue where
OnAnnotationSelectedListener.onAnnotationSelectionFinished
wasn't called under certain circumstances. (J#ANDR-537) - FixedFixes an issue where, after redacting, some images were displaying wrong (e.g. black instead of white). (J#CORE-561)
- FixedFixes an issue where changing to cloudy border style via the inspector resulted in the shape disappearing. (J#ANDR-536)
- FixedFixes an issue where exporting and importing Instant JSON may incorrectly move annotations or forms. (J#CORE-589)
- FixedFixes an issue where the 'value' property of the 'Field' object in JavaScript may return an incorrect type in some cases. (J#CORE-582)
- FixedFixes an issue where the line dash pattern was rendered differently from other PDF readers. (J#CORE-540)
- FixedFixes an issue where the page labels may be incorrect in some documents. (J#CORE-560)
- FixedFixes an issue where too many fonts were added to the PDF in certain rare circumstances, causing crashes. (J#CORE-605)
- FixedFixes an issue where, in some cases, PDF JavaScript that changes the value of a form field was not executed correctly. (J#CORE-590)
- FixedFixes an issue where some digital signatures may incorrectly report as invalid. (J#CORE-597)
- FixedFixes an issue where some digital signatures may not be validated correctly. (J#CORE-607)
2024.3.0 5 Jun 2024
Migration guide(opens in a new tab). Version 2024.3 introduces snappier page transitions, as well as proper stylus handling and palm rejection. You can now draw annotations with the stylus while moving the page or switching pages with a finger. There are more bug fixes and improvements. See details below.
UI
- AddedAdds a configuration option to disable the annotation popup toolbar when you long-press a selected annotation (see
annotationPopupToolbarEnabled
). (J#ANDR-468) - AddedAdds palm rejection handling on all devices. (J#ANDR-88)
- AddedAdds 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)
- ChangedExposes
onDocumentScroll
to theDocumentView
composable, which can help with handling touch events on Compose container views containing a document. (J#ANDR-470) - FixedFixes a crash that might occur when the default
MeasurementValueConfiguration
has a fractional precision. (J#ANDR-497) - FixedFixes 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)
- FixedFixes a regression where selecting a free text annotation would occasionally not display all the text until the bounding box is updated. (J#ANDR-460)
- FixedFixes an issue on Samsung devices where you can't scroll a page while in annotation editing mode. (J#ANDR-468)
- FixedFixes an issue where the scrollbars aren't displayed relative to the page after zooming in when using the jump transition. (J#ANDR-449)
- FixedFixes an issue where zooming out of an already zoomed out page may cause the page to travel up or down. (J#ANDR-468)
- FixedFixes an occasional issue where the popup toolbar doesn't get dismissed properly. (J#ANDR-468)
- FixedFixes an issue where the inspector view didn't show a preview when switching the border style to
CLOUDY
. (J#ANDR-451) - FixedFixes an issue where an annotation drawn on top of a
LinkAnnotation
does not intercept a click event first. (J#ANDR-490)
Model
- AddedAdds the ability to toggle PSPDFKit view components from Compose's
DocumentView
. (J#ANDR-407) - ChangedImproves the PDFUIFragment Catalog example by showing how to hook into the document listener before the document is loaded. (Z#111597)
- ChangedImproves the content editing functionality in documents that contain tables. (J#CORE-506)
- ChangedImproves the logging system used in PSPDFKit for Android by making it more consistent. (J#ANDR-188)
- ChangedExposes
documentId
anddocumentIdString
inPdfDocument
. (J#ANDR-446) - ChangedUpdates
Annotation#toInstantJson()
to use the Instant JSON protocol V2 instead of V1. (J#ANDR-463) - ChangedUpdates the HarfBuzz library to version 8.4.0. (J#CORE-559)
- FixedFixes a memory leak in the context of device rotation. (J#ANDR-465)
- FixedFixes an issue where an incorrect note icon may show on top of highlight annotations with comment replies. (J#CORE-527)
- FixedFixes an issue where converting a stamp annotation with a custom AP stream to JSON returns
null
inonAnnotationCreated()
. (J#ANDR-479) - FixedFixes an issue where deleting the value of a form field may incorrectly show the previous value in some situations. (J#CORE-531)
- FixedFixes an issue where measurement labels on rotated pages weren't exported correctly. (J#CORE-529)
- FixedFixes an issue where pages could be rendered too small. (J#CORE-550)
- FixedFixes an issue where pages could be rendered upside down. (J#CORE-545)
- FixedFixes an issue where redaction annotations could not be applied by third-party software like Adobe Acrobat. (J#CORE-555)
- FixedFixes an issue where text highlights were split when there was a tiny gap in a sentence. (J#CORE-510)
- FixedFixes an issue where the email preset didn't mark some email addresses for redaction. (J#CORE-514)
- FixedFixes an issue where the redaction tool may redact a bigger area than necessary in some documents. (J#CORE-562)
- FixedFixes an issue where the text in a callout annotation may appear in the wrong position. (J#CORE-466)
- FixedFixes an issue where the text selection rectangle was too big, resulting in squashed text. (J#CORE-496)
- FixedFixes an issue with PDF comparison when the content stream didn't contain any stroke color commands. (J#CORE-533)
- FixedFixes an issue where the page labels may be incorrect in some documents. (J#CORE-560)
Instant
- FixedFixes a deadlock when syncing annotations on a certain document containing stamp annotations in PSPDFKit Instant. (J#ANDR-277)
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:
- ChangedJetpack Compose!
- AddedNew Jetpack Compose main toolbar! This makes it super easy to add and remove custom buttons and customize the toolbar however you want.
- ChangedWe also migrated some of our UI to Jetpack Compose: the document information screen, and the settings menu.
- ChangedAnnotation Multi-Selection!
- ChangedA 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.
- ChangedWe've cleaned up our SDK
initialize
API (refer to the migration guide linked below). - ChangedOur free text and callout annotations now render much more cleanly and with better performance.
- ChangedWe've expanded the customization options for measurement annotations.
- ChangedLoads more bug fixes and improvements — see the list below.
- ChangedEnjoy!
Migration guide(opens in a new tab).
UI
- AddedAdds
FreeTextAnnotations
to the list of annotations that obey theNOZOOM
flag. (J#ANDR-365) - AddedAdds 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)
- AddedAdds annotation multi-selection and grouping functionalities. (J#ANDR-264)
- AddedAdds customization options for the lines and shapes used for measurement annotations. (J#ANDR-298)
- AddedAdds a new composable main toolbar, allowing users to easily customize it, including adding and removing custom buttons and text. (J#ANDR-289)
- AddedAdds the ability to auto save updated
SettingsView
configurations on exit, and removes the save button. (J#ANDR-344) - AddedAdds style attributes for configuring margin and selection width in the
PdfScrollableThumbnailBar
. (J#ANDR-308) - ChangedEnables scrolling with two fingers while in annotation creation mode and not zooming. (J#ANDR-401)
- RemovedRemoves the deprecated
SettingsModePicker
from the codebase.SettingsDialog
should be used instead. (J#ANDR-370) - ChangedReplaces the document info view with a Jetpack Compose screen. (J#ANDR-345)
- ChangedReplaces the settings view with a Jetpack Compose screen. (J#ANDR-344)
- ChangedImproves the performance for compound undo/redo operations. (J#ANDR-380)
- FixedFixes a rare crash when highlighting text on a rotated page after long-pressing a text block. (J#ANDR-368)
- FixedFixes 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)
- FixedFixes an issue where snapping and guide helpers were incorrectly used for callout annotations. (J#ANDR-394)
- FixedFixes an issue where the border of a free text annotation changes size when selected and deselected. (J#ANDR-410)
- FixedFixes a bug where choosing only one
SignatureCreationMode
showed a blank screen. (J#ANDR-406) - FixedFixes a crash that happens when trying to add comments after long-pressing a piece of text while using Instant. (J#ANDR-420)
- FixedFixes an issue where the inspector view didn't show a preview when switching the borderstyle to
CLOUDY
. (J#ANDR-451) - FixedFixes render artifacts in free text and callout annotations when selected vs. deselected. (J#ANDR-294)
- FixedFixes rotated callout annotation rendering. (J#ANDR-294)
- FixedFixes the pop-up toolbar appearing away from the touch point when long pressing the page. (J#ANDR-414)
Model
- AddedAdds support for editing the content of PDF documents that use Type3 fonts. (J#CORE-478)
- RemovedDeprecates
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) - ChangedOrganises the Jetpack Compose classes in a clearer package structure. This is a breaking API change. See migration guide for v2024.2. (J#ANDR-373)
- AddedAdds an API to rotate callout annotations programmatically by 90, 180, or 270 degrees. (J#ANDR-294)
- AddedAdds appearance stream generation for link annotations. This means any set borders will be rendered now. (J#CORE-483)
- AddedAdds one
PSPDFKit.initialize
method to rule them all. This takesInitializationOptions
. All otherinitialize
methods are deprecated and will be removed in 2025. (J#ANDR-142) - AddedAdds the
AnnotationViewsListener
interface, which informs listeners about theEditText
widget used to edit free text annotations. (J#ANDR-342) - AddedAdds the ability to exclude certain annotations or annotation types from a page render call using
PageRenderConfiguration
. (J#ANDR-201) - ChangedUpdates the HarfBuzz library to version 8.3.1. (J#CORE-524)
- ChangedEnsures adding and removing annotations from a page programmatically now adds the operations to the undo stack. (J#ANDR-415)
- RemovedRemoves useless rotation functions from the `FreeTextAnnotation rotation API in favor of one rotation function that takes a rotation parameter. (J#ANDR-294)
- RemovedRemoves deprecated methods to do with accessing measurement scale/precision (can be replaced with the
MeasurementValueConfiguration
API) andisValidForEditing
, which is replaced withisWritableAndCanSave
. (J#ANDR-370) - FixedFixes an issue where Instant sync failed due to unsupported objects being received. (J#CORE-407)
- FixedFixes a memory leak in
PdfStaticThumbnailBar
(used inPdfFragment
) related to a layout listener. (J#ANDR-353) - FixedFixes a memory leak related to the
NavigationBackStack
when destroying and recreatingPdfFragment
's in a view pager. (J#ANDR-393) - FixedFixes a potential crash when unparcelling document sources. (J#ANDR-391)
- FixedFixes 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) - FixedFixes a rare crash in certain PDF documents with JavaScript. (J#CORE-500)
- FixedFixes an error message that may appear in the logs when using the snapping tool. (J#CORE-391)
- FixedFixes an issue that was causing conflicts with duplicate files in external SDKs. (J#ANDR-367)
- FixedFixes an issue with PDF comparison when the content stream didn't contain any stroke color commands. (J#CORE-533)
- FixedFixes an issue where annotations may be incorrectly selected in some cases. (J#CORE-464)
- FixedFixes an issue where calling
Field.value
in a PDF JS script may return the wrong value. (J#CORE-450) - FixedFixes an issue where calling the PDF JS API
field.setItems
may not change the form's value. (J#CORE-430) - FixedFixes an issue where extracted text was garbled due to incomplete reading order information in the PDF. (J#CORE-385)
- FixedFixes an issue where intermittent rendering errors occurred while zooming in and out, resulting in incomplete page displays. (J#CORE-447)
- FixedFixes an issue where listing embedded files in rare PDFs could cause a crash. (J#CORE-493)
- FixedFixes an issue where opening a document with a digital signature may report additional changes. (J#CORE-473)
- FixedFixes an issue where redacting some kind of documents may corrupt them. (J#CORE-375)
- FixedFixes an issue where refreshing the LTV information of some signed documents may fail. (J#CORE-499)
- FixedFixes an issue where shape annotations imported via Instant JSON may incorrectly show a black border. (J#CORE-392)
- FixedFixes an issue where text blocks were split when encountering two or more narrow characters. (J#CORE-380)
- FixedFixes an issue where text with the FL and FI ligatures wasn't extracted correctly. (J#CORE-443)
- FixedFixes 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)
- FixedFixes an issue where the text selection of italic characters was too large. (J#CORE-444)
- FixedFixes an issue where validating some documents with LTV information may incorrectly return that the revocation status couldn't be checked. (J#WEB-1042)
- FixedFixes 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)
- FixedFixes an issue where stamp annotations created using vector images have the wrong type when converted to Instant JSON. (J#ANDR-422)
- FixedFixes an issue where text with negative font sizes caused the text to vanish in the content editor. (J#CORE-438)
- FixedFixes 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
- FixedFixes crash when opening the type signature screen. (J#ANDR-379)
Instant
- FixedFixes 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
- FixedFixes a rare crash when highlighting text on a rotated page after long-pressing a text block. (J#ANDR-368)
- FixedFixes an issue where it wasn’t possible to input comma as decimal separator into form fields on certain Samsung devices. (J#ANDR-357)
Model
- FixedFixes an issue where text with negative font sizes caused the text to vanish in the content editor. (J#CORE-438)
- FixedFixes a memory leak in
PdfStaticThumbnailBar
(used inPdfFragment
) related to a layout listener. (J#ANDR-353) - FixedFixes an issue that was causing conflicts with duplicate files in external SDKs. (J#ANDR-367)
- FixedFixes an issue where the appearance of unsigned signature form fields may ignore some property changes, like their border width. (J#CORE-412)
- FixedFixes 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
- AddedAdds dedicated section for Jetpack Compose samples in Catalog Example. (J#ANDR-216)
- AddedAdds the ability to change the color of the
PDFActivity
title overlay label. (J#ANDR-278) - ChangedExtends the content editing feature with paragraph editing, which includes copying, pasting, creating, moving, resizing and deleting text blocks. (J#ANDR-65)
- AddedAdds customisation options for the lines and shapes used for measurement annotations. (J#ANDR-298)
- AddedAdds style attributes for configuring margin and selection width in the
PdfScrollableThumbnailBar
. (J#ANDR-308) - FixedFixes a bug in context with text form fields and input of decimal numbers. (J#ANDR-243)
- FixedFixes a memory-leak within the
DefaultBookmarkAdapter
implementation. (J#ANDR-286) - FixedFixes an issue in the Compose DocumentView where we animate to the previously opened page instead of just opening it. (J#ANDR-303)
- FixedFixes an issue where snapping was incorrectly applied to ink annotations. (J#ANDR-267)
- FixedFixes an issue where zooming was disabled when creating shape annotations. (J#ANDR-113)
Model
- APIAdds API to add long term validation information to an existing digital signature to turn it into PAdES B-LT. (J#ANDR-283)
- APIAdds API to use a
PrivateKey
object for signing instead ofPrivateKeyEntry
as well as loading from PEM file helper function. (#42828) - APIAdds
TrustedKeyStore
object which replaces the APIs to add and remove trusted certificates in the deprecatedSignatureManager
. Used for validating digital signatures. (J#ANDR-223) - AddedAdds 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) - AddedAdds 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)
- AddedAdds support for adding annotations programmatically with the Jetpack Compose DocumentView. (J#ANDR-207)
- AddedAdds a new example project to demonstrate new supported Jetpack Compose features. (J#ANDR-180)
- AddedAdds support for annotation listeners in the
DocumentView
composable. (J#ANDR-62) - AddedAdds support for document listeners in the
DocumentView
composable. (J#ANDR-61) - ChangedChanges API for the
customSigning
lambda inSigningManager.signDocument
to take non-null hash algorithm string instead of nullable. (J#ANDR-245) - ChangedEnables 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) - FixedFixes file access permission in Catalog for Android 11+. (J#ANDR-192)
- ChangedImproves Document Editor performance when dealing with large documents. (#42927)
- ChangedMigrates all the example build scripts to
.kts
. (J#ANDR-292) - RemovedRemoves the usesClearTextTraffic permission from the Catalog app. This is no longer needed and causes the app to be flagged as a security risk. (#43073)
- ChangedUpgrades project to AGP 8.2 plus various internal dependencies to latest. (J#ANDR-272)
- FixedFixes freetext annotation callout line ends when importing from XFDF. (J#CORE-297)
- FixedFixes freetext callout rendering and rich text link render on rotated pages. (J#CORE-297)
- FixedFixes vertical alignment of free text annotations when using rich text. (#42793)
- FixedFixes a crash that may happen when parsing certain kinds of outlines. (J#CORE-356)
- FixedFixes a crash while looking up character codes. (J#CORE-348)
- FixedFixes a potential
IllegalStateException
in theDocumentCreationFragment
in very rare situations. (J#ANDR-239) - FixedFixes a potential crash when generating AP streams. (J#CORE-364)
- FixedFixes an issue signing some kind of pre-existing form fields. (J#CORE-327)
- FixedFixes an issue where the cross-reference table may be invalid after saving a file. (J#CORE-321)
- FixedFixes an issue with file paths when using Android SAF picker to choose a file save destination. (J#ANDR-261)
- FixedFixes an issue with the instant Catalog example crashing in release mode. (J#ANDR-269)
- FixedFixes scrolling issue in Compose DocumentView. (J#ANDR-206)
8.10.0 7 Dec 2023
UI
- AddedAdds an option to
PdfConfiguration
to control the automatic invocation of the note editor after a new note annotation was created. (J#ANDR-184) - AddedAdds extra string translations for measurement tools. (J#ANDR-123)
- AddedAdds support for showing the signer's timezone in the appearance of signed signature fields. (J#CORE-263)
- AddedAdds camera option on image field click event. (J#ANDR-137)
- FixedFixes a bug which caused an IndexOutOfBoundException when updating the content of a text formfield. (J#ANDR-173)
- FixedFixes an incorrectly thrown exception when adding a note to a measurement annotation. (J#ANDR-172)
- FixedFixes bug in rendering cloudy annotations after drawing is finished. (J#ANDR-121)
- FixedFixes a bug with text form fields and input of decimal numbers. (J#ANDR-243)
- FixedFixes scrolling issue in Compose DocumentView. (J#ANDR-206)
Model
- AddedAdds an
ignorePageRotation
boolean parameter to theXfdfFormatter
methods. (J#ANDR-152) - ChangedImproves performance loading a document if automatic link extraction is enabled. (J#CORE-215)
- ChangedUpdates the default signature watermark for signed documents. (J#WEB-308)
- ChangedUpgrades dependencies (J#ANDR-210, J#ANDR-122)
- ChangedKotlin to 1.9.20
- ChangedAndroid Gradle Plugin to 8.1.3
- ChangedCompose 1.5
- ChangedTarget & Compile SDK to 34
- ChangedAnd various other internal and transitive dependencies to the latest.
- ChangedUpgrades Harfbuzz to 8.2.2. (J#CORE-275)
- FixedFixes an error 'Assertion failed: Annotation ID is already known' which may happen when opening a document. (J#WEB-233)
- FixedFixes border style selection for shape annotations in Instant JSON when
strokeDashArray
is not present. (J#CORE-270) - FixedFixes rendering of tiling patterns when zooming. (J#CORE-195)
- FixedFixes XFDF export of dashed borders when cloudy borders were previously set. (J#CORE-185)
- FixedFixes Proguard consumer rules incorrectly trying to use optimize rules. (J#ANDR-167)
- FixedFixes a bug where a paste operation created the wrong annotation. (J#ANDR-208)
- FixedFixes a potential crash when showing the PopupToolbar and when initialising measurement tools. (J#ANDR-202)
- FixedFixes a rare exception when the annotation font name property may be incorrectly stored in the PDF when non-UTF-8. (J#ANDR-132)
- FixedFixes an issue where loading link annotations may incorrectly log an error. (J#CORE-281)
- FixedFixes an issue where measurement properties weren't correctly applied when importing XFDF. (J#CORE-225)
- FixedFixes an issue where text annotations imported from XFDF may not render correctly. (J#CORE-279)
- FixedFixes an issue where the wrong rich text was rendered. (J#CORE-315)
- FixedFixes 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)
- FixedFixes package names for the new digital signature APIs. (#42536)
- FixedFixes an issue with the instant Catalog example crashing in release mode. (J#ANDR-269)
- FixedFixes an issue with file paths when using Android SAF picker to choose a file save destination. (J#ANDR-261)
- FixedFix file access permission in Catalog for Android 11+. (J#ANDR-192)
- FixedFixes freetext annotation callout line ends when importing from XFDF. (J#CORE-297)
8.9.0 5 Oct 2023
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
UI
- AddedAdds a confirmation dialog when calibrating a measurement scale as clearer UX to show a scale was added to the list. (J#ANDR-12)
- AddedAdds date and time picker support for form fields. (J#ANDR-87)
- AddedAdds resize-to-fit-text functionality to the
FreeTextAnnotation
class. (J#ANDR-89) - FixedFixes an issue with freetext annotations, where the text was painted over with the background color. (J#ANDR-93)
- FixedFixes vertical positioning of popup toolbars. (J#ANDR-124)
- FixedFixes and issue where selecting small amounts of text with the redaction tool causes the text to stop getting selected. (J#ANDR-105)
Model
- AddedAdds 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)- ChangedSee our Catalog(opens in a new tab) examples
DigitalSignatureExample
andManualSigningExample
for examples on how to use the new API. - ChangedSee the migration guide(opens in a new tab) for details on migrating from our previous signature APIs.
- ChangedImproves low memory logging and OS signal handling. (#41805)
- ChangedImproves (reduces) memory usage on pages with a lot of vector graphics. (J#CORE-210)
- ChangedUpdates the HarfBuzz library to 8.2.1. (J#CORE-229)
- FixedFixes broken Kotlin API docs which can be accessed here https://pspdfkit.com/api/android/kdoc/. (#41683)
- FixedFixes an issue where embedded files were not transferred when using the PdfProcessor. (J#CORE-205)
- FixedFixes an issue where some color was lost when redacting documents. (J#CORE-201)
- FixedFixes an issue where the font name was incorrectly inherited in certain form hierarchies. (J#CORE-69)
- FixedFixes an issue with dependency clash when upgrading to Jetpack Compose 1.5+. (J#ANDR-94)
Instant
- FixedFixes the unsetting of annotation flags via Instant JSON. (J#CORE-183)
8.8.1 1 Sep 2023
UI
- FixedFixes an error where a stamp annotation wasn't rendered under certain circumstances. (#41776)
- FixedFixes bug where multi-line free-text annotations are being cut off at the bottom. (J#ANDR-38)
- FixedFixes bug where the
PDFOutlineView
occasionally crashes when hiding. (J#ANDR-35) - FixedFixes crash where the initialisation of the
MeasurementScaleView
caused a crash even when measurement tools deactivated. (J#ANDR-84) - FixedFixes the QR code scanner in the
InstantExample
. (#41733)
Model
- AddedAdds 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
. - FixedFixes a crash when trying to use the calibration tool and the tool is not enabled in the toolbar. (J#ANDR-55)
- FixedFixes an issue where rich text was converted to plain text incorrectly, missing content after new lines. (J#CORE-136)
Instant
- FixedFixes fetching of image annotation assets upon initial opening of Instant document. (J#CORE-12)
8.8.0 14 Aug 2023
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
Measurement Tools Improvements
- AddedAdds support to store and select from multiple measurement scales per document. (#41035)
- AddedAdds the ability to view measurements in fractional precision. (#40085)
- AddedAdds support for naming scales. (#40563)
- AddedAdds a new UI button to access measurement scales. (#40563)
- AddedAdds a new calibration tool to help create scales. (#40563)
- AddedAdds numerous shape drawing helpers to help draw angular lines and align points to other parts of the shape. (#40563)
- ChangedImproves 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
- AddedAdds a double click to close a polygon or polyline and finishes drawing the current shape. (#40347, #40090)
- AddedAdds a red x hint to snap close a polyline or a polygon during creation. (#40495)
- AddedAdds helper guides and snapping to the line shape drawing UI to make it easier for users to draw horizontal, vertical, and diagonal lines. (#40594)
- AddedAdds shape drawing helpers to make it easier to line up points to other points on the shape. (#40746)
- AddedAdds 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)
- ChangedImproves performance of annotation scale and resize code. (#40018)
- ChangedImproves UI by hiding the
PdfOutlineView
and thePdfDocumentInfoView
whenever the user interface is being hidden. (#39542) - ChangedUpdates the styling and behaviour of the
RedactionView
button. (#40796) - FixedFixes a bug where free text annotation text can be clipped by the border when resizing if the border is thicker than 1. (#40018)
- FixedFixes bug related to rendering of
FreeTextAnnotations
with multiple lines. (#40660) - FixedFixes not being able to shrink a free text annotation easily in the UI. (#40018)
Model
- AddedAdds additional flags
invisible
,readOnly
,locked
,toggleNoView
andlockedContents
to the flags property of annotations in InstantJSON. (#41335) - AddedAdds support for OpenType collection fonts (.otc). (J#CORE-91)
- AddedAdds support for digitally signing a document and include a certificate chain. (#40352)
- ChangedImproves AP stream generation to generate more optimal text rendering commands. (J#CORE-101)
- ChangedImproves the performance of the snapping feature in complex documents. (#40414)
- ChangedImproves embedding of OpenType CFF fonts. (#40481)
- ChangedImproves our example applications' dependency handling using Version Catalogs as well as simplifying the structure by removing the shared module. (#40007)
- ChangedImproves text rendering, particularly for languages that do not use the Latin alphabet. (#39812)
- ChangedApplies patch to libtiff to fix CVE-2023-2731. (#40657)
- RemovedRemoves duplicate Java code examples that are also in Kotlin from the Catalog app. Also removes language preference option. (#40081)
- ChangedUpdates HarfBuzz to 8.0.1. (J#CORE-129)
- ChangedUpdates the Botan library to version 2.19.3. (#40107)
- ChangedUpdates the measurement snapping threshold from 20dp to 4dp. (#40917)
- ChangedChanges the enum name
FloatPrecision
toMeasurementPrecision
. (#40085) - FixedFixes an issue if the content editor is used on a page without a font dictionary. (#40803)
- FixedFixes a potential crash in the Android font subsystem by switching to the more battle-tested Linux font subsystem. (#40587)
- FixedFixes a potential crash when parsing the reading order in an invalidly tagged PDF. (#40419)
- FixedFixes a rare crash that can happen when importing Instant JSON if an annotation has a non-default blend mode. (#39457)
- FixedFixes an issue when redacting images with a mask referencing a color. (#41558)
- FixedFixes an issue where 'borderColor' wasn't serialized for 'pspdfkit/text' annotations. (#40905)
- FixedFixes an issue where certain PDF documents couldn't be opened in Adobe Acrobat after flattening some form annotations. (J#CORE-79)
- FixedFixes an issue where exporting custom stamp annotations to XFDF and then importing them cause them to show blurry. (J#CORE-113)
- FixedFixes an issue where images could be inverted when redacting JBIG2 images. (#40341)
- FixedFixes an issue where processing would endless loop on malformed PDFs. (#40388)
- FixedFixes an issue where redaction annotations applied on pages with rotation may not appear correctly. (#25007)
- FixedFixes an issue where sometimes the wrong font is used when applying changes in the content editor. (#40663)
- FixedFixes an issue where the 'updatedAt' field in annotations wasn't preserved correctly when importing JSON. (#37490)
- FixedFixes an issue where the bold or italic attribute of a font got lost when saving changes from the content editor. (#40663)
- FixedFixes an issue where the cloudy border effect was set when importing InstantJSON annotations. (#40472)
- FixedFixes an issue where validating some digital signatures created by DocuSign may incorrectly report additional changes. (#39972)
- FixedFixes small signatures not being detected correctly on large signature form fields. (#40900)
Instant
- AddedAdds API to export Instant JSON in V1 format. See
DocumentJsonFormatter.exportDocumentJson(document, outputStream, InstantJsonVersion.V1)
. (#40611) - FixedFixes an issue where the text highlight popup bar showed disabled buttons incorrectly in Instant. (#40058)
8.7.3 13 Jun 2023
UI
- FixedFixes a bug where the back arrow during search is not pointing in the right direction when the layout is in RTL mode. (#40281)
- FixedFixes a bug which caused the back button in inspector detail views to be hidden. (#39953)
- FixedFixes 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
- FixedFixes a potential race condition when accessing font data in our core library. (#40587)
- FixedFixes an issue where text in multi line form field was cut off after two newlines. (#40504)
- FixedFixes library size increase due to shipping of unstripped OCR library. (#40614)
- FixedFixes 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) - FixedFixes a crash that occurred when the thumbnail bar was set to
PINNED
mode. (#40411)
8.7.2 15 May 2023
UI
- AddedAdds support for the
displayPageLabels
configuration option to the modular search view and the bookmarks view. (#33658) - ChangedImproves calculation of the cursor position when editing a text-block in the Content Editor. (#40014)
- ChangedContent editing inspector views can now be properly dismissed by touching outside of their view. (#40053)
- FixedFixes Settings dialog radio buttons misalignment when using a non-PSPDFKit theme. (#39970)
- FixedFixes a bug in the CustomFragmentExample where the current page was not updated in the bookmark view. (#39955)
- FixedFixes a bug with uri write permission on Android 11 devices. (#40236)
- FixedFixes the occasional wrong calculation of the vertical position of submenu toolbars. (#40277)
Model
- AddedAdds line spacing for multiline form elements and free text annotations to match that of other platforms and external PDF viewer applications. (#39224)
- ChangedInvalidate caches after the document is loaded in
PdfFragment
to avoid unsaved annotations from showing in the thumbnail bar. (#38764) - FixedFixes a Content Editing crash in the Simple example app to do with a missing transitive dependency
androidx.fragment:fragment-ktx
. (#40168) - FixedFixes a bug where the annotation toolbar did not have any menu items for large screens. (#40013)
- FixedFixes a crash when entering Content Editor in a document containing Type 3 fonts. (#3)
- FixedFixes an issue with Full-Text Search queries containing
,
characters. (#39309)
Instant
- ChangedRetains the current text selection that is visible when an inspector window is displayed during content editing. (#39974)
- FixedFixes syncing annotations from the server failing after not handling a 502 error correctly. (#40288)
8.7.0 18 Apr 2023
This release adds the Content Editor(opens in a new tab) component. You can learn more in the announcement post(opens in a new tab). If you’d like to add this component to your license, please contact our sales team(opens in a new tab) to receive a quote.
Migration guide(opens in a new tab).
UI
- AddedAdds missing default annotation tools to the default Image Document configuration. (#39837)
- RemovedRemoves 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)
- ChangedUpdates 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)
- FixedFixes a bug where form field rounding does not work when loading an XFDF file in
onDocumentLoaded()
. (#39738)
Model
- FixedFixes an issue where some annotations added to a document are not correctly exported to Instant Document JSON. (#39014)
- FixedFixes 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
- AddedAdds measurement tools to Instant for Android. (#39720)
- ChangedUpdates the Instant demo links to point to the correct Server example URL. (#39720)
8.6.0 23 Mar 2023
Migration guide(opens in a new tab).
UI
- FixedFixes a bug where the height in
dp
set in a custom style for theContextualToolbar
was not converted topx
. (#39526)
Model
- AddedAdds support for a fontSize property for redaction annotations in Instant JSON, which sets the size of the redaction overlay text. (#39017)
- AddedAdds PSPDFKit OCR library debug symbols in the release package for customers to use in the event of crashes. (#39331)
- ChangedImproves the appearance of the overlay text in redacted documents, adjusting their font size much better to fill the available space. (#3017)
- RemovedRemoves deprecated parts of the SDK: (#38427)
- Changed
SignatureFormElement#getOverlappingInkSignature
replaced bySignatureFormElement#getOverlappingSignature()
. - ChangedLegacy
PKCS7
constructor. - ChangedLegacy
PKCS7SignatureContents
constructors. - Changed
PdfThumbnailGrid#setOnDocumentSavedListener
replaced byaddOnDocumentSavedListener(OnDocumentSavedListener)
. - Changed
PdfDrawable#getPDFToPageTransformation
andPdfDrawable#updatePDFToViewTransformation
replaced bygetPdfToPageTransformation
andupdatePdfToViewTransformation
.
- ChangedUpgrades RxJava from 2 to 3. (#38838)
- ChangedYou 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'
- ChangedUpgrades the HarfBuzz library to version 7.0.1. (#36924)
- ChangedUpgrades Android Gradle Plugin to 7.4.2, Kotlin to 1.8.10, and NDK to 25.2.9519653. (#39251)
- ChangedIf 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
. - ChangedNDK upgrade means our debug symbols are back to providing full debug information after a regression in NDK v24.
- FixedFixes a crash when using a non-PSPDFKit theme and opening the
SettingsDialog
. (#39044) - FixedFixes a potential crash in low memory situations. (#39373)
- FixedFixes an issue where a background image was accidentially reverted when redacting on certain PDF pages. (#39342)
- FixedFixes the
LineIntent
andPolylineIntent
missing keys and subsequent error messages. (#39084) - FixedFixes the maximum file name length when saving a document using the sharing UI. (#38794)
8.5.1 2 Mar 2023
UI
- AddedAdds an extra styling attribute,
pspdf__loading_view_background_color
, to customise the background colour of theLoadingView
used in thePdfFragment
. (#38043) - AddedAdds the ability to customise the height of the contextual toolbar using the attribute
pspdf__contextualToolbarHeight
. (#38418) - ChangedImproves the default User Interface design with better icons, colors, and uniformity across the toolbars. (#37954)
- FixedFixes a bug where the SDK did not pick the set colour for electronic signatures. (#35706)
- FixedFixes a bug where using cursor keys while editing text triggered a page navigation. (#38722)
- FixedFixes issue where the
PdfOutlineView
could not have a custom width. (#37794) - FixedFixes 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
- ChangedImproves UI performance of the Catalog home screen by reducing unnecessary recomposition of Composables. (#37992)
- ChangedImproves
onTrimMemory
behaviour by running in coroutine scope. (#34467) - ChangedImproves text parsing and text selection. (#38089)
- RemovedRemoves un-maintained
lint-checks
module in favour of providing Catalog examples and website guides for SDK usage instructions. (#38391) - ChangedUpdates Android Gradle plugin version to 7.4.0. (#38375)
- ChangedUpdates Harfbuzz to 6.0.0. (#38024)
- ChangedUpdates deprecated
EditTextPreference
withandroidx.preference
. (#38428) - FixedFixes a crash caused by interacting with Note annotations when both Annotation Editing and Electronic Signature license features are missing. (#39095)
- FixedFixes a crash when opening the settings dialog in the Simple example app. (#38834)
- FixedFixes an issue where applying a redaction annotation may incorrectly invert the colors of certain documents. (#38722)
- FixedFixes an issue where memory usage was very high when searching large documents. (#37893)
- FixedFixes an issue where saving a PDF file with a indirect null object could cause a crash. (#39127)
- FixedFixes an issue where the file size increased too much after adding emojis. (#38393)
- FixedFixes an issue where the package versions in README.html were not updated correctly when creating the release package. (#38181)
- FixedFixes an issue where the redaction tool may incorrectly displace text in some situations. (#38642)
- FixedFixes an issue where the unicode checkmark character wasn't rendered correctly. (#36785)
- FixedFixes displaying the current page on rotation when
configuration.page()
and.restoreLastViewedPage(true)
are used together. (#37699) - FixedFixes janky
.java
file formatting throughout the codebase including public facing code and examples. (#29084) - FixedFixes some issues where the redaction tool may incorrectly remove more vector graphics than strictly necessary. (#38295)
- FixedFixes the
InlineMediaExample
Catalog example YouTube links behaviour by starting the YouTube API service in the manifest. (#38953) - FixedFixes the redaction button moving up the screen each time the user exits full screen mode. (#36079)
8.5.0 12 Jan 2023
See the announcement post(opens in a new tab).
UI
- AddedAdds two presets for the settings dialog which allow to quickly switch between two common vertical and horizontal view configurations. (#35295)
- AddedAdds a popup toolbar which allows users to view Note Annotation comments if no annotation editing license is available. (#34780)
- ChangedImproves small screen device experience by showing settings view as a fullscreen dialog. (#34055)
- ChangedImproves the annotation toolbar appearance. (#35152)
- ChangedUpdates the appearance of the
PdfThumbnailBar
. (#34977) - FixedFixes an initialization issue in the annotation inspector with the line-end property of the freetext callout annotation. (#36824)
- FixedFixes an issue where full-color items where not displayed correctly in contextual toolbars because tinting couldn't be disabled. (#19009)
- ChangedImproves
CustomAnnotationCreationToolbarExample
adding a full-color item and showcasing how to disable tinting.
- FixedFixes the release build variants for example apps Catalog and Simple. (#35923)
Model
- AddedAdds Hebrew localization. (#36047)
- AddedAdds a
ImageDocumentView
composable for loading image documents. (#36881) - AddedAdds support for converting multi-image TIFF files to multi page PDFs. (#36108)
- AddedAdds support for serializing and deserializing annotations with measurement info to the XFDF format. (#36936)
- AddedAdds support for the non-standard imagedata XFDF element in stamp annotations. (#36518)
- ChangedImproves calculation of line height when a line is wrapped in a multi-line text form. (#36385)
- ChangedImproves compatibility with other PDF software when rendering multi-line form field text. (#37072)
- ChangedImproves error handling in the
DocumentSharingController
to catch a possibleActivityNotFoundException
. (#37494) - ChangedChanges the "showAsAction" value for default menu items and adds interface OnPrepareDefaultMenuItemListener for customising these values. (#35283)
- ChangedExposes the instant record group of an annotation with
Annotation#getInstantRecordGroup()
. (#36993) - ChangedImplements two new methods
FormProvider#removeFormElementFromPage(FormElement)
andFormProvider#removeFormElementFromPageAsync(FormElement)
for deleting form fields. (#34318) - AddedAdds and incorporates a new icon set. (#35290)
- ChangedUpdates libexpat to version 2.5.0. (#37257)
- ChangedUpdates Android Gradle plugin version to 7.3.1. (#36148)
- ChangedUpdates 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.
- ChangedUpdates PDFium to version c3451daffa0e96af95b856406668e6188cb139d0. (#36256)
- ChangedUpdates SQLite to version 3.39.3. (#36337)
- ChangedUpdates the HarfBuzz library to 5.2.0. (#36547)
- ChangedUpdates the HarfBuzz library to version 5.1.0. (#35186)
- ChangedUpdates
ktlint
andspotless
to the latest versions improving public Kotlin code formatting and best practices. (#37512) - FixedFixes a crash while redacting documents containing the ' PDF operator. (#36778)
- FixedFixes an exception when importing annotations with measurement information from Instant JSON. (#36537)
- FixedFixes an issue generating PDFs from HTML when checkboxes are defined and customer stylesheets are referenced in the HTML head. (#34453)
- FixedFixes an issue when using undo/redo on shape annotations could throw an exception if Measurements are not licensed. (#37678)
- FixedFixes an issue where JPEG2000 images were rendered blurry. (#37829)
- FixedFixes an issue where form field flags weren't preserved correctly when repairing form fields. (#33878)
- FixedFixes 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)
- FixedFixes an issue where paths in content may not be rendered. (#35988)
- FixedFixes an issue where redacting certain documents may render some document pages blank. (#35776)
- FixedFixes an issue where redaction draws invalid black boxes on the page. (#37863)
- FixedFixes an issue where sharing a PDF to Google Drive did not open up the Drive app dialog. (#36095)
- FixedFixes an issue where specific PDFs could cause a crash when you quickly switch between pages. (#37498)
- FixedFixes an issue where temporary files could have been written into /. (#36239)
- FixedFixes an issue where text selection wasn't working properly on PDFs with corrupted fonts. (#32468)
- FixedFixes an issue where the font information for annotations wasn't loaded correctly. (#36933)
- FixedFixes an issue with custom font paths where subfolders in
assets
are not picked up correctly. (#36366) - FixedFixes an issue where the package versions in README.html were not updated correctly when creating the release package. (#38181)
- FixedFixes crashes related to font loading in specific documents. (#36284)
Instant
- FixedFixes an issue where syncing of a newly created annotation in a fresh document would sometimes not work. (#37552)
- FixedFixes the Annotation Eraser tool not appearing in the annotation toolbar when using PSPDFKit Instant for Android. (#37952)
8.4.1 30 Sep 2022
UI
- ChangedImproves the label for area measurements in the annotation inspector. (#35726)
- ChangedImproves Dark Theme example in the Catalog app adding a new customized style for
pspdf__popupToolbarStyle
. (#36338) - ChangedUpdates sample PDFs in Catalog app. (#32347)
- FixedFixes a potential crash during the
SystemFontManager
initialization. (#36444) - FixedFixes an issue where the measurement text view could cause a
ViewRootImpl$CalledFromWrongThreadException
. (#36280)
Model
- ChangedAvoids a crash if the
NativeTextParser
cannot be obtained. (#36445) - FixedFixed a crash by avoiding to create zero-sized bitmaps. (#36429)
- ChangedUpdates libexpat to version 2.4.9. (#36612)
- FixedFixes a crash after a
null
clipboard data was received. (#36446) - FixedFixes a license issue validating or adding annotations with measurement information via Instant JSON. (#36660)
- FixedFixes a rare crash when trying to refresh a
FreeTextAnnotation
with an invalid scaling value. (#36447) - FixedFixes an issue where AP streams weren't reliably generated for form text fields. That resulted in other readers potentially not showing the text. (#36236)
- FixedFixes an issue where certain documents could cause a crash when opening them. (#36272)
- FixedFixes an issue where font styles weren't always discovered correctly. (#35955)
8.4.0 18 Aug 2022
See the announcement post(opens in a new tab).
UI
- AddedAdds 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)
- AddedAdds 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)
- AddedAdds new style attribute to the
PSPDFKit.MeasurementTools
style to customize the background color of the pop up view. (#35821) - AddedAdds annotation inspector support for configuring page scale used for measurement annotation tools. (#33914)
- AddedAdds annotation inspector support for floating point precision used in measurement tools. (#33579)
- AddedAdds support for calibrating the length of a distance annotation in order to help set the page scale based on a known distance. (#34156, #34396)
- AddedAdds support for the Android magnifier to appear when creating and editing measurements to help with making more precise measurements. (#34110)
- AddedAdds the Measurement Tools feature including distance, perimeter, and area (elliptical, rectangular, polygonal) measurements. (#33967)
- AddedAdds the distance measurement tool used to measure the distance of a line on the page. (#33579, #34204, #34316, #34627, #34933, #35150, #35064)
- AddedAdds the perimeter measurement tool in the annotation toolbar used to measure cumulative line distances. (#34596, #35061, #35064)
- AddedAdds the polygonal area measurement tool in the annotation toolbar used to measure the area of custom-drawn shapes. (#35024, #35064)
- AddedAdds 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)
- ChangedImproves 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)
- ChangedImplements displaying the measurement value in the Annotation Editing Inspector. (#35726)
- ChangedUpdates annotation inspector z-order picker icon tint to dark blue. (#35526)
- ChangedUpdates 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)
- ChangedUpdates the Catalog examples list with new sections "Industry Examples" and "Components", and updates some of the Catalog PDF assets. (#35618)
- ChangedUpdates the default annotation toolbar groups to make room for, and add, measurement annotation tools. (#33447)
- ChangedUpdates the support magnifier (used on APIs < 29) to match the rounded corners of the native magnifier. (#35624)
- FixedFixes an issue where lines with a length less than 1 are still counted as valid. (#35716)
Model
- AddedAdds API to get measurement information on the base
Annotation
class:getMeasurementInfo
. (#34538) - AddedAdds API to set scale and precision on a
ShapeAnnotation
programmatically, thus making them measurement annotations. (#35390) - AddedAdds new
LineAnnotation
,PolylineAnnotation
,PolygonAnnotation
,CircleAnnotation
, andSquareAnnotation
constructors for creating measurement annotations programmatically. (#35071) - AddedAdds new license feature flag, "Measurement Tools", checked when configuring the annotation toolbar, creating/editing measurements, and other measurement API calls. (#34495, #34531)
- AddedAdds support for storing and retrieving measurement annotation data inside the document. (#34351)
- ChangedUpdates 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)
- FixedFixes an issue where measurement text was not getting rendered when drawing shapes very quickly. (#35419)
8.3.0 2 Aug 2022
See the announcement post(opens in a new tab).
UI
- AddedAdds
PlaygroundExample
to the Catalog app that shows how to customize the behavior of thePdfActivity
. (#35206) - AddedAdds new construction example to the Catalog app that shows how to better configure PSPDFKit to display a building floor plan. (#33433)
- AddedAdds new example
ContainedPadesSignaturesExample
to the Catalog app showcasing how to embed PKCS7 container as a PAdES Advanced Digital Signature. (#33251) - AddedAdds new menu item to the main toolbar that shows document info view. (#34480)
- AddedAdds new circle, line, line arrow, polyline, square, and polygon icons to Annotation Creation and Annotation Editing Toolbars. (#35271)
- FixedFixes a crash when a full-page rendering was requested with a width or height of zero. (#32871)
- FixedFixes an issue affecting the scrubber bar where, on certain devices, the scrolling may lead to a crash. (#32551)
- FixedFixes an issue with Jetpack Compose where the annotation inspector appears only once. (#33556)
- FixedFixes an issue with the annotation overlay implementation where the page loading spinner was not hidden correctly after a page was rendered. (#35424)
- FixedFixes permission errors when saving external files on Android 12 and higher. (#34928)
- FixedFixes the
External Document
examples in the Catalog to properly open documents from Google Drive. (#35248) - ChangedUpdates visual appearance for the document tab bar. (#34865)
Model
- AddedAdds support for PAdES (ETSI.CAdES.detached) signing method. (#33251)
- ChangedImplements
FilterSubtype
to specify the format to use when creating the signasture. - RemovedDeprecates
PKCS7SignatureContents
constructors in favor of new ones where the filter subtype can be explicitly set. - RemovedDeprecates method
PKCS7#create(byte[], KeyStore.PrivateKeyEntry, HashAlgorithm)
in favor of a new one where the filter subtype can be explicitly set.
- ChangedImproves XFDF serialization of ink annotations by including their variant. (#34354)
- ChangedImproves error reporting when an invalid license key is entered. (#33758)
- ChangedChanges the default color for annotation note to yellow, to match PSPDFKit for Web and iOS. (#34145)
- ChangedChanges 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) - FixedFix insufficient Android 12 uri permission handling in
ContentResolverDataProvider
. (#35578) - FixedFix package name for
SignatureBitmapStorage
class that was erroneously set to a wrong one. (#35273) - ChangedOverloads the method
AbstractPdfSearchView#performSearch(String, EnumSet<CompareOptions>)
adding a new parameter to customize the compare options when performing a search action. (#35217) - RemovedRemoves the
RECORD_AUDIO
permission from the Android manifest file that was erroneously added in a previous release. To delve more into the topic refer to the Audio Recording Permission(opens in a new tab) section of our guides. (#34424) - ChangedUpdates boost to 1.79.0. (#34723)
- FixedFixes a crash on Android 12 and higher when trying to persist Uri permissions for internal files. (#35535)
- FixedFixes the error "The timestamp token couldn't be parsed" that may appear with some digital signature timestamps. (#35394)
- FixedFixes an issue in the Catalog app where Kotlin examples were launched instead of Java examples. (#35103)
- FixedFixes an issue when importing a InstantDocument JSON where both a form field and a form annotation were modified at the same time. (#35454)
- FixedFixes an issue where dates weren't parsed correctly due to the parser being too strict. (#34079)
- FixedFixes 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)
- FixedFixes an issue where having huge amounts of data on the clipboard can cause a
DeadSystemException
. (#34487) - FixedFixes an issue where the
PdfSearchViewModular
visibility state is not initialized correctly, thus breaking theisShown()
method. (#34391) - FixedFixes an issue where the dialog for adding notes was transparent and causing glitches if the property
COLOR
was disabled. (#34055) - FixedFixes an issue where the file size of the PDF grew a lot when entering Arabic text into form fields. (#35381)
- FixedFixes an issue where the swipe gesture wasn't applied correctly for the horizontal paginated layout on several PDF documents. (#31886)
- FixedFixes an issue where the wrong text was highlighted when searching. (#33867)
- FixedFixes corruption of CMYK colorspace images in PDFs after redaction. (#34453)
- FixedFixes the query of potential document sharing targets for devices running Android 11 and higher. (#34542)
- FixedFixes 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
- FixedFixes a crash when trying to setup a database which violated a unique constraint. (#34027)
- FixedFixes an issue when accessing a SQLite database concurrently. (#34027)
- ChangedImproves cache handling of forms in case of exceptions by logging the message instead of crashing the process. (#34027)
- ChangedUpdates the Zlib library to version 1.2.12. (#34305)
- ChangedUpdates the Freetype library to version 2.12.1. (#34326)
- FixedFixes an issue where retrieving annotations from the
AnnotationProvider
using object numbers was returning an empty list although matching annotations were available. (#34270)
8.2.0 20 Apr 2022
See the announcement post(opens in a new tab).
UI
- AddedAdds a "Remove Signature" button to the
SignatureInfoDialog
. (#33113) - AddedAdds a cloudy annotation item to the default annotation creation toolbar. (#32909)
- ChangedDefaults border style to
BorderStyle.SOLID
for Polygon annotation. (#31998) - RemovedRemoves initial permission check from
External Document
example and shows request permission dialog with extensive info. (#16772) - FixedFixes a problem where some form fields with JavaScript formatting scripts may be incorrectly formatted with thousands separators. (#32596)
- FixedFixes a problem where the Sign overlay of unsigned signatures may incorrectly appear in some situations. (#32310)
- FixedFixes a problem where the outline elements of some documents did not point to the correct page. (#32970)
- FixedFixes a problem with the SaveAs file picker not allowing to specify a new filename. (#33023)
- FixedFixes font size calculations for freetext annotation font scaling. (#33229)
Model
- AddedAdds
getSelectedPages()
method toPdfThumbnailGrid
. (#33032) - AddedAdds more detailed logging for signature verification errors during development of custom signing implementations. (Z#28856)
- AddedAdds new methods
removeAllDocuments
andremoveAllDocumentsExceptVisible
to theDocumentCoordinator
class. (#19494) - AddedAdds support for validating RSA-PSS digital signatures. (#33006)
- ChangedImproves
PdfDocument#getPageBox
method where returned values are now normalized. Widths and heights, may no longer be less than 0. (#32764) - ChangedAvoids a
NoSuchElementException
ifDocumentView
is destroyed before it had finished layout. (#33841) - ChangedEnsures
invalidateCacheForPage
does not need to be called to refresh the page render after removing a signature withremoveSignature
. (#33095) - ChangedIncludes in the downloadable binary release the unstripped NDK symbols into the
unstrippedNativeLibs
folder. (#32864) - ChangedIncludes support for new page boundaries bleed box and trim box exposing two new types
PdfBox.BLEED_BOX
andPdfBox.TRIM_BOX
. (#33749) - ChangedUpdates Duktape to version 2.7.0. (#33161)
- ChangedUpdates Kotlin Standard library to version 1.6.10. (#34031)
- ChangedUpdates Android Gradle plugin to version 7.1.2. (#34031)
- ChangedUpdates Compose to version 1.1.1. (#34031)
- ChangedUpdates Kotlin Coroutines to version 1.6.1. (#34031)
- ChangedUpdates ReLinker to version 1.4.4. (#34031)
- ChangedUpdates Android Material library to version 1.5.0. (#34031)
- ChangedUpdates Activity Compose to version 1.4.0. (#34031)
- ChangedUpdates Lifecycle Kotlin runtime to version 2.4.1. (#34031)
- ChangedUpdates SQLite3 to version 3.38.0. (#33239)
- ChangedUpdates XMP toolkit to version 2022.02. (#32824)
- ChangedUpdates libtiff to version 4.3.0. (#33050)
- ChangedUpdates the Harfbuzz library to version 4.2.0. (#33765)
- ChangedUpdates 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)
- ChangedUpgraded the
androidx.appcompat
dependency to the latest stable version 1.4.1. (#32967) - FixedFixes a crash on
getShadowBitmap()
where theRenderScript
object might not yet be initialized. (#33668) - FixedFixes a crash when deserialising image annotations from JSON that references an incompatible existing annotation from the PDF. (Z#28946, #32861)
- FixedFixes a crash when flattening note annotations in compound documents. (#33041)
- FixedFixes a crash when rendering a specific type of documents on multiple threads at the same time. (#33110)
- FixedFixes an issue running OCR on a page that contains an image with no text. (#31709)
- FixedFixes an issue when trying to run OCR on a blank page. (#33771)
- FixedFixes an issue where
PdfFragment#handleDocumentLoadingError(Throwable, boolean)
may have anull
throwable leading to a crash. (#33903) - FixedFixes an issue where
onPageChanged
is called twice when changing page for the first time. (#19365) - FixedFixes an issue where adding a digital signature may invalidate previous ones because of some spurious rounding-related changes to the page boxes. (#32952)
- FixedFixes an issue where an old trailer was loaded in PDFs with hybrid cross-reference tables causing old information to be shown. (#32243)
- FixedFixes an issue where calling
SignatureFormField#removeSignature()
may not clear the signed signature appearance. (#32965) - FixedFixes an issue where certain form fields weren't repaired correctly. (#33878)
- FixedFixes an issue where font lookup might cause a crash because fonts weren't correctly initialized yet. (#33593)
- FixedFixes an issue where form buttons weren't able to import images with
buttonImportIcon
if they were located on pages other than the first. (#33364) - FixedFixes an issue where imported stamp annotations wouldn't be modified. (#33030)
- FixedFixes an issue where read-only signature fields may incorrectly show a "Sign" overlay. (#32310)
- FixedFixes file permission handling in the document editor which caused the popup of a dialog with wrong information about the permission status. (#32755)
- FixedFixes issues surrounding rendering Devanagari script. (#33753)
- FixedFixes libtiff CVEs
CVE-2022-0561
andCVE-2022-0562
. (#33480) - FixedFixes manual initialization so we do not automatically default to trial mode if the user fails to initialize manually. (#33577)
- FixedFixes parsing of page labels with indirect objects in the number tree. (#33657)
8.1.1 15 Feb 2022
UI
- ChangedImproves Catalog performance by minimising Jetpack Compose recomposition. (#32817)
- FixedFixes the certificate identifier name getting truncated in the
SignaturePickerFragment
. (#32717)
Model
- AddedAdds a more descriptive error when trying to sign documents with keys stored in the Android KeyStore. (#32913)
- AddedAdds support for additional manifest parameters to allow for disabling automatic initialization and proper custom font initialization. (#32330, #30651)
- ChangedUpdates Expat library to
2.4.4
. (#32841, #32790) - ChangedUpdates STB library to
2.27
. (#32326) - ChangedUpdates the Android Gradle Plugin used by all example apps to version
7.1.0
. (#32839) - FixedFixes an issue where the user is incorrectly prompted if the changes should be discarded when exiting the
DocumentEditor
with unsaved changes. (#5905, #32557) - FixedFixes a
NullPointerException
when callingDocumentView#removeListeners()
before thedocumentPopupToolbarCoordinator
initialization. (#31762) - FixedFixes a glyph rendering issue when new lines are used in form fields. (#31733)
- FixedFixes an issue where objects were rendered with the wrong color due to non-compliant color values. (#30102)
- FixedFixes an issue where the redaction tool may leave some old PDF object references if the page contents are an array of content streams. (#32926)
- FixedFixes null pointer access violation if clipboard data cannot be accessed on Android 12. (#32661)
- ChangedUpgrades the
androidx.appcompat
dependency to the latest stable version1.4.1
. (#32967)
8.1.0 25 Jan 2022
UI
- FixedFixes StampAnnotation flags not being properly applied to layout parameters. (#27426, #31848)
- FixedFixes a crash when putting data on the clipboard without the necessary permission. (#31692, #29215)
- FixedFixes ink signature annotations getting alpha blended into form field backgrounds when they are excluded from the annotation overlay view. (#31474)
Model
- AddedAdds support for searching form field contents when the option to search annotation contents is enabled. (#26502)
- RemovedDeprecated
setOnDocumentSavedListener
and introducedaddOnDocumentSavedListener
/removeOnDocumentSavedListener
, because overwriting the default implementation withsetOnDocumentSavedListener
broke the document editor. (#31550) - ChangedUpdates the HarfBuzz library to 3.1.0. (#31771)
- ChangedUpgrades UID generation for the
MemoryDataProvider
from SHA1 to SHA256. (#28673) - FixedFixes
PdfThumbnailGrid.setDocumentEditorSaveAsEnabled
andsetDocumentEditorExportEnabled
being ignored if set before the thumbnail grid was shown. (#31678, #31789) - FixedFixes a bitmap retention issue that could lead to out-of-memory situations in documents with many shape annotations. (#31154)
- FixedFixes a crash in PDFActivity when creating an options menu with incomplete PDF-parameters. (#32271, #28906)
- FixedFixes a crash when trying to calculate tab ordering for documents. (#24082)
- FixedFixes a crash when trying to dismiss a SignatureFragment while a fragment transaction is already in progress. (#32301, #28906)
- FixedFixes a crash when trying to open an invalid URI in an external activity. (#32270, #28906)
- FixedFixes a crash when trying to render an empty bitmap. (#32359, #28906)
- FixedFixes a stability issue accessing the file system that can happen in rare situations. (#32467)
- FixedFixes an issue where persisting dates or times in forms may be off by one hour in some situations. (#32201)
- FixedFixes an issue with file access when loading custom fonts when instantiating
AnnotationCreationSpecialModeHandler
. (#27712) - FixedFixes importing of Instant Document JSON containing image annotations onto a rotated page. (#32021)
- FixedFixes importing of Instant Document JSON containing multiple radio buttons of the same label. (#31855)
- FixedFixes importing of Instant Document JSON where image annotations have been moved. (#31945)
- FixedFixes memory leak when closing documents with form fields. (#31557)
- FixedFixes rendering black when a screen annotation with image is tapped. (#31584)
- FixedFixes the annotation image picker not working on Android API 30+. (#31915)
8.0.2 30 Nov 2021
UI
- FixedFixes the current page of the DocumentState not being kept in sync with the open document. (#31689)
- FixedFixes an issue where manual document alignment for the document comparison feature would produce incorrect results for rotated pages. (#31681)
Model
- ChangedExposes the
getExportValue
method for theCheckBoxFormElement
type. (#25122) - ChangedHandles exception when dispatching tap onto form element before a page is ready. (#30274)
- FixedFixes a
Magnifier
issue whereonDetachedFromWindow
calls would crash the application under certain conditions. (#31700) - FixedFixes an issue where annotations weren't always rendered in the correct z-order. (#31671)
- FixedFixes an issue where the appearance stream of unsigned signature fields wasn't rendered. (#31015)
Instant
- ChangedImproves the behavior of reauthentication before accessing the document of an
InstantDocumentDescriptor
. (Z#27871) - ChangedImproves the level of detail in log messages when failing to access the record store to help diagnosing obscure I/O errors. (#31815)
8.0.0 7 Oct 2021
See the announcement post(opens in a new tab).
This release adds the Electronic Signatures(opens in a new tab) and built-in support for Jetpack Compose(opens in a new tab) via the DocumentView
composable function(opens in a new tab). If you'd like to add Electronic Signatures to your license, please contact our sales team(opens in a new tab) to receive a quote. To learn more about the breaking changes introduced with the new APIs, check out our migration guide(opens in a new tab) for this release.
UI
- AddedAdds built-in support for Jetpack Compose via the
DocumentView
composable function. (#30779) - AddedAdds support for Electronic Signatures.
- AddedAdds a new signing UI with the
ElectronicSignatureFragment
, along with associated APIs, as part of the Electronic Signatures component. (#29282) - AddedAdds new public ID
R.id.pspdf__menu_option_signature
for a signature creation button in the main toolbar. (#28065) - AddedAdds new styleable attributes
pspdf__signatureIcon
andpspdf__signatureIconActivated
for the signature creation button in the main toolbar. - AddedAdds new configuration option
PdfActivityConfiguration#isSignatureButtonPositionForcedInMainToolbar(boolean)
to set the signature creation button position in the main toolbar.
- AddedAdds automatic free text annotation font resizing when scaling the annotation using the bottom right corner scale handle. (#29382)
- AddedAdds document alignment feature to improve the existing document comparison functionality. (#30461)
- AddedAdds
DocumentComparisonDialog
class that can be used to align two versions of a document and generate a comparison between them. - ChangedUpdates the existing
DocumentComparisonExample
to showcase the new document comparison and alignment features.
- ChangedImproves precision of scrolling and zooming operations within
PdfFragment
as well as precision of calculations performed byViewProjection
. (#31214) - RemovedRemoves
PdfActivityToolbarApi
class which was not used by PSPDFKit for Android. (#30836) - FixedFixes
PdfActivity
immersive mode inset handling on API 29+ devices. (#30190) - FixedFixes a crash that could happen when navigating to a page containing a newly created
LinkAnnotation
. (#30232) - FixedFixes ink signature annotations getting alpha blended into form field backgrounds when they are excluded from the annotation overlay view. (#31474)
- FixedFixes the
isCopyPasteEnabled
configuration option not being respected. (#30654)
Model
- ChangedImproves rendering non-latin text (like Arabic) when selecting specific fonts. (#30517)
- ChangedReduces memory consumption when encoding JPEG images. (#31205)
- ChangedReduces memory consumption when PDF objects need compressing. (#31317)
- ChangedRenames methods on
PdfDrawable
to follow the SDK-wide camel casing convention. (#31186)- RemovedDeprecates
updatePDFToViewTransformation()
andgetPDFToPageTransformation()
. - AddedAdds
updatePdfToViewTransformation()
andgetPdfToPageTransformation()
.
- ChangedUpdated FreeType to version 2.11.0. (#30900)
- ChangedUpdated libjpeg-turbo to 2.2.1. (#30900)
- ChangedUpdates HarfBuzz to 3.0.0. (#31113)
- ChangedUpdates our compile SDK version to Android API level 30. (#30316)
- FixedFixes a potential race condition when validating a digital signature and adding a trusted certificate happens at the same time. (#31305)
- FixedFixes an assertion if the rotation property was removed from an annotation. (#31173)
- FixedFixes a potential crash on certain devices when rotating the device. (#30871)
- FixedFixes a problem where a PDF table of contents (outline) may link to the wrong page. (#30070)
- FixedFixes a rare crash that may happen when rendering a PDF. (#29843)
- FixedFixes a very occasional crash when parsing stamp annotations that contained images references to invalid indirect objects. (#31093)
- FixedFixes 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) - FixedFixes an issue where a digital signature may incorrectly report a certificate validation error. (#30521)
- FixedFixes an issue where fonts were not correctly included in the PDF resulting in wrongly rendered free text annotations. (#30115)
- FixedFixes an issue where highlight annotations used the wrong blend mode after importing with Instant JSON. (#30537)
- FixedFixes possible undefined behavior validating digital signature data. (#31179)
- FixedFixes signature form fields not being included when using a license purchased after April 2021. (#30950)
Instant
- AddedAdds support for Instant Document Permissions. (#29789)
Examples
- AddedAdds Catalog examples for Electronic Signatures and splits out the Digital Signature and Electronic Signature examples. (#30878)
- ChangedUpdates the custom signing UI examples to use the new Electronic Signatures UI. (#30561)
7.0.0 13 Jul 2021
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
UI
- AddedAdds configurable minimum annotation size through
PdfConfiguration.Builder#setMinimumAnnotationSize()
. (#20200) - ChangedImproves API documentation for custom annotation selection background. (#27677)
- ChangedImproves the
Annotation Selection Layout
example where the custom configuration for the annotation selection layout was lost after a page rotation. (#27678) - ChangedUpdates the main toolbar icons for creating note annotations, showing outline section, printing, showing the reader view, opening settings, and creating a new signature. (#28669)
- FixedFixes
PdfActivity
immersive mode inset handling on API 29+ devices. (#30190) - FixedFixes an issue where calling
AnnotationProvider#hasUnsavedChanges()
on the UI thread leads to ANR. (#28656) - FixedFixes an issue where callout annotation text was rendered incorrectly. (#27600)
- FixedFixes an issue where ink annotation bounding boxes were incorrectly rotated. (#27148)
- FixedFixes an issue where read-only ink annotations that were created while the eraser tool was active could be erased. (#27944)
- FixedFixes an issue where switching tabs while having annotation selected could result in duplicated annotations. (#29875)
- FixedFixes an issue where tapping outside page bounds while an annotation tool was selected would end the annotation editing mode. (#28633)
- FixedFixes an issue where the app would crash when requesting camera access from the system. (#27609)
- FixedFixes an issue where the selection UI could display the wrong bounding box for programmatically created annotations on rotated pages. (#28242)
- FixedFixes an issue where the WebView wouldn't be properly finished after dismissing a LinkAnnotation. (#28965)
- FixedFixes a crash that could happen when navigating to a page containing a newly created
LinkAnnotation
. (#30232)
Model
- AddedAdds a new method to set custom fonts for typed signatures
Signature#setAvailableFonts(LinkedHashSet<Font>)
(#28416)- AddedAdds 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.
- AddedAdds support for blend mode in all annotations when using Instant JSON. If
blendMode
is not specified, it defaults tonormal
. (#29582) - AddedAdds the ability to open TIFF images as Image Documents. (#28776)
- ChangedChanges minSdkVersion from API 19 (KitKat) to API 21 (Lollipop). (#24917)
- ChangedUpdates FreeType to 2.10.4.179. (#28676)
- ChangedUpdates HarfBuzz to 2.8.0. (#28598)
- ChangedUpdates libjpeg-turbo to 2.0.90. (#27771)
- ChangedUpdates the Botan library to 2.18.0. (#29123)
- FixedFixes 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) - FixedFixes a problem where a document signed with a timestamp would not validate correctly. (#29380)
- FixedFixes a problem where an ECDSA signature in IEEE 1363 format would not validate correctly. (#29380)
- FixedFixes a rendering issue for specific documents that have font resources with /Widths that are to small to render. (#28103)
- FixedFixes an issue when setting form field datetimes that have JavaScript formatting. (#27939)
- FixedFixes an issue where JavaScript code was not executed correctly. (#29283)
- FixedFixes an issue where OCR would fail if no text is on the page. Now the call returns successfully. (#29527)
- FixedFixes an issue where an invalid digital signature would return the same error code more than once. (#27512)
- FixedFixes an issue where certain timestamps would not be preserved because of an incorrect sanitization step. (#27720)
- FixedFixes an issue where deleting a note annotation could incorrectly print an error message to the log. (#28240)
- FixedFixes an issue where form fields were not interactive after a document with JavaScript was merged with another document. (#28052)
- FixedFixes an issue where importing a 'goToRemote' without a page index would fail. (#29616)
- FixedFixes an issue where importing unknown actions using Instant JSON failed. (#29814)
- FixedFixes an issue where loading from a checkpoint for a document failed in certain instances. (#27576)
- FixedFixes an issue where negative values didn't include thousand separators when being formatted by AFNumber_Format in JavaScript. (#28188)
- FixedFixes an issue where not all data was shown on a small amount of documents containing hybrid cross-reference streams. (#28713, #24258)
- FixedFixes an issue where paths could accidentally be filled in, even though only the border should have been painted. (#28699)
- FixedFixes an issue where redactions of paths could fail with
Coordinate outside allowed range
if the path coordinates were very large. (#29791) - FixedFixes an issue where some digital signatures with indefinite length structures were not validated correctly. (#26983)
- FixedFixes 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)
- FixedFixes an issue where some signatures with timestamps couldn't be parsed correctly and returned an error. (#28642)
- FixedFixes an issue where text extracted from an image using OCR was not selectable on the macOS Preview.app. (#28329)
- FixedFixes an issue where the bounding box of automatically generated link annotations wasn't large enough. (#27608)
- FixedFixes an issue where the framework would write unnecessary entries to the PDF trailer dictionary. (#28755)
- FixedFixes an issue where the signature description was cut off in narrow signature fields. (#27540)
- FixedFixes an issue with OCR where no text was found if the text on the page was relatively large. (#29512)
- FixedFixes an issue where the Instant JSON would contain redundant data after removing a form field. (#29671)
- FixedFixes a crash that could happen when opening documents and image documents at the same time in different threads. (#29468)
Instant
- AddedAdds support for the Instant Comments component. (#28345)
- AddedAdds support for specifying blend mode for shape annotations in Instant JSON. (#29081)
- AddedAdds 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) - FixedFixes a lock inversion that could lead to a deadlock. (#29743)
- FixedFixes an issue where flattened Instant Comments on rotated pages didn't correctly display text. (#28272)
6.6.1 6 May 2021
Model
- ChangedUpdates Expat to 2.2.10. (#27472)
- ChangedUpdates OpenJPEG to version 2.4.0. (#27917)
- FixedFixes an issue in the text parser where space characters were being omitted from the returned text. (#28886)
- FixedFixes an issue where
selectedResultIndex
from saved state exceeds the search results' upper bounds causing an IllegalArgumentException. (#27665) - FixedFixes 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)
- FixedFixes an issue where a cache miss in the annotation cache could lead to a crash when using compound documents. (#25594)
- FixedFixes an issue where calculating the tab order failed with
database is locked
or similar SQLite errors. (#24082) - FixedFixes an issue where list boxes would not render text when a item is selected if there was no DA field present. (#28536)
UI
- FixedFixes an additional issue where the signature description was cut off in narrow, short signature fields. (#27540)
- FixedFixes an issue where custom scale handle drawables would be shown in the wrong corner on rotated pages. (#27679)
- FixedFixes an issue where pages sizes were calculated incorrectly after resizing the
PdfFragment
causing overlay view sizes to be wrong. (#27864) - FixedFixes 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(opens in a new tab).
Migration guide(opens in a new tab).
UI
- AddedAdds support for setting bold and italic fonts via
FreeTextAnnotation#setFontName()
. (#25843) - ChangedImproves annotation selection UI customization by introducing
AnnotationSelectionViewThemeConfiguration
. (#26212)- AddedAdds
AnnotationSelectionController#getAnnotationSelectionViewThemeConfiguration()
to get the theme configuration used to customize the annotation selection view. - AddedAdds
AnnotationSelectionController#setAnnotationSelectionViewThemeConfiguration(AnnotationSelectionViewThemeConfiguration)
to set a theme configuration to customize the annotation selection view. - AddedAdds new Java example
AnnotationSelectionViewStylingActivity
that shows how to customize the annotation selection layout.
- FixedFixes an issue affecting some foreign languages where the inline search layout had the wrong spacing when no results were found. (#24577)
- FixedFixes 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) - ChangedImproves documentation for custom annotation selection background as this feature is not supported by callout annotations. (#27677)
- FixedFixes an issue where callout annotation text was rendered incorrectly. (#27600)
- FixedFixes an issue where ink annotations' bounding boxes were incorrectly rotated. (#27148)
- FixedFixes an issue where the app would crash when requesting camera access from the system. (#27609)
Model
- AddedAdds a new document signature integrity status for when the digital signature type that is being validated is not supported. (#25030)
- AddedAdds constant field
WidgetAnnotation.FONT_SIZE_AUTO
which can be used withsetFontSize()
to enable automated font sizing for form fields. (#25595) - AddedAdds diagnostic information to
SigningFailedException
. (Z#22316) - AddedAdds method
WidgetAnnotation#setFontSize()
to set the font size for text form fields. (#23522)- ChangedRenames
WidgetAnnotation#getTextSize()
togetFontSize()
. The old method is now deprecated and will be removed with PSPDFKit 7 for Android.
- AddedAdds new version of
sqlite3
used in full text search. Upgrading from version 3.27.0 to 3.34.0. (#27459) - AddedAdds support for finding the correct form field type in non-conforming PDF files. (#26459)
- AddedAdds support for parsing multiple certificates inside a single
.pem
file. (#26396) - AddedAdds support for validating PAdES B digital signatures. (#25153)
- AddedAdds the option to change the vertical text alignment for
FreeTextAnnotation
s andWidgetAnnotation
s: (#23523)- AddedAdds
FreeTextAnnotation#set/getVerticalTextAlignment()
to set and get the vertical text alignment. - AddedAdds
WidgetAnnotation#set/getVerticalTextAlignment()
to set and get the vertical text alignment.
- ChangedImproves font selection process for bold and italic fonts. (#26719)
- ChangedImproves how certificate expiration in digital signatures is handled. (#27047)
- ChangedImproves performance loading some documents with broken internal links (named destinations). (#24398, #26099)
- ChangedImproves performance with path drawing by removing unnecessary path operations. (#25922)
- ChangedImproves rendering performance of documents with lots of image patterns. (#26186)
- ChangedImproves simplified and traditional Chinese font selection. (#26674)
- ChangedDigital signatures don't show framework version numbers when inspected using third party software. (#26183)
- ChangedReduces the memory required to load PDF documents by 15% to 35%, depending on the document. (#27182)
- RemovedRemoves DeviceYearClass(opens in a new tab) dependency that has been now deprecated, and adds an in-house implementation that does not require a third-party library to optimize the default configuration. (#24036)
- ChangedUpdates Botan to 2.17.1. (#26794)
- ChangedUpdates Duktape to 2.6.0. (#26435)
- ChangedUpdates Kotlin to 1.4.21. (#26805)
- ChangedUpdates the Android Gradle Plugin used by all example apps to version 4.1.1. (#26806)
- FixedFixes a problem where signing a document again after filling a form field may invalidate existing digital signatures. (#25637)
- FixedFixes a problem where some DER-encoded signatures may not be validated correctly. (#25757)
- FixedFixes a problem where the signature reason, name or location may not appear correctly if they contain non-ASCII characters. (#26671)
- FixedFixes an assert that was triggered by malformed documents that contained fonts that were not indirect objects. (#26450)
- FixedFixes an issue in the Document Editor when adding an item to a imported page. (#25837)
- FixedFixes an issue where OCR could not be performed on a certain image due to an incorrect render scale. (#26118)
- FixedFixes an issue where an app would crash on trying to load an embedded file in a PDF document created using multiple data providers. (#26023)
- FixedFixes an issue where appearance streams weren't re-generated when using the processor even though 'NeedAppearances' was set in the PDF. (#26123)
- FixedFixes an issue where documents with high object numbers were identified as corrupt. (#26062)
- FixedFixes an issue where form calculation was triggered when setting an empty string on a form field that didn't have a value. (#26345)
- FixedFixes an issue where importing annotation appearance streams from XFDF would not work. (#25100)
- FixedFixes an issue where partially redacted curved path objects may be misdrawn. (#26698)
- FixedFixes an issue where paths overdraws resulting in incorrect shapes. (#27330)
- FixedFixes duplication of newly created pages in the Document Editor. (#26074)
- FixedFixes rendering a wrong color if the color was using a ICC color profile and the color was out of bounds. (#26535)
- FixedFixes text clipping for form fields exceeding their
maxLen
due to programmatic changes. (#26340) - FixedFixes the PDF JavaScript function
getNthFieldName
to return the FQN of the form field. (#26144) - FixedFixes an issue where loading from a checkpoint for a document failed in certain instances. (#27576)
- FixedFixes 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.
- FixedFixes CVE-2020-15999 in upstream dependency Freetype. (#26610)
6.5.2 24 Sep 2020
UI
- AddedAdds new style attributes to the
PSPDFKit.AnnotationSelection
style to customize annotation selection UI: (#25552)- AddedAdds 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
. - AddedAdds
pspdf__rotationHandleDrawable
style attribute to change the drawable of the rotation handle. - AddedAdds
pspdf__backgroundDrawable
to change the background drawable of the annotation selection layout.
- ChangedImproves 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)
- FixedFixes an issue related to tabbed documents where under certain conditions switching document may lead to an ANR. (#24693)
- FixedFixes an issue where
PdfFragment
could become unresponsive when opening PDF documents with many pages and forms. (#25911) - FixedFixes 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)
- FixedFixes an issue where the input
EditText
inside the custom stamps dialog would use the wrong input type and accept multi-line text. (#25871) - FixedFixes an issue where the keyboard was not correctly hidden when a free text annotation was selected but not in writing mode. (#25886)
- FixedFixes an issue where the zoom level of protected documents was not calculated correctly. (#24934)
Model
- AddedAdds support for PEM format PKCS#1 private keys for use with digital signatures. (#24919)
- ChangedImproves Processor behavior when license doesn't include the forms component. (#24604)
- ChangedImproves font rendering in forms with Chinese, Japanese, Korean and Thai characters. (#24337)
- ChangedImproves log reducing noise in the OCR Library by removing unnecessary log messages in release mode. (#25532)
- ChangedEnhances the flattening of note annotations by rendering the root comment rather than the note icon. (#22673)
- ChangedOCR now uses NEON and AVX intrinsics for better performance. (#24870)
- ChangedUpdates HarfBuzz to version 2.7.2. (#25717)
- FixedFixes FTS queries with three or more words when searching for an exact match when using the unicode tokenizer. (#25068)
- FixedFixes 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)
- FixedFixes a crash that could happen when creating form fields. (#25806)
- FixedFixes a problem where some certificates with CRL distribution point extensions may not be validated correctly. (#24660)
- FixedFixes an issue where appearance streams of form field widgets weren't preserved correctly. (#25550)
- FixedFixes an issue where Bézier paths were drawn incorrectly when a miter limit was set. (#25758)
- FixedFixes an issue where form elements were included in the page rendering which shouldn't have been. (#25799)
- FixedFixes an issue where form fields may not be editable in some cases. (#23123)
- FixedFixes an issue where image annotations could not be imported from XFDF files. (#25100)
- FixedFixes an issue where text form fields weren't displayed correctly after flattening due to their appearance stream being wrong in the original document. (#24918)
- FixedFixes an issue where the digital signature advanced properties contained the signature creator twice. (#25611)
- FixedFixes an issue where warning messages were displayed in other readers when flattening a signature form field. (#25923)
- FixedFixes duplicate string occurrences when copy and pasting from documents with duplicate content. (#25108)
- FixedFixes form field JavaScript actions in the generated documents when merging two or more documents together. (#25603)
- FixedFixes 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)
- FixedFixes 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
- AddedAdds new
AnnotationSelectionViewStylingExample
that shows how to customize the annotation selection layout. (#25552) - AddedAdds new
PdfFromImageExample
which shows how to convert image files to PDF files using thePdfProcessor
. (#24996)
6.5.1 28 Jul 2020
UI
- ChangedImproves scrolling to page in continuous mode so that the scrolling goes to the beginning of the page, not the middle. (#24364)
- FixedFixes an issue where document scrollbars were not visible when using
PdfFragment
inside a custom activity. (#24174) - FixedFixes an issue where paste option is available on document long-press even if disabled by
PdfConfiguration
. (#24685) - FixedFixes 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
- ChangedImproved handling of native references which could previously lead to performance issues in documents with with large numbers of annotations. (#23587)
- FixedFixes a problem where signing a document with existing digital signatures may invalidate them. (#24780)
- FixedFixes 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)
- FixedFixes an issue where objects rendered with the Overlay blend mode didn't always render correctly. (#24298)
- FixedFixes an issue where our text parser returned descending characters from the line above the intended search area. (#24709)
- FixedFixes an issue where text with word or character spacing is shifted after redaction has been applied. (#24476)
6.5.0 30 Jun 2020
See the announcement post(opens in a new tab).
UI
- AddedAdds
values-v21/dark_theme.xml
which holds API 21+ theme overrides forPSPDFKit.Theme.Dark
. (#24511)- ChangedSets
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
- AddedAdds support for OCR (optical character recognition) processing. (#24247)
- AddedAdds a new Maven artifact
com.pspdfkit:pspdfkit-ocr
that can be added as dependency to an app for integrating OCR capabilities. - AddedAdds 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
. - AddedAdds enum class
com.pspdfkit.document.processor.ocr.OcrLanguage
which lists all languages that are currently supported for performing OCR on. - AddedAdds method
performOcrOnPages(Set<Integer>, OcrLanguage)
toPdfProcessorTask
. - AddedAdds
OcrExample
to Catalog app.
- ChangedUpdates GSL to version 3.1.0. (#24480)
- ChangedUpdates HarfBuzz to version 2.6.7. (#24477)
- FixedFixes an issue where resolving broken named references inside PDF dictionaries could lead to crashes. (#24599)
- FixedFixes a very rare crash on certain documents when multiple pages were rendered at the same time. (#24598, #24626)
- FixedFixes an endless loop while trying to repair form field. (#23901, #24597)
- FixedFixes an issue where umlauts were displayed wrong in certain documents because the wrong encoding was used when shaping the text. (#24465)
6.4.0 8 Jun 2020
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
UI
- AddedAdds new Reader View component for displaying reflowed PDF content. (#23959)
- AddedAdds
com.pspdfkit.ui.PdfReaderView
that can be added to any view hierarchy for displaying reflowed document content. - AddedAdds 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)
. - AddedAdds a
ReaderViewExample
to the Catalog which demonstrates how to configure and usePdfReaderView
inside aPdfActivity
instance.
- AddedAdds a warning toast message when saving a digitally signed document fails using the default
DocumentSigningListener
. (#24166) - FixedFixes 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) - FixedFixes an issue where color selection buttons in the signature picker dialog were not displayed. (#24121)
- FixedFixes an issue where high-res page rendering is not working properly on Android devices running API < 24. (#24069)
- FixedFixes an issue where shape annotations could be drawn outside of the page. (#23873)
Model
- AddedAdds the
OfficeToPdfConverter
which allows you to perform conversion from office documents to PDF documents using a remote PSPDFKit Server instance. (#24201) - AddedAdds support for
file:///android_asset/
URIs when usingSignatureGraphic.fromBitmap(android.net.Uri)
. (#24081) - ChangedImproves quality of fallback font rendering. (#24136)
- ChangedImprove style sheet parsing to recognize font names better. (#23968)
- RemovedRemoves framework internal
PageLayout
class from public API. (#24318) - ChangedUpdates
PdfProcessorTask#mergePage()
to auto-rotate the page to match the rotation of the destination page. (#23858) - FixedFixes a dangling pointer upon destruction of PSPDFKit. (#24387)
- FixedFixes a possible
UntaggedSocketViolation
strict mode violation that could be emitted by the internal framework code. (#23688) - FixedFixes a problem where the asset name of a screen annotation would not be decoded correctly in some cases. (#24269)
- FixedFixes a problem where the font name of a free text annotation would not be decoded correctly in some cases. (#24269)
- FixedFixes an issue where flattening of form fields on pages with an offset artbox would cause a visual shift of form elements. (#23385)
- FixedFixes an issue where combo boxes with attached JavaScript actions would fail to execute the attached actions when changing their value. (#23120)
- FixedFixes an issue where non-latin text wouldn't render correctly. (#23287)
- FixedFixes 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) - FixedFixes an issue where text was rendered incorrectly when the 'comb' option was used. (#24395)
- FixedFixes an issue where wrong characters were displayed in multi-line form fields. (#23317)
- FixedFixes edits to the page binding not being saved in certain documents. (#24115)
- FixedFixes warnings that were logged due to unused FlatBuffers properties. (#24412)
Instant
- AddedAdds 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) - FixedFixes an issue where receiving and decoding yet unsupported annotation types could lead to a crash. (#23752)
Examples
- AddedAdds
HideRevealAnnotationsCreationExample
that shows how to add two special annotations that can be used to obscure the document. (#23544) - AddedAdds
TeacherStudentExample
that shows how to swap between documents and sync view state, annotations, and bookmarks. (#23546) - AddedAdds
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) - AddedAdds
PersistentAnnotationSidebarExample
showing how to put a list of all annotations in a persistent sidebar next to aPdfUiFragment
. (#24401) - ChangedUpdates the Android Gradle Plugin used by all example apps to version
3.6.3
. (#23995)
6.3.0 13 Apr 2020
See the announcement post(opens in a new tab).
UI
- AddedAdds support for changing the background color and hiding the sign here overlay that is shown in signature form fields. (#14685)
- AddedAdds
Pdf[Activity]Configuration#showSignHereOverlay()
to enable and disable the sign here overlay arrow being shown. - AddedAdds
PdfActivityConfiguration#enableMagnifier()
to enable and disable the magnifier being shown. - AddedAdds new style attribute
pspdf__signHereOverlayBackgroundColor
to control the background color of the sign here arrow. This should be added topspdf__FormSelection
style.
- AddedAdds support for keeping multiple
PdfFragment
s in the same view hierarchy. (#23619) - AddedAdds
PdfUiFragmentBuilder#pdfFragmentTag()
to configure a custom tag to be used for the internally hostedPdfFragment
. - AddedAdds
activityClass()
toPdfActivityIntentBuilder
andInstantPdfActivityIntentBuilder
that accept Kotlin'sKClass
type as activity class. (#23681) - ChangedImproves multimedia UI by adding the black background to the videos and by not allowing overlapping control bars. (#19279)
- ChangedImproves search performance by filling the page cache with already parsed pages. (#15947)
- FixedFixes an issue where undo/redo did not revert/reapply the last action after importing a document in Document Editor. (#23361)
- AddedAdds method
PdfDocumentEditor#addPages(int, List<NewPage>)
to allow Document Editor to import multiple pages to a destination index.
- FixedFixes a possible
NullPointerException
that could be emitted while quickly switching between opened tabs. (#23440) - FixedFixes a potential
IllegalStateException
that could have been thrown when trying to render the image of a recycled page view. (#23591) - FixedFixes an issue where "Accepted" and "Rejected" stamps border size changed slightly when rotated. (#19404)
- FixedFixes an issue where Redo command might have failed after importing a document in Document Editor. (#23362)
- FixedFixes an issue where
PdfFragment
could get stuck while loading password protected document. (#23521) - FixedFixes an issue where annotation inspector did not save properties of edited callout annotations to annotation preferences. (#23441)
- FixedFixes an issue where document outline and document info views were not updated after switching documents. (#23427)
- FixedFixes an issue where items in the annotation list were displayed in the wrong order. (#23469)
- FixedFixes an issue where the soft keyboard did not hide after dismissing the note editor by tapping outside of its dialog window. (#23650)
- FixedFixes an issue where under certain conditions a crash could occur when the password view was displayed in a Xamarin Forms application. (#23300)
- FixedFixes an issue where it was possible to create invisible redaction annotations. (#19716)
Model
- AddedAdds KDoc support(opens in a new tab) available offline in the binary release. (#16045)
- AddedAdds new
getTargetFormFieldsAsync()
method toAbstractFormAction
. (#16968) - APIThe
id
passed in forMenuItem
that containssubmenuIds
now always containsgroup
to differentiate it from simple items. (#23262)- ChangedExisting 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. - ChangedFor your own menu item groupings make sure to pass in the newly added ids when creating items with sub item.
- AddedAdded 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
.
- APIDeprecates
OnTextSelectionPopupToolbarShowListener
. This class will be removed with PSPDFKit 7 for Android. (#23487) - ChangedUpdates Kotlin to 1.3.71. (#23832)
- ChangedUpdates NDK to version 21.0.6113669. (#23426)
- ChangedUpdates ReLinker to
1.4.1
. (#23633) - ChangedUpdates RxJava to
2.2.7
and RxAndroid to2.1.1
. (#23518) - ChangedUpdates
PdfUiFragment
to internally use the child fragment manager, this fixes a crash that could happen in our react-native wrapper. (#23673) - ChangedUpdates the Android Gradle Plugin to 3.6.2. (#23449)
- ChangedImproves consumer proguard rules. (#23658)
- RemovedRemoves
-renamesourcefileattribute SourceFile
rule since it caused issues with some bug reporting solutions. - ChangedIgnores Proguard warnings for
com.pspdfkit.internal
.
- FixedFixes a potential issue resulting in data loss after saving. (#23474, #23485)
- FixedFixes an issue flattening form fields correctly when the
ArtBox
of the page contains an offset. (#23385) - FixedFixes an issue that caused a crash when rendering certain pages from multiple threads. (#23209, #23339)
- FixedFixes an issue where document save listener was not notified when saving image documents. (#23472)
- FixedFixes an issue where loading multiple unavailable documents into the
DocumentCoordinator
could lead to crash. (#23705) - FixedFixes 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)
- FixedFixes an issue where shared image documents were empty. (#23416)
- ChangedDocument save methods of the image document's
PdfDocument
now throwUnsupportedOperationException
. UsesaveIfModified()
on theImageDocument
instance instead.
- FixedFixes an issue where spacing between words was far too large. (#23439)
- FixedFixes an issue where the HTML-to-PDF converter could not be initialized on devices using the AOSP
WebView
instead of Chromium. (#23776) - FixedFixes 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)
- FixedFixes an issue where values of text form fields were only visible after being selected. (#23652)
- FixedFixes 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)
- FixedFixes potential document corruption when incremental saving encrypted documents. (#23689)
- FixedFixes some rare stability issues when filling a form document with JavaScript scripts. (#23443)
Instant
- AddedAdds support for stamp annotations in Instant. (#19737)
- AddedAdds detailed error message when Instant connection fails. (#23574)
- FixedFixes an issue where documents shared from Instant did not contain annotations. (#23377)
Examples
- ChangedImproves Kotlin examples coverage in Catalog. (#11429)
- ChangedShows language badges (Kotlin or Java) next to each example in the examples list.
- AddedAdds a configuration option to the Catalog preferences for choosing the preferred programming language. Kotlin is now the default preferred language.
- AddedAdds Kotlin version for most existing examples.
- ChangedImproves the structure of Catalog and Instant examples. (#23534)
- ChangedRenames the Instant example package to
com.pspdfkit.instant.example
. Renames the Catalog package tocom.pspdfkit.catalog
. - ChangedExtracts shared example code into a module named
shared
which is now used by both of these examples.
6.2.0 20 Feb 2020
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
- ChangedUpdates the Android Gradle Plugin to 3.5.3. (#23079)
UI
- RemovedDeprecates
setPdfView()
,performApplyConfiguration()
,getPdfParameters()
andgetHostingActivity()
inPdfActivity
andPdfUiFragment
. These symbols were never meant for public usage and will be removed with the next major version. (#22933) - ChangedMoves 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)- RemovedDeprecates
PSPDFKitViews#getFragment()
, usegetPdfFragment()
defined on eitherPdfActivity
orPdfUiFragment
.
- AddedAdds 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.
- AddedAdds localized strings for British English (
en-rGB
locale). (#23092) - AddedAdds support for undoing the removal of annotations after using the "Clear All" button inside the annotation list. (#20310)
- AddedAdds
PdfOutlineView#setUndoManager()
to configure the undo manager that is used for tracking annotation removals.
- ChangedImproves animations when scrolling to search results in inline search. (#22921)
- ChangedImproves document loading and UI performance. (#23166)
- ChangedImproves performance when zooming pages with multiple ink or stamp annotations.
- ChangedImproves document loading times for larger documents when the license supports digital signatures.
- AddedAdds
PdfDocument#getDocumentSignatureInfoAsync()
to retrieve the signature info in a non-blocking manner.PdfDocument#getDocumentSignatureInfo()
should no longer be called on the main thread.
- ChangedImproves document loading performance when having the redaction UI disabled using the
PdfActivityConfiguration.Builder#setRedactionUiEnabled()
. (#22927) - ChangedImproves page rendering performance. (#22298)
- ChangedIncreases priority for rendering visible pages.
- ChangedOptimizes time to prepare annotation overlay.
- ChangedDelays display of page loading view. This improves feeling when switching to pages that are rendered fast or have cached rendering.
- ChangedImproves property inspector behavior. (#22072)
- Changed
PropertyInspectorCoordinatorLayout
now internally uses bottom sheet implementation from the material components library. - FixedFixes property inspector in immersive mode.
- RemovedDeprecates
setResizable()
andisResizable()
inPropertyInspector
. Property inspector does not support resizing anymore.
- ChangedImproves share dialog by automatically sanitizing the initial document name. (#23240)
- ChangedChanges 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)
- ChangedMultiple 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)
- ChangedSound annotations recording is now disabled when microphone is not available on the device. (#23215)
- ChangedUpdates the icon for creating note annotations. (#23052)
- ChangedUpdates 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"
- FixedFixes 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)
- FixedFixes a possible
IllegalArgumentException
that could have been thrown when saving document info when page binding was unknown. (#23273) - FixedFixes an issue where JavaScript function
buttonImportIcon
did not scale imported images correctly. (#22967) - FixedFixes an issue where annotations that were being created were rendered behind already added annotations instead of on top of them. (#22619)
- FixedFixes an issue where callout annotations would be rendered incorrectly after rotating the page using the document editor. (#22911)
- FixedFixes an issue where editing rotated callout annotations would break their layout.
- FixedFixes an issue where long-pressing a page which was not readily loaded would sometimes cause a crash. (#22973)
- FixedFixes 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)
- ChangedThe editing button is now hidden in the document info view when we detect that the current document is not writable.
- FixedFixes an issue where opening a tab that has the inline search view open would also open the keyboard again. (#23088)
- FixedFixes an issue where some strings were not translated correctly if the locale was not supported on the device. (#23271)
- FixedFixes an issue where text in multiline free-text annotations could be cut-off until selected. (#22982)
- FixedFixes an issue where the thumbnail grid performance would degrade when it was loaded alongside other views. (#23098)
- FixedFixes an issue where touching the screen with a second finger while annotating would remove the current drawing. (#23283)
- FixedFixes a possible
IllegalStateException
that could be thrown inPdfThumbnailGrid
after enabling user interface. (#23373)
Model
- APIMoves 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) - AddedAdds custom lint check to ensure that
android:configChanges
is not configured forPdfActivity
classes. (#22543) - AddedAdds support for HTML-to-PDF conversion. (#22660)
- AddedAdds
HtmlToPdfConverter
as an entry point for this API. - ChangedThis feature requires HTML to PDF Conversion enabled in your license.
- AddedAdds stricter validation to digital signature containers created externally. (#23011)
- AddedAdds support for incrementally saving encrypted documents. (#22722)
- AddedAdds support for the JavaScript function 'doc.gotoNamedDest'. (#18957)
- AddedAdds support for validating digital signatures created by DocuSign. (#22191)
- ChangedImproves license check error messages to be more user friendly. (#12904)
- ChangedImproves performance of JPEG decoding by enabling SIMD instructions. (#22797)
- ChangedImprove compatibility with macOS 10.15 Preview for annotation notes in the sidebar. (#22791)
- FixedFixes PDF Javascript when scripts are encoded in UTF-16. (#23044)
- FixedFixes a problem where encrypted documents could not be digitally signed correctly. (#22722)
- FixedFixes a problem where some PDF pages may not be rendered correctly. (#22767)
- FixedFixes a rare problem where the application may terminate unexpectedly after loading a document or setting a form field value. (#22924)
- FixedFixes an issue that caused a blank page after flattening annotations on a certain document. (#22279)
- FixedFixes an issue where
PdfDocument#wasModified()
incorrectly returnedfalse
after Document JSON import. (#19378) - FixedFixes an issue where characters weren't escaped correctly when exporting XFDF. (#22844)
- FixedFixes an issue where low-res rendering got triggered after the page has been recycled, leading to the crash. (#22972)
- FixedFixes an issue where opening a certain document with form fields caused a crash. (#23001)
- FixedFixes an issue where popup annotations were positioned incorrectly. (#22730)
- FixedFixes an issue where some PDF JavaScript calculations did not work correctly. (#23043)
- FixedFixes an issue where text on form fields was occasionally rendered with incorrect rotation on rotated pages. (#22854)
- FixedFixes an issue where the file size optimization algorithm didn't run. (#22809)
- FixedFixes an issue where multiple JavaScript functions (for example
mailDoc
) did not parse their arguments correctly. (#23257) - FixedFixes an issue with creating a Submit Form action from JSON without action flags. (#22784)
- FixedFixes empty text form fields not rendering their background color. (#23263)
- FixedFixes an issue where document checkpointing would not work when the UID of the document contained symbols that are not allowed in paths. (#12893)
Examples
- AddedAdds catalog example that shows how to create a filterable thumbnail grid by combining the custom view logic with PDF processor. (#23192)
- FixedFixes an issue with the
AesDataProvider
when reopening a document right after saving it. (#23190) - FixedFixes the
VerticalScrollbarExample
not working correctly with larger documents. (#22952) - FixedFixes the Instant example not working on API 28 and up because
android:usesCleartextTraffic
was set tofalse
. (#22908)
6.1.1 15 Jan 2020
UI
- ChangedImproves clipping behavior of free text annotations with overflowing content. (#22218)
- ChangedImproves 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) - FixedFixes a
MissingWebViewPackageException
that could be thrown when invokingPdfMediaDialog
when the system WebKit package was not installed. (#22712) - FixedFixes a possible
NullPointerException
that could be thrown when invokingUriAction
for Youtube links without the Youtube Android Player library. (#22686) - FixedFixes 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) - FixedFixes an issue where pages would not be restored when
android:configChanges
was configured on thePdfActivity
. (#22684)
Model
- ChangedImproves
InputStreamDataProvider
by making sure it is thread safe. (#22568) - ChangedImproves complex script text rendering. (#22573)
- ChangedImproves the error message that is produced when a failure occurs while restoring the last viewed page of a document. (#22428)
- FixedFixes a possible crash when using document with huge number of annotations (10 thousands). (#19761)
- FixedFixes an issue where a form field element appearance stream was regenerated accidentally. (#21618)
- FixedFixes an issue where text is not displayed in small freetext annotations. (#22514)
- FixedFixes an issue where the application could crash if loading password protected documents in quick succession. (#22662)
- FixedFixes an issue with form calculations if one of the form fields contained multiple form elements. (#22675)
- FixedFixes the
LicenseFeature
enum being obfuscated. (#22850)
Instant
- ChangedDisables annotation rotation when using Instant since it is not yet fully supported by Instant nor Web. (#22606)
- FixedFixes a deadlock that could occur when changes were accumulated while a sync was already in progress. (#22703)
6.1.0 16 Dec 2019
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
- ChangedPSPDFKit is now built with Gradle 5.6.4. (#22566)
- ChangedUpdates the Android Gradle Plugin to 3.5.2. (#22565)
- ChangedUpdates the AppCompat library to version 1.1.0. (#22143)
- ChangedUpdates 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://nutrient.io/support/request/ or via mail to [email protected].
For more information on private API usage, see our online guide at https://pspdfkit.com/guides/android/announcements/unsupported-internal-symbols/.
UI
- RemovedDeprecates
DefaultEmbeddedFileSharingController
, useDefaultDocumentSharingController
instead. (#22382) - RemovedDeprecates multiple methods inside
DocumentSharingIntentHelper
. (#22379)- RemovedDeprecates
DocumentSharingIntentHelper.createChooser()
since its functionality regressed on devices running Android 10. UseIntent#createChooser()
together with an implicitIntent
instead. - RemovedDeprecates
DocumentSharingIntentHelper.queryMailToActivities()
. UseDocumentSharingIntentHelper#queryIntentActivities()
using anIntent
havingIntent#ACTION_SENDTO
and amailto:
URI.
- AddedAdds UI for changing the eraser tool thickness. (#15695)
- ChangedThe 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.
- AddedAdds new
pspdf__eraserOutlineColor
style attribute to configure the outline of the eraser tool while erasing.
- AddedAdds
OverlayViewProvider
which allows you to overlay views on a page. (#9176)- AddedAdds
PdfFragment#addOverlayViewProvider()
andPdfFragment#removeOverlayViewProvider()
to add and remove customOverlayViewProvider
. - AddedAdds
OverlayLayoutParams
to control positioning of overlaid views on the page.
- AddedAdds
AnnotationOverlayRenderStrategy
which allows you to control how annotations are rendered when displayed in annotation overlay mode. (#19540)- AddedAdds
PdfFragment#setAnnotationOverlayRenderStrategy()
for setting the current render strategy. - AddedAdds
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. - AddedAdds
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. - ChangedUpdates
AnnotationOverlayExample
with an ability to control overlay render strategy.
- AddedAdds support for custom document outlines. (#22058)
- AddedAdds
PdfOutlineView#setDocumentOutlineProvider()
for setting aDocumentOutlineProvider
. - AddedAdds
OutlineElement#Builder
for creatingOutlineElement
instances programmatically.
- AddedAdds support for Google TalkBacks forward and backward navigational gestures. (#22109)
- AddedAdds support for fill color property when creating and editing ink annotations. (#22203)
- AddedAdds
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) - AddedAdds
onPrepareFormElementSelection()
toOnFormElementSelectedListener
that can be used to prevent form element selection by returningfalse
from this method. (#22062) - AddedAdds support for multi-line bookmark titles. (#20712)
- AddedAdds
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) - ChangedImproves performance when quickly scrolling through document pages. (#22067)
- ChangedImproves scrolling behaviour when in paginated mode by making it harder to accidentally change pages. (#21809)
- ChangedThe file picker which is used when saving a document after redaction now pre-fills the default file name. (#22254)
- AddedAdds overload for
FilePicker#getDestinationUri()
that gives control over the default file name that is used by the system file picker. - FixedFixes an issue where the document title returned by
ContentResolvedDataProvider
would be the file name including the file extension.
- FixedFixes an issue where annotations that were being created were rendered behind already added annotations instead of on top of them. (#22619)
- FixedFixes a crash that would happen when adding and removing annotation replies. (#22456)
- FixedFixes a possible
NullPointerException
that could be thrown when creating annotation eraser preview in annotation inspector. (#22441) - FixedFixes a possible exception caused by accessing
getAnnotationPreferences()
orgetAnnotationConfiguration()
inPdfFragment
before views were created. (#22485) - FixedFixes a possible unhandled
NullPointerException
when accessingNavigationBackStack
while initializingPdfActivity
. (#22430) - FixedFixes an issue where the Android share sheet was truncated on API 29. (#22360)
- FixedFixes an issue where the transparency of a stamp annotation loaded from a PNG image would be discarded upon sharing. (#22381)
- FixedFixes 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) - FixedFixes an issue where coordinate conversions on
ViewProjection
did not consider the document view scroll positions. (#22297) - FixedFixes an issue where custom title set via
DocumentDescriptor#setTitle()
was not displayed in the document title view. (#22460) - FixedFixes an issue where the text size of free text annotations would shrink when rotating the device. (#22115)
- FixedFixes an issue where image stamps could get distorted when resized immediately after rotating. (#21870)
- FixedFixes an issue where page rendering could get stuck if the page contained small annotations. (#21590)
- FixedFixes an issue where the title of a tab could falsely change after rotating the device. (#22163)
- FixedFixes an issue where text in auto-sized free text annotations would be cut off when changing the border thickness to small values. (#22455)
- FixedFixes an issue where the modular search would not restore search results after changing the device orientation. (#21914)
- FixedFixes an issue where toolbar items would appear black on API 19. (#22544)
- FixedFixes an
ArrayIndexOutOfBoundsException
which would happen in apps targeting API 29 when saving edited document inside the document editor. (#22594) - FixedFixes class loading issue that could happen during a configuration change. (#22326)
Model
- APIHides the default constructor of the
DocumentJsonFormatter
class which only exposes static methods. (#22308) - AddedAdds
Annotation#getUuid()
to access the UUID which is auto-generated for each annotation. (#21899) - AddedAdds custom linter rule to warn when using experimental APIs. (#22016)
- AddedAdds support for Image Documents with transparency. (#18907)
- AddedAdds support for redaction annotations to Instant JSON. (#21389)
- ChangedImproves font selection to prefer fonts which are already part of the document in more cases. (#22530)
- ChangedImproves memory usage while searching documents containing many annotations. (#22367)
- ChangedImproves performance of the Redaction component so that big documents are redacted quicker. (#22102)
- ChangedUpdates Duktape to version 2.5.0. (#22476)
- ChangedUpdates HarfBuzz to version 2.6.2. (#21686)
- FixedFixes ISO8601 timezone support in instant json. (#21148)
- FixedFixes a crash related to multi-threading and font loading. (#22387)
- FixedFixes a possible
ExceptionInInitializerError
that could be thrown when loading system fonts. (#22447)- AddedAdds
Font
constructor for creation directly from default typeface. - ChangedMarks result of
Font#getDefaultFontFile()
as@Nullable
. Fonts created directly from default typeface do not have any font files. - ChangedHides font picker in annotation inspector in unlikely case where fonts could not be loaded from the system.
- FixedFixes a rare situation where setting form field flags may cause a deadlock. (#19942)
- FixedFixes an issue where annotation additional actions may not be deserialized correctly. (#21983)
- FixedFixes an issue where certain high resolution images weren't rendered. (#22322)
- FixedFixes an issue where certificates with multivalue RDNs may not be parsed correctly. (#22221)
- FixedFixes an issue where deleting or moving of pages in a PDF did not update the document outline. (#21620, #22048)
- FixedFixes an issue where signature graphics created from transparent PNG lost alpha information. (#22386)
- FixedFixes an issue where some filled form fields would not show their content correctly. (#22100)
- FixedFixes an issue where text entered in certain form fields was rendered incorrectly. (#21700)
- FixedFixes an issue where the redaction tool would not work correctly when selecting text in specific document. (#22486)
- FixedFixes stability issues related to color space management. (#21529)
- FixedFixes widget annotation rotation property persistence when coming from instant JSON. (#21552, #21621)
Instant
- ChangedReduces network traffic when loading additional layers of the same document. (#21787)
- ChangedUpdates OkHttp dependency to 4.2.1. (#21881)
Examples
- ChangedCleans up simple example app. (#22400)
- FixedFixes an issue where
DownloadedFilesObserverService
in catalog could open documents after saving. (#22266)
6.0.3 7 Nov 2019
UI
- AddedAdds
PersistentTabsExample
that shows how to persist opened tabs of aPdfActivity
inside the user's shared preferences. (#22080) - AddedAdds
getCustomTitle()
method toDocumentDescriptor
. Use this method to retrieve custom document title set viasetTitle()
. (#22103) - ChangedImproves annotation inspector reveal animation when keyboard is visible. (#20117)
- ChangedEnables 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) - ChangedUpdates the annotation creation menu item icon so it better fits with the material design. (#21997)
- FixedFixes an issue where
ImageDocumentUtils#isImageUri()
returnedfalse
for file-basedUri
s that had an image extension. (#22081) - FixedFixes an issue where custom fonts provided when initializing PSPDFKit were not handled correctly. (#22041)
- FixedFixes an issue where custom fonts were not rendered inside FreeTextAnnotations.
- ChangedCustom fonts are now included in font picker inside annotation inspector.
- FixedFixes an issue where highlighted page in thumbnail bar was set to 0 after rotating page. (#21076)
- FixedFixes an issue where the
PdfActivity
did not properly save the view state when usingPdfActivity#setConfiguration()
. (#21536)
Model
- AddedAdds
hasBorder()
method toBorderStylePreset
that returnstrue
if the preset represents visible border. (#22205) - ChangedIncreases 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) - FixedFixes
PdfUiFragment
not implementingPdfActivityComponentsApi
and missing those methods in its API. (#22036) - FixedFixes an issue if a TrueType font collection has more than 32 fonts. (#22148)
- FixedFixes an issue where form repairs were done too eagerly. (#20786)
- FixedFixes an issue where some properties of a widget annotation were not persisted when the document was saved. (#21546)
- FixedFixes an issue where using a big size for the digital signature container may abort the digital signing process. (#22130)
Instant
- FixedFixes 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
- ChangedPSPDFKit is now built with Gradle 5.6.2. (#21072)
- ChangedUpdates the Android Gradle Plugin to 3.5.1. (#21782)
UI
- ChangedImproves
PdfActivity
by adding support for selecting annotations and form elements using only the keyboard. (#21312) - FixedFixes 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) - FixedFixes an issue where screen timeout set via UI or
setScreenTimeout
was reset when changing activity configuration. (#20122)
Model
- AddedAdds support for printing array structures from JavaScript code inside a PDF. (#19063)
- FixedFixes a crash when using the processor on certain documents with very deep object hierarchies. (#21674)
- FixedFixes a performance regression when rendering with an ICC based color space. (#21776)
- FixedFixes a rare deadlock when rendering certain documents. (#21856)
- FixedFixes a regression that caused certain link annotations to not work. (#21709)
- FixedFixes a rendering error where the font
ArialMT
wasn't selected correctly. (#21744) - FixedFixes an issue where a digital signature applied to a certain kind of document may not show correctly in third party PDF readers. (#18943)
- FixedFixes an issue where page click causes a crash due to the missing page state. (#21548)
- FixedFixes issues with transparent image stamp annotations created from PNG files. (#11996)
Instant
- FixedFixes a possible crash when loading annotations failed in certain Instant documents. (#21617, Z#15606)
- FixedFixes an issue where free-text annotations synced via Instant could have their bounding boxes clipped. (#21396)
6.0.1 04 Oct 2019
UI
- ChangedImproves signature validation messages for signatures with expired certificates. (#21335)
- ChangedPrevents scrolling when tapping the edge on a zoomed page to improve user experience. (#21663)
- FixedFixes a crash that could happen when the state of the
PageLayout
was accessed after it was recycled. (#21645) - FixedFixes a possible
NullPointerException
when accessing context inLinkAnnotationHighlighter
. (#21610) - FixedFixes a visual glitch in outline tabs icons after changing page binding. (#21438)
- FixedFixes an issue where compound hide action lead to glitchy transition for affected annotations. (#21570)
- FixedFixes an issue where free-text callout line end was displayed incorrectly. (#21672)
- FixedFixes an issue where the
ANNOTATION_NOTE
was ignored for freetext annotations. (#21090) - FixedFixes an issue where the redaction button was not hidden when redacting to a new file. (#21517)
Model
- FixedFixes an issue when using multi-threaded rendering. (#18582)
- FixedFixes an issue where documents using certain kind of fonts may cause the app to be terminated unexpectedly. (#21626)
- FixedFixes an issue where the z-index wasn't preserved when flattening annotations. (#21385)
6.0.0 20 Sep 2019
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
- ChangedUpdate Kotlin to 1.3.50. (#21380)
- ChangedUpdates Botan to version 2.11.0. (#20549)
- ChangedUpdates Duktape to version 2.4.0. (#20954)
- ChangedUpdates the Android Gradle Plugin to 3.5.0. (#21070)
UI
- AddedAdds
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)- AddedAdds
PdfUiFragmentBuilder
to create newPdfUiFragment
instances. - AddedAdds
PdfUi
, an interface containing methods that are shared by both thePdfActivity
as well as thePdfUiFragment
. - RemovedRemoves
PdfActivityApi
, this was replaced byPdfUi
.
- AddedAdds 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)
- AddedAdds
AnnotationTextResizingConfiguration
to control in which direction free text annotations can scale automatically.
- AddedAdds UI for annotation z-index reordering. (#21264)
- AddedAdds reordering annotations in the annotation outline view.
- AddedAdds buttons for reordering annotations to the inspector. When the reordering happens, the position of the annotation on the page is briefly shown.
- AddedAdds
PdfActivityConfiguration.Builder#setAnnotationListReorderingEnabled(boolean)
to set whether reordering annotations in the annotation list is enabled. - AddedAdds
AnnotationConfiguration.Builder#setZIndexEditingEnabled()
so you can enable/disable z-index editing for the particular annotation type.
- AddedAdds support for rotating stamps with custom appearance stream generators. (#20871)
- AddedAdds
isRotationEnabled()
andsetRotationEnabled()
method toAnnotationSelectionController
to control whether the rotation handle should be displayed.
- AddedAdds default interface methods for the
DocumentListener
interface. (#21189) - APIAdds new methods for converting between normalized PDF coordinates and raw PDF coordinates. (#20945)
- AddedAdds
PdfDocument#getPdfProjection()
to retrieve an instance ofPdfProjection
. - AddedAdds
PdfProjection#toRawPoint(PointF, int)
to map a normalized PDF point to a raw PDF point. - AddedAdds
PdfProjection#toNormalizedPoint(PointF, int)
to map a raw PDF point to a normalized PDF point. - AddedAdds
PdfProjection#toRawRect(RectF, int)
to map a normalized PDF rect to a raw PDF rect. - AddedAdds
PdfProjection#toPdfRect(Rect, int)
to map a raw PDF rect to a normalized PDF rect. - AddedAdds
PdfProjection#getNormalizedToRawTransformation(int)
to return a transformation matrix for converting normalized page coordinates to raw page coordinates. - AddedAdds
PdfProjection#getRawToNormalizedTransformation(int)
to return a transformation matrix for converting raw page coordinates to normalized page coordinates. - AddedAdds
PdfFragment#getViewProjection()
to retrieve an instance ofViewProjection
. - AddedAdds
ViewProjection#toPdfPoint(PointF, int)
to convert a point in view coordinate space to a point in normalized PDF coordinate space. - AddedAdds
ViewProjection#toViewPoint(PointF, int)
to convert a point in normalized PDF coordinate space to a point in view coordinate space. - AddedAdds
ViewProjection#toPdfRect(RectF, int)
to convert a rect in view coordinate space to a rect in normalized PDF coordinate space. - AddedAdds
ViewProjection#toViewRect(RectF, int)
to convert a rect in normalized PDF coordinate space to a rect in view coordinate space. - AddedAdds
ViewProjection#getPageToViewTransformation(int, Matrix)
to return a transformation matrix for converting normalized page coordinates to view coordinates. - AddedAdds
ViewProjection#getViewToPageTransformation(int, Matrix)
to return a transformation matrix for converting view coordinates to normalized page coordinates. - RemovedDeprecates
PdfFragment#getPageToViewTransformation(int, Matrix, boolean)
. UseViewProjection#getPageToViewTransformation(int, Matrix)
instead. - RemovedDeprecates
PdfFragment#getPageToViewTransformation(int, Matrix)
. UseViewProjection#getPageToViewTransformation(int, Matrix)
instead. - RemovedDeprecates
PdfFragment#convertViewPointToPdfPoint(PointF, int)
. UseViewProjection#toPdfPoint(PointF, int)
instead. - RemovedDeprecates
PdfFragment#convertPdfPointToViewPoint(PointF, int, boolean)
. UseViewProjection#toViewPoint(PointF, int)
instead. - RemovedDeprecates
PdfFragment#convertPdfPointToViewPoint(PointF, int)
. UseViewProjection#toViewPoint(PointF, int)
instead. - RemovedDeprecates
PdfFragment#convertViewRectToPdfRect(RectF, int)
. UseViewProjection#toPdfRect(RectF, int)
instead. - RemovedDeprecates
PdfFragment#convertPdfRectToViewRect(RectF, int)
. UseViewProjection#toViewRect(RectF, int)
instead.
- AddedAdds new theme attributes to configure tab bar appearance. (#16644)
- AddedAdds new theme attribute
pspdf__tabBarStyle
to configure the tab bar style. - AddedAdds new style attribute
pspdf__tabColor
to control the color of the tab items. - AddedAdds new style attribute
pspdf__tabIndicatorColor
to control the color of the selected tab indicator. - AddedAdds new style attribute
pspdf__tabTextColorSelected
to control the color of the selected tab text. - AddedAdds new style attribute
pspdf__tabTextColor
to control the color of the tab text when not selected. - AddedAdds new style attribute
pspdf__tabIconColorSelected
to control the color of the selected tab icon. - AddedAdds new style attribute
pspdf__tabIconColor
to control the color of the tab icon when not selected. - AddedAdds new style attribute
pspdf__tabBarHeight
to control the height of the tab bar. - AddedAdds new style attribute
pspdf__tabBarMinimumWidth
to control the minimum width of a single tab item. - AddedAdds new style attribute
pspdf__tabBarMaximumWidth
to control the maximum width of a single tab item. - AddedAdds new style attribute
pspdf__tabBarTextSize
to control the text size of the tab items.
- ChangedImproves annotation editing coordination when annotation overlay is disabled. (#21377)
- ChangedImproves audio view appearance by putting it into a 'floating' container. (#20890)
- ChangedImproves performance by making password and document loading error views lazy. (#21274)
- ChangedImproves keyboard support in the
PdfActivity
by making the tab order of UI views more reliable. (#21247) - FixedFixes a visual glitch in outline tabs icons after changing page binding. (#21438)
- FixedFixes an issue where accessing the internal state of a recycled page view lead to a crash. (#21386)
- FixedFixes an issue where
PdfFragment
could not load documents after it was recreated inside aViewPager
. (#21421) - FixedFixes an issue where created annotations disappeared in certain cases when immersive mode was active. (#21252)
- FixedFixes an issue where form elements would not be fillable if their corresponding widget annotation would have the
AnnotationFlags#READONLY
flag set. (#21051) - FixedFixes an issue where no error message was displayed when clicking on a link annotation having an invalid URI. (#20840)
- FixedFixes an issue where opening and closing the keyboard in immersive mode applies the wrong inset to
PdfFragment
. (#20959) - FixedFixes an issue where resizing free text annotations could result in unhandled
NullPointerException
s to be thrown. (#20980) - FixedFixes an issue where text form elements that were configured as not scrolling would not automatically update their text size. (#20720)
- FixedFixes possible incorrect thumbnail bar padding when using the immersive mode. (#20873)
- FixedFixes a possible crash that could occur when changing pages while having annotations selected. (#21468)
- FixedFixes an issue on API 19 device, where low-resolution renderings of pages were not refreshed on recycled page views. (#21485)
- FixedFixes an issue where closing a document immediately after changing the page could result in a
NullPointerException
. (#21443) - FixedFixes an issue where the
animate
parameter ofToolbarCoordinatorLayout#displayContextualToolbar()
andToolbarCoordinatorLayout#removeContextualToolbar()
was ignored and the animation was always shown. (#21075)
Model
- APIRemoves all previously deprecated symbols. (#20504)
- RemovedRemoves
PdfFragment#getAnnotationDefaults()
. UsePdfFragment#getAnnotationConfiguration()
instead. - RemovedRemoves
PdfFragment#setAnnotationDefaultsProvider()
. UseAnnotationConfigurationRegistry#put()
instead. - RemovedRemoves
PSPDFKit#setLoggingEnabled()
. To disable logging, remove all loggers viaPdfLog#removeAllLoggers()
. Alternatively implement custom logging policy by setting multiple customLogger
s viaPdfLog#setLoggers(Logger...)
. - RemovedRemoves
AnnotationDefaultsManager
. Replaced by theAnnotationConfigurationRegistry
. - RemovedRemoves
AnnotationDefaultsProvider
. Replaced byAnnotationConfiguration
. - RemovedRemoves
com.pspdfkit.annotations.defaults.AnnotationProperty
. Usecom.pspdfkit.annotations.configuration.AnnotationProperty
instead. - RemovedRemoves
AnnotationAggregationStrategyDefaultsProvider
. UseAnnotationAggregationStrategyConfiguration
instead. - RemovedRemoves
AnnotationDefaultsAlphaProvider
. UseAnnotationAlphaConfiguration
instead. - RemovedRemoves
AnnotationDefaultsBorderStyleProvider
. UseAnnotationBorderStyleConfiguration
instead. - RemovedRemoves
AnnotationDefaultsColorProvider
. UseAnnotationColorConfiguration
instead. - RemovedRemoves
AnnotationDefaultsFillColorProvider
. UseAnnotationFillColorConfiguration
instead. - RemovedRemoves
AnnotationDefaultsFontProvider
. UseAnnotationFontConfiguration
instead. - RemovedRemoves
AnnotationDefaultsLineEndTypeProvider
. UseAnnotationLineEndsConfiguration
instead. - RemovedRemoves
AnnotationDefaultsNoteIconProvider
. UseAnnotationNoteIconConfiguration
instead. - RemovedRemoves
AnnotationDefaultsOutlineColorProvider
. UseAnnotationOutlineColorConfiguration
instead. - RemovedRemoves
AnnotationDefaultsOverlayTextProvider
. UseAnnotationOverlayTextConfiguration
instead. - RemovedRemoves
AnnotationDefaultsPreviewProvider
. UseAnnotationDefaultsProvider
instead. - RemovedRemoves
AnnotationDefaultsRepeatOverlayTextProvider
. UseAnnotationOverlayTextConfiguration
instead. - RemovedRemoves
AnnotationDefaultsTextSizeProvider
. UseAnnotationTextSizeConfiguration
instead. - RemovedRemoves
AnnotationDefaultsThicknessProvider
. UseAnnotationThicknessConfiguration
instead. - RemovedRemoves
AnnotationDefaultsStampProvider
. UseStampAnnotationConfiguration.Builder
instead. - RemovedRemoves
EraserDefaultsProvider
. UseEraserToolConfiguration.Builder
instead. - RemovedRemoves
FileAnnotationDefaultsProvider
. UseFileAnnotationConfiguration.Builder
instead. - RemovedRemoves
FreeTextAnnotationDefaultsProvider
. UseFreeTextAnnotationConfiguration.Builder
instead. - RemovedRemoves
InkAnnotationDefaultsProvider
. UseInkAnnotationConfiguration.Builder
instead. - RemovedRemoves
LineAnnotationDefaultsProvider
. UseLineAnnotationConfiguration.Builder
instead. - RemovedRemoves
MarkupAnnotationDefaultsProvider
. UseMarkupAnnotationConfiguration.Builder
instead. - RemovedRemoves
NoteAnnotationDefaultsProvider
. UseNoteAnnotationConfiguration.Builder
instead. - RemovedRemoves
RedactionAnnotationDefaultsProvider
. UseRedactionAnnotationConfiguration.Builder
instead. - RemovedRemoves
ShapeAnnotationDefaultsProvider
. UseShapeAnnotationConfiguration.Builder
instead. - RemovedRemoves
StampAnnotationDefaultsProvider
. UseStampAnnotationConfiguration.Builder
instead. - RemovedRemoves
AnnotationPreferencesManager#getBorderStyle()
. UseBorderStylePreset#getBorderStyle()
on border style preset returned viaAnnotationPreferencesManager#getBorderStylePreset()
. - RemovedRemoves
AnnotationPreferencesManager#setBorderStyle()
. UseBorderStylePreset
set viaAnnotationPreferencesManager#setBorderStylePreset()
. - RemovedRemoves
AnnotationPreferencesManager#getBorderDashArray()
. UseBorderStylePreset#getDashArray()
on border style preset returned viaAnnotationPreferencesManager#getBorderStylePreset()
. - RemovedRemoves
AnnotationPreferencesManager#setBorderDashArray()
. UseBorderStylePreset
set viaAnnotationPreferencesManager#setBorderStylePreset()
. - RemovedRemoves
PdfConfiguration.Builder#textSharingEnabled()
. UsePdfConfiguration.Builder#setEnabledShareFeatures()
withShareFeatures#TEXT_SELECTION_SHARING
,ShareFeatures.NOTE_ANNOTATION_SHARING
andShareFeatures.FREE_TEXT_ANNOTATION_SHARING
instead. - RemovedRemoves
PdfConfiguration.Builder#embeddedFileSharingEnabled()
. UsePdfConfiguration.Builder#setEnabledShareFeatures()
withShareFeatures#EMBEDDED_FILE_SHARING
instead. - RemovedRemoves
PdfConfiguration.Builder#sharingNoteEditorContentEnabled()
. UsePdfConfiguration.Builder#setEnabledShareFeatures()
withShareFeatures#NOTE_EDITOR_CONTENT_SHARING
instead. - RemovedRemoves
PdfConfiguration.Builder#setSignatureSavingEnabled()
. UsePdfConfiguration.Builder#signatureSavingStrategy()
instead. - RemovedRemoves
PdfConfiguration.Builder#setCustomerSignatureFeatureEnabled()
. UsePdfConfiguration.Builder#signatureSavingStrategy()
instead. - RemovedRemoves
PdfConfiguration#isTextSharingEnabled()
. UsePdfConfiguration#getEnabledShareFeatures()
and check ifShareFeatures#TEXT_SELECTION_SHARING
is enabled. - RemovedRemoves
PdfConfiguration#isEmbeddedFilesSharingEnabled()
. UsePdfConfiguration#getEnabledShareFeatures()
and check ifShareFeatures#EMBEDDED_FILE_SHARING
is enabled. - RemovedRemoves
PdfConfiguration#isSharingNoteEditorContentEnabled()
. UsePdfConfiguration#getEnabledShareFeatures()
and check ifShareFeatures#NOTE_EDITOR_CONTENT_SHARING
is enabled. - RemovedRemoves
PdfConfiguration#isSignatureSavingEnabled()
. UsePdfConfiguration#getSignatureSavingStrategy()
instead. - RemovedRemoves
PdfConfiguration#isCustomerSignatureFeatureEnabled()
. UsePdfConfiguration#getSignatureSavingStrategy()
instead. - RemovedRemoves
PdfActivityConfiguration.Builder#sharingNoteEditorContentEnabled()
. UsePdfActivityConfiguration.Builder#enabledShareFeatures()
withShareFeatures#NOTE_EDITOR_CONTENT_SHARING
instead. - RemovedRemoves
PdfActivityConfiguration.Builder#enableShare()
. UsePdfActivityConfiguration.Builder#enabledShareFeatures()
withShareFeatures.all()
instead. - RemovedRemoves
PdfActivityConfiguration.Builder#disableShare()
. UsePdfActivityConfiguration.Builder#enabledShareFeatures()
withShareFeatures.none()
instead. - RemovedRemoves
PdfActivityConfiguration.Builder#setSignatureSavingEnabled()
. UsePdfActivityConfiguration.Builder#signatureSavingStrategy()
instead. - RemovedRemoves
PdfActivityConfiguration.Builder#setCustomerSignatureFeatureEnabled()
. UsePdfActivityConfiguration.Builder#signatureSavingStrategy()
instead. - RemovedRemoves
PdfActivityConfiguration#isShareEnabled()
. UsePdfActivityConfiguration#getEnabledShareFeatures()
instead. - RemovedRemoves
ThumbnailBarMode#THUMBNAIL_BAR_MODE_DEFAULT
. UseThumbnailBarMode#THUMBNAIL_BAR_MODE_FLOATING
instead. - RemovedRemoves
PdfProcessorTask#addPdfToPage()
. UsePdfProcessorTask#mergePage()
instead. - RemovedRemoves
SearchOptions.Builder(Context)
. Use no parameter constructor instead. - RemovedRemoves
TextSearch(Context, PdfDocument, PdfConfiguration)
. UseTextSearch(PdfDocument, PdfConfiguration)
instead. - RemovedRemoves
Signer#OnSigningCompleteCallback
. - RemovedRemoves
Signer#signFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback)
. UseSigner#signFormField(SignerOptions)
instead. - RemovedRemoves
Signer#signFormField(SignerOptions, OnSigningCompleteCallback)
. UseSigner#signFormField(SignerOptions)
instead. - RemovedRemoves
Signer#signFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream)
. UseSigner#signFormFieldAsync(SignerOptions)
instead. - RemovedRemoves
SignaturePickerFragment#setSignaturePickerOrientation()
. Pass in the desiredSignatureOptions
toSignaturePickerFragment#show()
instead. - RemovedRemoves
SignaturePickerFragment#showSignaturePicker()
. UseSignaturePickerFragment#show()
instead. - RemovedRemoves
AnnotationCreationController#getBorderStyle()
. Use border style viaBorderStylePreset#getBorderStyle()
returned byAnnotationCreationController#getBorderStylePreset()
. - RemovedRemoves
AnnotationCreationController#setBorderStyle()
. Set in a border preset viaAnnotationCreationController#setBorderStylePreset(BorderStylePreset)
. - RemovedRemoves
AnnotationCreationController#getBorderDashArray()
. Use dash array viaBorderStylePreset#getDashArray()
returned byAnnotationCreationController#getBorderStylePreset()
. - RemovedRemoves
AnnotationCreationController#setBorderDashArray()
. Set in a border preset viaAnnotationCreationController#setBorderStylePreset(BorderStylePreset)
.
- AddedAdds
ContainedSignaturesSigner
that simplifies usage of contained digital signatures. (#21309) - AddedAdds support for extracting and attaching binary Instant JSON attachments. (#15851)
- AddedAdds
Annotation#hasBinaryInstantJsonAttachment()
to check whether the annotation has an attachment. - AddedAdds
Annotation#fetchBinaryInstantJsonAttachment()
to get an existing attachment. - AddedAdds
Annotation#attachBinaryInstantJsonAttachment()
to create a new attachment.
- AddedAdds support for redaction annotations to Instant JSON. (#21389)
- AddedAdds support for rendering Emojis in FreeText annotation and forms. (#20629)
- AddedAdds support for reordering annotations based on the z-index. (#21235)
- AddedAdds
AnnotationProvider#moveAnnotation[Async](int pageIndex, int fromZIndex, int toZIndex)
. - AddedAdds
AnnotationProvider#moveAnnotation[Async](@NonNull Annotation annotation, int zIndex)
. - AddedAdds
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`. - AddedAdds
AnnotationProvider#getZIndex(@NonNull Annotation annotation)
. - AddedAdds
OnAnnotationUpdatedListener#onAnnotationZOrderChanged(int pageIndex, @NonNull List<Annotation> oldOrder, @NonNull List<Annotation> newOrder)
that you can use to catch the annotation z-index changes.
- ChangedImproves JPEG2000 with transparency support. (#20483)
- ChangedImproves consumer Proguard configuration for use with R8. (#20745)
- ChangedImproves font rendering and fixes several edge cases. (#20930)
- ChangedImproves 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)
- ChangedImproves memory usage on complex documents. (#20970)
- ChangedImproves the stability of some PDF form operations. (#21032)
- ChangedImproves the validation of Instant JSON payloads so that case differences in properties are tolerated. (#21145)
- ChangedImproves handling of broken AcroForm dictionaries. (#21121)
- ChangedChanges
AnnotationProvider#getAllAnnotationsOfType()
to be a blocking call instead of async. (#20525) - ChangedStrengthens the validation of Instant JSON format in some corner cases. (#20748)
- FixedFixes an issue where text after signing had incorrect characters after looking at it in another viewer. (#20930)
- FixedFixes a bug in redaction rendering where the font size wasn't consistent. (#21088)
- FixedFixes a bug where measuring annotation selection layout could lead to a crash. (#20961)
- FixedFixes a problem where some dates may be incorrectly formatted as Sunday. (#20363)
- FixedFixes an issue when importing XFDF files in specific documents. (#21271)
- FixedFixes an issue where a document with too many annotations would cause a crash by exceeding the global JNI reference count. (#20977)
- FixedFixes an issue where images with the lighten blend mode didn't get rendered correctly. (#20642)
- FixedFixes an issue where loading a document would fail if it contained JPEG2000 images not specifying a color space. (#21311)
- FixedFixes pasted rotated vector stamps being double rotated which resulted in clipping. (#20916)
- FixedFixes some stability issues when fonts are loaded from a document. (#21042)
- FixedFixes some use cases where PDFs with JavaScript validation scripts may not work as expected. (#21291)
- FixedFixes page indices being incorrect after the first data provider when exporting Instant JSON from a document with multiple data providers. (#20343)
- FixedFixes a possible
NullPointerException
that could occur when changing pages while having free-text annotation selected. (#21459)
Instant
- ChangedInstant library has been merged with PSPDFKit for Android. (#20364)
- RemovedRemoves
com.pspdfkit:pspdfkit-instant
artefact from the PSPDFKit's maven repo andpspdfkit-instant.aar
from the distribution package. - RemovedRemoves
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.
- FixedFixes an issue where
InstantAnnotationProvider
has been obfuscated in release builds. (#20997) - FixedFixes an issue with transparent strokeColor in Instant JSON. (#21391)
Examples
- AddedAdds
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) - FixedFixes an issue where direct launching of Catalog examples could lead to initialization errors. (#21188)
5.5.1 8 Aug 2019
UI
- FixedFixes 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)
- FixedFixes an issue where document saving callbacks were not called after
PdfFragment
was destroyed. (#20774) - FixedFixes an issue where redactions were not correctly displayed in the annotation list. (#20738)
- FixedFixes an issue where thumbnails in thumbnail bar were too wide if the first page was wider than the others. (#20740)
Model
- RemovedDeprecates
OnSigningCompleteCallback
andsignFormField()
method that used it inSigner
. (#20815) - AddedAdds support for contained digital signatures. (#20493)
- AddedAdds
prepareFormFieldForSigningAsync()
toSigner
. Use this method to reserve space in a signature form field so that it can be signed later. - AddedAdds
embedSignatureInFormFieldAsync()
toSigner
. Use this method to embed a digital signature in a document that has been already prepared for signing. - AddedAdds
SignatureContents
interface.SignerOptions
now hassignatureContents
property that represents raw content that should be embedded as a digital signature in the document. - AddedAdds
PKCS7
that implements PKCS7 cryptographic container andPKCS7SignatureContents
that wraps the PKCS7 container as a signature contents. - AddedAdds
getHashForDocumentRange()
toPdfDocument
to hash part of the document indicated by the byte range of the prepared signature. - AddedAdds
ContainedSignaturesExample
that shows how to build customSigner
for signing a document using thePKCS7
cryptographic container.
- AddedAdds new
DocumentSaveOptions#setRewriteAndOptimizeFileSize()
method to enable additional file size optimizations when saving documents. (#20831) - ChangedImproves performance when parsing documents with many links. (#20786)
- FixedFixes an issue that may prevent that a document with some restrictions is digitally signed. (#20741)
- FixedFixes an issue where PSPDFKit always changed the PDF version to 1.7. (#20596)
- FixedFixes an issue where rotating pages using the document editor would always reset the page binding setting to left edge. (#20732)
5.5.0 26 Jul 2019
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
PSPDFKit is now built with Android Gradle Plugin 3.4.2
and Gradle 5.5.1
.
UI
- AddedAdds
enableMagnifier()
toPdfConfiguration.Builder
to control whether the magnifier should be shown when the text selection handles are touched. (#20246) - AddedAdds form elements to the annotation outline view. (#19989)
- ChangedThe "Clear All" button will now also clear data entered into form elements.
- AddedAdds new
pspdf__form_type_text_field
,pspdf__form_type_button
,pspdf__form_type_choice_field
, andpspdf__form_type_signature_field
string resources.
- AddedAdds support for navigating between pages by tapping the edges of the page. (#16500)
- AddedAdds
Pdf[Activity]Configuration.Builder#scrollOnEdgeTapEnabled()
to control whether navigating by tapping the page edges is enabled. - AddedAdds
Pdf[Activity]Configuration.Builder#animateScrollOnEdgeTaps()
to control whether these navigation events are animated. - AddedAdds
Pdf[Activity]Configuration.Builder#scrollOnEdgeTapMargin()
to control how big the area that accepts touches on the page edge is.
- AddedAdds support for the UI to display documents with a right edge binding from right to left. (#20327)
- AddedAdds page binding setting to document info view.
- AddedAdds support for the
PdfActivity
to automatically update when the page binding of the current document changes.
- AddedAdds the floating thumbnail bar - a new thumbnail bar layout that is not pinned to the bottom but displayed as a floating card. (#19999)
- AddedAdds
ThumbnailBarMode#THUMBNAIL_BAR_MODE_FLOATING
used to select floating thumbnail bar viaPdfActivityConfiguration.Builder#setThumbnailBarMode()
. - AddedAdds
ThumbnailBarMode#THUMBNAIL_BAR_MODE_PINNED
used to select pinned (old) thumbnail bar viaPdfActivityConfiguration.Builder#setThumbnailBarMode()
. - RemovedDeprecates
ThumbnailBarMode#THUMBNAIL_BAR_MODE_DEFAULT
. TheThumbnailBarMode#THUMBNAIL_BAR_MODE_FLOATING
is now used as a default value. - AddedAdds
PdfThumbnailBar#setThumbnailBarMode()
to set the mode dynamically on theThumbnailBar
. - AddedAdds
PdfStaticThumbnailBar.LayoutStyle
enum that defines two possible layout styles for the static thumbnail bar (FLOATING
andPINNED
). Also addssetLayoutStyle()
andgetLayoutStyle()
respectively. - ChangedStatic 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.
- ChangedImproves
PdfActivity
andPdfFragment
startup performance by initializing all views lazily on their first use. (#20001) - ChangedImproves animations speed of fling gesture. (#20674)
- ChangedImproves configuration resolving for annotation tool variants inside
AnnotationConfigurationRegistry
. (#20623)- ChangedPen variant now defaults to default ink variant configuration.
- ChangedImproves text selection magnification by keeping the magnifier view entirely inside the screen. (#20221)
- RemovedRemoves transparent fill color from annotation inspector for redaction annotations. (#20321)
- ChangedUpdates localized strings and adds Welsh language localization. (#20713)
- Changed
PdfOutlineView
now loads its content lazily when displayed for the first time. (#20234) - FixedFixes an issue where bottom audio view got stuck after switching tabs. (#20340)
- FixedFixes an issue where annotation list showed duplicate entries and did not hide loading indicator after annotation loading has finished. (#20698)
- FixedFixes an issue where page previews were not correctly invalidated when applying redactions to the current document. (#20322)
- FixedFixes an issue where sound annotation recording button had wrong grouping on small devices. (#20354)
- FixedFixes an issue where thumbnail bar was not being shown on some phones in landscape mode, when Android Q gestural navigation was enabled. (#20700)
- FixedFixes an issue where undo/redo did not work correctly in some cases for sound annotations and image stamps. (#20439)
- FixedFixes an issue where undoing changes made to annotation replies was not working correctly. (#20327)
- FixedFixes multiple activity leaks inside
PdfFragment
. (#20517) - FixedFixes stuttering animation when showing inspector for listbox and combobox form fields. (#20338)
Model
- RemovedDeprecates
AnnotationProvider#getAllAnnotationsOfType()
in favor ofAnnotationProvider#getAllAnnotationsOfTypeAsync()
. (#20525)- Changed
AnnotationProvider#getAllAnnotationsOfType()
will be made into a blocking call in PSPDFKit for Android 6.0.
- AddedAdds
PdfDocument#setPageBinding()
to configure the page binding of the document. (#20327)- AddedAdds
PageBinding
enum with all possible page bindings.
- AddedAdds support for exporting and importing callout freetext annotations using JSON. (#18202)
- AddedAdds support for preserving the Instant JSON id in the PDF. (#20572)
- AddedAdds support for rotating image stamps. (#19643)
- AddedAdds support for serializing and deserializing border properties of link annotations. (#20359)
- AddedAdds suppot for vertical alignment in single-line form fields when exporting or printing PDF files. (#19882)
- ChangedImproves rendering of non ASCII text. (#20189)
- ChangedImproves rendering of text in appearance streams. (#19877)
- ChangedImproves consumer Proguard configuration for use with R8. (#20745)
- ChangedPSPDFKit now preserves the appearance stream when a stamp annotation is rotated to avoid distorting it. (#15898)
- FixedFixes a problem where overriding the digital signature reserved size may corrupt the signature appearance. (#20496)
- FixedFixes an assertion when importing annotations outside the page range using XFDF. (#20424)
- FixedFixes an issue reading media boxes. (#20592)
- FixedFixes an issue where
DocumentListener
set onPdfFragment
orPdfActivity
was not called when callingPdfDocument#save()
on the document directly. (#20470) - FixedFixes an issue where form fields with calculation order may not be flattened correctly by the processor. (#20434)
- FixedFixes an issue where some documents with dropdown fields may show an arrow when the document is flattened. (#9539)
- FixedFixes very occasional text rendering problems. (#20155)
- ChangedUpdates NDK to version 20.0.5594570. (#20429)
- ChangedUpdates Expat to version 2.2.7. (#20545)
- ChangedUpdates libpng to version 1.6.37. (#19851)
- ChangedUpdates openjpeg to version 2.3.1. (#20647)
Instant
- FixedFixes a crash that would occur after applying an InstantJSON update to a document where the changes contained form field updates. (#20152)
- FixedFixes an issue where annotations could not be removed after syncing updates from Instant. (#20684)
5.4.2 26 Jun 2019
UI
- AddedAdds new
pspdf__usePageAspectRatio
attribute to thumbnail bar style. (#20245)- ChangedWhen enabled this will use the
pspdf__thumbnailHeight
and aspect ratio of your document to determine thepspdf__thumbnailWidth
.
- FixedFixes an issue inside
PdfThumbnailGrid
where deleting all pages and adding a new one may cause a crash. (#20333) - FixedFixes an issue where calling
PdfFragment#enterAnnotationCreationMode()
multiple times may cause visualization issues of the contextual toolbars. (#20172) - FixedFixes an issue where document insets were calculated wrong when form editing bar was displayed. (#20149)
- FixedFixes an issue where it was possible to edit form element while its associated
WidgetAnnotation
was not editable (i.e. having flagsREADONLY
,LOCKED
orLOCKEDCONTENTS
). (#20238) - FixedFixes an issue where it wasn't possible to undo sound annotations deletion. (#20308)
- FixedFixes an issue where annotation inspector could grow taller than the screen size rendering it unusable. (#20309)
- FixedFixes an issue where some
PropertyInspectorView
s were restored twice reporting wrong values in the UI. (#20305)- AddedAdds
PropertyInspectorView#isViewStateRestorationEnabled()
to determine whether to save the state by calling theView#saveHierarchyState
andView#restoreHierarchyState
to restore it. Defaults tofalse
.
- FixedFixes an issue where switching pages would cause the selected annotation tool variant to be lost. (#20371)
- FixedFixes an issue where text form fields were not scrolled into view when displaying soft keyboard in immersive mode. (#20251)
- FixedFixes an issue where the redaction UI would reappear after clearing all redactions. (#20323)
- FixedFixes an issue where the tab bar was cut off in immersive mode. (#20341)
- FixedFixes an issue where the text selection popup performance degraded while using it. (#20326)
- FixedFixes an issue where using the "Clear All" option in the annotation list would not update the page thumbnails. (#20330)
- FixedFixes an issue where exporting pages from Document Editor may cause a crash when the page index is not the first. (#20331)
Model
- ChangedImproves loading performance for documents with complex outlines. (#20279)
- ChangedImproves the deletion behavior for note annotations with associated popup annotations. The latter used to become "orphaned". (#19853)
- ChangedImproves the document loading performance by parsing outline asynchronously. (#20171)
- ChangedImproves
PdfDocument#getOutline()
that now parses outline on first use. This operation could take a while and should not be executed on the main thread. - AddedAdds
PdfDocument#getOutlineAsync()
for parsing outline asynchronously. - AddedAdds
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.
- ChangedImproves the performance when loading documents with many link annotations and form fields. (#20171)
- ChangedImproves automatic repair of AcroForms when loading documents with a large number of annotations. (#19990)
- FixedFixes an issue where
AnnotationConfiguration#builder()
had no implementation for sound annotation configuration. (#20292) - FixedFixes an issue where exiting annotation editing mode via toolbar, would call
OnAnnotationEditingModeChangeListener#onExitAnnotationEditingMode()
twice. (#20172) - FixedFixes an issue where proguard consumer file was missing some rules that might cause a crash on release builds. (#20286)
- FixedFixes an issue where some documents signed with invisible signatures could not be validated correctly. (#20277)
Instant
- FixedFixes an issue where "Save as" share action did not work with Instant documents. (#20140)
- FixedFixes an issue where annotations could not be removed in Instant documents. (#20337)
Examples
- FixedFixes an infinite recursion when requesting external storage permission in Document Tabs Example in Catalog app. (#20339)
- FixedFixes 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
- AddedAdds error handling for XFDF parsing in
XfdfExample
. (#20049) - ChangedUpdates the default color palettes provided when creating and editing annotations. (#19843)
- Changed
XfdfExample
now shows how to export all annotations in the document. (#20050) - FixedFixes an issue in
CustomAnnotationInspectorExample
where custom annotation color picker indicated incorrect selected color. (#20069) - FixedFixes an issue where background color and border color were not displayed correctly for free text annotations while in night mode. (#20037)
- FixedFixes an issue where in some cases
FreeTextAnnotation
preferences were not saved correctly. (#20032) - FixedFixes an issue where slider picker text values were not applied after leaving inspector. (#20043)
- FixedFixes an issue where text form fields could cause a
NullPointerException
. (#20084) - FixedFixes an issue where some simple signatures were distorted before adding them to the document. (#20090)
- FixedFixes an issue with the contextual toolbars where clicking on the close button multiple times might cause a potential crash. (#20048)
Model
- AddedAdds support to use LeakCanary 2 with PSPDFKit. (#20020)
- FixedFixes an issue that lead to the
Custom Stamp Annotations
example crashing when started. (#20044) - FixedFixes an issue where JavaScript API
doc.getField()
could get into a state where it wasn't possible to retrieve newly created form fields. (#20027) - FixedFixes an issue where closing the
Image Document
example might lead to crashes. (#20041) - FixedFixes 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) - FixedFixes an issue where the
AesDataProvider
provided with the Catalog sample app was not compatible with multithreaded rendering. (#19994)
Instant
- FixedFixes
NoClassDefFoundError
that occurred while creatingInstantClient
. (#20031)
5.4.0 23 May 2019
See the announcement post(opens in a new tab).
PSPDFKit is now built with Android Gradle Plugin 3.4.1
and Gradle 5.4.1
. This release adds a new transitive dependency to androidx.palette:palette:1.0.0
.
UI
- APIExisting API for controlling annotation editing defaults and preferences has been replaced. (#19252)
- ChangedAll interfaces and classes in package
com.pspdfkit.annotations.defaults
have been deprecated in favor of new annotation configuration API incom.pspdfkit.annotations.configuration
. - AddedAdds
AnnotationConfigurationRegistry
which manages a list ofAnnotationConfiguration
s for each annotation type or tool. Can be retrieved viaPdfFragment#getAnnotationConfiguration()
. - AddedAdds
<AnnotationType>Configuration
for each annotation type (or multiple similar types in case ofMarkupAnnotationConfiguration
andShapeAnnotationConfiguration
) that extends annotation configuration interfaces supported by that annotation type. - AddedAdds 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. - AddedAdds
AnnotationConfigurationExample
showing how to use this new API. - ChangedNote: If you wish to access static configuration builder methods (
<AnnotationType>Configuration#builder()
) from your Kotlin code, your Kotlin compiler must target Java 8.
- AddedAdds a new UI for picking colors allowing users to specify custom colors. (#7333)
- AddedAdds
androidx.palette:palette:1.0.0
as a new dependency. - AddedAdds
customColorPickerEnabled()
configuration toAnnotationColorConfiguration
,AnnotationFillColorConfiguration
, andAnnotationOutlineColorConfiguration
. - AddedAdds
setCustomColorPickerEnabled()
toAnnotationColorConfiguration.Builder
,AnnotationFillColorConfiguration.Builder
, andAnnotationOutlineColorConfiguration.Builder
. - AddedAdds
getRecentlyUsedColors()
andsetRecentlyUsedColors()
toPSPDFKitPreferences
. - AddedAdds
CustomColorPickerInspectorDetailView
which provides a UI for the user to select predefined colors as well as entering their own. - RemovedRemoves
ColorPickerInspectorDetailView.ColorPickerListener
useColorPickerInspectorView.ColorPickerListener
instead.
- AddedAdds a new improved UI for displaying bookmarks to make it easier to associate a given bookmark with a page. (#19109)
- AddedAdds
onBookmarkAdded()´ method to
BookmarkProvider.BookmarkListener`.
- AddedAdds 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)
- AddedAdds options to clear all annotations and delete single annotations to annotations outline view. (#19568)
- AddedAdds
PdfOutlineView#setAnnotationEditingEnabled()
to control whether this new feature is enabled. - AddedAdds 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.
- AddedAdds options to create underline and strike out annotations to text selection popup on larger devices. (#19963)
- AddedAdds cloudy border effects for square, circle and polygon annotations. (#9684)
- AddedAdds
setBorderEffect()
andsetBorderEffectIntensity()
toAnnotation
. Use these to set cloudy effect as well as its intensity programmatically. - AddedAdds 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
. - RemovedDeprecates border style and border dash array properties from
AnnotationPreferences
andAnnotationCreationController
. Use border style preset properties defined on both of these interfaces instead.
- AddedAdds support for sound annotations. (#11587)
- AddedAdds
SoundAnnotation
model class. - AddedAdds full UI support for playing and recording audio annotations, presented as an
AudioView
displayed above thumbnail bar. - AddedAdds
AudioModeManager
, available viaPdfFragment#getAudioModeManager()
, for controlling sound annotation playback and recording. - AddedAdds
SoundAnnotationConfiguration
that provides control over audio recording parameters. - AddedAdds
AudioExtractor
for extracting audio tracks from media files.
- AddedAdds annotation tool variants. (#10227)
- AddedAdds
AnnotationToolVariant
class which you can use to define the annotation tool variants. - AddedAdds
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. - AddedAdds a circular style indicator icon that displays the color and thickness defaults of the tool if to be selected.
- AddedAdds
AnnotationCreationToolbar.ItemToAnnotationToolMapper
class that you can register onAnnotationCreationToolbar
viasetItemToAnnotationToolMapper()
. - AddedAdds
CustomAnnotationCreationToolbarExample
to the Catalog showcasing how to implement custom tool variants to the annotation creation toolbar properly. - AddedAdds
PdfFragment#getActiveAnnotationTool()
andPdfFragment#getActiveAnnotationToolVariant()
that will return currently active annotation tool and variant. - APIInk 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. - APIStyle attributes are updated to match new styles. Also, the one that controls ink icon has been removed (
pspdf__inkIcon
).
- ChangedImproves document scrolling performance. (#19600)
- ChangedImproves text hit detection making selecting small text easier. (#12254)
- FixedFixes an issue where TTS was not properly cancelled upon leaving the
PdfActivity
. (#19873) - FixedFixes an issue where UI chrome covered document when using
UserInterfaceViewMode#USER_INTERFACE_VIEW_MODE_VISIBLE
. (#19939) - FixedFixes an issue where media annotations with autoplay flag started playing whenever any annotation on their page changed. (#19978)
- FixedFixes an issue where text markup annotations could be dragged after selected via long-press gesture. (#19919)
- FixedFixes an issue where the
PdfTextSelectionPopupToolbar
was flickering while changing text selection. (#19962) - FixedFixes an issue where exiting the annotation editing mode would discard changes from calling
setContents()
on an editedFreeTextAnnotation
while in editing mode. (#19231)
Model
- ChangedUpdates the Android Gradle Plugin to
3.4.1
. (#19789)- ChangedUpdates to Gradle 5.4.1.
- ChangedUpdates all example sources to Android Gradle Plugin
3.4.1
. - ChangedReplaced Proguard with R8 for code optimization and minification.
- AddedAdds
PdfConfiguration#allowMultipleBookmarksPerPage()
to allow you to configure whether users can add multiple bookmarks for a single page or not. (#19447) - AddedAdds
SignatureAppearance#Builder#setSignatureWatermark()
to allow you set a custom watermark for a signature appearance. (#19438) - AddedAdds support for the
Doc.documentFileName
JavaScript API. (#18775) - ChangedImproves exception message that is thrown when creating form fields with non-unique fully qualified names. (#20010)
- ChangedImproves performance of pages which hold lots of objects. (#19396)
- ChangedImproves performance when executing JavaScript actions on form fields with complex interdependent validation logic. (#19661)
- ChangedImproves results from
PdfLibrary
when the exact phrase matches are requested, and a tokenizer other than the default porter tokenizer is used. (#19685) - ChangedImproves the performance of some JavaScript calculation scripts. (#19234)
- ChangedEmbedded goto actions will go to the specified page instead of going to the first page of the embedded target document. (#10963)
- ChangedImproved automatic repair of AcroForms to support more document errors. (#19834)
- ChangedUpdate libjpeg-turbo to 2.0.2. (#18973)
- ChangedUpdates the Botan library version to 2.10.0. (#19767)
- FixedFixes a potential crash when processing large documents under low-memory conditions. (#19768)
- FixedFixes an issue creating form fields where some fields could not be retrieved later by their original keys. (#19945)
- FixedFixes an issue in the redaction of documents with monochrome inline images. (#19579)
- FixedFixes an issue when sharing a document that resulted in blank pages. (#19267)
- FixedFixes an issue where “No document set” was displayed in certain circumstances when resuming destroyed
PdfActivity
without a redaction license. (#19777) - FixedFixes an issue where QuadPoints of link annotations were saved to the PDF incorrectly. (#19427)
- FixedFixes an issue where
DocumentListener#onPageUpdated()
was not called in certain circumstances. (#19781) - FixedFixes an issue where annotations created by Apple Preview may not be copied and pasted correctly. (#19154)
- FixedFixes an issue where configuration changes while signing a document could lead to a crash. (#19281)
- FixedFixes an issue where image annotations were not added when the permission dialog was shown before. (#19589)
- FixedFixes an issue where in rare circumstances pasting content from Microsoft Word would throw an unhandled exception. (#19842)
- FixedFixes an issue where link annotations may not work correctly after a document is exported. (#19222)
- FixedFixes an issue where malformed widget annotations weren't correctly attached to the form. (#19581)
- FixedFixes an issue where read-only checkboxes may not be rendered correctly. (#19506)
- FixedFixes an issue where some JPX images may not render correctly. (#18648)
- FixedFixes an issue where text edited in form fields was incorrectly set in other form fields as well. (#19236)
- FixedFixes an issue where the
fillColor
property was ignored in Instant JSON for polyline annotations. (#19443) - FixedFixes an issue where the redaction text may not be correctly added in some scenarios. (#19703)
- FixedFixes an issue with text markup alignment on accented characters. (#18214)
Instant
- FixedFixes 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
- AddedAdds new
MergeDocumentsExample
showing how to use the document processor to merge documents. (#19300) - FixedFixes a broken link in the Instant Catalog example. (#19822)
5.3.1 11 Apr 2019
UI
- AddedAdds
showPageTemplatesLast
setting toNewPageDialog#show
,NewPageDialog#restore
, andDialogNewPageFactory()
which, if set totrue
, diplays custom page templates after page patterns provided by default. (#19433) - AddedAdds style attribute
pspdf__itemRippleBackgroundColor
to thepspdf__ThumbnailGrid
styleable, to change the ripple color for theThumbnailGrid
item selection. (#19111) - ChangedImproves performance when editing line, polyline and polygon annotations. (#19483)
- ChangedSize of created ink signatures is now relative to page size. (#19497)
- FixedFixes an issue where
DocumentListener#onPageUpdated
was not being called after creating ink signatures. (#19512) - FixedFixes an issue where
OnAnnotationUpdatedListener#onAnnotationUpdated
was called repeatedly when modifying line, polyline and polygon annotations. (#19384) - FixedFixes an issue where changes made to callout lines could not be properly undone. (#19091)
- FixedFixes an issue where ink annotations would not be visible if leaving the page before exiting the annotation creation mode. (#19509)
- FixedFixes an issue where malformed URIs were not properly managed and were leading to a crash when opening image documents. (#19432)
- FixedFixes an issue where minimal size of free-text annotations with thick border and/or large text size was too small. (#19294, #19297)
- FixedFixes an issue where stamps and free text annotations added to rotated pages were not working properly. (#19327)
Model
- AddedAdds
NewPage#hasPdfPageSource
andNewPage#hasPatternSource
to help determine the source of the new page created usingNewPageDialog
. (#19510) - ChangedImproves the performance of documents with JavaScript interactivity in many common scenarios. (#19119)
- ChangedOptimizes storage size of magic ink template file. (#19453)
- ChangedReverts AndroidX Recycler View to a stable version
1.0.0
. (#19455) - FixedFixes a problem where a form field that is made visible by a JavaScript script may not show its formatted appearance. (#19119)
- FixedFixes a rare issue when parsing outlines. (#19469)
- FixedFixes an issue where border width and border dash array of free-text annotations were not serialized properly to Instant JSON. (#19409)
- FixedFixes an issue where entering text after a PDF document script has executed may not work correctly. (#19119)
- FixedFixes an issue where free-text annotation with border was always rendered with non-transparent color. (#19097)
- FixedFixes an issue where stamps with custom ap streams were added with the wrong rotation on rotated PDF pages. (#19351)
5.3.0 26 Mar 2019
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
UI
- RemovedDeprecates
PdfFragment#setAnnotationDefaultsProvider()
. Use methods defined onAnnotationDefaultsManager
that can be retrieved viaPdfFragment#getAnnotationDefaults()
. (#19124) - AddedAdds a new Magic Ink tool that recognizes drawn shapes and converts them to shape annotations. (#18925)
- AddedAdds support for configuring the preview shown by video annotations using
coverMode
andcoverImage
options. (#18206) - ChangedInk drawing is now automatically split into ink annotations based on strokes timing and distance between drawn points. (#13019)
- AddedAdds new defaults provider
AnnotationAggregationStrategyDefaultsProvider
that can be implemented for ink annotations to control ink splitting strategy.
- ChangedImproves
PdfActivity
startup time by optimizingPdfOutlineView
creation and configuration. (#19121) - ChangedImproves annotation hit detection by using the actual shape of annotations instead of their bounding boxes to check if they have been selected. (#8782)
- ChangedImproves zooming behavior of stamp annotations with
NOZOOM
flag by moving their zoom anchor point to the annotation center. (#18983) - FixedFixes an issue where adding a new signature to the signature form field followed by the device rotation, would not invoke
OnAnnotationUpdatedListener#onAnnotationCreated()
callback. (#18948) - FixedFixes an issue where note editor for stamp annotations had transparent color. (#19094)
- FixedFixes an issue where stamp annotations with
NOZOOM
flag were rendered incorrectly at high zoom levels. (#19166) - FixedFixes the top and bottom paddings for the settings view picker mode view. (#19257)
Model
- APIAdds methods for converting
Signature
intoJSONObject
and vice-versa: (#18794)- AddedAdds static creator
Signature#fromJson()
(with or without a specified id) that parses the providedJSONObject
and creates a respectiveSignature
. - AddedAdds
Signature#toJson()
method that converts the givenSignature
to theJSONObject
.
- AddedAdds
FontStyle
to Instant JSON widget annotations. (#18083) - AddedAdds
OnSignaturePickedListener#onSignatureCreated()
to allow you to get notified when a new signature was created. (#19001) - AddedAdds a
customData
property toAnnotation
. This property can be used to store user-specified data related to Annotations. (#18927) - AddedAdds async method
executeDocumentLevelScriptsAsync()
toJavaScriptProvider
. (#18892) - AddedAdds support for modifying form fields and annotation widgets to Instant Document JSON. (#18771)
- ChangedImproves startup performance of PSPDFKit. (#19138)
- ChangedImproves the performance of documents with JavaScript interactivity in many common scenarios. (#19119)
- ChangedLoading PDF actions is now more reliable. (#18843)
- ChangedUpdate ICU to version 63.1. (#18974)
- ChangedUpdate libpng to 1.6.36. (#18972)
- ChangedUpdate zlib to 1.2.11. (#18975)
- ChangedUpdates AndroidX Recycler View to 1.1.0-alpha02. (#19100)
- ChangedUpdates build system dependencies. (#18912)
- ChangedUpdates Gradle to 5.2.1.
- ChangedUpdates the Android Gradle Plugin to 3.3.1.
- FixedFixes an issue where form fields that were made visible using JavaScript would not show their formatted appearance. (#19119)
- FixedFixes an issue exporting Instant shape annotations with transparent stroke colors. (#19120)
- FixedFixes an issue when drawing a path using a pattern with alpha transparency. (#19148)
- FixedFixes an issue when rendering text with an overlay blend mode. (#19151)
- FixedFixes an issue when setting transparent colors in annotations. (#19120)
- FixedFixes an issue where adding pages with forms using the
PdfProcessor
resulted in no AcroForms dictionary being added to the resulting document. (#18517) - FixedFixes an issue where asynchronous layout callbacks were sometimes executed after
onStop
causing a crash. (#19206) - FixedFixes an issue where documents could get opened with outdated changes after saving. (#18845)
- FixedFixes an issue where entering text after a PDF document script has executed didn't work correctly. (#19119)
- FixedFixes an issue where some layers were hidden incorrectly. (#14439)
- FixedFixes an issue where some memory may be leaked after running a script. (#19016)
- FixedFixes an issue where using
PdfDocument#save(path)
would result in corrupt digital signatures in the output document. (#18689) - FixedFixes an issue with instant ink annotation not being sent to clients. (#19325)
- FixedFixes rendering of free text annotations with vertical alignment. (#19145)
Examples
- ChangedImproves Catalog app example list. (#19193)
- ChangedCatalog app now uses
RecyclerView
instead ofListView
. - AddedAdds sticky headers for section titles.
- ChangedDisplays a toast with the class name when an example is long pressed.
- ChangedImproves Catalog app startup performance and adds splash screen. (#19162)
5.2.1 28 Feb 2019
UI
- FixedFixes AutoCAD SHX Text comments being displayed. (#15690)
- FixedFixes a potential usage of a recycled bitmap in
PdfThumbnailBar
. (#18885) - FixedFixes an issue where
ImageDocumentExample
in the Catalog was stuck on loading screen when opened multiple times. (#18844) - FixedFixes an issue where
FormsJavaScriptExample
in the Catalog app launched multiple instances ofFormsJavaScriptActivity
at the same time. (#18883) - FixedFixes an issue where contextual toolbars were not updating their internal state when receiving calls to
ContextualToolbar#setDraggable(boolean)
. (#18800) - FixedFixes an issue where deleting annotation notes would trigger unhandled exceptions when using licenses without Replies feature. (#18955)
- FixedFixes an issue where filling text form fields wasn't possible while JavaScript was disabled. (#19008)
- FixedFixes an issue where redactions created using the redaction tool did not remove text from the page. (#18841)
- FixedFixes an issue where rotating the device while adding an image stamp prevented the stamp from being added. (#18802)
- FixedFixes an issue where the current selection of pages in the document editor was not restored after orientation changes. (#16730)
- FixedFixes an issue where items in contextual toolbars did not have a selection feedback after the toolbar had been repositioned. (#19065)
- FixedFixes 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) - FixedFixes an issue with
SignaturePickerOrientation.AUTOMATIC
andSignaturePickerOrientation.LOCKED_LANDSCAPE
whereSignaturePickerDialog
was shown rotated even when the device was already in landscape mode. (#18801) - FixedFixes an issue with highlight annotations where the opacity was not updated correctly when modified and the highlighted text was aggregated into another annotation. (#18895)
- FixedFixes volume rocker navigation not working properly in double page mode. (#18827)
Model
- FixedFixes an issue where a form field with custom formatting was not formatted correctly after it was exported and re-imported as XFDF. (#18791)
- FixedFixes an issue where hiding form field via JavaScript did not work. (#18882)
- FixedFixes an issue where removing default menu items from the
PdfActivity
inonGenerateMenuItemIds
oronCreateOptionsMenu
caused the application to crash. (#18837) - FixedFixes an issue where the image of a push button may be displaced in some cases. (#18932)
Instant
- FixedFixes an issue where changing annotation properties inside note editor could change unrelated annotations. (#18954)
5.2.0 06 Feb 2019
Migration guide(opens in a new tab).
UI
- ChangedImproves handling custom menu items in the main menu toolbar of
PdfActivity
. (#6056)- APIRemoves
PdfActivityMenuManager
class. - APIRemoves
PdfActivity#getActivityMenuManager()
method. - AddedAdds
onGenerateMenuItemIds()
method to thePdfActivity
that you can override to provide a custom menu item order. - ChangedUpdates 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.
- AddedAdds support for defining custom signature storages. (#18144)
- AddedAdds
SignatureStorage
interface which you can implement to create your own signature storage. - AddedAdds
DatabaseSignatureStorage
which is our default signature storage implementation that uses SQLite. - AddedAdds
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.
- AddedAdds
PdfFragment#setDocumentInteractionEnabled()
andPdfActivity#setDocumentInteractionEnabled()
to control whether the document view will accept inputs or not. (#18135) - AddedAdds
PdfFragment#setUserInterfaceEnabled()
andPdfActivity#setUserInterfaceEnabled()
to control whether the UI will accept inputs or not. (#16791) - AddedAdds
PdfLibrary.get(path, tokenizer)
to specify the tokenizer to use for full text search. (#18054)- AddedAdds
PORTER_TOKENIZER
andUNICODE_TOKENIZER
constants to specify the tokenizer.
- AddedAdds
isFormElementClickable()
toOnFormElementClickedListener
that can be used to prevent clicks on form elements. (#16305)- ChangedExtends
CustomInkSignatureExample
with an example of how to disable click handling for signature fields.
- AddedAdds 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) - ChangedImproves automatic font size calculation for text widgets. (#18095)
- ChangedImproves copy and paste by making sure pasted annotations have a unique name. (#18525)
- ChangedImproves tab bar items by fully displaying the title and adopting ellipsis only when text length goes over
480dp
. (#18677) - ChangedAnnotation replies are now created with
HIDDEN
flag set. This fixes an issue where they were incorrectly rendered in thumbnails. (#17349) - ChangedSets minimum size for resizable catalog activities. See
<layout>
tag of theMainActivity
declaration inAndroidManifest.xml
of the catalog app. (#18406) - FixedFixes an issue where annotation note icon did not move together with annotations. (#16976)
- FixedFixes an issue where delete button in annotation replies editor did not delete annotation replies for non-note annotations. (#16977)
- FixedFixes an issue where it wasn't possible to input comma as decimal separator into form fields. (#17605)
- FixedFixes an issue where redo was prevented when undoing text while editing free-text annotation. (#18478)
- FixedFixes an issue where scaling down and the scaling up ink annotations causes the line width to get thicker. (#18645)
- FixedFixes an issue where scrollable thumbnail bar was not changing page when a thumbnail was tapped. (#18511)
- FixedFixes an issue where squiggly, underline and strikeout annotations could get displayed with opaque white background in annotation overlay. (#18737)
- FixedFixes an issue where stamps could not be rotated correctly. (#18488)
- FixedFixes an issue where text form fields with automatic text size did not fit to field width while editing. (#18594)
- FixedFixes an issue where text selection highlight color had low contrast on inverted pages. (#18742)
- FixedFixes an issue where view focus inside the reply editor was not handled properly on OnePlus devices running Oxygen OS. (#18480)
Model
- APIAdds control over PSPDFKit's logging. (#16502)
- AddedAdds
PdfLog
as an entry point for the new logging API. - ChangedYou can now achieve custom logging behavior by implementing
PdfLog.Logger
interface and registering this logger usingaddLogger()
orsetLoggers()
methods inPdfLog
. - RemovedDeprecates
PSPDFKit#setLoggingEnabled()
. UsePdfLog#removeAllLoggers()
or customLogger
that ignores all messages. - ChangedPSPDFKit 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.
- AddedAdds 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)
- AddedAdds
setMultithreadedRenderingEnabled()
toPdfConfiguration.Builder
andPdfActivityConfiguration.Builder
to control whether multithreaded rendering should be enabled for loaded documents. - AddedAdds
multithreadedRenderingEnabled
parameters to open methods inPdfDocumentLoader
to control whether multithreaded rendering should be enabled for loaded document.
- AddedAdds
SignatureAppearance
to configure how digital signatures look. (#18438)- AddedAdds
SignatureGraphic
to embed a custom graphic into the digital signature. - AddedAdds overloads to
Signer#signFormField[Async]()
that take aSignatureAppearance
. - AddedAdds
Pdf[Activity]Configuration#signatureAppearance()
to configure the appearance for every signature added.
- AddedAdds
SignatureMetadata
for attaching additional metadata to digital signatures. (#18733)- AddedAdds
PdfFragment#setSignatureMetadata()
for setting the metadata to use when signing via the provided UI. - AddedAdds
SignatureSignerDialog.Builder#signatureMetadata()
for setting the metadata to use when signing. - AddedAdds
SignerOptions
for use withSigner#signFormField[Async]()
. - RemovedDeprecates overloads of
Signer#signFormField[Async]()
that don't takeSignerOptions
, use the new overloads usingSignerOptions
instead.
- AddedAdds
Annotation#getCopy()
method to allow creating copies of annotations programatically. (#18193) - AddedAdds support for cloudy borders in shape annotations and free text annotations via Instant JSON. (#18547)
- AddedAdds support for the
doc.removeField
JavaScript API. (#18621) - ChangedImproves initial text parsing performance. (#18534)
- ChangedImproves performance when looking up fonts. (#17981)
- FixedFix an issue in full-text search that could cause a deadlock during indexing. (#18750)
- ChangedUpdate SQLite to 3.26.0. (#18462)
- ChangedUpdates Kotlin to 1.3.20. (#18668)
- ChangedUpdates the Botan library to version 2.9.0. (#18271)
- ChangedStarts using app name in JavaScript alerts. (#18529)
- FixedFixes a bug where annotations parsed from XFDF would be displayed incorrectly on a rotated page. (#17603)
- FixedFixes a potential
NullPointerException
caused by invoking a method on an internal copy/paste handler. (#18446) - FixedFixes a problem importing/exporting color values. This could lead to unnecessary appearance stream regeneration. (#18428)
- FixedFixes 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) - FixedFixes 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)
- FixedFixes an issue where listeners set on
SignaturePickerFragment
were replaced by the framework under certain circumstances. (#18625) - FixedFixes an issue where sharing documents with digital signatures causes the signatures to get corrupted. (#18250)
- FixedFixes an issue with Image Documents when images have an orientation. (#17791)
- FixedFixes an issue with Image Documents when saving back to an already rotated image. (#18483)
- FixedFixes 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
- ChangedHides annotation inspector button in the annotation creation toolbar when creating note annotations. (#18269)
- FixedFixes an issue where annotation creation mode is exited when changing pages. (#18252)
- FixedFixes an issue where note annotation editor buttons were not working properly after activity was stopped. (#18247)
- FixedFixes an issue where note annotation editor background color did not reflect annotation color. (#18246)
- FixedFixes an issue where the text selection toolbar overlaps the selected text when immersive mode is enabled. (#18258)
- FixedFixes an issue where
PdfActivity
wasn't correctly restoring its state during activity recreation. (#18425)
Model
- FixedFixes an issue that could lead to errors when loading image documents from files with corrupted XMP data. (#18110)
- FixedFixes an issue where redaction of a monochrome image could unexpectedly change its color. (#18176)
- FixedFixes an issue where searching and navigating specific documents could lead to high memory use. (#18118)
Instant
- FixedFixes an exception that could be thrown when loading Instant documents in multi-window mode. (#18484)
Examples
- FixedFixes a crash inside the "Custom Inline Search" Catalog example. (#18486)
5.1.1 20 Dec 2018
UI
- ChangedDisables the rotation handle for stamp annotations with custom appearance stream generators since rotation is not supported yet. (#18013)
- FixedFixes an issue where
PdfFragment#scrollTo()
would also zoom out the page instead of just scrolling to the specified location. (#17816) - FixedFixes an issue where the digital certificate selection was erroneously shown when adding ink signatures outside of a form field. (#18014)
- FixedFixes an issue where the signing dialog is not rotated to landscape when ´SignatureSavingStrategy.NEVER_SAVE` is set. (#18020)
- FixedFixes asymmetric vertical padding on the settings mode picker which resulted in UI glitches when hiding specific settings. (#13497)
- FixedFixes a possible
NullPointerException
that could occur when switching out of signature creation mode. (#18153) - FixedFixes 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)- ChangedChanges
BookmarkProvider#addBookmark()
to return a boolean indicating if the bookmark was added.
- AddedAdds
PdfFragment#getImageDocument()
for retrieving a loadedImageDocument
instance. (#18131) - FixedFixes an issue where redacting certain kinds of vector graphics may incorrectly redact part of the background. (#18071)
- FixedFixes an issue where the JavaScript method Doc.print may not work correctly. (#18111)
- FixedFixes an issue which could cause broken path renderings in specific edge-case scenarios. (#18145)
- FixedFixes some visualization issues with markup annotations, specially on rotated pages. (#12927, #16794, #17889, #18002, #18024)
Instant
- FixedFixes an issue where Proguard would fail when applied on an app integrating Instant. (#18100)
5.1.0 13 Dec 2018
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
UI
- AddedAdds free-form redaction support to the existing redaction tool for redacting images and annotations from a page. (#17413)
- AddedAdds
PdfThumbnailGrid.OnDocumentSavedListener
that gets notified whenever the document gets saved inside the document editor. (#17401)- AddedAdds
setOnDocumentSavedListener()
toPdfThumbnailGrid
for setting the listener.
- AddedAdds unified configuration for all supported sharing features. (#16544)
- AddedAdds
setEnabledShareFeatures()
toPdfActivityConfiguration.Builder
andPdfConfiguration.Builder
. - RemovedDeprecates
isShareEnabled()
inPdfActivityConfiguration
. UsePdfConfiguration#getEnabledShareFeatures()
instead. - RemovedDeprecates
enableShare()
anddisableShare()
inPdfActivityConfiguration.Builder
. UsePdfActivityConfiguration.Builder#setEnabledShareFeatures()
instead. - RemovedDeprecates
isTextSharingEnabled()
,isEmbeddedFilesSharingEnabled
andisSharingNoteEditorContentEnabled()
inPdfConfiguration
. UsePdfConfiguration#getEnabledShareFeatures()
instead. - RemovedDeprecates
textSharingEnabled()
,embeddedFileSharingEnabled()
andsharingNoteEditorContentEnabled
inPdfConfiguration.Builder
. UsePdfConfiguration.Builder#setEnabledShareFeatures()
instead.
- AddedAdds getter to return redaction button width. (#17697)
- FixedFixes an issue where redaction button was overlapping forward history button.
- ChangedImproves redaction button alignment in portrait and landscape.
- ChangedImplements
OnRedactionButtonVisibilityChangedListener
for receiving calls when redaction collapses or expands.
- AddedAdds message that is shown when using the document editor with redactions in the document. (#17559)
- APIImproves 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)
- AddedAdds
SignatureSavingStrategy
enum that declares the strategy when saving the signature. The 'Store Signature' checkbox is shown only ifSignatureSavingStrategy.SAVE_IF_SELECTED
is set. - AddedAdds
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
. - RemovedDeprecates
setSignatureSavingEnabled()
inPdfConfiguration.Builder
andPdfActivityConfiguration.Builder
. - RemovedDeprecates
setCustomerSignatureFeatureEnabled()
inPdfConfiguration.Builder
andPdfActivityConfiguration.Builder
.
- APIUpdates 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)- AddedAdds
SignatureOptions
that define stuff like signature saving strategy, signature picker orientation etc. UseSignatureOptions.Builder
to build it. - AddedAdds additional
SignaturePickerFragment#show()
method that takes in theSignatureOptions
object, through which you can configure the signing UI. - AddedAdds
SignaturePickerFragment#dismiss()
method which you can use to hide theSignaturePickerFragment
. - RemovedDeprecates
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. - RemovedDeprecates
SignaturePickerFragment#setSignaturePickerOrientation()
, useSignatureOptions
for that.
- ChangedImproves
PdfActivity
by allowing it to be started without loading a document. (#16601)- AddedAdds
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.
- ChangedImproves
PdfFragment
by allowing editing existing annotations without setting an author name first. (#17972) - ChangedImproves document opening performance by making loading of
PdfDrawables
asynchronous. (#17648) - RemovedRemoves color name from the color and icon picker in the note editor. (#17701)
- FixedFixes a potential
NullPointerException
inPdfScrollableThumbnailBar
. (#17828) - FixedFixes a potential
NullPointerException
on pages with video content. (#17861) - FixedFixes a potential
UnsatisfiedLinkError
that could be thrown when accessingStampType
class. (#17702) - FixedFixes a potential crash that could occur when undoing rotated annotations. (#17862)
- FixedFixes an issue where
PdfProcessorTask
with large number of operations could cause aStackOverflowError
. (#17847) - FixedFixes an issue where annotation defaults for
AnnotationTool.NOTE
were not applied to the new note editor UI. (#17669) - FixedFixes 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)
- FixedFixes an issue where deselecting annotations by clicking on non-editable annotations was not working properly. (#18034)
- FixedFixes an issue where dynamically added videos with autoplay enabled were not playing after opening the page. (#17875)
- FixedFixes an issue where exif metadata was sometimes not correctly loaded when adding image stamps, causing them to be rotated the wrong way around. (#11750)
- FixedFixes an issue where rotations could not be perfomed on stamp annotations after saving. (#17768)
- FixedFixes an issue where the toolbar shown when longpressing the page could randomly flicker. (#18010)
Model
- AddedAdds support for text search compare options. (#13736, #13729)
- AddedAdds
compareOptions()
method toSearchOptions.Builder
for configuring compare options. - AddedAdds
CompareOptions
enum with all supported compare options.CASE_INSENSITIVE
enables case insensitive search.
- Changed
DIACRITICS_INSENSITIVE
enables diacritics insensitive search. - Changed
SMART_SEARCH
enables smart search that ignores white-spaces, hyphens and resolves typographic quotes or apostrophes. - Changed
REGULAR_EXPRESSION
enables regular expression search.
XfdfFormatter#writeXfdf[Async]()
to throw an exception when annotations that are not attached to the document are passed in. (#17786)TextSearch
and SearchOptions.Builder
accepting Context
. Use overloaded constructors without this parameter. (#17646)OutputStreamAdapter
which allows you to use any WritableDataProvider
in place of an OutputStream
. (#16532)- AddedAdds
DirectWritingStrategy
for use withOutputStreamAdapter
. - AddedAdds
TempFileWritingStrategy
for use withOutputStreamAdapter
.
PdfActivityConfiguration
returned by ImageDocumentLoader#getDefaultImageDocumentActivityConfiguration()
by disabling annotations tools that do not work for image documents. (#17775)1.3.0
. (#17784)PdfActivity#isImageDocument()
returning false
for image documents in certain cases when switching tabs. (#17524)PdfLibrary
would return incorrect results when searching within documents that contained Unicode surrogate pairs (like Emoji) in their text. (#3292)Instant
- AddedAdds support for image stamp annotations. (#17691)
Examples
- ChangedBumps Android Gradle Plugin version of all example apps to 3.2.1. (#17818)
5.0.2 29 Nov 2018
UI
- ChangedImproves redaction button placement. (#17697)
- FixedFixes an issue where redaction button was overlapping forward history button.
- ChangedImproves redaction button alignment in portrait and landscape.
- ChangedImplements
OnRedactionButtonVisibilityChangedListener
for receiving calls when redaction collapses or expands.
- ChangedImproves document opening performance by making loading of
PdfDrawables
asynchronous. (#17648) - FixedFixes a potential
UnsatisfiedLinkError
that could be thrown when accessingStampType
class. (#17702) - FixedFixes an issue where rotations could not be perfomed on stamp annotations after saving. (#17768)
- FixedFixes a potential
NullPointerException
inPdfScrollableThumbnailBar
. (#17828) - FixedFixes an issue where
PdfProcessorTask
with large number of operations could cause aStackOverflowError
. (#17847) - FixedFixes a potential
NullPointerException
on pages with video content. (#17861) - FixedFixes a potential crash that could occur when undoing rotated annotations. (#17862)
- FixedFixes an issue where dynamically added videos with autoplay enabled were not playing after opening the page. (#17875)
Model
- AddedAdds compatibility of PSPDFKit and Instant Javadoc .jar files with Android Studio 3.2.1 and newer. (#17850)
- FixedFixes an issue where underline annotations may not work correctly on rotated pages. (#14252)
- FixedFixes
PdfActivity#isImageDocument()
returningfalse
for image documents in certain cases when switching tabs. (#17524) - FixedFixes a potential exception that could occur when resolving system fonts on some devices. (#17647)
- FixedFixes an issue applying redactions on encrypted documents. (#17722)
- FixedFixes a potential issue when rendering images. (#17737)
- FixedFixes an occasional issue when rendering text. (#17747)
- FixedFixes an issue where text could not be selected in certain documents. (#17759)
- FixedFixes an issue where it wasn't possible to reset annotation rotation to 0. (#17867)
- ChangedThis caused an issue with undoing stamps rotation.
- FixedFixes 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
- AddedAdds missing public theme attribute
pspdf__redactionIcon
for styling the icon of the redaction view. (#17585) - AddedAdds support for video and gallery playback from the local device file system. (#17433)
- AddedAdds 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) - ChangedImproves performance while entering text using a non-latin font into form fields. (#17593)
- FixedFixes an exception that occured when using
PdfThumbnailGrid
from withinFragment
. (#17396) - FixedFixes an issue inserting Emoji, Arabic or East Asian text in form fields. (#17574)
- FixedFixes an issue where locked, hidden, or read-only ink annotations could be erased with the eraser tool. (#17367)
- FixedFixes an issue where wrong recycling of bitmaps could in some situations lead to unhandled
NullPonterExceptions
. (#17556)
Model
- FixedFixes a crash that could happen when trying to generate the appearance stream of a push button. (#17627)
- FixedFixes an issue where memory was leaked in certain situations. (#17610)
- FixedFixes crash that could happen when changing text in multiline form field. (#17649)
Examples
- AddedAdds
DynamicMultimediaAnnotationsExample
showing how to dynamically add videos and galleries to PDF documents. (#17433)
5.0.0 7 Nov 2018
See the announcement post(opens in a new tab).
This release features two new components - Redaction(opens in a new tab) and Comparison(opens in a new tab). If you would like to add either to your license, ping our sales team(opens in a new tab) to receive a quote.
Below is a summary of the API changes in this release. For a full list, with our suggested migration strategy for each API that has been changed or removed, please see the migration guide(opens in a new tab).
UI
- APIPSPDFKit 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. - ChangedExtends
PdfActivityIntentBuilder
with an ability to open multiple tabs in a singlePdfActivity
. (#17151)- AddedAdds
fromDocumentDescriptor()
factory method for creating intent builder with multiple documents that should be displayed as tabs. - AddedAdds
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.
- AddedAdds
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
- AddedAdds document import feature to Document Editor. (#14868)
- AddedAdds support for
Intent#ACTION_OPEN_DOCUMENT
andIntent#ACTION_CREATE_DOCUMENT
toDefaultFilePicker#getDestinationUri(String)
.
- ChangedImproves default themes and styles. (#16089)
- ChangedDark theme now uses white text instead of colored accent for easier readability.
- ChangedStyles for PSPDFKit views now pick
android:colorBackground
andandroid:colorForeground
from your theme as defaults for background and foreground colors. - AddedAdds
MainToolbar
that usespspdf__MainToolbarStyle
from your theme for easy toolbar theming. Take a look atpspdf__MainToolbar
styleable for all supported attributes. - RemovedRemoves theme attributes
pspdf__mainToolbarTextColor
,pspdf__mainToolbarTheme
andpspdf__mainToolbarPopupTheme
. Usepspdf__textColor
,pspdf__toolbarTheme
andpspdf__tolbarPopupTheme
in thepspdf__mainToolbarStyle
instead. - AddedAdds
pspdf__contextualToolbarStyle
to theme for contextual toolbars styling. Take a look atpspdf__ContextualToolbar
styleable for all supported attributes. - RemovedRemoves theme attributes
pspdf__contextualToolbarBackground
andpspdf__contextualToolbarSubmenuBackground
. Usepspdf__backgroundColor
andpspdf__submenuBackgroundColor
in thepspdf__ContextualToolbarStyle
instead. - ChangedIcon colors of all contextual toolbars now default to
pspdf__iconColor
andpspdf__iconColorActivated
that can be set in thepspdf__ContextualToolbarStyle
.
- ChangedImproves document scrolling performance by delaying the high-res page rendering until the scrolling has stopped. (#17031)
- ChangedImproves signature handling by preventing overlapping signatures on signature form fields. (#16827)
- ChangedImproves the rendering support of push buttons. (#16507)
- ChangedImproves user experience while filling form fields that did not specify font size. (#17037)
- ChangedCleans up naming scheme of styles that are part of default themes. (#14958)
- ChangedRenames all styles with the name scheme
pspdf__styleName
defined instyles.xml
toPSPDFKit.StyleName
. - ChangedRenames all styles with the name scheme
PSPDFKit.Theme.Dark.StyleName
defined indark_theme.xml
toPSPDFKit.StyleName.Dark
.
- ChangedMoves
NavigationBackStack
tocom.pspdfkit.ui.navigation
. (#16851) - RemovedRemoves
EventBus
and all events and commands defined inEvents
andCommands
. (#9274)- RemovedRemoves
Events.OnZoomScaleFactorChanged
, useDocumentListener#onDocumentZoomed()
instead. - RemovedRemoves
Events.OnPageChanged
, useDocumentListener#onPageChanged()
instead. - RemovedRemoves
Commands.ClearSelectedAnnotations
, usePdfFragment#clearSelectedAnnotations()
instead. - RemovedRemoves
Commands.SelectAnnotation
, usePdfFragment#setSelectedAnnotation()
instead. - RemovedRemoves
Commands.ToggleActionBarIconsVisibility
. - RemovedRemoves
Commands.ExecuteAction
, usePdfFragment#executeAction()
instead. - RemovedRemoves
Commands.ShowPage
usePdfFragment#setPageIndex()
instead. - RemovedRemoves
Commands.ToggleSystemBars
, usePdfActivity#setUserInterfaceVisible()
instead. - RemovedRemoves
Commands.SearchSelectedText
, requests for searching selected text are now handled byOnSearchSelectedTextListener
that can be set viaTextSelectionController#setOnSearchSelectedTextListener
. - RemovedRemoves
Commands.ShowAnnotationEditor
, useshowAnnotationEditor()
defined inAnnotationCreationController
andAnnotationEditingController
instead.
- RemovedRemoves
PSPDFKit#updateInternalUIContext()
. (#17039) - FixedFixes an issue where
PdfFragment#isImageDocument()
returnedfalse
for image documents loaded from non-parcelable sources. (#17524) - FixedFixes an issue where annotation overlay mode was enabled even when annotation editing was disabled by configuration or license. (#16941)
- FixedFixes an issue where annotation views added to overlay during initialization state weren't measured correctly. (#17099)
- FixedFixes an issue where clicks outside of the page triggered both
DocumentListener#onDocumentClick()
andDocumentListener#onPageClick()
instead of just triggeringonDocumentClick()
. (#16892) - FixedFixes an issue where creation of ink signature in portrait mode could result in
IllegalStateException
. (#16819) - FixedFixes an issue where edited form value could disappear for a while after leaving form editing mode. (#17024)
- FixedFixes an issue where form elements were not extracted to annotation overlay when annotation editing was disabled. (#17518)
- FixedFixes an issue where it wasn't possible to enter text into non-scrollable, multiline form fields. (#17471)
- FixedFixes an issue where markup submenu in annotation creation toolbar did not remember last selected annotation tool. (#17378)
- FixedFixes an issue where note editor did not handle annotation flags correctly. (#16693)
- FixedFixes an issue where pages with invalid annotations on them were not rendered. (#16990)
- FixedFixes an issue where returning
false
fromDocumentListener#onDocumentClick()
did not consume the event. (#16890) - FixedFixes an issue where state restoration inside
PdfThumbnailGrid
would throw an exception when havingtargetSdkVersion
set to28
. (#16983) - FixedFixes an issue which could keep annotation views from properly being measured when continuous scrolling was configured while annotation overlay mode was active. (#17295)
- FixedFixes an unhandled
NullPointerException
that was thrown by the note editor when editing annotations without creation date. (#17391)
Model
- APIAll method parameters annotated with
@NonNull
now throw anIllegalArgumentException
when receiving a null as argument. (#14266) - APIConverts
BookmarkProvider
from a class into an interface. To retrieve an implementation usePdfDocument#getBookmarkProvider()
. (#16868)- ChangedRenames
BookmarkProvider#isDirty()
toBookmarkProvider#hasUnsavedChanges()
. - RemovedRemoves
BookmarkProvider#prepareToSave()
, this is handled automatically by the framework.
- APIConverts
DocumentPdfMetadata
andDocumentXmpMetadata
from a class to an interface. To retrieve an implementation usePdfDocument#getPdfMetadata()
andPdfDocument#getXmpMetadata()
. (#16936)- RemovedRemoves
DocumentPdfMetadata#clearDirty()
andDocumentXmpMetadata#clearDirty()
, this is handled automatically by the framework. - ChangedRenames
DocumentPdfMetadata#isDirty()
andDocumentXmpMetadata#isDirty()
tohasUnsavedChanges()
.
- APIConverts
FormProvider
from a class to an interface. To retrieve an implementation usePdfDocument#getFormProvider()
. (#16847)- ChangedRenames
FormProvider#isDirty()
toFormProvider#hasUnsavedChanges()
.
- APIConverts
PdfDocument
from a class into an interface. UsePdfDocumentLoader#openDocument()
and associated methods to retrieve an implementation. (#14261)- ChangedRenames
PdfDocument#getPDFVersion()
togetPdfVersion()
. - AddedAdds
PdfDocumentLoader
class which contains methods to obtainPdfDocument
s. - RemovedRemoves
PdfDocument#openDocument()
and associated methods.
- APIRemoves
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)- AddedAdds
getStampType()
andsetStampType()
toStampAnnotation
. - AddedAdds
getTitle()
andsetTitle()
toStampAnnotation
. - ChangedChanges
com.pspdfkit.annotations.StampType
from an enum to a class found atcom.pspdfkit.annotations.stamps.StampType
. - ChangedRenames
StampType.fromSubject()
tofromName()
. - ChangedRenames
StampType#getSubject()
togetName()
. - AddedAdds
StampType#isStandard()
. - ChangedRenames
StampAnnotation#getSubtext()
andStampAnnotation#setSubtext()
togetSubtitle()
andsetSubtitle()
. - AddedAdds
StampPickerItem.fromStampType()
. - ChangedRenames
StampPickerItem.fromSubject()
tofromTitle()
. - ChangedRenames
StampPickerItem.Builder.withLocalizedSubject()
towithTitle()
. - ChangedRenames
StampPickerItem.Builder.withSubtext()
towithSubtitle()
. - ChangedRenames
StampPickerItem.Builder.withDateTimeSubtext()
towithDateTimeSubtitle()
. - ChangedRenames
StampPickerItem#getSubject()
togetStampType()
and changes return type toStampType
. - ChangedRenames
StampPickerItem#getLocalizedSubject()
togetTitle()
. - ChangedRenames
StampPickerItem#getSubtext()
togetSubtitle()
. - ChangedRenames
PredefinedStampType.fromSubject()
tofromName()
. - ChangedRenames
PredefinedStampType#getSubject()
togetName()
. - AddedAdds
PredefinedStampType#getStampType()
.
- RemovedDeprecates
PdfProcessorTask#addPdfToPage()
, use new methodmergePage()
instead. (#17150) - AddedAdds
Font#getDefaultTypeface()
to retrieve theTypeface
without causing additional disk I/O. (#16932)- ChangedEnsures that
Font
s can only be created from background threads, throwing anIllegalStateException
if created from the main thread.
- APIRemoves all previously deprecated symbols. (#16895)
- RemovedRemoves
com.pspdfkit.annotations.xfdf.XfdfFormatter
usecom.pspdfkit.document.formatters.XfdfFormatter
instead. - RemovedRemoves
InstantPdfFragment.newInstance(String, String, String, PdfConfiguration)
usenewInstance(String, String, PdfConfiguration)
instead. - RemovedRemoves
InstantPdfActivityIntentBuilder.fromInstantDocument(Context, String, String, String)
usefromInstantDocument(Context, String, String)
instead. - RemovedRemoves
InstantPdfActivity.showInstantDocument(Context, String, String, String, PdfActivityConfiguration)
useshowInstantDocument(Context, String, String, PdfActivityConfiguration)
instead. - RemovedRemoves
InstantDocumentDescriptor#getAuthenticationToken()
usegetJwt()
instead. - RemovedRemoves
InstantClient#openDocument(String, String)
useopenDocument(String)
instead. - RemovedRemoves
InstantClient#openDocumentAsync(String, String)
useopenDocumentAsync(String)
instead. - RemovedRemoves
InstantClient#getInstantDocumentDescriptor(String)
usegetInstantDocumentDescriptorForJwt(String)
instead. - RemovedRemoves
InstantPdfDocument#updateAuthenticationToken(String)
usereauthenticateWithJwt(String)
instead. - RemovedRemoves
InstantPdfDocument#updateAuthenticationTokenAsync(String)
usereauthenticateWithJwtAsync(String)
instead. - RemovedRemoves
InstantPdfDocument#setAutomaticSyncEnabled(boolean)
usesetListenToServerChanges(boolean)
andsetDelayForSyncingLocalChanges(long)
instead. - RemovedRemoves
AnnotationSyncCoordinator#setAutomaticSyncEnabled(boolean)
usesetListenToServerChanges(boolean)
andsetDelayForSyncingLocalChanges(long)
instead. - RemovedRemoves
AnnotationManager.OnAnnotationUpdatedListener
useAnnotationProvider.OnAnnotationUpdatedListener
instead. - RemovedRemoves
SignatureSignerDialog.show(FragmentManager, PdfDocument, SignatureFormField, Signer, DocumentSigningListener)
useshow(FragmentManager, Options, DocumentSigningListener)
instead. - RemovedRemoves
SignatureSignerDialog.show(FragmentManager, PdfDocument, SignatureFormField, Signer, BiometricSignatureData, DocumentSigningListener)
useshow(FragmentManager, Options, DocumentSigningListener)
instead. - RemovedRemoves
ComboBoxFormConfiguration.Builder#setSelectedIndexes(List)
usesetSelectedIndex(Integer)
instead. - RemovedRemoves
DocumentSharingProcessor
useDocumentSharingProviderProcessor#prepareDocumentForSharing(Context, PdfDocument, PdfProcessorTask, String)
instead. - RemovedRemoves
DocumentSharingProvider#deleteTemporaryFile(Context, Uri)
usedeleteFile(Context, Uri)
instead. - RemovedRemoves
PdfProcessorTask(PdfDocument)
usePdfProcessorTask.fromDocument(PdfDocument)
instead. - RemovedRemoves
PdfProcessorTask(NewPage)
usePdfProcessorTask.newPage(NewPage)
instead. - RemovedRemoves
Signer#signFormFieldAsync(SignatureFormField, KeyStore.PrivateKeyEntry, OutputStream)
usesignFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream)
instead. - RemovedRemoves
Signer#signFormFieldAsync(SignatureFormField, KeyStore.PrivateKeyEntry, BiometricSignatureData, OutputStream)
usesignFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream)
instead. - RemovedRemoves
Signer#signFormField(SignatureFormField, KeyStore.PrivateKeyEntry, OutputStream)
usesignFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback)
instead. - RemovedRemoves
Signer#signFormField(SignatureFormField, KeyStore.PrivateKeyEntry, BiometricSignatureData, OutputStream)
usesignFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback)
instead. - RemovedRemoves
MemorySigner#signFormFieldAsync(SignatureFormField, OutputStream)
usesignFormFieldAsync(SignatureFormField, BiometricSignatureData, OutputStream)
instead. - RemovedRemoves
MemorySigner#signFormField(SignatureFormField, OutputStream)
usesignFormField(SignatureFormField, BiometricSignatureData, OutputStream, OnSigningCompleteCallback)
instead. - RemovedRemoves
MemorySigner#getSigningKeyPair()
. - RemovedRemoves
PdfFragment.PARAM_DOCUMENT_PATHS
,PdfFragment.PARAM_IMAGE_DOCUMENT_PATH
,PdfFragment.PARAM_PASSWORDS
, andPdfFragment.PARAM_CONTENT_SIGNATURES
. - RemovedRemoves
PdfFragment#setCustomPdfSource(DataProvider, String)
usesetCustomPdfSource(DocumentSource)
instead. - RemovedRemoves
PdfFragment#setCustomPdfSources(List, List)
usesetCustomPdfSources(List)
. - RemovedRemoves
PdfFragment#[register/unregister]DrawableProvider()
usePdfFragment#[add/remove]DrawableProvider()
instead. - RemovedRemoves
PdfThumbnailGrid#[add/remove]OnDocumentEditingModeChangeListener()
useDocumentEditingManager#[add/remove]OnDocumentEditingModeChangeListener()
instead. - RemovedRemoves
PdfThumbnailGrid#[add/remove]OnDocumentEditingPageSelectionChangeListener()
useDocumentEditingManager#[add/remove]OnDocumentEditingPageSelectionChangeListener()
instead. - RemovedRemoves
AnnotationProvider#prepareForSave()
this call is no longer necessary. - RemovedRemoves
AnnotationProvider#clearDirty()
this call is no longer necessary. - RemovedRemoves
AnnotationProvider#isDirty()
usehasUnsavedChanges()
instead. - RemovedRemoves
PdfConfiguration#annotationReplyFeatureEnabled(boolean)
useannotationReplyFeatures(AnnotationReplyFeatures)
instead. - RemovedRemoves
PdfConfiguration#isAnnotationReplyFeatureEnabled()
usegetAnnotationReplyFeatures()
instead. - RemovedRemoves
PdfActivityConfiguration#annotationReplyFeatureEnabled(boolean)
useannotationReplyFeatures(AnnotationReplyFeatures)
instead. - RemovedRemoves
RichMediaExecuteAction#getScreenAnnotationPageIndex()
. - RemovedRemoves
RichMediaExecuteAction#getScreenAnnotationObjectNumber()
usegetRichMediaAnnotationObjectNumber()
. - RemovedRemoves
RenditionAction#getScreenAnnotationPageIndex()
.
- AddedAdds new Redaction component. (#16922)
- AddedAdds
RedactionAnnotation
to mark parts of the document that should be redacted. - AddedAdds new tool to mark text in the document for redaction.
- AddedAdds
PdfProcessorTask#applyRedactions()
to apply all createdRedactionAnnotations
. - AddedAdds
DocumentSaveOptions#setApplyRedactions()
to allow applying redactions as part of the regular document saving.
- AddedAdds PDF Comparison component for visual comparison of pages of different documents. (#16598)
- AddedAdds
PdfProcessorTask#changeStrokeColorOnPage()
for adjusting color of all strokes on a page. - AddedAdds
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. - AddedAdds
LicenseFeatures#COMPARISON
that can be retrieved viaPSPDFKit#getLicenseFeatures()
. - AddedAdds
DocumentComparisonExample
that shows how to compare documents using this new API.
- AddedAdds better support for annotations with custom appearance streams. (#15658)
- AddedAdds new initializer option to add additional font directories. (#13991)
- AddedAdds support for
util.scand
, a JavaScript API that can be used from PDF documents to parse dates from strings. (#17480) - ChangedImproves the performance of documents with a lot of JavaScript calculations. (#11925, #16490)
- ChangedAllows creation of
PagePdf
from already loadedPdfDocument
instances. (#17150) - ChangedChanges the format of the
InstantJSON
bookmark format. The id is now saved inpdfBookmarkId
andskippedBookmarkIds
has been renamed toskippedPdfBookmarkIds
. (#17400) - FixedFixed an issue where the wrong encoding was used for the
Symbol
font. (#17245) - ChangedUpgrades Java source and target versions to 1.8. (#17007, #17149)
- FixedFixes occasional rendering issues on OnePlus devices. (#16541)
- FixedFixes
ContentResolverDataProvider
not reporting the correct title for documents. (#17417) - FixedFixes a crash that may happen when you add form fields with certain kinds of JavaScript scripts. (#17472)
- FixedFixes a possible
NullPointerException
when passingnull
toPredefinedStampType#fromSubject()
. Parameter is now marked as@Nullable
and properly checked fornull
. (#17046) - FixedFixes an issue in Document Editor where importing documents without storage permissions was failing silently. (#17032)
- FixedFixes an issue looking up destinations in a names tree. This could lead to unresolvable link/outline destination. (#17206)
- FixedFixes an issue that caused problems saving new annotations in particular documents. (#16717)
- FixedFixes 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)
- FixedFixes an issue where JavaScript dependent calculations may not be executed after a syntax error. (#17025)
- FixedFixes an issue where JavaScript form field validation erroneously used the previous value. (#16462)
- FixedFixes an issue where calling
StampAnnotation#getBitmap()
on newly created image stamp annotations would return an empty bitmap. (#17455) - FixedFixes an issue where documents with a large number of form fields failed to display editing options. (#16911)
- FixedFixes an issue where on some devices running Android API 27, saving documents using Downloads content provider was throwing an exception. (#17087)
- FixedFixes an issue where some PDF pages could not be inserted as attachments for images. (#16729)
- FixedFixes an issue where the wrong message is return when a certificate is expired. (#16727)
- FixedFixes an issue with JPEG2000 images. (#14850)
- FixedFixes an issue with document checkpointing after saving fails. (#16600)
- FixedFixes rendering of image stamps when applied to rotated pages. (#17380)
- FixedFixes 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
- APIConverts
InstantPdfDocument
from a class into an interface. UseInstantClient#openDocument()
and associated methods to retrieve an implementation. (#14261)- ChangedRenames
InstantPdfDocument#getPDFVersion()
togetPdfVersion()
.
- AddedAdds support for shape annotations and ink signatures. (#17270)
- FixedFixes a bug that deleted all local layers of a document instead of just the layer backing a document descriptor. (#17264)
- FixedFixes a deadlock that could occur when deleting a layer or all loaded data. (#17257)
- FixedFixes 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
- AddedAdds JavaScript calculator example to Catalog app. This example showcases a calculator application implemented completely inside a PDF using JavaScript. (#17512)
- AddedAdds QR code scanning option to connect to Instant Demo. (#16624)
- AddedAdds a new
custom-fonts
example application that shows how to bundle custom fonts for rendering within an application. (#17057) - AddedAdds the new PSPDFKit 5 for Android Quickstart guide to the Catalog app. (#17405)
- FixedFixes an issue related to multidex configuration that could cause Catalog app startup issues. (#17069)
4.8.1 27 Sep 2018
UI
- ChangedEnhances calculation of free text callouts when changing font face. (#16733)
- ChangedThe signature picker dialog will now restore the activity's original orientation after being dismissed. (#15556)
- ChangedReverse portrait orientation is now properly restored when returning from full-screen video view. (#16756)
- FixedFixes
DocumentListener#onPageClick()
not reporting the correct annotation when multiple annotations overlap. (#16770) - FixedFixes an issue where Document Editor was erroneously instantiated multiple times leading to wrong page operation results. (#16784)
- FixedFixes an issue where
pspdf__backgroundColor
theme attribute was lost after changing configuration with retainedPdfFragment
. (#16914) - FixedFixes an issue where annotation or form selection is restored while the fragment is being destroyed, causing a crash. (#16480)
- FixedFixes an issue where clicking on paste button in text selection popup toolbar could result in
IllegalStateException
. (#16764) - FixedFixes an issue where documents that were saved to a
ContentResolverDataProvider
could return stale data after being reloaded. (#16753) - FixedFixes an issue where forms in rotated documents are rendered rotated the wrong way. (#15549)
- FixedFixes an issue where it was possible to paste annotations from another document even when cross document copy/pasting was disabled in configuration. (#16748)
- FixedFixes an issue where it wasn't possible to input decimal separators to form fields with number format. (#16825)
- FixedFixes an issue where items in annotation creation toolbar with custom grouping rule (
CustomAnnotationCreationToolbarGroupingRule
) in our catalog app were not selectable. (#16793) - FixedFixes an issue where signing documents with existing digital signatures made previous signatures invalid. (#16852)
- FixedFixes an issue where stamp background disappeared after returning back from annotation note editor. (#15989)
- FixedFixes an issue where the undo/redo buttons of the document editor were not enabled in some cases. (#16757)
- FixedFixes an issue with resizing free text callouts in corners. (#16734)
Model
- FixedFixes a possible
ConcurrentModificationException
thrown while initializing PSPDFKit. (#16831) - FixedFixes an issue when extracting link annotations. (#16854)
- FixedFixes an issue where JavaScript scripts that hold a strong local reference to event.target would not work correctly. (#16507)
- FixedFixes an issue where document JSON wasn't imported correctly on rotated PDF pages. (#16534)
- FixedFixes an issue where image documents could not be opened from URIs without read permission for the filesystem. (#16686)
- FixedFixes an issue where not all form fields were listable immediately after opening a document. (#16479)
- FixedFixes an issue where programmatic annotation content changes would not be reflected in rendered free text annotation. (#16487)
- FixedFixes an issue where some document outlines were not be persisted correctly after using the document processor. (#16688)
- FixedFixes an issue where some documents with JavaScript would become unresponsive for a great amount of time. (#16886)
4.8.0 5 Sep 2018
See the announcement post(opens in a new tab).
Important: PSPDFKit now ships with x86_64 native libraries. This considerably increases its size. Please follow the framework size guide article(opens in a new tab) for more information on how to reduce size of your apps by filtering native libraries for certain ABIs. (#6086)
UI
- AddedAdds support for document tabs. (#9399)
- AddedAdds
PdfDocumentCoordinator
that manages multiple documents inPdfActivity
and coordinates switching between these documents. It can be retrieved viaPdfActivity#getDocumentCoordinator()
. - AddedAdds
DocumentDescriptor
for describing loaded documents inPdfDocumentCoordinator
together with their state. - AddedAdds
PdfTabBar
that displays tabs for documents managed byPdfDocumentCoordinator
. - AddedAdds
setTabBarHidingMode()
toPdfActivityConfiguration.Builder
for controlling when to display tabs bar or to disable it altogether. - AddedAdds
DocumentTabsExample
that showcases how to usePdfDocumentCoordinator
inPdfActivity
to display tabs. - ChangedAdapts
DocumentSwitcherExample
to use thePdfDocumentCoordinator
API for faster document switching compared to previous solution. - RemovedDeprecates
EventBus
parameter inPSPDFKitViews#setDocument()
. - RemovedDeprecates
setCustomPdfSource()
andsetCustomPdfSources()
acceptingDataProvider
inPdfFragment
, use newly provided methods with the same name that acceptDocumentSource
instead.
- AddedAdds
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. - AddedAdds
setPageLoadingDrawable()
toPdfFragment
. This method sets loading drawable that will be displayed until document is loaded and all visible pages are rendered. (#16330) - AddedAdds navigation between pages using volume buttons. Option can be enabled with
PdfActivityConfiguration.Builder#volumeButtonsNavigationEnabled(true)
. (#15406) - AddedAdds support for drawing behind notch on Android P. (#16565)
- AddedAdds support for rendering widget annotations in overlay mode. (#14463)
- FixedFixed an issue where parts of the document view hierarchy were illegally retained when replacing the displayed document inside of
PdfFragment
. (#16614) - FixedFixes an issue where clicking on undo/redo button in annotation editing toolbar did not trigger undo. (#16694)
- FixedFixes an issue where document title overlay was not updated after changing title in the document info view. (#16653)
- FixedFixes an issue where free text annotations could not be scaled correctly when annotation rotation was disabled. (#16567)
- FixedFixes an issue where ink signatures overlapping form fields could not be selected. (#16273)
- FixedFixes an issue where stamp annotations sometimes didn't get rendered in overlay mode after scrolling to page. (#16147)
- FixedFixes markup annotations not being rendered behind all other annotations while overlay mode is active. (#15845)
- FixedFixes an issue where disabling the document info view wasn't retained when creating new
PdfActivityConfiguration
from already existing configuration. (#16651)
Model
- AddedAdds
PSPDFKit.getLicenseFeatures()
to allow you to check the currently enabled license features. (#15725) - AddedAdds
SignatureFormField#removeSignature()
to remove the attached digital signature. (#16294) - AddedAdds
isImageDocument
forPdfFragment
andPdfActivity
to indicate whether the displayed document is an image or not. (#16661) - AddedAdds missing nullability annotations to
FormElementConfiguration
and its subclasses. (#16205) - AddedAdds new Document Editor API. (#15877)
- AddedAdds
PdfDocumentEditor
interface the public editor API.- Adds
#saveDocument(Context, DocumentSaveOptions)
for saving a document in place.
- Adds
- AddedAdds
#saveDocument(Context, OutputStream, DocumentSaveOptions)
for saving a document to a given output stream. - AddedAdds
#exportPages(Context, OutputStream, Set<Integer>, DocumentSaveOptions)
for exporting a set of pages to a given output stream. - AddedAdds
#addPage(int, NewPage)
for adding a new page to a given index. - AddedAdds
#removePages(Set<Integer>)
for removing a set of pages from the document. - AddedAdds
#rotatePages(Set<Integer>, int)
for rotating a set of pages of a given angle. - AddedAdds
#duplicatePages(Set<Integer>)
for duplicating a given set of pages. - AddedAdds
#movePages(Set<Integer>, int)
for moving a set of pages to a given destination index. - AddedAdds
#importDocument(Context, DocumentSource, int)
for importing a document source to a given index. - AddedAdds
#canUndo
for checking if undo operation is possible. - AddedAdds
#canRedo()
for checking if redo operation is possible. - AddedAdds
#getRotatedPageSize(int)
to return the page size of a given page already rotated. - AddedAdds
#renderPageToBitmap(int, Bitmap, PageRenderConfiguration)
for rendering a given page into aBitmap
buffer. - AddedAdds
#setPageLabel(int, String)
for setting a new page label for a specific page. - AddedAdds
#beginTransaction()
to begin a new batch of document editor operations. - AddedAdds
#isTransactionActive()
to check if there is currently an active document editor transaction. - AddedAdds
#discardTransaction()
to discard the current batch of document editor operations. - AddedAdds
#commitTransaction()
to end a bach of document editor operations and commit them immediately.
- AddedAdds
PdfDocumentEditorFactory
for creating document editor instances. - AddedAdds
EditingChange
to represent a change that happened because of an operation performed by the document editor that can be undone/redone. - AddedAdds
EditingOperation
to specify the kind of change done by the editing operation. - AddedAdds
PdfThumbnailGrid#getDocumentEditor
to return thumbnail grid document editor. - AddedAdds
PdfThumbnailGrid#isDocumentEditorEnabled()
to check if document editor is enabled. - AddedAdds
PdfDocumentEditorFactory.createForDocument(PdfDocument)
to create a new instance of Document Editor. - AddedAdds
FilePicker
to retrieve a destination Uri when required for saving and exporting operations. - AddedAdds
PdfThumbnailGrid#getFilePicker()
to obtain current file picker, if not specified default Android SAF picker is provided. - AddedAdds
PdfThumbnailGrid#setFilePicker(FilePicker)
to set a file picker to use during a saving process. - RemovedRemoves
DefaultDocumentEditorListener
andPdfDocumentEditorListener
use a custom file picker instead. - RemovedRemoves
DocumentEditor
interface. All Document Editor API placed inPdfDocumentEditor
interface. - RemovedRemoves
PSPDFKitView#setPdfDocumentEditorListener(PdfDocumentEditorListener)
- RemovedRemoves
PdfThumbanilGrid#setPdfDocumentEditorListener
- RemovedRemoves
PdfThumbnailGrid#onFileChooserResult
this is now managed by default file picker. - RemovedDeprecates
PdfThumbnailGrid#addOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener)
useDocumentEditingManager#addOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener)
instead. - RemovedDeprecates
PdfThumbnailGrid#removeOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener)
useDocumentEditingManager#removeOnDocumentEditingModeChangeListener(OnDocumentEditingModeChangeListener)
instead. - RemovedDeprecates
PdfThumbnailGrid#addOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener)
useDocumentEditingManager#addOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener)
instead. - RemovedDeprecates
PdfThumbnailGrid#removeOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener)
useDocumentEditingManager#removeOnDocumentEditingPageSelectionChangeListener(OnDocumentEditingModeChangeListener)
instead.
- AddedAdds
PopupToolbar
class which represents a generic popup toolbar similar to the Android framework text selection bar. - AddedAdds
TextSelectionPopupToolbar
which is aPopupToolbar
implementation for the text selection process. Handled inside the document view. - AddedAdds
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. - AddedAdds
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. - AddedAdds
PopupToolbarMenuItem
which represents a single popup toolbar menu item. The menu item specifies an ID, title and whether it's enabled or not.
- AddedAdds
setReadOnly()
andsetRequired()
toFormElementConfiguration
builders. - AddedAdds
setSpellCheckEnabled()
andsetMultiSelectionEnabled()
toComboBoxFormConfiguration
builder. - AddedAdds
setMultiLine()
,setPassword()
,setSpellCheckEnabled()
,setScrollEnabled()
andsetMaxLength()
toTextFormConfiguration
builder.
PdfOutlineView
) and adds new navigation view used to navigate between outline view components. (#15986)- AddedAdds
PdfOutlineView#[add/remove]OnDocumentInfoViewModeChangeListener()
for adding/removing the listener for document info mode changes. - AddedAdds
PdfOutlineView#[add/remove]OnDocumentInfoViewSaveListener()
for adding/removing the listener for document info value changes being saved to the document. - AddedAdds theming via XML for the document info view, using the outline view styleable (
pspdf__OutlineView
): - AddedAdds attributes for styling new navigation view:
- AddedAdds
pspdf__navigationTabOutlineIcon
for setting the tab icon for outline view. - AddedAdds
pspdf__navigationTabBookmarksIcon
for setting the tab icon for bookmarks view. - AddedAdds
pspdf__navigationTabAnnotationsIcon
for setting the tab icon for annotation list view. - AddedAdds
pspdf__navigationTabDocumentInfoIcon
for setting the tab icon for document info view. - AddedAdds
pspdf__navigationTabIconsColor
for setting the color for tab icons in the navigation bar. - AddedAdds
pspdf__navigationTabIconsColorSelected
for setting the color for the selected tab icon in the navigation bar. - AddedAdds
pspdf__navigationTabBackgroundColor
for setting the background color of the whole navigation view. - AddedAdds attributes for styling document info view:
- AddedAdds
pspdf__documentInfoGroupTitleTextColor
for setting the text color for the document info group title. - AddedAdds
pspdf__documentInfoItemTitleTextColor
for setting the text color for the document info item title. - AddedAdds
pspdf__documentInfoItemValueTextColor
for setting the text color for the document info item value. - AddedAdds
pspdf__documentInfoItemValueHintTextColor
for setting the text color for the document info value hint. - AddedAdds
pspdf__documentInfoGroupIconColor
for setting the icon color for the document info group icons. - AddedAdds
pspdf__documentInfoContentIcon
for setting the icon for the 'Content' group in document info view. - AddedAdds
pspdf__documentInfoChangesIcon
for setting the icon for the 'Changes' group in document info view. - AddedAdds
pspdf__documentInfoSizeIcon
for setting the icon for the 'Size' group in document info view. - AddedAdds
pspdf__documentInfoFabBackgroundColor
for setting the background color for the document info FAB. - AddedAdds
pspdf__documentInfoFabIconColor
for setting the icon color for the document info FAB. - AddedAdds
pspdf__documentInfoFabEditIcon
for setting the 'Edit' icon for the document info FAB. - AddedAdds
pspdf__documentInfoFabDoneIcon
for setting the 'Done' icon for the document info FAB. - APIRemoves
PdfOutlineView
styling setters and getters. The UI should be changed exclusively through XML themes: - APIRemoves
[set/get]BackgroundColor()
. - APIRemoves
[set/get]ListSelector()
. - APIRemoves
[set/get]DefaultTextColor()
. - APIRemoves
[set/get]BookmarksBarIconColor()
. - APIRemoves
[set/get]BookmarksBarBackgroundColor()
. - APIRemoves
[set/get]BookmarksAddIcon()
. - APIRemoves
[set/get]BookmarksEditIcon()
. - APIRemoves
[set/get]BookmarksDoneIcon()
. - APIRemoves
[set/get]GroupIndicatorIconColor()
. - APIRemoves
[set/get]BookmarksDeleteIcon()
. - APIRemoves
[set/get]BookmarksDeleteIconColor()
. - APIRemoves
[set/get]BookmarksDeleteBackgroundColor()
.
clipRect()
usage to be compliant with the new restrictions on Android P. (#16592)InkAnnotation#isSignature()
on annotations created from signatures returned false
. (#15907)PageCanvas
API. (#16030)DocumentInfoView
was trying to calculate document size using wrong document source. (#16443)save()
methods on a PdfDocument
backed by an image document would not trigger saving of metadata to the original image file. (#16077)Instant
- AddedAdds support for bookmarks to Instant Document JSON. (#16165)
Examples
- ChangedHitting 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
- FixedFixes an issue where
FreeTextAnnotation
s stopped being editable when overlay mode is deactivated. (#16375) - FixedFixes an issue where
FreeTextAnnotation
s were rendered with a white background despite no background being set. (#16392) - FixedFixes an issue where rotation handle visible outside of page bounds did not respond to touches. (#15726)
- FixedFixes an issue where visible page rectangle was not restored correctly after changing configuration in
PdfActivity
. (#16426) - FixedFixes an issue where annotations were not added in the correct order when adding them in quick succession. (#16208)
Model
- FixedFixes an issue where
OnFormElementClickedListener#onFormElementClicked
wasn't called when clicking on signature form fields. (#16289) - FixedFixes an issue where deleting note annotations from the editor could crash when the license did not have annotation replies enabled. (#15891)
- FixedFixes an issue where not all form fields were immediately listable after opening certain documents. (#16279)
- FixedFixes an issue where created form elements could not be retrieved from
FormProvider
. (#15930) - FixedFixes an issue where the framework would occasionally crash when application was paused while searching. (#16248)
- FixedFixes an issue where border style and blend mode set on annotation could not be reset to their default values. (#16440)
Example
- AddedAdds
ManualSigningExample
to catalog app showing how to manually sign documents without signature picker UI. (#16295)
4.7.1 25 Jul 2018
UI
- AddedAdds handling for
NamedActionType#INFO
toPdfActivity
, showing document info dialog when executed. (#15983) - FixedFixes an issue where changes made to image file loaded as
ImageDocument
inPdfActivity
orPdfFragment
were not propagated to other image apps in the system. (#15943)- AddedAdds
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. - AddedAdds
ImageDocumentUtils#isImageUri()
that can be used to check whether the content returned by resolving anUri
has an image MIME type.
- FixedFixes an issue where configuration options set on
PdfConfiguration
were ignored when wrapping activity configuration viaImageDocumentLoader#getDefaultImageDocumentActivityConfiguration()
. (#15963)- AddedAdds
getDefaultImageDocumentConfiguration(PdfConfiguration)
toImageDocumentLoader
to create configuration for image documents from existingPdfConfiguration
. - ChangedReturn values of
getDefaultImageDocumentConfiguration()
andgetDefaultImageDocumentActivityConfiguration()
inImageDocumentLoader
are now marked as@NonNull
.
- FixedFixes an issue where form validation error message displayed in form editing bar had incorrect height in immersive mode. (#16103)
- FixedFixes an issue where it wasn't possible to re-select between form elements and annotations. (#15962)
- FixedFixes 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
- AddedAdds support for
RichMediaExecuteActionType
. (#15648) - AddedAdds support for calling
PdfActivity#setConfiguration
beforeonCreate
is called to set configuration without causing an activity restart. (#15926) - AddedAdds support for creating
NamedAction
,GoToEmbeddedFileAction
,HideAction
,ResetFormAction
andSubmitFormAction
. (#15235)- AddedAdds
getFieldNames()
toResetFormAction
andSubmitFormAction
that returns list of form field names that should be targeted by the action. - AddedAdds
shouldExcludeFormFields()
toResetFormAction
andSubmitFormAction
that indicates whether form fields targeted by the action should be included or excluded from the action execution.
- FixedFixes an issue where annotations that were parsed from XFDF were not saved to the document after adding them. (#15953)
- FixedFixes an issue where calling JavaScript function
AFSpecial_Keystroke
with certain arguments could cause an infinite loop on some devices. (#16126) - FixedFixes an issue where setting and retrieval of lines on an
InkAnnotation
would fail for detached annotations when not usingArrayList
. (#16015)
Example
- AddedAdds
XfdfExample
to Catalog app that shows how to import/export annotations to/from XFDF file format. (#15954) - ChangedExtends
ExternalDocumentExample
in the Catalog app to allow opening both PDF and image files. (#16053)
4.7.0 9 Jul 2018
See the announcement post(opens in a new tab).
UI
- AddedAdds document info view for displaying information about the document that's being viewed: (#15850)
- AddedAdds document info view enabling and disabling, see
enableDocumentInfoView()
anddisableDocumentInfoView()
inPdfActivityConfiguration.Builder
- AddedAdds document info icon to the toolbar and
PdfActivity#showDocumentInfoDialog()
for programmatic invocation. - AddedAdds
OnDocumentInfoViewModeChangeListener
listener for entering and exiting editing mode in document info view. - AddedAdds
PdfActivity#setOnDocumentInfoViewModeChangeListener()
that lets you set the aforementioned listener. - AddedAdds
PdfDocumentInfoView
class that is a pure document info view without the toolbar that you can embed in your custom components. - AddedAdds
PdfDocumentInfoDialog
which containsPdfDocumentInfoView
connected with a toolbar for switching editing modes.
- AddedAdds
PdfThumbnailGrid
customization options for editing FAB icon color. (#15809)- FixedFixes
ThumbnailGridItemView
not usingpspdf__selectionCheckBackgroundColor
- AddedAdds bookmark drag handle icon and color as customizable theme parameters for
pspdf__OutlineView
. (#15869) - AddedAdds new annotation tool for creating
FreeTextAnnotation
s setup as call outs. (#15840)
Model
- AddedAdds support for document JavaScript execution. (#15245)
- AddedAdds
JavaScriptProvider
that handles all JavaScript related operations. It can be retrieved viaPdfDocument#getJavaScriptProvider()
. - AddedAdds support for creation and execution of
JavaScriptAction
. - AddedAdds
setJavaScriptEnabled()
toPdfConfiguration.Builder
andPdfActivityConfiguration.Builder
. Use this method to control whether JavaScript execution should be enabled inPdfFragment
orPdfActivity
. - AddedAdds
JavaScriptActionsExample
,JavaScriptFormFillingExample
andFormsJavaScriptExample
to catalog app that demonstrates basic usage of JavaScript.
- AddedAdds 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)
- AddedAdds
setAdditionalAction()
,getAdditionalAction()
andgetAdditionalActions()
for setting and getting additional actions forWidgetAnnotation
. - AddedAdds
setAdditionalAction()
toFormElementConfiguration.Builder
to configure additional actions for created form elements.
- AddedAdds consumer Proguard rules needed for RxJava to properly function on API 19. (#15829)
- AddedAdds localized strings for unnamed image document title. (#15515)
- AddedAdds support for automatically resizing
FreeTextAnnotation
s based on their text usingFreeTextAnnotationUtils#resizeToFitText
. (#12998) - AddedAdds support for setting text justification, and callouts to
FreeTextAnnotation
s. (#9609)- AddedAdds
setIntent
,setTextInsets
,setCallOutPoints
,setLineEnd
, andsetTextJustification
toFreeTextAnnotation
.
- ChangedImproves image document saving performance. (#15540)
- AddedAdded the ability to print image documents. (#15375)
- FixedFixes a rare issue adding page references with the document editor. (#14705)
- FixedFixes an issue where a new digital signature could not be created in some documents. (#15683, #15702)
- FixedFixes an issue where bookmarks may not be saved correctly in certain documents. (#15826)
- FixedFixes background being rendered incorrectly for rotated
FreeTextAnnotation
s. (#15639)
4.6.1 14 Jun 2018
UI
- AddedAdds
enableAnnotationRotation
anddisableAnnotationRotation
configuration options to allow changing visibility of rotation functionality. (#15510) - AddedAdds configuration parameters for enabling/disabling sharing action in the note editor. (#15620)
- AddedAdds
PdfConfiguration.Builder#sharingNoteEditorContentEnabled(boolean)
- AddedAdds
PdfActivityConfiguration.Builder#sharingNoteEditorContentEnabled(boolean)
- AddedAdds
AnnotationReplyFeatures
to provide more granular control of the annotation reply UI. (#14883)- RemovedDeprecates
PdfConfiguration#isAnnotationReplyFeatureEnabled
andPdfConfiguration.Builder#annotationReplyFeatureEnabled
, usePdfConfiguration#getAnnotationReplyFeatures
andPdfConfiguration.Builder#annotationReplyFeatures
instead.
- ChangedAllows opening embedded PDF files if the application integrating PSPDFKit defines view PDF action. (#15611)
- FixedFixes a potential crash that could occur after rotating device while a video was playing. (#14789)
- FixedFixes an issue where annotations were not visible when being created inside
onDocumentLoaded()
. (#13255) - FixedFixes an issue where long-pressing on the annotation selection handle triggered document long-press event. (#15341)
- FixedFixes retention of
PdfActivity
insidePdfDocument
which could lead to memory leakage and OOMs. (#15518)
Model
- APIChange return type of
Signature#toInkAnnotation()
overrides fromAnnotation
toInkAnnotation
. (#15509) - AddedAdds
getExportValue()
toRadioButtonFormElement
. (#15535) - ChangedImproves
SignaturePickerDialog
APIs. (#15513)- AddedAdds method
SignaturePickerDialog.restore()
for passing over a callback to the dialog after a configuration change happened. - AddedAdds
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.
- ChangedImage quality for JPEG now used in Image Documents. (#15499)
- ChangedImproves
PdfDocument
Javadoc for saving methods withDocumentSaveOptions
parameter. (#15514) - FixedFixes an issue where closing documents with smart form tab orders could cause a crash. (#15580)
- FixedFixes an issue where a form field could be rendered more times than necessary. (#15528)
- FixedFixes an issue with
ImageDocumentExample
where recent changes to the image document were not properly loaded when reopening the example. (#15507) - FixedFixes an issue with image documents where annotation changes in certain conditions were not properly saved. (#15604)
- FixedFixes growing of image document file size after save. (#15479)
Instant
- AddedAdds support for annotation notes. (#15573)
4.6.0 31 May 2018
See the announcement post(opens in a new tab).
UI
- AddedAdds support 360° rotation of stamps and free text annotations. (#15325)
- AddedAdds
setRotation
,getRotation
, andadjustBoundsForRotation
toFreeTextAnnotation
andStampAnnotation
. - AddedAdds rotation handle to selected annotations.
- AddedAdds
PdfDocument#setRotationOffset
to allow the user to temporarily set a custom rotation for the page. (#9400)- AddedAdds
RotatePageExample
to the Catalog app.
- AddedAdds an ability to share image annotations. (#15115)
- AddedAdds
DocumentSharingManager#shareBitmap()
as helper for sharingBitmaps
using the Android sharing framework. - AddedAdds "Share" action to the annotation editing toolbar of image annotations.
- AddedAdds integration of image stamp annotations with system clipboard. (#14875)
- ChangedBitmaps in system clipboard can now be pasted as image stamp annotations.
- ChangedPuts the bitmap of copied image stamp annotation into system clipboard for pasting them to other apps.
- AddedAdds
SignaturePickerOrientation
to allow users to choose the screen orientationSignaturePickerFragment
should use. (#13896) - AddedAdds
setEnableNoteAnnotationNoZoomHandling()
toPdfActivityConfiguration.Builder
andPdfConfiguration.Builder
that can be used to disable displaying note annotations as if they had no-zoom flag enabled. (#13131) - FixedFixes a
StackOverflowError
caused when displaying aUnitSelectionEditText
having the default value larger than the maximum allowed value. (#15082) - FixedFixes a potential crash that could occur when activity handled its orientation changes. (#15164)
- FixedFixes an issue where annotation rendering was not updated after calling
PdfFragment#notifyAnnotationHasChanged()
when annotation overlay was enabled. (#15047) - FixedFixes an issue where annotations could disappear when switching to eraser. (#15157)
- FixedFixes an issue where creation of markup annotations stopped working after undo. (#15172)
- FixedFixes an issue where selected annotation was reselected when calling
PdfFragment#setSelectedAnnotation()
. (#15291)
Model
- APIThe
Annotation#getName()
property is now automatically initialized with a unique type 4 UUID for each newly created annotation. (#15419) - AddedAdds support for embedded files and file annotations. (#9613)
- AddedAdds
EmbeddedFile
that represents a single embedded file. - AddedAdds
FileAnnotation
that represents an annotation holding an embedded file. - AddedAdds
EmbeddedFilesProvider
for managing embedded files of a document. It can be retrieved by callingPSPDFDocument#getEmbeddedFilesProvider()
. - AddedAdds UI support for adding notes to file annotations and for sharing their file contents.
- AddedAdds support for image document loading. (#14270)
- AddedAdds
ImageDocument
interface. - AddedAdds
ImageDocumentLoader
helper class for loading anImageDocument
from aDocumentSource
. - AddedAdds
PdfActivity#showImage()
for opening aPdfActivity
for a passed image document. - AddedAdds
PdfFragment#newImageInstance(Uri, PdfConfiguration)
andPdfFragment#newImageInstance(DataProvider, PdfConfiguration)
for creating a new fragment that displays an image document. - AddedAdds
ImageDocumentExample
in the catalog app that shows how to open an image document from the assets folder.
- AddedAdds
PageTemplate
which can be used withNewPageDialog
to provide additional templates when adding new pages to documents. (#9842) - AddedAdds ability to define custom page patterns. Changes
PagePattern
from enum to final class. (#14974) - AddedAdds canvas support to
PdfProcessor
. (#14664)- AddedAdds
NewPage#fromCanvas()
for creating new pages with content drawn via canvas API. - AddedAdds
NewPage.Builder.withPageItem(PageCanvas)
for drawing content on pages. - AddedAdds
PdfProcessorTask#addCanvasDrawingToPage()
that can be used to merge canvas drawing with existing pages. - AddedAdds new Catalog app example
DocumentFromCanvasExample
.
- AddedAdds support for annotation blending modes. These can be set using
Annotation#setBlendMode()
(#15416) - AddedAdds
DefaultBookmarkAdapter
andDefaultOutlineViewListener
to make integration ofPdfOutlineView
withPdfFragment
easier. (#14370) - AddedAdds
SharingOptionsProvider
which can be set usingPdfActivity#setSharingOptionsProvider
. This allows you to provideShareOptions
without displaying aDocumentSharingDialog
. (#12699) - AddedAdds
PdfOutlineView
integration withPdfFragment
example toCustomFragmentActivity
. (#15360) - AddedAdds
pageIndex
parameter toPagePdf
constructors allowing creation ofPagePdf
objects referencing any page in the document instead of the first page. (#15266) - AddedAdds async version of
AnnotationProvider#createAnnotationFromInstantJson()
. (#15163) - AddedAdds factory methods
fromDocument()
,newPage()
andempty()
toPdfProcessorTask
and deprecates its constructors. (#14986) - AddedAdds support for
GoToEmbeddedAction
that allows jumping to PDF file that is embedded in the document. (#14596) - AddedAdds
CopyToClipboardActivity
to catalog that shows how to implement "Copy to clipboard" share action for shared images. (#15109) - AddedAdds
DocumentSharingProviderProcessor
that provides methods for preparing complex data for sharing viaDocumentSharingProvider
. (#15019)- AddedAdd methods for preparing
EmbeddedFile
,Bitmap
andDataProvider
data for sharing. - RemovedDeprecates
DocumentSharingProcessor
, useDocumentSharingProviderProcessor#prepareDocumentForSharing()
instead. - RemovedDeprecates
DocumentSharingProvider#deleteTemporaryFile()
, useDocumentSharingProvider#deleteFile()
instead.
- AddedAdds
getHighlightedTextBlocks()
to text markup annotations that returns list ofTextBlock
for markup annotations. (#12989) - AddedAdds annotation
name
to Instant JSON. Also renamespspdfkit/file
name
tofilename
to prevent collisions. (#14856) - AddedAdds better detection for standard stamp subjects for Instant JSON. (#14919)
- ChangedImproves XFDF output by omiting
opacity
if set to the default (1.0). (#15354) - ChangedImproves compatibility of note annotations with certain 3rd-party viewers such as Apple Preview. (#14953)
- ChangedImproves consumer Proguard rules. (#14652)
- FixedFixes a bug where annotation replies are not removed from cache when the base annotation is being deleted. (#14923)
- FixedFixes a problem where the text in unsigned form field overlays may be cut off. (#14922)
- FixedFixes an issue where
setInReplyTo()
did not work when the target annotation was not attached to a document. (#14863) - FixedFixes an issue where annotation returned from
AnnotationProvider#createAnnotationFromInstantJson()
was not attached to page. (#15154) - FixedFixes an issue where some action destinations may not work properly. (#14901)
- FixedFixes an issue where using
FormElementConfiguration
children while integrating in Kotlin led toIllegalAccessError
. AddsFormCreationKotlinExample
to showcase form creation using Kotlin. (#15470) - FixedFixes security vulnerability CVE-2018-9127 in Botan, where wildcard certificates could be accepted for invalid hostnames. (#15374)
- FixedFixes the grouped menu items being selectable in annotation editing, document editing and text selection toolbars. (#14853)
- FixedFixes an issue where glyph frames were larger than expected due to unexpected values in their fonts. (#14169)
- FixedFixes incorrect calculation of glyph frames when the page matrix is not identity. (#13668)
Instant
- AddedAdds support for Instant Layers. (#14007)
- RemovedDeprecates
InstantClient#openDocument/Async(documentId, authToken)
, useInstantClient#openDocument/Async(jwt)
instead. - RemovedDeprecates
InstantClient#getInstantDocumentDescriptor()
, useInstantClient#getInstantDocumentDescriptorForJwt()
instead. - RemovedDeprecates
InstantDocumentDescriptor#getAuthenticationToken()
, useInstantDocumentDescriptor#getJwt()
instead. - RemovedDeprecates
InstantPdfDocument#updateAuthenticationToken/Async()
, useInstantPdfDocument#reauthenticateWithJwt/Async()
instead. - RemovedDeprecates
InstantPdfActivityIntentBuilder#fromInstantDocument()
,InstantPdfActivity#showInstantDocument()
andInstantPdfFragment#newInstance()
withdocumentId
parameter, use overloaded methods without this parameter. - AddedAdds
InstantPdfActivity#setDocument()
that allows loading of different Instant document in an existing activity. - AddedAdds
InstantClient#getLocalDocumentDescriptors()
for retrieving all locally cached document descriptors. - AddedAdds
InstantClient#removeLocalStorageForDocument()
for removing local storage for all document layers. - ChangedPublic methods in Instant API now throw an exception when required parameters are
null
.
- FixedFixes 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
- AddedAdds
pspdf__mainToolbarTextColor
theme attribute that can be used to configure text color of the main toolbar. (#14569) - ChangedImproves
NoteEditorFragment
changing the status bar color to the annotation color when UI is fullscreen. (#14880) - ChangedNote editor dialog size is increased on tablets. (#14866)
- FixedFixes an issue where overlaid annotations were not displayed together with page rendering. (#14912)
- FixedFixes signature list selection color and document editor page selection icon not being customizable using themes. (#14968)
- FixedFixes an issue where replies editor was losing focus after rotations and keeping soft-keyboard visible. (#14873)
4.5.0 11 Apr 2018
UI
- AddedAdds new note editor UI. (#14505)
- AddedAdds support for adding/editing annotation replies.
- AddedAdds support for setting the review state on annotation note content.
- AddedAdds annotation opacity slider to annotation property inspector. (#13870)
- FixedFixes a potential crash that could occur when editing annotations on pages having a large number of annotations. (#14366)
- FixedFixes an issue where free-text annotations were marked modified after being selected. (#14159)
- FixedFixes an issue with fit to screen mode always rounding down when calculating page size. (#14653)
- FixedFixes the grouped menu items being selectable in annotation editing, document editing and text selection toolbars. (#14853)
Model
- AddedAdds support for annotation replies. (#13309)
- AddedAdds
AnnotationProvider#getFlattenedAnnotationReplies[Async]()
for getting replies to a given annotation (nested replies are added to the list). - AddedAdds
AnnotationProvider#getAnnotationReplies[Async]()
for getting replies to a given annotation (only contains first-level replies). - AddedAdds
AuthorState
class, representing a state that can be set on the annotation content and replies. - AddedAdds
AnnotationStateChange
that holds the data of the state change performed on the annotation. - AddedAdds
AnnotationReviewSummary
that carries the summary of currently set states and authors that have set each of them. - AddedAdds
AnnotationProvider#getReviewHistory[Async]()
for retrieving the history of reviews statuses as they were changed. - AddedAdds
AnnotationProvider#getReviewSummary[Async]()
for retrieving the summary of currently set states and authors that have set each of them. - AddedAdds
AnnotationProvider#appendAnnotationState[Async]()
that allows you to record new author state changes on the document. - AddedAdds
annotationReplyFeatureEnabled()
toPdfConfiguration
andPdfActivityConfiguration
for enabling/disabling annotation replies in UI. - AddedAdds
Annotation#setInReplyTo(Annotation annotation)
andAnnotation#getInReplyTo()
for making annotation a reply.
- AddedAdds
FormElement#setPreviousElement()
andFormElement#setNextElement()
for setting previous and next form element. (#14523)- AddedAdds
FormProvider#addFormElementToPageAsync()
andFormProvider#addFormElementsToPageAsync()
that programmatically create and insert a form field into the document, asynchronously.
- AddedAdds support for canceling in progress page renders. (#14217)
- ChangedFilters out invalid characters from a page's text. (#14516)
- FixedFixes
Nutrient#initialize
resetting theApplicationPolicy
on each call. (#14229) - FixedFixes a crash when trying to paste text into a document without having the annotation feature licensed. (#14709)
- FixedFixes a potential crash when saving a document. (#14082)
- FixedFixes a potential issue when removing annotations. (#14381)
- FixedFixes an issue where a flattened document shows a blank page in Preview. (#13708)
- FixedFixes an issue where image data wasn't properly removed after rewriting the PDF. (#14708)
- FixedFixes an issue where where
OnAnnotationUpdatedListener#onAnnotationUpdated()
was being called multiple times even when annotation was changed only once. (#14133) - FixedFixes faulty recycling of framework internal objects that could lead to memory issues. (#14790)
- FixedFixes forms on rotated pages not being rendered correctly. (#14422)
- FixedFixes framework being obfuscated twice when using consumer Proguard rules. (#14601)
- FixedFixes potential deadlocks when opening a lot of documents. (#14503)
- FixedFixes an issue where author name was not set on created image annotations. (#14743)
Instant
- ChangedEnable multidex support in PSPDFKit Instant example. (#14757)
4.4.1 16 Mar 2018
UI
- ChangedAnnotations overlay is now enabled by default on high-end devices. (#13653)
- ChangedIf you wish to disable this behavior, pass an empty set to
PdfFragment#setOverlaidAnnotationTypes()
.
- AddedAdds
PdfFragment#getOverlaidAnnotationTypes()
andPdfFragment#getOverlaidAnnotations
to retrieve set of annotation types or annotations that are enabled for overlay mode rendering. (#14457) - FixedFixes a bug that could cause a ANR when quickly detaching a
PdfFragment
after attaching it to an activity. (#14472) - FixedFixes 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) - FixedFixes an issue where opening large documents with marked content used very large amounts of memory. (#14415)
- FixedFixes
PdfDocument#invalidateCacheForPage
doing nothing. (#14211) - FixedFixes an issue where
OnAnnotationUpdatedListener#onAnnotationUpdated()
was being called 2 times after undoing annotation changes. (#14533) - FixedFixes an issue where annotation returned to page after undoing its deletion had changed object number. (#14532)
- FixedFixes an issue where custom text for
ComboBoxFormElement
was not shown when set. (#14461)- AddedAdds support for selecting multiple options for
ListBoxFormElement
and exposing convenient configuration methodBuilder.ListBoxFormConfiguration#setMultiSelectionEnabled
- APIRenames
Builder.ComboBoxFormConfiguration#setSelectedIndexes
toBuilder.ComboBoxFormConfiguration#setSelectedIndexes
becauseComboBoxFormElement
supports only single-selection. - AddedAdds
ComboBoxFormConfiguration
andListBoxConfiguration
examples toFormCreationExample
in Catalog app.
- FixedFixes issue where
pdfId
was required when importing a Instant JSON document. (#14494)
4.4.0 9 Mar 2018
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
UI
- APIAdds support for rendering annotations in overlay mode. (#11835)
- AddedAdds
PdfFragment#setOverlaidAnnotationTypes()
to configure set of annotation types that should be extracted to annotation overlay. - AddedAdds
PdfFragment#setOverlaidAnnotations()
to configure annotations that should be extracted to annotation overlay.
- FixedFixes a potential crash that occurred when selecting large annotations when page was zoomed. (#14062)
- FixedFixes an issue where Annotations that were added using AnnotationProvider#createAnnotationFromInstantJson() were not editable. (#14340)
- APIAnnotationProvider#createAnnotationFromInstantJson() will now throw when license does not support annotation editing.
- ChangedAnnotationProvider#createAnnotationFromInstantJson() is now marked @NonNull instead of @Nullable.
- ChangedAnnotationProvider#createAnnotationFromInstantJson() will now call OnAnnotationUpdatedListener#onAnnotationCreated()
- FixedFixes an issue where dropdown arrow on combo boxes are not seen when box has a small width. (#14326)
- FixedFixes an issue where dropdown arrows are still seen on combo boxes when document is flattened. (#9539)
- FixedFixes an issue where toolbar was left with an empty space after hiding menu item. (#13180)
- FixedFixes a potential crash that could occur when changing text of selected free-text annotation from background thread. (#14441)
- FixedFixes an issue where annotation editing toolbar was missing grouping rule for custom button used in the
AnnotationFlagsActivity
. (#14139)
Model
- APIAdds support for programmatically creating forms using
FormProvider#addFormElementToPage
. (#13777)- AddedAdds
CheckBoxFormConfiguration
andCheckBoxFormConfiguration.Builder
for creation and configuration ofCheckBoxFormElement
. - AddedAdds
ComboBoxFormConfiguration
andComboBoxFormConfiguration.Builder
for creation and configuration ofComboBoxFormElement
. - AddedAdds
ListBoxFormConfiguration
andListBoxFormConfiguration.Builder
for creation and configuration ofListBoxFormElement
. - AddedAdds
PushButtonFormConfiguration
andPushButtonFormConfiguration.Builder
for creation and configuration ofPushButtonFormElement
. - AddedAdds
RadioButtonFormConfiguration
andRadioButtonFormConfiguration.Builder
for creation and configuration ofRadioButtonFormElement
. - AddedAdds
SignatureFormConfiguration
andSignatureFormConfiguration.Builder
for creation and configuration ofSignatureFormElement
. - AddedAdds
TextFormConfiguration
andTextFormConfiguration.Builder
for creation and configuration ofTextFormElement
.
- APICleans up nullability annotations on our Annotation API. (#13956)
- ChangedAnnotation 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
.
- APIRects 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) - AddedAdds
SearchOptions#priorityPages(ArrayList<Range> priorityPages, Boolean searchOnlyInPriorityPages)
, which allows you to restrict the search to a particular page range by settingsearchOnlyInPriorityPages
to true. (#12772) - AddedAdds more specific Proguard rules to keep API related code and examples from obfuscation. (#14360)
- AddedAdds support for automatically updating the last modified date when changing annotations. (#14000)
- ChangedImproves digital signing APIs to support external signature providers (such as HSMs). (#13932)
- AddedAdds
SignatureProvider
interface for implementing custom signature providers. - AddedAdds
PrivateKeySignatureProvider
implementation for signing PDF data using aPrivateKeyEntry
. - AddedAdds abstract method
Signer#prepareSigningParameters()
which has to be implemented by subclasses to return aSignatureProvider
instance. - AddedAdds
EncryptionAlgorithm
enum andHashAlgorithm
enum of various encryption and hash algorithms respectively that are supported when signing PDFs. - AddedAdds
InteractiveSigner
interface, which can be implemented by aSigner
to allow digital signing flows that require to retrieve a password from the user. - AddedAdds 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. - RemovedDeprecates
Signer#signFormFieldAsync()
andSigner#signFormField()
methods taking aPrivateKeyEntry
as argument. Check out the 4.4 migration guide for alternative APIs. - RemovedDeprecates
MemorySigner#signFormField()
andMemorySigner#signFormFieldAsync()
. Use the equivalent methods on theSigner
base class.
- ChangedMethods in
PSPDFKit
now throw an exception when required parameters arenull
. (#14080) - FixedFixes FTS5 search on SQLite versions >= 3.20.0. (#14036)
- FixedFixes an issue where parts of
com.pspdfkit.undo
were obfuscated. (#14464) - FixedFixes an issue saving a document with invalid PDF syntax (empty dictionary key). (#14009)
- FixedFixes an issue where
null
values set to@Nullable
Annotation properties did not clear the property value in the document. (#13900) - FixedFixes an issue where action destinations would not be found if sorted incorrectly. (#14412)
- FixedFixes an issue where some form fields with custom FQNs may not be signed correctly. (#14309)
- FixedFixes crashes on document unload when FormTabOrderCalculator is being processed. (#13976)
- FixedFixes document corruption bug that could happen when documents with header were incrementally saved. (#14249)
- FixedFixes potential crash when saving files with irregular outlines. (#14116)
- FixedFixes document corruption issue when document has a header and is incrementally saved. (#14249)
Example
- AddedAdds the new example
FormCreationExample
to Catalog app that demonstrates form creation starting from an empty PDF document. (#14428)
Instant
- AddedAdds
createdAt
,updatedAt
andcreatorName
to Instant JSON. (#14443)
4.3.1 1 Feb 2018
- ChangedUpdated dependencies:
- ChangedKotlin 1.2.21 /
org.jetbrains.kotlin:kotlin-stdlib:1.2.21
- AddedAdds a Catalog example on how to use form editing bar and inspector when using
PdfFragment
with custom activity. (#13750) - ChangedImproves undo/redo by adding support for undoing changes made to Polyline and Polygon annotations. (#13963)
- ChangedAnnotations with
HIDDEN
orNO_VIEW
flag are now displayed in the annotation list by default. (#13619) - ChangedUpdate Kotlin to 1.2.21. (#13995)
- AddedAdds Kotlin extensions to Catalog app. See
PSPDFKitKotlin.kt
.
- ChangedUpdates localized strings, fixing some minor issues. (#13155)
- FixedFixes a crash caused by
NullPointerException
in the internalAnnotationClipboard
class. (#14037) - FixedFixes an assertion when a non-specified named action was deserialized via Instant JSON. (#13804)
- FixedFixes an issue in dropdown list forms where searching for an element was allowing newlines. (#13986)
- FixedFixes 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) - FixedFixes an issue where
PdfDocument#saveIfModified
did not clear dirty state of bookmark provider. (#14026) - FixedFixes an issue where certain free-text annotations were drawn as empty after selection. (#13994)
- FixedFixes an issue where drawn ink annotations disappeared after leaving the annotation creation mode. (#14035)
- FixedFixes an issue where saving a document to path cleared the dirty state from document metadata and form provider. (#13751)
- FixedFixes an issue where stamp annotations with custom AP streams lost transparency and subject after copying. (#13847)
- FixedFixes 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()
- FixedFixes an issue where transparent color was not properly exported to XFDF. (#13016)
- FixedFixes a crash caused by device not having the activity to handle the storage access when trying to save the document. (#14039)
- FixedFixes a crash invoked by pressing
RETURN
when adding custom form option. (#14001)
Instant
- FixedFixes an issue where
InstantAnnotationProvider#hasUnsavedChanges()
reported wrong state. This method now returnstrue
when there are unsynced annotations changes. (#13988) - FixedFixes an issue where thumbnail bar wasn't refreshed after syncing annotations with Instant. (#13988)
4.3.0 24 Jan 2018
See the announcement post(opens in a new tab).
- ChangedUpdated dependencies:
- ChangedKotlin 1.2.20 /
org.jetbrains.kotlin:kotlin-stdlib:1.2.20
- ChangedDevice Year Class 2.0.0 /
com.facebook.device.yearclass:yearclass:2.0.0
- AddedAdds support for annotation undo and redo. (#5626)
- AddedAdds
UndoManager
that manages a stack of edits on aPdfFragment
and provides methods for navigating back and forth in the edit history. - AddedAdds
PdfFragment#getUndoManager()
for retrieving the undo manager of the fragment. - AddedAdds
OnUndoHistoryChangeListener
for listening to changes to the edit history of an undo manager. - AddedAdds
undoEnabled()
andredoEnabled()
toPdfConfiguration
for selectively configuring whether undo and redo should be available to the user. - AddedAdds style attributes
pspdf__undoIcon
andpspdf__redoIcon
to thepspdf__AnnotationCreationToolbarIcons
styleable, to change the look of the undo and redo buttons.
- AddedAdds support for copying and pasting annotations. (#5556)
- AddedAdds
enableCopyPaste()
anddisableCopyPaste()
toPdfConfiguration
. - AddedAdds
setEnabledCopyPasteFeatures()
toPdfConfiguration
, this allows more granular control over how copy/paste works. - AddedAdds system clipboard integration for copying text from any app into a PDF document and for extracting text from annotations.
- AddedAdds
ANNOTATION_COPY_PASTE_SYSTEM_INTEGRATION
application policy to allow controlling the system clipboard integration. - AddedAdds handling for common shortcut keys Ctrl+C, Ctrl+X, and Ctrl+V for copying, cutting, and pasting annotations using a keyboard.
- AddedAdds 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. - AddedAdds long-press gesture to pages, which will now paste an annotation that was previously copied to the clipboard.
- AddedAdds support for visual annotation contents hint. (#12550)
- AddedAdds class
AnnotationNoteHinter
that extendsPdfDrawableProvider
for drawing visual hints for supported annotation types. - AddedAdds
setAnnotationNoteHintingEnabled()
toPdfActivityConfiguration.Builder
to control whether annotation contents hints are enabled. - AddedAdds new
CustomAnnotationNoteHinterProviderExample
in catalog with an example on how to implement a custom annotation note hinter drawable provider.
- AddedAdds alpha rendering support for annotations. A call to
Annotation#setAlpha()
will now produce the expected transparency effects for rendered annotations. (#9618) - AddedAdds a smart low resolution render strategy using the Device Year Class library(opens in a new tab). (#13355)
- AddedAdds
PdfConfiguration.Builder#setFixedLowResRenderPixelCount()
andPdfConfiguration#getFixedLowResRenderPixelCount()
to set and retrieve fixed low resolution render pixel count without using an optimized value.
- AddedAdds
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) - AddedAdds
getOverlappingInkSignature()
toSignatureFormElement
that can be used to retrieveInkAnnotation
s that are overlapping signature fields. (#10675) - AddedAdds
Annotation#setSubject()
to set the subject property of an annotation. (#13766)- ChangedCalling
setSubject()
onStampAnnotation
instances with custom bitmaps is not supported, and will throw an exception.
- AddedAdds
AnnotationProvider#hasUnsavedChanges()
to check if there are changes to annotations that need to be saved to disk. (#13322)- RemovedDeprecates
AnnotationProvider#isDirty()
,AnnotationProvider#clearDirty()
, andAnnotationProvider#prepareForSave()
.
- AddedAdds form field values to Instant JSON. (#13335)
- AddedAdds support for PEM-encoded certificates in PKCS#7 files. (#13698)
- AddedAdds support for creating empty
FreeTextAnnotations
. (#13781) - AddedAdds Kotlin as transitive dependency. (#5638)
- AddedAdds a new
KotlinExample
which showcases how to use PSPDFKit with the Kotlin programming language.
- ChangedImproves the customizability of the navigation buttons declaring
pspdf__navigationHistoryIconColor
styleable. These allow you to change the chevrons color in the navigation buttons. (#13717) - Changed"Sign here" badge is now hidden once an ink signature is drawn on top of the signature field. (#13456)
- Changed
SignatureSignerDialog
can now sign documents without saving them first. This can be used to sign documents from read-only sources. (#13213)- AddedAdds
SignatureSignerDialog.Options
which allows you to specify the parameters for theSignatureSignerDialog
. - RemovedDeprecates
SignatureSignerDialog#show(FragmentManager, PdfDocument, SignatureFormField, Signer, BiometricSignatureData, DocumentSigningListener)
. UseSignatureSignerDialog#show(FragmentManager, Options, DocumentSigningListener)}
instead.
- ChangedImproves minimum size calculation of annotations. (#13313)
- ChangedThe new default minimum size is 16x16pt with a few exceptions.
- ChangedThe minimum size of
PolygonAnnotation
,PolylineAnnotation
andLineAnnotation
remain unchanged. - ChangedThe minimum size of callout annotations was changed from 48x32pt to 24x16pt.
- ChangedImproves the detection of digital signatures in third-party PDF readers. (#13593)
- ChangedImproves the accuracy of the information about the digital signature validation process by demoting some non-critical errors to warnings. (#13570)
- ChangedImproves the stability of the digital signing process with some certificate authorities with missing fields. (#13694)
- APIFixes 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) - APIImproves the customizability of the inline search view. (#13517)
- AddedAdds
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. - AddedAdds
pspdf__throbberColor
topspdf__SearchViewInline
styleable. This allows you to change the color of the loading throbber. - RemovedRemoves
pspdf__textColor
,pspdf__hintTextColor
, andpspdf__navigationTextColor
frompspdf__SearchViewInline
styleable. These are replaced by setting the text appearance.
- APIHide several undocumented methods on
Annotation
which were meant for framework internal use only. (#13805) - FixedFixes polygon fill and stroke overlap when drawing with alpha. (#13868)
- FixedFixes displaying multiple annotations instead of one for eraser mode. (#13867)
- FixedFixes missed search terms which span over a newline without a hyphen. (#11862)
- FixedFixes form highlights, required field border, list box selection colors when in grayscale mode (#12996)
- FixedFixes an issue where default color for highlight annotations were not rendered properly. (#12938)
- FixedFixes an issue where filtered types were being added to the annotation list on the first document opening. (#13378)
- FixedFixes an issue where
getPageText()
andgetPageTextRects()
onPdfDocument
would not work properly for vertical or rotated text. (#13423) - FixedFixes an issue with stamp annotations not being rendered when using XFDF. (#13330)
- FixedFixes specific issue where previous xref has the same object number as a newly created object. (#13183)
- FixedFixes an issue where some texts in signature form fields may not be translated. (#13441)
- FixedFixes an issue where annotations could not be resized after being stretched to the maximum height of the page. (#9977)
- FixedFixed an issue where eraser was not applied when affecting multiple annotations. (#12946)
- FixedFixes an issue where the
SignatureSignerDialog
wasn't restored on configuration change. (#13213) - FixedFixes an issue where image stamp annotations appeared scaled up. (#13703)
- FixedFixes an issue where new page dialog used incorrect text color in the dark theme. (#13590)
- FixedFixes an issue where note editor crashed on certain devices due to missing resource. (#13585)
- FixedFixes an issue where a signed document may show a warning if inspected with a PDF lint tool. (#13719)
- FixedFixes 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)- AddedAdds protected method
notifyToolbarChanged()
toContextualToolbar
that should called by specific toolbar implementation when toolbar contents are changed. - AddedAdds
onContextualToolbarChanged()
toToolbarCoordinatorLayoutController
, that is called when toolbar menu items have changed.
- FixedFixes opening of unsupported documents with page labels (#13509)
- FixedFixes an issue where some list boxes do not display all the possible options. (#13454)
- FixedFixes highlight markups on some specficic documents (#13768)
- FixedFixes an issue where empty free-text annotations were not rendered properly. (#13782)
- FixedFixes an issue where checkbox values were not updated correctly. (#13843)
- FixedFixes an unhandled
NullPointerException
thrown while erasing ink annotations. (#13715) - FixedFixes an issue where tapping the page quickly after removing an annotation could lead to a crash. (#13885)
- FixedFixes an issue where annotations were not rendered properly when global AP stream generator was set. (#13872)
- FixedFixes an issue where digitally signing a document multiple times may invalidate previous signatures. (#13582)
Instant
- AddedAdds a catalog example that uses Instant to load documents from our public preview server and demonstrates real-time annotation synchronization. (#13411)
- AddedAdds
InstantDocumentState
describing the possible states that aInstantPdfDocument
can be in. (#11324)- AddedAdds
onDocumentStateChanged()
toInstantDocumentListener
, that is called whenever document state changes.
- AddedAdds
isListeningToServerChanges()
andgetDelayForSyncingLocalChanges()
toInstantPdfDocument
. (#13247) - APIRemoves list of updated annotations from
InstantDocumentListener#onSyncFinished()
. (#13532) - APIMethods annotated with
@NotNull
will no longer ignore illegaly passednull
vaues but will instead throw anIllegalArgumentException
. (#13571) - FixedFixes an issue where annotations created with default properties were not synced with Instant server. (#13348)
- FixedFixes a memory leak related to sync requests. (#13540)
- FixedFixes a dangling pointer issue when parsing invalid server responses. (#13557)
- FixedFixes an issue where syncing created new annotations instead of updating old ones. (#13407)
- FixedFixes an issue where Proguard would fail when applied on an app integrating Instant. (#13620)
4.2.1 30 Nov 2017
- ChangedImproves scrollable thumbnail bar state restoration after rotation changes removing scrolling animation when not needed. (#10459)
- FixedFixes an issue when dismissing
DownloadProgressFragment
, that would fail to perform a detaching afteronSaveInstanceState
. (#13222) - FixedFixes an issue where annotation list displays all items in the same color. (#13082)
- FixedFixes an issue when changing configuration while in
DownloadProgressFragment
, that would freeze the device. (#13241) - FixedFixes an issue where annotations would be positioned wrongly when created on a page with a transform. (#12492)
- FixedFixes an issue where dark styles were not applied correctly in catalog app when in night mode. (#13285)
- FixedFixes an issue where documents with links may not point to the correct destination after being exported. (#13341)
4.2.0 23 Nov 2017
- AddedAdds
DocumentJsonFormatter
for exporting and importing Instant Document JSON toPdfDocument
instances. (#11674)- AddedAdds new package
com.pspdfkit.document.formatters
for document serialization related classes. - RemovedDeprecates
com.pspdfkit.annotations.xfdf.XfdfFormatter
. Usecom.pspdfkit.document.formatters.XfdfFormatter
instead.
- FixedFixes form highlights, required field border, list box selection colors when in grayscale mode (#12996)
- FixedFixes newly added signatures not being selected after rotating from landscape to portrait. (#12941)
- FixedFixes an issue where default
OnDocumentLongPressListener
overrides the one set by the user, if that happened before the fragment creates views. (#13091) - FixedFixes 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) - FixedFixes 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) - FixedFixes a crash that could happen when rendering the preview for stamp picker items with custom appearance streams. (#13196)
Instant
Important: This release requires PSPDFKit Server 2017.8(opens in a new tab) for syncing. If you try to connect to an older version of the server, syncing will fail. For further information, please refer to the migration guides for PSPDFKit Server(opens in a new tab) and PSPDFKit Web(opens in a new tab).
- API
#getAnnotationProvider
inInstantPdfDocument
now returnsInstantAnnotationProvider
that extendsAnnotationProvider
with Instant related functionality. (#11682) - AddedAdds
#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(opens in a new tab).
- AddedAdds support for biometric signatures. (#12865)
- AddedAdds class
BiometricSignatureData
that can be written to a digital signature. - AddedAdds overloads to
Signer#signFormField()
andSigner#signFormFieldAsync()
that take aBiometricSignatureData
and will save it to the document while digitally signing it. - AddedAdds
getBiometricData()
to the existingSignature
class which will return biometric data for a signature. - ChangedSignatures created with the
SignaturePickerFragment
will now contain biometric data if Digital Signatures are enabled in the used licence.
- AddedAdds support for custom appearance streams for annotations. (#12217)
- AddedAdds
AppearanceStreamGenerator
interface that suppliesDataProvider
for PDF document that should be used as a custom appearance stream for annotations. - AddedAdds
Annotation#setAppearanceStreamGenerator()
to configure appearance stream generator for annotation andAnnotation#getAppearanceStreamGenerator()
to retrieve it. - AddedAdds
Annotation#generateAppearanceStream()
andAnnotation#generateAppearanceStreamAsync()
to regenerate annotation's appearance stream. - AddedAdds
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. - AddedAdds
AssetAppearanceStreamGenerator
andContentResolverAppearanceStreamGenerator
for generating appearance streams from documents stored in application assets or provided by content providers. - AddedAdds support for defining
StampPickerItem
with custom appearance stream generator. - ChangedExtends
AnnotationCreationExample
in catalog with an example on how to programatically create stamp annotations with custom appearance. - ChangedExtends
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.
- ChangedWidens Drawable API support. Now available for
PdfThumbnailBar
,PdfThumbnailGrid
and as a part ofPageRenderConfiguration
. (#7121)- AddedAdds
pdfDrawables()
call toPageRenderConfiguration
constructor. - AddedAdds
addDrawableProvider(PdfDrawableProvider)
andremoveDrawableProvider(PdfDrawableProvider)
toPdfThumbnailBar
andPdfThumbnailGrid
for managing drawable providers. - AddedAdds
setDrawableProviders(List<PdfDrawableProvider>)
toThumbnailAdapter
,PdfThumbnailBarController
and its implementationsPdfThumbnailGrid
andPdfStaticThumbnailBar
.
- AddedAdds support for searching through the options of form list and combo boxes. (#12760)
- AddedAdds support for transferring document level JavaScript when processing a document. (#12769)
- AddedAdds overloads for
Annotation#renderToBitmap
andAnnotation#renderToBitmapAsync
acceptingAnnotationRenderConfiguration
that can be used to control advanced annotation rendering options. (#12916) - AddedAdds the utility method for calculating bounding box from lines -
PdfUtils#boundingBoxFromLines()
. (#12846) - ChangedImproves usage of quantity strings (plurals). (#13039)
- ChangedImproves detection of RichMedia elements and always prefers to show controls for audio-only tracks. (#12986)
- ChangedImproves displayed annotation contents for annotation list in
PdfOutlineView
. (#12553) - ChangedImproves the switch animation from indeterminate circular progress bar to determinate horizontal progress bar when opening documents that have a provided progress. (#11878)
- ChangedImproves
SignaturePickerFragment
on tablets by disabling touch dismissing it while the user is entering a signature. (#8505) - APIDeprecates
registerDrawableProvider(PdfDrawableProvider)
andunregisterDrawableProvider(PdfDrawableProvider)
inPdfFragment
. UseaddDrawableProvider(PdfDrawableProvider)
andremoveDrawableProvider(PdfDrawableProvider)
instead. (#7121) - FixedFixes an issue where color for selected item in listbox form fields fell back to transparent when it wasn't defined in theme. (#12991)
- FixedFixes an issue when saving a document that has been restored from a checkpoint. (#12890)
- FixedFixes an issue with incorrect tab order in forms. (#12902)
- FixedFixes an issue where some flattened documents may not show correctly in third party readers. (#12901)
- FixedFixes the positioning of the underline on text when no ascending characters are present on the line. (#11489)
- FixedFixes an issue where some ink annotations may not be rendered correctly by third party readers. (#12900)
- FixedFixes missing document link action when destination is not defined. (#12917)
- FixedFixes an issue when exporting XFDF with non-ascii characters. (#12892)
- FixedFixes an issue where adding a signature with only a single point in it caused forms to no longer work. (#12976)
- FixedFixes an issue where the loading throbber wasn't hidden when the document failed to load. (#12804)
- FixedFixes
GoToRemoteAction
object havingGOTO
action type set to it, instead ofGOTO_REMOTE
. (#13071) - FixedFixes a problem where some PDF documents may not show every form field element. (#12998)
- FixedFixes issue where text in form fields are always black. (#12449)
- FixedFixes a display problem were previously stored signatures were clipped when displayed in the
SignaturePickerFragment
. (#13057) - FixedFixes dangling symbols names in catalog app descriptions and Javadoc. (#13043)
- FixedFixes an issue when trying to interact with a form whilst a PdfProcessorTask is in progress. (#12973)
Instant
Important: This is the last release of Instant compatible with PSPDFKit Server 2017.7 and earlier. The next release will require 2017.8. For further information, please refer to the migration guide(opens in a new tab).
- AddedAdds error codes to
InstantErrorCode
for the cases where the client and server have incompatible versions:OLD_CLIENT
andOLD_SERVER
. (#12720) - AddedAdds 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) - APIAdds 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
- APIAdds two missing methods
#addOnFormTabOrderUpdatedListener()
and#removeOnFormTabOrderUpdatedListener()
toFormProvider
which allow management of the already existingOnFormTabOrderUpdatedListener
interface. (#12847) - APIListener 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()
- APIAdds eager
null
checks toFormProvider
methods with@NonNull
parameters. (#12849)- Changed
FormProvider#getFormFieldWithFullyQualifiedNameAsync()
andFormProvider#getFormFieldWithFullyQualifiedName()
- Changed
FormProvider#getFormElementForAnnotationAsync()
andFormProvider#getFormElementForAnnotation()
- Changed
FormProvider#getFormElementWithNameAsync()
andFormProvider#getFormElementWithName()
- APIChanges 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()
- ChangedImproves UI design of signature dialog. (#12646)
- RemovedRemoves
pspdf__colorIconsBorderColor
frompspdf__SignatureLayout
styleable. The signature dialog's color picker is now using a FAB which doesn't have a border. - AddedAdds
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
.
- ChangedImproves performance when toggling checkboxes. (#12706)
- ChangedImproves reliability when saving documents with broken cross-reference tables. (#12212)
- FixedFixes an issue where ink annotations were drawn incorrectly after finishing touch gestures on high resolution devices. (#12908)
- FixedFixes wrong toolbar offset calculations in
ToolbarCoordinatorLayout
caused by dynamic window insets on some devices (like the Samsung Galaxy S8). (#12587) - FixedFixes an issue where data restored from a checkpoint would not be saved to the file when using incremental saving mode. (#12890)
- FixedFixes an issue with incorrect tab order in forms. (#12902)
- FixedFixes an issue where some flattened documents weren't correctly displayed in third party readers. (#12901)
Instant
- APIWhen passing
null
toInstantPdfFragment#removeInstantDocumentListener()
andInstantPdfFragment#addInstantDocumentListener()
the methods will now throw anIllegalArgumentException
instead of the previously thrownNullPointerException
. (#12849)
4.0.1 19 Oct 2017
- AddedAdds new catalog app launcher icon for all devices and adaptive launcher icon for Android 8.0 Oreo and newer. (#12220)
- ChangedImproves Javadoc for
SharingMenu
andActionMenu
. (#12688) - ChangedCalling
PdfFragment#setDocumentSigningListener()
without having Digital Signatures licensed will now throw anInvalidPSPDFKitLicenseException
. (#12761) - FixedFixes a crash that happened when tapping a
SignatureFormElement
without having Digital Signatures or Annotation Editing features licensed. (#12705) - FixedFixes several issues with the
AnnotationProvider
. (#12761)- ChangedAnnotates return type of
AnnotationProvider.getAnnotations(int)
as@NonNull
. - FixedFixes a bug where
annotationProvider.removeAnnotation(...)
would not properly remove annotation instances that were retained across activity configuration changes.
- FixedFixes issues with font selection for non latin languages. (#12297, #11639)
- FixedFixes annotations moving on rotated pages when flattening. (#8242)
- FixedFixes the
SignatureSignerDialog
not being restored on orientation change. (#12615)- APIAdds
SignatureSignerDialog#setListener()
to allow you to set the listener of an already displayed dialog.
- FixedFixes issues with corrupted documents when restoring data from checkpoints. (#12669)
- FixedFixes an issue where text in form fields could be cut off. (#12494)
- FixedFixes an issue where the UI wasn't properly reset when setting a new document on a
PdfActivity
. (#12636) - FixedFixes an issue with rendering text while zoomed into specific documents. (#12392)
- FixedFixes an issue on Chromebook devices where share dialog was only partially visible. (#12683)
- FixedFixes an issue where underline annotations and text extraction did not work correctly for some documents. (#12070)
Instant
- FixedFixes lock inversions that could cause live- or deadlocks when syncing finished while the document was still being parsed. (#11739)
- FixedFixes an issue where note annotation positions and renderings were not updated after syncing with Instant. (#12641)
4.0.0 12 Oct 2017
See the announcement post(opens in a new tab).
Below is a summary of the API changes in this release. For a full list, with our suggested migration strategy for each API that has been changed or removed, please see the migration guide(opens in a new tab)
- ChangedThe minimum required version is now Android 4.4 (API Level 19).
- ChangedUpdates dependency - Support libraries to
26.0.2
, RxJava to2.1.3
. - APIAdds
PdfFragment#newInstance(PdfFragment fragment, PdfConfiguration configuration)
that copies the state of the givenPdfFragment
to the new instance. - AddedAdds support for AES encryption when saving or processing a document. (#4420)
- APIAdds API to save and restore checkpoint files for PDF documents that support checkpointing. (#11970, #12387)
- APIAdds
PdfDocumentCheckpointer
to handle saving and cleaning of document checkpoints using a configurable saving strategy. - APIAdds
PdfDocument#getCheckpointer()
which returns the document's checkpointer instance.
- APIAdds callbacks for annotation creation and removal. (#10865)
- ChangedAnnotation creation, updates and removal are now notified via separate methods of
AnnotationProvider.OnAnnotationUpdatedListener
. - RemovedDeprecates
AnnotationManager.OnAnnotationUpdatedListener
, useAnnotationProvider.OnAnnotationUpdatedListener
instead. You can register annotation updated listener viaPdfFragment#addOnAnnotationUpdatedListener
and remove it viaPdfFragment#removeOnAnnotationUpdatedListener
.
- APIAdds
DocumentListener#onPageUpdated
that is called when contents of a page have changed. (#12544) - AddedAdds a new icon set for all toolbar items, as well as replacing the note icons with vector versions. (#12257)
- AddedAdds
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) - AddedAdds ink eraser tool. (#9612)
- AddedAdds eraser button to the annotation creation toolbar (id:
pspdf__annotation_creation_toolbar_item_eraser
). - APIAdds
AnnotationTool#ERASER
, eraser is enabled only when ink annotations are editable and eraser tool is in the list of enabled annotation tools. - APIAdds
EraserDefaultsProvider
for controlling eraser thickness.
- APIAdds support for digital signatures. (#11225)
- APIAdds
SignatureManager
to manage trusted CA certificates and registered signers. - APIAdds
SignatureFormElement
andSignatureFormField
to represent signature forms in the PDF document. - APIAdds
DigitalSignatureInfo
andDocumentSignatureInfo
to access all signing related information on a document. - APIAdds
DigitalSignatureValidator
to provide validation forDigitalSignatureInfo
. The validation result is returned asDigitalSignatureValidationResult
. - APIAdds
SignatureInfoDialog
for showing the result of a signature verification. - APIAdds
getDocumentSignatureInfo()
call toPdfDocument
to easily check for signature information and validity in a PDF document. - APIAdds abstract
Signer
class that is used to digitally sign aSignatureFormField
. - APIAdds
MemorySigner
for signing documents using a pre-loadedPrivateKeyEntry
. - APIAdds
Pkcs12Signer
for signing documents using a PKCS#12 file. - APIAdds
SigningFailedException
for signalizing a failure during signing. - APIAdds
SigningStatus
to express the result of a signing operation during a failure. - APIAdds
SignatureSignerDialog
for signing a single signature form field using aSigner
. - APIAdds
DocumentSigningListener
to listen to signing events on theSignatureSignerDialog
. - APIAdds
PdfFragment#setDocumentSigningListener()
to override the default signing listener used by the fragment. - APIAdds
Signature#getSignerIdentifier()
to return the unique identifier of an associatedSigner
. - APIAdds
Signature#toInkAnnotation(com.pspdfkit.document.PdfDocument, int, android.graphics.RectF)
for creating anInkAnnotation
whose bounding box fixes the givenRectF
. - APIMoves
Signature
class fromcom.pspdfkit.annotations.signatures
tocom.pspdfkit.signatures
. - APIMoves
SignaturePickerFragment
class fromcom.pspdfkit.annotations.signatures
tocom.pspdfkit.signatures
. - ChangedThe
SignaturePickerFragment
provides a new, cleaner UI flow, allowing users to pick signatures from a list, and store them to a database.
- APIAdds
DocumentListener#onDocumentSaveCancelled
that is being called when document saving is skipped. (#11950) - APIAdds API and UI for creating link annotations from selected text. (#11296, #12092)
- APIAdds '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). - APIAdds
TextSelectionController#createLinkAboveSelectedText()
method for creating links above selected text (fires up a dialog). - APIAdds
LinkAnnotation
constructor method for creating link annotations. - APIAdds
UriAction
constructor for creating URI actions with specified URL string. - APIAdds
GoToAction
constructor for creating GoTo actions with specified target page index. - APIAdds
setAction()
method onLinkAnnotation
class for setting anAction
to be triggered when link annotation is clicked. - APIAdds
LinkAnnotationHighlighter
which highlightes newly created link annotations.
- APIAdds API for controlling defaults for annotation tools. This extends existing annotation defaults API. (#12100)
- APIAdds API to set annotation defaults provider for
AnnotationTool
inAnnotationDefaultsManager
. Setting annotation defaults provider forAnnotationTool
overrides defaults defined for underlyingAnnotationType
when creating annotations. - APIReplaces
AnnotationType
withAnnotationTool
inAnnotationPreferencesManager
methods.
- APIAdds
USER_INTERFACE_VIEW_MODE_MANUAL
providing total control over user interface visibility. (#11791) - APIUnifies and improves naming for listeners. (#9447)
- APIRenames
DownloadDocumentTask.DownloadedFileCallback
toDownloadDocumentTask.OnFileDownloadedListener
. - APIRenames
ExtractAssetTask.OnDocumentExtractedCallback
toExtractAssetTask.OnDocumentExtractedListener
. - APIRenames
InstantPdfDocument#registerInstantDocumentListener
toInstantPdfDocument#addInstantDocumentListener
. - APIRenames
InstantPdfDocument#unregisterInstantDocumentListener
toInstantPdfDocument#removeInstantDocumentListener
. - APIRenames
InstantPdfFragment#registerInstantDocumentListener
toInstantPdfFragment#addInstantDocumentListener
. - APIRenames
InstantPdfFragment#unregisterInstantDocumentListener
toInstantPdfFragment#removeInstantDocumentListener
. - APIRenames
OnAnnotationProviderUpdatedListener#onAnnotationDeleted
toOnAnnotationProviderUpdatedListener#onAnnotationRemoved
. - APIRenames
AnnotationProvider.OnAnnotationProviderUpdatedListener
toAnnotationProvider.OnAnnotationUpdatedListener
. - APIRenames
AnnotationProvider#registerOnAnnotationProviderUpdatedListener
toAnnotationProvider#addOnAnnotationUpdatedListener
. - APIRenames
AnnotationProvider#unregisterOnAnnotationProviderUpdatedListener
toAnnotationProvider#removeOnAnnotationUpdatedListener
. - APIRenames
ActionResolver#registerDocumentActionListener
toActionResolver#addDocumentActionListener
. - APIRenames
ActionResolver#unregisterDocumentActionListener
toActionResolver#removeDocumentActionListener
. - APIRenames
NewPageFactory.OnNewPageReadyCallback
toNewPageFactory.OnNewPageReadyListener
. - APIRenames
PdfLibrary#registerLibraryIndexingListener
toPdfLibrary#addLibraryIndexingListener
. - APIRenames
PdfLibrary#unregisterLibraryIndexingListener
toPdfLibrary#removeLibraryIndexingListener
. - APIRenames
FormProvider#registerOnFormFieldUpdatedListener
toFormProvider#addOnFormFieldUpdatedListener
. - APIRenames
FormProvider#unregisterOnFormFieldUpdatedListener
toFormProvider#removeOnFormFieldUpdatedListener
. - APIRenames
FormProvider#registerOnFormTabOrderUpdatedListener
toFormProvider#addOnFormTabOrderUpdatedListener
. - APIRenames
FormProvider#unregisterOnFormTabOrderUpdatedListener
toFormProvider#removeOnFormTabOrderUpdatedListener
. - APIRenames
FormProvider#registerOnTextFormFieldUpdatedListener
toFormProvider#addOnTextFormFieldUpdatedListener
. - APIRenames
FormProvider#unregisterOnTextFormFieldUpdatedListener
toFormProvider#removeOnTextFormFieldUpdatedListener
. - APIRenames
FormProvider#registerOnButtonFormFieldUpdatedListener
toFormProvider#addOnButtonFormFieldUpdatedListener
. - APIRenames
FormProvider#unregisterOnButtonFormFieldUpdatedListener
toFormProvider#removeOnButtonFormFieldUpdatedListener
. - APIRenames
FormProvider#registerOnChoiceFormFieldUpdatedListener
toFormProvider#addOnChoiceFormFieldUpdatedListener
. - APIRenames
FormProvider#unregisterOnChoiceFormFieldUpdatedListener
toFormProvider#removeOnChoiceFormFieldUpdatedListener
. - APIRenames
DefaultDocumentEditorListener.UriValidationCallback
toDefaultDocumentEditorListener.UriValidationListener
. - APIRenames
PdfDocumentEditorListenerCallback
toOnFileWriteCompleteListener
. - APIRenames
PSPDFKitViews#setDocumentEditorListener
toPSPDFKitViews#setPdfDocumentEditorListener
. - APIRenames
PdfFragment#registerDocumentListener
toPdfFragment#addDocumentListener
. - APIRenames
PdfFragment#unregisterDocumentListener
toPdfFragment#removeDocumentListener
. - APIRenames
PdfFragment#registerDocumentScrollListener
toPdfFragment#addDocumentScrollListener
. - APIRenames
PdfFragment#unregisterDocumentScrollListener
toPdfFragment#removeDocumentScrollListener
. - APIRenames
PdfOutlineView.OnAnnotationTappedListener
toPdfOutlineView.OnAnnotationTapListener
and itsonAnnotationTapped
method toonAnnotationTap
. - APIRenames
PdfOutlineView.OnOutlineElementTappedListener
toPdfOutlineView.OnOutlineElementTapListener
and itsonOutlineElementTapped
method toonOutlineElementTap
. - APIRenames
PdfOutlineView#setOnAnnotationTappedListener
toPdfOutlineView#setOnAnnotationTapListener
. - APIRenames
PdfOutlineView#setOnOutlineElementTappedListener
toPdfOutlineView#setOnOutlineElementTapListener
. - APIRenames
PdfThumbnailGrid#setDocumentEditorListener
toPdfThumbnailGrid#setPdfDocumentEditorListener
. - APIRenames
PdfThumbnailGrid#registerDocumentEditingModeChangeListener
toPdfThumbnailGrid#addOnDocumentEditingModeChangeListener
. - APIRenames
PdfThumbnailGrid#unregisterDocumentEditingModeChangeListener
toPdfThumbnailGrid#removeOnDocumentEditingModeChangeListener
. - APIRenames
PdfThumbnailGrid#registerDocumentEditingPageSelectionChangeListener
toPdfThumbnailGrid#addOnDocumentEditingPageSelectionChangeListener
. - APIRenames
PdfThumbnailGrid#unregisterDocumentEditingPageSelectionChangeListener
toPdfThumbnailGrid#removeOnDocumentEditingPageSelectionChangeListener
. - APIRenames
ActionMenu#registerActionMenuListener
toActionMenu#addActionMenuListener
. - APIRenames
ActionMenu#unregisterActionMenuListener
toActionMenu#removeActionMenuListener
. - APIRenames
FormEditingBar#registerFormEditingBarLifecycleListener
toFormEditingBar#addOnFormEditingBarLifecycleListener
. - APIRenames
FormEditingBar#unregisterFormEditingBarLifecycleListener
toFormEditingBar#removeOnFormEditingBarLifecycleListener
. - APIRenames
PropertyInspectorCoordinatorLayoutController#registerPropertyInspectorLifecycleListener
toPropertyInspectorCoordinatorLayoutController#addPropertyInspectorLifecycleListener
. - APIRenames
PropertyInspectorCoordinatorLayoutController#unregisterPropertyInspectorLifecycleListener
toPropertyInspectorCoordinatorLayoutController#removePropertyInspectorLifecycleListener
. - APIRenames
BookmarkViewAdapter#registerBookmarkChangeListener
toBookmarkViewAdapter#addBookmarkListener
. - APIRenames
BookmarkViewAdapter#unregisterBookmarkChangeLister
toBookmarkViewAdapter#removeBookmarkListener
. - APIRenames
OnModeChangedListener#OnPageTransitionChanged
toOnModeChangedListener#OnScrollModeChange
. - APIRenames
OnModeChangedListener#OnScrollDirectionChanged
toOnModeChangedListener#OnScrollDirectionChange
. - APIRenames
OnModeChangedListener#OnPageLayoutChanged
toOnModeChangedListener#OnPageLayoutChange
. - APIRenames
OnModeChangedListener#OnThemeChanged
toOnModeChangedListener#OnThemeChange
. - APIRenames
OnModeChangedListener#OnScreenTimeoutChanged
toOnModeChangedListener#OnScreenTimeoutChange
. - APIRenames
AnnotationManager#registerAnnotationSelectedListener
toAnnotationManager#addOnAnnotationSelectedListener
. - APIRenames
AnnotationManager#unregisterAnnotationSelectedListener
toAnnotationManager#removeOnAnnotationSelectedListener
. - APIRenames
AnnotationManager#registerAnnotationDeselectedListener
toAnnotationManager#addOnAnnotationDeselectedListener
. - APIRenames
AnnotationManager#unregisterAnnotationDeselectedListener
toAnnotationManager#removeOnAnnotationDeselectedListener
. - APIRenames
AnnotationManager#registerAnnotationUpdatedListener
toAnnotationManager#addOnAnnotationUpdatedListener
. - APIRenames
AnnotationManager#unregisterAnnotationUpdatedListener
toAnnotationManager#removeOnAnnotationUpdatedListener
. - APIRenames
AnnotationManager#registerAnnotationCreationModeChangeListener
toAnnotationManager#addOnAnnotationCreationModeChangeListener
. - APIRenames
AnnotationManager#unregisterAnnotationCreationModeChangeListener
toAnnotationManager#removeOnAnnotationCreationModeChangeListener
. - APIRenames
AnnotationManager#registerAnnotationCreationModeSettingsChangeListener
toAnnotationManager#addOnAnnotationCreationModeSettingsChangeListener
. - APIRenames
AnnotationManager#unregisterAnnotationCreationModeSettingsChangeListener
toAnnotationManager#removeOnAnnotationCreationModeSettingsChangeListener
. - APIRenames
AnnotationManager#registerAnnotationEditingModeChangeListener
toAnnotationManager#addOnAnnotationEditingModeChangeListener
. - APIRenames
AnnotationManager#unregisterAnnotationEditingModeChangeListener
toAnnotationManager#removeOnAnnotationEditingModeChangeListener
. - APIRenames
DocumentEditingManager#registerDocumentEditingModeChangeListener
toDocumentEditingManager#addOnDocumentEditingModeChangeListener
. - APIRenames
DocumentEditingManager#unregisterDocumentEditingModeChangeListener
toDocumentEditingManager#removeOnDocumentEditingModeChangeListener
. - APIRenames
DocumentEditingManager#registerDocumentEditingPageSelectionChangeListener
toDocumentEditingManager#addOnDocumentEditingPageSelectionChangeListener
. - APIRenames
DocumentEditingManager#unregisterDocumentEditingPageSelectionChangeListener
toDocumentEditingManager#removeOnDocumentEditingPageSelectionChangeListener
. - APIRenames
FormManager#registerFormElementSelectedListener
toFormManager#addOnFormElementSelectedListener
. - APIRenames
FormManager#unregisterFormElementSelectedListener
toFormManager#removeOnFormElementSelectedListener
. - APIRenames
FormManager#registerFormElementDeselectedListener
toFormManager#addOnFormElementDeselectedListener
. - APIRenames
FormManager#unregisterFormElementDeselectedListener
toFormManager#removeOnFormElementDeselectedListener
. - APIRenames
FormManager#registerFormElementUpdatedListener
toFormManager#addOnFormElementUpdatedListener
. - APIRenames
FormManager#unregisterFormElementUpdatedListener
toFormManager#removeOnFormElementUpdatedListener
. - APIRenames
FormManager#registerFormElementEditingModeChangeListener
toFormManager#addOnFormElementEditingModeChangeListener
. - APIRenames
FormManager#unregisterFormElementEditingModeChangeListener
toFormManager#removeOnFormElementEditingModeChangeListener
. - APIRenames
FormManager#registerFormElementClickedListener
toFormManager#addOnFormElementClickedListener
. - APIRenames
FormManager#unregisterFormElementClickedListener
toFormManager#removeOnFormElementClickedListener
. - APIRenames
TextSelectionManager#registerTextSelectionModeChangeListener
toTextSelectionManager#addOnTextSelectionModeChangeListener
. - APIRenames
TextSelectionManager#unregisterTextSelectionModeChangeListener
toTextSelectionManager#removeOnTextSelectionModeChangeListener
. - APIRenames
TextSelectionManager#registerTextSelectionChangeListener
toTextSelectionManager#addOnTextSelectionChangeListener
. - APIRenames
TextSelectionManager#unregisterTextSelectionChangeListener
toTextSelectionManager#removeOnTextSelectionChangeListener
. - APIChanges
ContextualToolbar#setToolbarCoordinatorController
to accept@Nullable ToolbarCoordinatorLayoutController
, so you can clear it by passingnull
. - APIRemoves
ContextualToolbar#removeToolbarCoordinatorController
, useContextualToolbar#setToolbarCoordinatorController(null)
instead. - APIChanges
ContextualToolbar#setOnMenuItemClickListener
to accept@Nullable OnMenuItemClickListener
, so you can clear it by passingnull
. - APIRemoves
ContextualToolbar#removeOnMenuItemClickListener
, useContextualToolbar#setOnMenuItemClickListener(null)
instead. - APIChanges
ContextualToolbar#setOnMenuItemLongClickListener
to accept@Nullable OnMenuItemLongClickListener
, so you can clear it by passingnull
. - APIRemoves
ContextualToolbar#removeOnMenuItemClickListener
, useContextualToolbar#setOnMenuItemLongClickListener(null)
instead.
- ChangedIncreases touch target size of next and previous search result buttons. (#11454)
- ChangedImproves
OutlineListView
loading time when opening large documents providing fast and smooth UI and removing from the main thread any heavy computation. (#11839) - ChangedImproves performance of
PdfDocument
methodsgetPageSize()
,getPageRotation()
, andgetPageLabel()
. (#12186) - ChangedImproves shape annotations selection performance. (#12032)
- FixedFixes a possible OOM exception that was occurring on some devices when using large zoom scale while having shape annotation selected.
- ChangedUpdates to selected ink annotations are now redrawn much faster.
- ChangedImproves exact phrase matching in
PdfLibrary
. (#12261) - ChangedImproves
FloatingHintEditText.EditTextListener#onErrorDismissed
flow, so it is not called on each text change event. - ChangedBetter memory handling for big documents. (#12045)
- APIReplaces framework's
Optional
with RxJava2Maybe
. (#10691)- APIReturn type changes for
AnnotationProvider#getAnnotationAsync(int, int)
fromObservable<Optional<Annotation>>
toMaybe<Annotation>
. - APIReturn type changes for
AnnotationProvider#getAnnotation(int, int)
fromOptional<Annotation>
to@Nullable Annotation
. - APIReturn type changes for
FormProvider#getFormElementForAnnotationAsync()
fromObservable<Optional<FormElement>>
toMaybe<FormElement>
. - APIReturn type changes for
FormProvider#getFormElementForAnnotation()
fromOptional<FormElement>
to@Nullable FormElement
. - APIReturn type changes for
FormProvider#getFormFieldWithFullyQualifiedNameAsync()
fromObservable<Optional<FormElement>>
toMaybe<FormElement>
. - APIReturn type changes for
FormProvider#getFormFieldWithFullyQualifiedName()
fromOptional<FormElement>
to@Nullable FormElement
. - APIReturn type changes for
FormProvider#getFormElementWithNameAsync()
fromObservable<Optional<FormElement>>
toMaybe<FormElement>
. - APIReturn type changes for
FormProvider#getFormElementWithName()
fromOptional<FormElement>
to@Nullable FormElement
. - APIReturn type changes for
WidgetAnnotation#getFormElementAsync()
fromObservable<Optional<FormElement>>
toMaybe<FormElement>
. - APIReturn type changes for
WidgetAnnotation#getFormElement()
fromOptional<FormElement>
to@Nullable FormElement
.
- APIRenames
Annotation.OBJECT_NUMBER_NOT_ATTACHED_TO_PAGE
toAnntoation.OBJECT_NUMBER_NOT_SET
. (#11339) - APIRenames HUD terminology to User Interface. (#12003)
- APIRenames
HudViewMode
enum toUserInterfaceViewMode
and all its values are starting withUSER_INTERFACE
now. - APIRenames
getHudViewMode()
togetUserInterfaceViewMode()
onPdfActivityConfiguration
,PdfActivity
andPdfActivityApi
. Its new return type is nowUserInterfaceViewMode
. - APIRenames
setHudViewMode(HudViewMode)
tosetUserInterfaceViewMode(UserInterfaceViewMode)
onPdfActivityConfiguration
,PdfActivity
andPdfActivityApi
. - APIRenames
HudViewMode
toUserInterfaceViewMode
onPdfActivityConfiguration.Builder
.
- APIChanges type of thickness property of
AnnotationCreationController
fromint
tofloat
. (#12291) - APIDrops deprecated fields and methods. (#11896)
- APIRemoves
PdfActivityConfiguration.Builder#diskCacheSize()
,PdfConfiguration.Builder#diskCacheSize()
- disk cache is not supported. - APIRemoves
PdfDocument#getUri()
andPdfDocument#getUriList()
. - APIRemoves
PdfYouTubeActivity#ARG_YOUTUBE_URL
, use#ARG_MEDIA_URI
for passingMediaUri
objects through intent. - APIRemoves
PdfMediaDialog#ARG_URI
, use#ARG_MEDIA_URI
for passingMediaUri
objects through intent. - APIRemoves
PrintOptions(PdfProcessorTask.AnnotationProcessingMode, ..)
constructors, usePrintOptions(boolean, ..)
instead. - APIRemoved
PdfFragment#enterAnnotationCreationMode(AnnotationType)
, useenterAnnotationCreationMode(AnnotationTool)
instead. - APIRemoved
PdfFragment#clearTextSelection()
, useexitCurrentlyActiveMode()
instead. - APIRemoved
PdfFragment#setTextSelection()
, useenterTextSelectionMode()
instead. - APIRemoved
DocumentSharingManager#generateDocumentName()
, usegetTitle()
instead.
- FixedFixes a layout issue when entering long passwords. (#11792)
- FixedFixes not scrolling to entire page when going through search results using a continuous layout manager. (#11454)
- FixedFixes an issue when rendering decomposed UTF-8 strings (#11985)
- FixedFixes the navigation buttons not being restored after an orientation change. (#12211)
- FixedFixes form fields being rendered when the license doesn't have PDF forms enabled. (#12537)
- FixedFixes a crash that could happen when moving files to the device's download folder on Android 8.0 Oreo or newer. (#12549)
- FixedFixes resizing ink annotations in Instant documents being slow. (#12422)
- FixedFixes
PdfPasswordView
being broken, while entering text on devices with a small screen. (#12210) - FixedFixes an issue where adding annotation after opening annotation list view is blocked in large documents. (#12010)
- FixedFixes an issue where invalid value (-1) was being passed to setPage() in PdfFragment on document recreation. (#11888)
- FixedFixes extra space after non-latin characters in form fields. (#11874)
- FixedFixes an issue where document loading progress was not restored after rotation. (#11840)
- FixedFixes an issue saving an original document after signing it. (#11911)
- FixedFixes an issue where document saving blocked the main thread. (#11802)
- FixedFixes an issue where horizontal resize guide was drawn incorrectly. (#12065)
- FixedFixes an issue where
NewPageDialog
was not displaying correctly in RTL mode. (#10039) - FixedFixes an issue where navigation buttons were still clickable after
PdfActivityConfiguration.hideNavigationButtons()
. (#12023) - FixedFixes an issue where current page is not properly restored after configuration changes, in double page mode. (#12146)
- FixedFixes an issue where flattening a document may generate warnings when it is open in third party readers. (#12066)
- FixedFixes an issue where it wasn't possible to unset excluded annotations from renderer. (#12418)
- FixedFixes an issue where taps on small form elements (such as checkboxes) were inaccurate. (#12545)
- ChangedImproves highlight annotations by adding additional padding to them. (#12548)
- APIAdds
applyPadding
parameter toPDFDocument#getPageTextRects()
to make the return value better suited for being displayed.
- FixedFixes an issue where adding image annotations to page failed randomly. (#12603)
Instant
- AddedAdds more granular control over automatic document syncing. (#12292)
- AddedAdds
setListenToServerChanges
toInstantPdfDocument
to control whether to listen to server changes. - AddedAdds
setDelayForSyncingLocalChanges
toInstantPdfDocument
to control delay of automatic syncing of local changes or to disable automatic syncing of local changes altogether. - RemovedDeprecates
setAutomaticSyncEnabled
inInstantPdfDocument
. UsesetListenToServerUpdates
andsetDelayForSyncingLocalChanges
instead. - AddedAdds
setListenToServerChangesWhenVisible
toInstantPdfFragment
to control whether to listen to server changes when fragment is visible. It's enabled by default.
- AddedAdds
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. - FixedFixes an issue where an incorrect values could be persisted as PDF object IDs. (#11689)
- FixedFixes an issue where annotation updates caused by server changes were not notified via
OnAnnotationProviderUpdated
. (#12420)
3.3.3 31 Aug 2017
- APIAdds styling options for text selection. (#11694)
- APIAdds
pspdf__textSelectionStyle
attribute for setting text selection style. - APIAdds
pspdf__highlightColor
attribute under thepspdf__textSelectionStyle
style for setting text selection highlight color. - APIAdds
pspdf__leftHandleColor
attribute under thepspdf__textSelectionStyle
style for setting text selection left handle color. - APIAdds
pspdf__rightHandleColor
attribute under thepspdf__textSelectionStyle
style for setting text selection right handle color.
- FixedFixes the items padding on the toolbars. (#11695)
- ChangedBack button is slightly larger and padding is fixed so that it matches the default Android metrics.
- FixedFixes listener management methods on
PdfFragment
(register*Listener()/unregister*Listener()
) which were sometimes not executed in the order they were called. (#11828)
Instant
- AddedAdds support for note annotations. (#11704)
- Changed
InstantPdfFragment
now shows document download progress. (#11508)
3.3.2 17 Aug 2017
- APIAdds
PdfFragment#getVisiblePdfRect(Rect rect, int pageIndex)
that sets given rect to the visible portion of the given page. (#11601) - APIAdds support for converting Annotations to Instant JSON and vice versa. (#11157)
- APIAdds
Annotation#toInstantJson()
for annotation to Instant JSON format conversion. - APIAdds
AnnotationProvider#createAnnotationFromInstantJson()
for creating annotations from Instant JSON.
- APIAdds listener to allow custom handling of long clicks. (#11662)
- APIAdds
setOnDocumentLongPressListener(OnDocumentLongPressListener)
call toPdfFragment
class.
- FixedFixes an issue where extracted annotations where not rendered properly in grayscale and inverted color mode. (#9621)
- ChangedImproves form text rendering with non-latin characters. (#10996)
- ChangedImproves XFDF performance and compliance. (#11693)
- ChangedImproves performance of loading forms. (#11389)
- FixedFixes an issue where property inspector width was calculated incorrectly. (#11676)
- FixedFixes an issue where the use of transparent colors in property inspector was not prevented. (#11010)
- ChangedImproves the rendering of the non-embedded
Courier
font. (#11228) - FixedFixes an issue in
Hud View Modes Example
of the example catalog app where navigation buttons were not properly hidden. (#11744) - FixedFixes an issue where password protected document was not reopened with previously entered password after restoring
PdfFragment
. (#11774) - FixedFixes an unhandled
NullPointerException
thrown while restoring navigation history in non-retainedPdfFragment
. (#11775) - FixedFixes a bug where clicking on link annotations doesn't provide any feedback. (#11794)
- FixedFixes an issue where state was not restored correctly when using activities that handle orientation changes themselves. (#11734)
- FixedFixes an issue where PDF renderer used recycled bitmap. (#11640)
- ChangedImproves annotation selection border and annotation selection handle colors with a better high level contrast. (#11830)
Instant
- AddedAdds
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.
- AddedAdds logout button to Instant example. (#11405)
- FixedFixes an incorrect log message format. (#11634)
- FixedFixes deletion of multiple annotations at once. (#11651)
- FixedFixes a failed assertion due to an improper format string. (#11747)
3.3.1 26 Jul 2017
- FixedFixes an issue where the downloaded Instant document could not be opened while offline. (#11560)
- FixedFixes an unhandled
NullPointerException
thrown while displaying the contextual toolbar. (#11448) - FixedFixes a possible crash due to initialization race condition. (#11516)
- FixedFixes a synchronization issue where thumbnail bar was not scrolling correctly to a selected page. (#10458)
- FixedFixes a possible crash where framework was required before its initialization completed by the content provider. (#11537)
- FixedFixes a bug where a link pointing to local data was recognized as media although it's not a media file. (#11530)
- FixedFixes an issue where download job continued even after download progress dialog was dismissed. (#10237)
Instant
- ChangedOptimizes battery usage while syncing annotations with Instant. (#11533)
- FixedFixes incorrect handling/reporting of an authentication error during sync. (#11386)
3.3.0 20 Jul 2017
See the announcement post(opens in a new tab).
- AddedAdds 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!
- APIAdds support for writing and parsing XFDF files, see
XfdfFormatter
class withparseXfdf[Async]()
andwriteXfdf[Async]()
methods. (#5575) - APIAdds
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) - APIAdds
PdfProcessorTask.changeFormsOfType
to configure how form elements should be processed. (#11096) - APIAdds
TextMarkupAnnotation#getHighlightedText()
to easily retrieve highlighted text for a markup annotation. (#11288) - AddedAdds support for annotation notes. (#9611)
- AddedAdds
OnAnnotationProviderUpdatedListener
for listening to annotation creation, update and deletion events onAnnotationProvider
. (#11149) - ChangedImproves RTL language support. (#11013, #9883)
- ChangedImproves memory management when rendering forms. (#11176)
- ChangedVideo 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)
- FixedFixes very rare issue on saving files repeatedly. (#9477)
- FixedFixes the crash that occurs when trying to display document navigation while the document is not ready. (#11129)
- FixedFixes the crash that occurs when trying to zoom an inline video being played in the document. (#11357)
- FixedFixes an issue where custom styles were not applied correctly. (#11139)
- FixedFixes the crash occurring when navigation buttons are not present in the custom layout despite being disabled by the configuration. (#11273)
- FixedFixes the annotation creation toolbar being dismissed on configuration change. (#10990)
- FixedFixes minor accessibility issues where close button description was missing and color contrast when editing notes was unfriendly. (#11292)
- FixedFixes minor accessibility issues where close button description was missing and color contrast was too low when editing notes. (#11292)
- FixedFixes an issue where note icons selection was not properly updated. (#11450)
3.2.1 21 Jun 2017
- ChangedUpdates dependency - RxJava was updated to
2.1.1
. - FixedFixes missing dependency issue when adding SDK to application. (#11031)
- FixedFixes a possible crash due to initialization race condition. (#10745)
3.2.0 15 Jun 2017
See the announcement post(opens in a new tab).
- APIAdds
PdfConfiguration.Builder#setAutomaticLinkGenerationEnabled
andPdfDocument#setAutomaticLinkGenerationEnabled
to enable automatic detection of web links in the document. (#9865) - APIAdds
PdfDocument#setWatermarkTextFilteringEnabled
to exclude watermark text from selection and text extraction methods. (#10832) - APIAdds
PdfConfiguration.Builder#automaticallyGenerateLinks
to enable automatic detection of web links in the document. - APIAdds
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) - AddedAdds settings menu item for page transition, page layout, scroll direction and screen timeout: (#10345)
- AddedAdds
PdfActivityConfiguration.Builder#[show/hide]SettingsMenu
to show and hide setting menu icon. - AddedAdds
PdfActivityConfiguration.Builder#setSettingsMenuItems(EnumSet<SettingsMenuItemType>)
to select which items to show. - AddedAdds
PdfActivityConfiguration#getDarkTheme
to retrieve theme resource used to override dark theme of the launched activity. - AddedAdds
PdfActivityConfiguration#isSettingsItemEnabled
to check whether the settings menu is shown or not. - AddedAdds
PdfActivityConfiguration#getSettingsMenuItemShown
to check which items are shown in the settings menu. - AddedAdds
PdfActivityConfiguration#Builder(PdfActivityConfiguration, int themeRes, int themeDarkRes)
to create a new builder from existing configuration with new default and new dark theme. - AddedAdds
PdfActivityConfiguration.Builder#themeDark(int)
to set a new dark theme used to override predefined dark activity theme. - AddedAdds
PdfActivityConfiguration.Builder#themeMode(ThemeMode)
to set the used theme mode.
- AddedAdds basic support for playing media annotations in documents: (#10769)
- AddedAdds
PdfConfiguration.Builder#playingMultipleMediaInstancesEnabled()
providing control over whether the multiple media files can be played at the same time. - AddedAdds
RichMediaAnnotation
class representing RichMedia annotations. - AddedAdds
ScreenAnnotation
class representing Screen annotations. - ChangedLink annotations pointing to local media files, now play embedded on the page as well.
- ChangedAllows navigation between search results while search is still in progress (in case of inline search). (#10561)
- FixedFixes an issue with saving files that did not conform completely to the PDF format. (#10712)
- FixedFixes a leak when rendering bitmaps. (#10777, #10847)
- FixedFixes an issue with saving link annotations. (#10355)
- FixedFixes a crash on Android versions lower than 5.0. (#10822)
- FixedFixes issue while saving PDF files. (#10849)
- FixedFixes issue that sometimes prevented edited documents from saving via
Save As...
option on document editor. (#10771) - FixedFixes page tiles not being fully refreshed upon configuration change. (#10772)
- FixedFixes TTS text reading by removing pauses between text lines in the document. (#10889)
- FixedFixes a possible crash when retrieving active annotation editing tool before all views are properly instantiated. (#10939)
3.1.1 25 May 2017
- APIAdds
ImagePicker
class. (#9287)- APIRemoves
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:
- APIAdds
onCameraPermissionDeclined(boolean permanent)
for warning about missing camera permissions.
- APIEmpty
OnImagePickedListener
implementation calledOnImagePickedListenerAdapter
is nowSimpleOnImagePickerListener
. - ChangedSee
DocumentProcessingExampleActivity
in catalog for new image picker API usage.
- APIAdds
DocumentActionListener
class which allows custom handling of PDF actions inonActionExecuted()
class. - APIAdds
registerDocumentActionListener()
andunregisterDocumentActionListener()
calls toPdfFragment
class. - APIAdds classes for new action types -
GoToRemoteAction
,GoToEmbeddedAction
,JavaScriptAction
,LaunchAction
andImportDataAction
.
- AddedAdds
pspdf__itemHighlightColor
theme attribute topspdf_FormSelection
style. - APIAdds
formItemHighlightColor()
call toPageRenderConfiguration
constructor.
OUTLINE
, PRINT
, FIND
, SEARCH
and SAVEAS
. (#10586)MemoryDataProvider
and PdfActivityConfiguration#showThumbnailBar()/#hideThumbnailBar()
(use setThumbnailBarMode()
instead).Single Page - current
to All pages
. (#10563)NoView
and Print
flags not being rendered. (#10549)PdfActivityConfiguration
and PdfConfiguration
. (#10649)- FixedFixes infinite recursion inside
PdfActivityConfiguration.Builder#setCustomerSignatureFeatureEnabled()
. - FixedFixes
PdfConfiguration
copy constructor which was not copying propertyisCustomerSignatureFeatureEnabled()
.
BaseFileProvider
would return paths to the internal app directory. (#10636)FormProvider
leaked memory. (#10693)3.1.0 11 May 2017
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
- APIAdds support for scrollable thumbnail bar. (#7376)
- APIAdds
PdfActivityConfiguration.Builder#setThumbnailBarMode(ThumbnailBarMode)
for selecting thumbnail bar mode. - APIDeprecates
PdfActivityConfiguration.Builder#showThumbnailBar
andPdfActivityConfiguration.Builder#hideThumbnailBar
. Use above method instead. - APIDeprecates
PdfActivityConfiguration.Builder#isThumbnailBarEnabled
. UsePdfActivityConfiguration.Builder#getThumbnailBarMode()
to get the thumbnail bar mode set on the activity.
- APIRemoves 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. - APIAdds
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
- APIAdds
PdfActivityMenuManager#[set/get]ToolbarIconsColorActivated()
, also controlled bypspdf__iconsColorActivated
. - APIAdds
PdfActivityMenuManager#[set/get]OutlineIcon()
, also controlled bypspdf__outlineIcon
. - APIAdds
PdfActivityMenuManager#[set/get]OutlineIconActivated()
, also controlled bypspdf__outlineIconActivated
. - APIAdds
PdfActivityMenuManager#[set/get]SearchIcon()
, also controlled bypspdf__searchIcon
. - APIAdds
PdfActivityMenuManager#[set/get]SearchIconActivated()
, also controlled bypspdf__searchIconActivated
. - APIAdds
PdfActivityMenuManager#[set/get]ThumbnailGridIcon()
, also controlled bypspdf__gridIcon
. - APIAdds
PdfActivityMenuManager#[set/get]ThumbnailGridIconActivated()
, also controlled bypspdf__gridIconActivated
. - APIAdds
PdfActivityMenuManager#[set/get]EditAnnotationsIcon()
, also controlled bypspdf__editAnnotationsIcon
. - APIAdds
PdfActivityMenuManager#[set/get]EditAnnotationsIconActivated()
, also controlled bypspdf__editAnnotationsIconActivated
. - APIAdds
PdfActivityMenuManager#[set/get]ShareIcon()
, also controlled bypspdf__shareIcon
. - APIAdds
PdfActivityMenuManager#[set/get]PrintIcon()
, also controlled bypspdf__printIcon
.
- APIRemoves
DocumentThemeConfiguration
, uses attributes frompspdf__SearchResultHighlighter
attribute set (specified by theme attributepspdf__searchResultHighlighterStyle
) along with added methods:- APIAdds
SearchResultHighlighter#[set/get]SearchResultBackgroundColor()
, also controlled bypspdf__searchResultBackgroundColor
. - APIAdds
SearchResultHighlighter#[set/get]SearchResultBorderColor()
, also controlled bypspdf__searchResultBorderColor
. - APIAdds
SearchResultHighlighter#[set/get]SearchResultBorderWidth()
, also controlled bypspdf__searchResultBorderWidth
. - APIAdds
SearchResultHighlighter#[set/get]SearchResultPadding()
, also controlled bypspdf__searchResultPadding
. - APIAdds
SearchResultHighlighter#[set/get]SearchResultAnnotationPadding()
, also controlled bypspdf__searchResultAnnotationPadding
. - APIAdds
SearchResultHighlighter#[set/get]SearchResultAnimationPadding()
, also controlled bypspdf__searchResultAnimationPadding
. - APIAdds
SearchResultHighlighter#[set/get]SearchResultCornerRadiusToHeightRatio()
, also controlled bypspdf__searchResultCornerRadiusToHeightRatio
. - APIAdds
SearchResultHighlighter#[set/get]SearchResultCornerRadiusMin()
, also controlled bypspdf__searchResultCornerRadiusMin
. - APIAdds
SearchResultHighlighter#[set/get]SearchResultCornerRadiusMax()
, also controlled bypspdf__searchResultCornerRadiusMax
.
- APIRemoves
ThumbnailBarThemeConfiguration
:- APIFor default static thumbnail bar, uses attributes from
pspdf__ThumbnailBar
attribute set (specified by theme attributepspdf__thumbnailBarStyle
). - APIFor scrollable thumbnail bar, uses attributes from
pspdf__ScrollableThumbnailBar
attribute set (specified by theme attributepspdf__scrollableThumbnailBarStyle
). - APIAdds
PdfThumbnailBar#[set/get]BackgroundColor()
. - APIAdds
PdfThumbnailBar#[set/get]ThumbnailWidth()
. - APIAdds
PdfThumbnailBar#[set/get]ThumbnailHeight()
. - APIAdds
PdfThumbnailBar#[set/get]ThumbnailBorderColor()
. - APIAdds
PdfThumbnailBar#[set/get]SelectedThumbnailBorderColor()
.
- APIAdds
PdfFragment#[set/get]BackgroundColor()
for setting a background color on the fragment (extracted fromDocumentThemeConfiguration
), also configurable in the theme under thepspdf__backgroundColor
attribute. - APIAdds
PdfFragment#setPasswordView(PdfPasswordView)
andPdfFragment#getPasswordView()
methods for controllingPdfPasswordView
set on the fragment. - APIRemoves
PasswordViewThemeConfiguration
, uses attributes frompspdf__PasswordView
attribute set (specified by theme attributepspdf__passwordViewStyle
) along with added methods:- APIAdds
PdfPasswordView#[set/get]Color()
, also controlled bypspdf__color
. - APIAdds
PdfPasswordView#[set/get]HintColor()
, also controlled bypspdf__hintColor
. - APIAdds
PdfPasswordView#[set/get]ErrorColor()
, also controlled bypspdf__errorColor
. - APIAdds
PdfPasswordView#[set/get]FloatingHintColor()
, also controlled bypspdf__floatingHintColor
. - APIAdds
PdfPasswordView#[set/get]IconResourceId()
, also controlled bypspdf__icon
. - APIAdds
PdfPasswordView#[set/is]IconTintingEnabled()
, also controlled bypspdf__iconTintingEnabled
.
- APIRemoves
InlineSearchThemeConfiguration
, uses attributes frompspdf__SearchViewInline
attribute set (specified by theme attributepspdf__inlineSearchStyle
) along with added methods:- APIAdds
PdfSearchViewInline#[set/get]TextColor()
, also controlled bypspdf__textColor
. - APIAdds
PdfSearchViewInline#[set/get]HintTextColor()
, also controlled bypspdf__hintTextColor
. - APIAdds
PdfSearchViewInline#[set/get]NavigationTextColor()
, also controlled bypspdf__navigationTextColor
. - APIAdds
PdfSearchViewInline#[set/get]PrevIconColorTint()
, also controlled bypspdf__prevIconColorTint
. - APIAdds
PdfSearchViewInline#[set/get]NextIconColorTint()
, also controlled bypspdf__nextIconColorTint
. - APIAdds
PdfSearchViewInline#[set/get]BackIconColorTint()
, also controlled bypspdf__backIconColorTint
. - APIAdds
PdfSearchViewInline#[set/get]PrevIcon()
, also controlled bypspdf__prevIconDrawable
. - APIAdds
PdfSearchViewInline#[set/get]NextIcon()
, also controlled bypspdf__nextIconDrawable
.
- APIRemoves
ModularSearchThemeConfiguration
, uses attributes frompspdf__SearchViewModular
attribute set (specified by theme attributepspdf__modularSearchStyle
) along with added methods:- APIAdds
PdfSearchViewModular#[set/get]BackgroundColor()
, also controlled bypspdf__backgroundColor
. - APIAdds
PdfSearchViewModular#[set/get]InputFieldTextColor()
, also controlled bypspdf__inputFieldTextColor
. - APIAdds
PdfSearchViewModular#[set/get]InputFieldHintColor()
, also controlled bypspdf__inputFieldHintColor
. - APIAdds
PdfSearchViewModular#[set/get]SeparatorColor()
, also controlled bypspdf__separatorColor
. - APIAdds
PdfSearchViewModular#[set/get]ListItemBackgroundColor()
, also controlled bypspdf__listItemBackgroundColor
. - APIAdds
PdfSearchViewModular#[set/get]ListItemTitleColor()
, also controlled bypspdf__listItemTitleColor
. - APIAdds
PdfSearchViewModular#[set/get]ListItemSubtitleColor()
, also controlled bypspdf__listItemSubtitleColor
. - APIAdds
PdfSearchViewModular#[set/get]ListSelector()
, also controlled bypspdf__listItemSelector
. - APIAdds
PdfSearchViewModular#[set/get]HighlightBackgroundColor()
, also controlled bypspdf__highlightBackgroundColor
. - APIAdds
PdfSearchViewModular#[set/get]HighlightBorderColor()
, also controlled bypspdf__highlightBorderColor
. - APIAdds
PdfSearchViewModular#[set/get]HighlightTextColor()
, also controlled bypspdf__highlightTextColor
.
- APIRemoves
OutlineViewThemeConfiguration
, uses attributes frompspdf__OutlineView
attribute set (specified by theme attributepspdf__outlineViewStyle
) along with added methods:- APIAdds
PdfOutlineView#[set/get]BackgroundColor()
, also controlled bypspdf__backgroundColor
. - APIAdds
PdfOutlineView#[set/get]ListSelector()
, also controlled bypspdf__listItemSelector
. - APIAdds
PdfOutlineView#[set/get]DefaultTextColor()
, also controlled bypspdf__defaultTextColor
. - APIAdds
PdfOutlineView#[set/get]BookmarksBarBackgroundColor()
, also controlled bypspdf__bookmarksBarBackgroundColor
. - APIAdds
PdfOutlineView#[set/get]BookmarksBarIconColor()
, also controlled bypspdf__bookmarksBarIconColor
. - APIAdds
PdfOutlineView#[set/get]BookmarksAddIcon()
, also controlled bypspdf__bookmarksAddIcon
. - APIAdds
PdfOutlineView#[set/get]BookmarksEditIcon()
, also controlled bypspdf__bookmarksEditIcon
. - APIAdds
PdfOutlineView#[set/get]BookmarksDoneIcon()
, also controlled bypspdf__bookmarksDoneIcon
. - APIAdds
PdfOutlineView#[set/get]GroupIndicatorIconColor()
, also controlled bypspdf__bookmarksGroupIndicatorIconColor
. - APIAdds
PdfOutlineView#[set/get]TabIndicatorColor()
, also controlled bypspdf__tabIndicatorColor
. - APIAdds
PdfOutlineView#[set/get]BookmarksDeleteIcon()
, also controlled bypspdf__bookmarksDeleteIcon
. - APIAdds
PdfOutlineView#[set/get]BookmarksDeleteIconColor()
, also controlled bypspdf__bookmarksDeleteIconColor
. - APIAdds
PdfOutlineView#[set/get]BookmarksDeleteBackgroundColor()
, also controlled bypspdf__bookmarksDeleteBackgroundColor
.
- APIRemoves
ThumbnailGridThemeConfiguration
, uses attributes frompspdf__ThumbnailGrid
attribute set (specified by theme attributepspdf__thumbnailGridStyle
) along with added methods:- APIAdds
PdfThumbnailGrid#[set/get]BackgroundColor()
, also controlled bypspdf__backgroundColor
. - APIAdds
PdfThumbnailGrid#[set/get]ItemLabelTextStyle()
, also controlled bypspdf__itemLabelTextStyle
. - APIAdds
PdfThumbnailGrid#[set/get]ItemLabelBackground()
, also controlled bypspdf__itemLabelBackground
.
- APIAdds setters and getters for UI properties on
FormEditingBar
, uses attributes frompspdf__FormEditingBar
attribute set (specified by theme attributepspdf__formEditingBarStyle
) along with added methods:- APIAdds
FormEditingBar#[set/get]IconsColor
, also controlled bypspdf__iconsColor
. - APIAdds
FormEditingBar#[set/get]BackgroundColor
, also controlled bypspdf__backgroundColor
. - APIAdds
FormEditingBar#[set/get]TextColor
, also controlled bypspdf__textColor
. - APIAdds
FormEditingBar#[set/get]PrevIcon
, also controlled bypspdf__prevIconDrawable
. - APIAdds
FormEditingBar#[set/get]NextIcon
, also controlled bypspdf__nextIconDrawable
.
- APIRemoves
FormEditingConfiguration
, use attributes frompspdf__FormSelection
attribute set (specified by theme attributepspdf__formSelectionStyle
) to configure UI:- APIAdds
enableFormEditing()
anddisableFormEditing()
to thePdfConfiguration
andPdfActivityConfiguration
builders (pulled out ofFormEditingConfiguration
)
- APIRemoves
AnnotationEditingConfiguration
, use attributes frompspdf__AnnotationSelection
attribute set (specified by theme attributepspdf__annotationSelectionStyle
) to configure UI. Other methods are extracted toPdfConfiguration.Builder()
andPdfActivityConfiguration.Builder()
:- APIAdds
Pdf[Activity]Configuration.Builder#disableAnnotationEditing()
. - APIAdds
Pdf[Activity]Configuration.Builder#enableAnnotationEditing()
. - APIAdds
Pdf[Activity]Configuration.Builder#editableAnnotationTypes()
. - APIAdds
Pdf[Activity]Configuration.Builder#enabledAnnotationTools()
. - APIAdds
Pdf[Activity]Configuration.Builder#setSelectedAnnotationResizeEnabled()
. - APIAdds
Pdf[Activity]Configuration.Builder#setSelectedAnnotationResizeGuidesEnabled()
. - APIAdds
Pdf[Activity]Configuration.Builder#setResizeGuideSnapAllowance()
. - APIAdds
Pdf[Activity]Configuration.Builder#setResizeGuideLineIntervals()
. - APIAdds
Pdf[Activity]Configuration.Builder#setAnnotationInspectorEnabled()
. - APIAdds
Pdf[Activity]Configuration.Builder#setSignatureSavingEnabled()
. - APIAdds
Pdf[Activity]Configuration.Builder#setCustomerSignatureFeatureEnabled()
.
- APIRemoves deprecated
defaultAnnotationCreator()
method fromAnnotationEditingConfiguration#Builder
, usePSPDFKitPreferences#setAnnotationCreator(String)
to set annotation creator name. - APIRemoves
AnnotationRenderConfiguration
, use attributes frompspdf__Annotation
attribute set (specified by theme attributepspdf__annotationStyle
) to configure UI. Other methods are extracted toPdfConfiguration.Builder()
andPdfActivityConfiguration.Builder()
:- APIAdds
Pdf[Activity]Configuration.Builder#excludedAnnotationTypes()
.
PdfLibrary
. (#9235)- APIAdds
IndexingOptions
andPdfLibrary#enqueueDocuments(documents, indexingOptions)
overloads which allow to disable annotation or document text indexing. - APIAdds
QueryOptions.Builder#ignoreAnnotations()
andQueryOptions.Builder#ignoreDocumentText()
- APIRenames
QueryOptions
methods:isMatchExactPhrases
toshouldMatchExactPhrases
,isMatchExactWords
toshouldMatchExactWords
, andgenerateTextPreviews
toshouldGenerateTextPreviews
. - ChangedUpdates
IndexedFullTextSearchExample
in the catalog app, to showcase new query options. - AddedAdds
enqueueDocumentSources
andenqueueDocumentSourcesWithMetadata
toPdfLibrary
to allow indexing documents without opening them first. This fixes OOM issues when indexing large amount of PDF documents.
NeedAppearances
form flag. (#10288)- APIAdds
set()
,get()
,setInXmp()
andgetInXmp()
methods toDocumentMetadata
class. - Changed
DocumentMetadata
object isn't parcelable anymore. - Changed
PdfProcessorTask#withMetadata()
now acceptsHashMap<String,String>
instead ofDocumentMetadata
class.
AesDataProvider
and AesEncryptedFileExample
to catalog app. (#10230)MemoryDataProvider
. (#10451)PdfActivity
documentation. (#10300)DocumentSharingProvider
class was renamed. (#10174)NullPointerException
thrown while initializing documents forms. (#10418)3.0.0 12 Apr 2017
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
- APIUpdate RxJava to
2.0.8
and RxAndroid to2.0.1
. (#9254)- ChangedAll public facing methods are now using the new RxJava 2 types
Observable
,Flowable
,Single
,Completable
. - ChangedFor a comprehensive overview of the changes in RxJava 2, please have a look at the official RxJava 2 documentation(opens in a new tab).
- APIRemoves license from the configuration files, the framework is now implicitly initialized using
<meta-data>
tag in yourAndroidManifest.xml
. More information in the guides. (#9791)- APIAdds
PSPDFKit#setApplicationPolicy()
which is now a preferred way of changing application policy instead of re-initializing the whole framework. - APIRemoves deprecated
PSPDFActivityConfiguration.Builder#activity()
. Target activity is now set throughPdfActivityIntentBuilder#activityClass()
with extras being added to the intent created withPdfActivityIntentBuilder#build()
.
- APIAdds support for programmatic forms filling. (#9656)
- APIAdds
FormsProvider
class for handling all forms related operations. It can be retrieved by callingPSPDFDocument#getFormsProvider()
. - APIAdds
FormField
class representing the single field in an interactive form. - APIAdds
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
).
- APIMoves
PSPDFKit#openDocument
,PSPDFKit#openDocuments
andPSPDFKit#openDocumentAsync
calls toPdfDocument
class. (#5330)- ChangedDrops several of more complex overloads in favor of passing document information with
DocumentSource
parameter.
- APIMoves and renames
PSPDFKit#invalidateDocumentCache
toPdfDocument#invalidateCache
andPSPDFKit#invalidatePageCache
toPdfDocument#invalidateCacheForPage
. (#5330) - API
PSPDFActivity
renamed toPdfActivity
. (#9680)- APIReplaces
PSPDFActivity.IntentBuilder()
withPdfActivityIntentBuilder
that is used creating an intent for startingPdfActivity
instance. - APIRemoves
PSPDFActivity#showDocument()
for creating documents from multiple sources and just keeps the simpler ones, usePdfActivityIntentBuilder
for full control over the document opening process. - APIRemoves deprecated PSPDFActivity#onToggleActionbarVisibility().
- API
PSPDFActivity#setDocument()
methods have been renamed to specific ones depending on the parameters, sosetDocumentFromUri()
,setDocumentFromUris()
,setDocumentFromDataSource()
,setDocumentFromDataSources()
. - APIRemoves methods for explicitly removing single listeners from
PdfActivity
, usesetXYListener(null)
.
- APIDrops
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) - APIChanges how colors are modeled on free text annotations to be consistent with how these properties are shown in the inspector.
- RemovedRemoves
FreeTextAnnotation#getTextColor()
andFreeTextAnnotation#setTextColor()
. - ChangedChanges
FreeTextAnnotation#getColor()
andFreeTextAnnotation#setColor()
to get and set the text color instead of the fill color. - ChangedChanges
FreeTextAnnotation#getFillColor()
andFreeTextAnnotation#setFillColor()
to get and set the fill color instead of doing nothing.
- APIRemoves deprecated method
PSPDFActivityConfiguration.Builder#printingEnabled()
, usePdfActivityConfiguration#enablePrinting()
andPdfActivityConfiguration#disablePrinting()
instead. - APIAdds
StampAnnotation#setBitmap()
for re-setting an image onStampAnnotation
. (#9803) - APIAdds
setFormMappingNameMappings()
andsetFormFieldNameMappings()
call toPSPDFProcessorTask
to allow renaming of form fields. - APICamel 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
. - APIIn
PdfFragment
:- API:
convertViewRectToPDFRect()
toconvertViewRectToPdfRect()
- API:
- API
convertPDFRectToViewRect()
toconvertPdfRectToViewRect()
- API
convertViewPointToPDFPoint()
toconvertViewPointToPdfPoint()
- API
convertPDFPointToViewPoint()
toconvertPdfPointToViewPoint()
- API
getVisiblePDFRect()
togetVisiblePdfRect()
- APIAdds
PSPDFFragment#registerFormElementSelectedListener
for listening to form element selection. - APIAdds
PSPDFFragment#registerFormElementDeselectedListener
for listening to form element deselection. - APIAdds
PSPDFFragment#registerFormElementUpdatedListener
for listening to form element updates. - APIAdds
PSPDFFragment#setSelectedFormElement
for selecting form element andPSPDFFragment#getSelectedFormElement
for getting selected form element. - APIAdds
FormEditingConfiguration
that can be used to control form editing configuration.
FormEditingBar
that helps with form filling. (#9978)- AddedAdds
setConfiguration
toPdfActivity
to changePdfActivityConfiguration
at runtime. - ChangedAllow creation of
PdfActivityConfiguration.Builder
andPdfConfiguration.Builder
from existing configuration. - AddedAdds
DynamicConfigurationExample
showcasing how to modifyPdfActivity
configuration at runtime. - AddedAdds
CustomFragmentDynamicConfigurationExample
showcasing how to modifyPSPDFFragment
configuration at runtime when used with custom activity.
HideAction
and ResetFormAction
. (#9971)getState
and setState
methods to PdfFragment
for saving and restoring fragment state. (#9605)DocumentDownloadExample
. (#10161)PdfLibrary
search when using FTS5. (#10018)2.9.4 22 Mar 2017
- ChangedUpdates dependencies - RxJava to
1.2.7
and support libraries to25.3.0
. - APIIntroduces
PSPDFPreferences
to read and write global framework preferences. (#7300)- APIDeprecates
AnnotationEditingConfiguration.defaultAnnotationCreator
. UsePSPDFPreferences.setAnnotationCreator
to configure the annotation creator name.
- APIIntroduces
AnnotationPreferences
to access and change the annotation creator name. (#7300)- AddedAdds
AnnotationEditingConfiguration.annotationCreator
to set the default creator name or override the stored one. - RemovedDeprecates
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) - AddedAdds helpers for changing screen timeout through
PSPDFActivity#setScreenTimeout(long)
. (#8527) - FixedFixes an issue where failing to save the document would not clear the cache thus keeping the incorrect document cached.
- FixedFixes an issue where document pages had incorrect height when using vertical paginated scrolling. (#9671)
- FixedFixes an issue where click events on link annotation where not properly handled. (#9772)
- FixedFixes an issue where dragging an annotation using the long-press gesture would not work if another annotation was currently selected. (#9786)
- FixedFixes incorrect continuous mode scrolling to the rect that's on the different page than the current one. (#9664)
- FixedFixes an issue where document saving would fail when only permissions were protected by a document password. (#9623)
- FixedFixes an issue where thumbnail bar wasn't hidden when showing soft keyboard after the document has been edited. (#9806)
- FixedFixes an issue where
NewPageDialog
wasn't calling theonDialogCancelled
listener when being dismissed via back button or touch event. (#9820) - FixedFixes an issue where thumbnails in the thumbnail grid would be stuck, when quickly starting to scroll after the grid became visible. (#9821)
- FixedFixes an issue where clicking on the annotation would not invoke
DocumentListener#onPageClick()
listener. (#9815) - FixedFixes an issue where document editing from unsupported sources was not consistent. (#7656)
- FixedFixes incorrect animations in outline list when expanding or collapsing an outline on Android API 17 and lower. (#9899)
- FixedFixes a issue on incrementally saving using a data provider. (#9410)
2.9.3 28 Feb 2017
- AddedAdds keyboard navigation using left/right keys. (#9370)
- ChangedChanges the note annotation creation flow. (#9645)
- ChangedIt is now possible to create empty note annotation using the note annotation editor.
- AddedNewly created note annotations are now automatically selected.
- FixedFixes an issue where navigation bar got transparent when returning from multi-window mode. (#9530)
- FixedFixes an issue where toolbar layout could get broken because it was incorrectly allowed to be vertical on certain screen sizes. (#9488)
- FixedFixes an issue where document title view could get hidden behind action bar when switching to multi-window mode. (#9545)
- FixedFixes an issue where deselecting an annotation tapping on the document background was hiding the user interface. (#9550)
- FixedFixes incorrect animation in annotation inspector when showing soft keyboard. (#9527)
- FixedFixes possible
NullPointerException
in the catalog example. (#9561) - FixedFixes 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)
- FixedFixes an issue where
PSPDFActivity
would hide the thumbnail bar on devices with high density screens. (#9597) - FixedFixes double page mode scrolling being broken in some cases (inline search results navigation, state restoration, etc.) (#9626)
- FixedFixes 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
- ChangedUpdates dependencies - Support libraries to
25.1.1
, RxJava to1.2.6
. - AddedAdds support for annotation flags in
Annotation
class and user interface. (#6939)- AddedAdds support for
HIDDEN
flag. If set, do not display or print the annotation and prevent annotation editing. - AddedAdds support for
PRINT
flag. Annotation is printed only when this flag is set. - AddedAdds support for
NOVIEW
flag. If set, do not display the annotation and prevent annotation editing. However, printing is still allowed whenPRINT
flag is set. - AddedAdds support for
READONLY
flag. If set, prevent annotation editing. - AddedAdds support for
LOCKED
flag. If set, annotation can't be deleted, dragged or resized. - AddedAdds support for
LOCKEDCONTENTS
flag. If set, annotation contents can't be changed.
- AddedAdds an API to manipulate user interface visibility in
PSPDFActivity
. (#8348)- AddedAdds
showUserInterface
to show user interface controls. - AddedAdds
hideUserInterface
to hide user interface controls. - AddedAdds
toggleUserInterface
to toggle user interface visibility. - AddedAdds
setUserInterfaceVisible
to force show/hide user interface with or without animation. - AddedAdds
isUserInterfaceVisible
to query user interface visibility. - AddedAdds
PSPDFActivity.onUserInterfaceVisibilityChanged
to listen to user interface visibility changes. - RemovedDeprecates
Commands.ToggleSystemBars
. Use above methods instead. - RemovedDeprecates
PSPDFActivity.onToggleActionbarVisibility
.
- AddedAdds
ToolbarCoordinatorLayout.OnContextualToolbarPositionListener
that listens for toolbar position within theToolbarCoordinatorLayout
, set throughPSPDFActivity#setOnContextualToolbarPositionListener(listener)
. (#9212) - AddedAdds
ContextualToolbar#isDraggable
to query whether contextual toolbar is currently draggable. (#9212) - ChangedImproves search highlighter and search navigation. (#8327)
- ChangedHides HUD when creating annotations and annotation toolbar is in vertical position. (#9212)
- AddedAdds
hideHudWhenCreatingAnnotations
toPSPDFActivityConfiguration
to control this behavior.
- ChangedDisables immersive mode when running in multi-window mode. (#9491)
- FixedFixes an issue where it wasn't possible to draw annotations under system bars. (#9220)
- FixedFixes an issue causing the thumbnail grid to crash certain devices when opened in landscape orientation. (#9433)
- FixedFixes a possible resource leak that caused warnings in strict mode during library initialization. (#9405)
- FixedFixes an issue where tapping while scrolling in paginated mode makes scrolling stuck between pages. (#7971)
- FixedFixes an issue where scrolling gets stuck after snapping back from zoom-out action. (#9380)
- FixedFixes an issue where wrong document insets were calculated when showing keyboard in multi-window mode. (#9487)
- FixedFixes an issue where
PSPDFThumbnailBar
would throw an exception when switching from double-page mode back to single-page mode. (#9490) - FixedFixes a crash in
PSPDFThumbnailBar
when number of pages drops under 2. (#9352) - FixedFixes 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
- AddedAdds a feature to search the outline, showing also parent sections. (#9101, #9215)
- FixedFixes a crash when opening single-paged documents in double page mode. (#9269)
- FixedFixes an issue where
DocumentListener
save callbacks sometimes weren't called afterPSPDFFragment
was detached. (#9319) - FixedFixes an issue where FTS 5 PSPDFLibrary searches with only whitespace failed to execute. (#9271)
- FixedFixes an issue where
ImagePickerFragment
was not asking for camera permission when required. (#9231) - FixedFixes an issue where it was possible to enter emojis in custom stamps text. (#9227)
- FixedFixes an issue where FAB was not hidden when
CustomStampCreatorLayout
was loaded for the first time. (#9229) - FixedFixes an UI bug where annotation toolbar submenu overflows the main toolbar. (#8970)
- FixedFixes an issue where
PSPDFDocument#wasModified
returnedfalse
if only bookmarks were modified. (#9320) - FixedFixes an issue where search button in catalog app could be lost after searching. (#9344)
- FixedFixes an issue where
PSPDFActivity
was using wrong insets when running immersively in multi-window mode. (#9321)
2.9.0 25 Jan 2017
See the announcement post(opens in a new tab).
- FixedFixes a security issue where
DocumentSharingProvider
could expose other private application files. (#9136) - AddedAdds paginated double page layout for browsing documents. (#5670)
- AddedAdds
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. - AddedAdds
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. - AddedAdds
showGapBetweenPages
property to thePSPDFConfiguration
that controls whether there should be gap between sibling pages or if they should be touching each other.
- AddedAdds support for styling modal dialogs used across the framework. (#7970)
- ChangedMake sure that
AlertDialog
s use theme specified inalertDialogTheme
theme attribute. - AddedAdds
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. - AddedAdds
pspdf__sharingdialogStyle
theme attribute for styling share/print options dialog. - AddedAdds
pspdf__newPageDialogStyle
theme attribute for styling new page dialog in document editor. - AddedAdds
pspdf__stampPickerStyle
theme attribute for styling stamp picker. - AddedAdds
pspdf__actionMenuStyle
theme attribute for styling action menus.
- AddedAdds
LocalizationListener
interface used to override built-in UI strings programatically. (#5187) - AddedAdds an API for using existing signature picker in custom UI. (#9081)
- AddedAdds
Signature
representing single signature. - AddedAdds
SignaturePickerFragment
encapsulating signature picker flow and signature storage handling. - AddedAdds
CustomInkSignatureExample
to catalog app showcasing how to use this API to integrate signature picker in custom activity that is usingPSPDFFragment
.
- AddedAdds
PSPDFFragment#addAnnotationToPage()
which simplifies adding annotations to page. (#9081) - AddedAdds support for free-text annotations fill color. (#9020)
- AddedAdds
getHudViewMode()
method toPSPDFActivity
for querying currently used HUD view mode. (#9100) - AddedAdds
setRotation
andgetRotation
properties toPageImage
object to allow rotation of images when using thePSPDFProcessor
. (#9096) - AddedAdds a usage example of
PSPDFThumbnailGrid
to theCustomFragmentActivity
of theFragmentExample
inside the catalog app. (#9133) - AddedAdds
size
andgetIndexedUIDs
method calls toPSPDFLibrary
. (#9192) - AddedAdds
LibraryIndexingListener
andregisterLibraryIndexingListener
/unregisterLibraryIndexingListener
toPSPDFLibrary
. (#9192) - AddedAdds support for FTS5 to
PSPDFLibrary
, when available. Note that this upgrade will require all documents to be reindexed. (#9026) - AddedAdds
enabledAnnotationTools
toAnnotationEditingConfiguration.Builder
for controlling which annotation tools are enabled when creating annotations. (#8201) - AddedAdds a new
PSPDFFragment#newInstance
method which accepts an already openedPSPDFDocument
as a parameter. (#8199) - AddedAdds setting to prevent copying of selected text, see
CustomApplicationPolicyExample
from the catalog app. (#8728) - ChangedRenames
AnnotationCreationMode
enum toAnnotationTool
. (#9119)- ChangedRenames
getActiveAnnotationCreationMode
inAnnotationCreationController
togetActiveAnnotationTool
. - RemovedRemoves deprecated methods
getCurrentlyEditedAnnotationType
andchangeAnnotationCreationMode
inAnnotationCreationController
. - ChangedChanges
Analytics.Data#ANNOTATION_CREATION_MODE
constant toANNOTATION_TOOL
.
- ChangedChanges default search result limit of library searches to
500
. UsemaximumSearchResultsTotal()
andmaximumPreviewResultsTotal()
methods inQueryOptions
to change this. (#9131) - ChangedImproves custom stamps creation API. (#8571, Z#4917)
- AddedAdds
fromBitmap
,fromPredefinedType
andfromSubject
toStampPickerItem
to access builders for creating custom stamps. - RemovedRemoves
create*
methods fromStampPickerItem
andStampAnnotationDefaultsProvider
. - ChangedMoves
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) - ChangedImproves performance of library indexing and preview snippet generation. (#9131)
- FixedFixes 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) - FixedFixes an issue when adding JPEG images to pages with
PSPDFProcessor
would load them all into memory and cause OutOfMemory exceptions. (#9096) - FixedFixes an issue where ink thickness was not recalculated when resizing. (#4808)
- FixedFixes an issue where note annotation text was not being processed during searching immediately after creating note annotations. (#8889)
- FixedFixes an issue where an outline element which referenced an invalid page index would cause an exception. (#8855)
- FixedFixes an issue where back button wasn't visible when showing custom stamp layout on tablets (#8962)
- FixedFixes a crash when using custom versions of SQLite 3.11 or higher. (#8967)
- FixedFixes an issue where document editor has been closed after a configuration change. (#5979)
- FixedFixes an issue where new page dialog stopped working after a configuration change. (#8989)
- FixedFixes an issue where document editing toolbar wasn't hidden after leaving document editor. (#8982)
- FixedFixes an issue where tapping on document background didn't toggle the HUD. (#8965)
- FixedFixes an issue where note annotation editor remained in broken state after restoring application's state. (#9100)
- FixedFixes an issue where active text selection was lost after configuration change. (#7366)
- FixedFixes an issue where application state could not be restored properly in some cases. (#9099)
- FixedFixes an issue where
PSPDFThumbnailGrid
failed to render images if not properly laid out. (#9134) - FixedFixes an issue where
PSPDFThumbnailGrid
could not be shown immediately after being hidden. (#9151) - FixedFixes an issue where touch gesture could get handled after the document has been reloaded which could cause a crash. (#9145)
- FixedFixes an issue where last letter of a sentence couldn't be highlighted in some cases. (#8751)
- FixedFixes an issue where repeatedly highlighting same sentence would make the highlight darker and underlines overlap. (#4913)
- FixedFixes an issue where it was possible to create empty custom stamps. (#8969)
- FixedFixes an issue where annotation list items were missing icons for certain annotations. (#9206)
2.8.1 13 Dec 2016
- AddedAdds
NewPageDialog
. (#8759)- AddedAdds
NewPageFactory
interface andPSPDFThumbnailGrid#setNewPageFactory
. The factory returnsNewPage
instances that are used by the document editor when adding a page. - AddedAdds
DialogNewPageFactory
for creating new pages using theNewPageDialog
. This is the default factory. - AddedAdds
ValueNewPageFactory
that allows programmatically specifying a singleNewPage
instances that is used by the document editor.
- AddedAdds divider after annotation preview as a visual cue that annotation preview is clipped. (#8827)
- AddedAdds support for
PropertyInspector#ItemDecoration
that can be used to implement custom dividers between inspector views. (#8849) - AddedAdds Slovak language localization. (#8928)
- AddedAdds the ability to disable annotations from rendering via
PSPDFActivityConfiguration#annotationRenderConfiguration(AnnotationRenderConfiguration)
, seeAnnotationRenderingExample
from the catalog app. (#7571) - ChangedImproves grouping of icons in
AnnotationCreationToolbar
. (#8863)- ChangedItems are now grouped more by the context and not just extracted if enough space (which was leading to strange structures).
- ChangedGroups are predefined and can be found in
AnnotationCreationToolbarItemPresets
. - ChangedGrouping is being done by
AnnotationCreationToolbarGroupingRule
instead of being directly passed tosetMenuItems()
- flat list of items is passed now.
- ChangedImproves
DocumentEditingToolbar
by making it draggable and introducing pre-defined item groupings same as forAnnotationCreationToolbar
. (#8898)- ChangedGroups are predefined and can be found in
DocumentEditingToolbarItemPresets
. - ChangedGrouping is being done by
DocumentEditingToolbarGroupingRule
instead of being directly passed tosetMenuItems()
- flat list of items is passed now. - ChangedDrag position is saved and the toolbar's default position on the tablet is on the left side.
- FixedFixes an issue where
AnnotationCreationToolbar
single menu items cannot be deselected. (#8852) - FixedFixes an issue with loading invalid annotations. (#8869)
- FixedFixes an issue where an invalid page index read from the document store could cause an exception. (#8858)
- FixedFixes an issue while garbage collecting PDF objects on saving non-incrementally. (#8901)
- FixedFixes an issue where opening note annotation dialog twice at the same time broke UI. (#8854)
- FixedFixes thumbnail bar flickering when changing pages. (#4894)
- FixedFixes an issue where edit annotation menu item is not selected once the annotation creation mode is activated. (#7513)
- AddedAdds
pspdf__editAnnotationsIconActivated
for specifying custom icon when annotation creation mode is active. This is contained inpspdf__ActionBarIcons
style. - ChangedSelected icon color is controlled by
pspdf__ActionBarIcons_pspdf__iconsColorActivated
style parameter.
- ChangedLets
com.pspdfkit.utils.Size
implementParcelable
. (#8765) - FixedFixes an exception in
UnitSelectionEditText
for Arabic devices. (#8738) - FixedFixes an issue where leaving annotation creation mode could lead to an exception. (#8860)
- FixedFixes an issue causing an
IndexOutOfBoundsException
when selecting text on a page. (#8922) - FixedFixes an issue where sharing with WhatsApp triggered an exception. (#8424)
2.8.0 1 Dec 2016
See the announcement post(opens in a new tab).
- ChangedUpdates dependencies - Support libraries to
25.0.1
, RxJava to1.2.3
. - AddedAdds automated saving and restoration of the last viewed page in a document (#8744)
- AddedAdds
PSPDFConfiguration#isLastViewedPageRestorationEnabled
and respective settersPSPDFConfiguration.Builder#restoreLastViewedPage
andPSPDFActivityConfiguration.Builder#restoreLastViewedPage
. - AddedAdds 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. - AddedAdds catalog app setting "Restore last viewed page".
- AddedAdds feature to reveal the URL stored inside a link annotation when long-pressing the annotation. (#5558)
- AddedAdds support for square and circle annotations. (#8548)
- AddedAdds
SquareAnnotation
andCircleAnnotation
classes. - AddedAdds UI to add and edit square and circle annotations on the page.
- AddedAdds
ShapeAnnotationDefaultsProvider
providing defaults for creating and editing square and circle annotations.
- AddedAdds support for polygon and polyline annotations. (#8625)
- AddedAdds
PolygonAnnotation
andPolylineAnnotation
classes. - AddedAdds UI to add and edit polygon and polyline annotations on the page.
- ChangedDefaults for polygon annotations are provided by
ShapeAnnotationDefaultsProvider
. - ChangedDefaults for polyline annotations are provided by
LineAnnotationDefaultsProvider
.
- AddedAdds support for storing persistent per-document preferences. (#8638, #8703).
- AddedAdds
DocumentDataStore
public class to access the document preferences.
- AddedAdds support for line annotations with filled line ends. (#8455)
- AddedAdds support for editing annotation points for line, polygon and polyline annotations. (#8456)
- AddedAdds missing
setAlpha
setter toAnnotation
class. (#8398) - ChangedImproves the
ContextualToolbar
so that items are dynamically re-grouped once the size of the toolbar changes. (#8173)- AddedAdds
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()
.
- ChangedImproves the positioning of the items in the
AnnotationCreationToolbar
: annotation menu items are on the left side (top when vertical) and control buttons (close, open color picker and drag) are on the right side (bottom when vertical). (#8615) - ChangedImproves memory handling in low-memory situations and with many open documents. (#8352, #8447)
- ChangedImproves performance of decoding JPEG images. (#8712, #8673)
- ChangedImproves bookmark handling in Processor and DocumentEditor. (#8091)
- ChangedImproves annotation deletion speed. (#8788)
- ChangedImproves loading time of large documents lazily loading page sizes, labels and rotations. (#7842)
- ChangedDisables resize guides for line annotations. (#8696)
- FixedFixes an issue where line annotation ends were being clipped by annotation's bounding box. (#8357)
- FixedFixes pixelated ink paths when drawing on zoomed page. (#8696)
- FixedFixes an issue where ink/lines could dissappear while drawing in Android 4.1. (#8811)
- FixedFixes an issue where annotation selection didn't reflect annotation bounding box changes. (#8696)
- FixedFixes an issue where white and transparent colors could not be distinguished from background in annotation inspector. (#8548)
- FixedFixes an issue where a page would not be properly refreshed when adding certain annotation types. (#8577)
- FixedFixes an issue with opening a PDF with bookmarks in Preview.app. (#8591)
- FixedFixes an issue where it wasn't possible to resize image stamps with large aspect ratios. (#8570)
- FixedFixes an issue where
PSPDFPasswordView
would still apply color filters if tinting was deactivated viaPasswordViewThemeConfiguration#isIconTintingEnabled
. (#8607) - FixedFixes an issue where the toolbar was clipped when animating its visibility in immersive viewing mode. (#8681)
- FixedFixes label backgrounds in page grid when the page has a long page label. (#8745)
- FixedFixes an issue where markup annotation wasn't updated when changing its color. (#8749)
- FixedFixes unnecessary page render when creating annotations. (#8700)
- FixedFixes an issue where parceled
DataProvider
instances were not correctly loaded byPSPDFFragment
. (#8743)
2.7.0 7 Nov 2016
See the announcement post(opens in a new tab).
- ChangedUpdates dependencies - Support libraries to
25.0.0
, RxJava to1.2.2
. - ChangedUpdates target to 25 - Android Nougat 7.1.
- AddedAdds full support for Android Nougat multi-window mode.
- AddedAdds support for signatures. (#6582)
- AddedAdds UI for adding, selecting and deleting signatures, which are then added to the page as ink annotations.
- AddedAdds two modes for handling signature annotations: "My Signature" (stores added signatures) and "Customer Signature" (one time signature).
- AddedAdds
setCustomerSignatureFeatureEnabled(boolean)
andsetSignatureSavingEnabled(boolean)
toAnnotationEditingConfiguration.Builder
for configuring previously mentioned modes. - AddedAdds
pspdf__signatureLayoutStyle
attribute for styling the signature dialog.
- AddedAdds support for line annotations. (#8339)
- AddedAdds
LineAnnotation
class. - AddedAdds UI to add and edit line annotations on the page.
- AddedAdds
LineAnnotationDefaultsProvider
providing defaults for creating and editing line annotations.
- AddedAdds
setBorderColor
,setBorderWidth
,setBorderStyle
andsetBorderDashArray
(and getters) toAnnotation
class. (#8301) - AddedAdds support for stamps with images captured from camera. (#8218)
- AddedAdds ready to use API for picking images from gallery or capturing images via camera. (#8190)
- AddedAdds
ImagePickerFragment
that encapsulates whole picker lifecycle. - AddedAdds
BitmapUtils
class for decodingBitmap
fromUri
s retrieved viaImagePickerFragment#OnImagePickedListener
. - AddedAdds an example to catalog app showcasing how to use this API to create new pages with images captured by camera.
- AddedAdds
#toString
methods toDownloadRequest
andURLDownloadSource
. (#8264) - AddedAdds
PasswordViewThemeConfiguration.Builder#iconTintingEnabled
which allows turning off tinting of the password view drawable. (#8403) - AddedAdds close button to annotation property inspector. (#8262)
- AddedAdds scrollbars and document scrolling API. (#8388)
- ChangedEnables default Android scrollbars on the
PSPDFFragment
. You can disable them using#scrollbarsEnabled
on thePSPDFConfiguration.Builder
orPSPDFActivityConfiguration.Builder
. - AddedAdds styleable attribute
pspdf__documentViewStyle
that accepts a style definingView
attributes for modifying the appearance of scrollbars. If not overridden by the active theme, this attribute is set to thepspdf__DocumentView
style. - AddedAdds scrollbar theming example to the existing
DarkThemeExample
. - AddedAdds
DocumentScrollListener
interface for observing scrollbar movement of the current document. - AddedAdds
PSPDFFragment#registerDocumentScrollListener
andPSPDFFragment#unregisterDocumentScrollListener
- AddedAdds
VerticalScrollBar
widget, a customizable scrollbar with draggable indicator (for quick page browsing). - AddedAdds
VerticalScrollBarExample
to showcase scrollbar usage inside a custom activity.
- AddedAdds the ability to disable bookmark renaming with
PSPDFOutlineView#setBookmarkRenamingEnabled
. (#8118) - AddedAdds
PSPDFKit#setLoggingEnabled
method for enabling or disabling PSPDFKit debug output in logcat. (#8515) - AddedAdds an API for dynamic modification of certain properties of the active annotation selection. (#8150)
- AddedAdds new method
onPrepareAnnotationSelection
toPSPDFAnnotationManager.OnAnnotationSelectedListener
. - AddedAdds
AnnotationSelectionController
exposing multiple properties for controlling active annotation selection. - AddedAdds
AnnotationSelectionCustomizationExample
showcasing this new API. - AddedAdds
OnAnnotationSelectedListenerAdapter
which is an empty implementation of thePSPDFAnnotationManager.OnAnnotationSelectedListener
interface.
- RemovedRemoves
PSPDFConfiguration#isLoggingEnabled
and corresponding builder methods. (#8515) - ChangedImproves large memory usage handling of
PSPDFProcessor
. (#8291, #8352) - FixedFixes an exception thrown by a
DownloadJob
if the parent folder of the output file did not exist. TheDownloadJob
will now try to create the folder itself, or throw an exception if not able to do so. (#8265) - FixedFixes an unlikely crash in annotation parsing. (#8295)
- FixedFixes an issue causing a
NullPointerException
when exiting text selection mode while a highlight annotation is being created. (#8299) - FixedFixes a rare issue in the Document Editor. (#8370)
- FixedFixes typo in class name:
FloatingHitEditText
is now calledFloatingHintEditText
. (#8404) - FixedFixes an issue where bookmark name edit dialog could not be confirmed with enter key. (#8328)
- FixedFixes an issue where annotations could be rendered with a wrong image. (#8493)
- FixedFixes an issue where document wasn't resized correctly after hiding keyboard in immersive mode. (#8494)
- FixedFixes an issue where grid view was always showing page labels even if disabled. (#8046)
2.6.1 17 Oct 2016
- AddedAdds support for custom stamps. (#8062)
- AddedAdds progress dialog when sharing file without processing. (#8156)
- AddedAdds web download capabilities to
DownloadJob
. (#8160)- Changed
DownloadJob
will now use a temporary file for writing while downloading. This prevents corrupted files when downloads are interrupted. To not use a temporary file setDownloadRequest.Builder#useTemporaryOutputFile
tofalse
- AddedAdds
DownloadProgressFragment#setDialogOnCancelListener
for setting a listener that will be notified of when the progress dialog was cancelled by the user. - AddedAdds
URLDownloadSource
that can download PDF documents from aURL
object. - AddedAdds detection of
http
andhttps
URIs usingDownloadRequest.Builder#uri
. - RemovedRemoves
@Nullable
annotation fromDownloadProgressFragment#getJob
.
- AddedAdds
ActionResolver
for executing PDF actions from thecom.pspdfkit.annotations.actions
package.PSPDFFragment
implements this interface, allowing to execute PDF actions on the document. (#8205) - AddedAdds missing
BookmarkViewAdapter
interface which can be set byPSPDFOutlineView#setBookmarkViewAdapter
. (#8117) - ChangedAutomatically uses ReLinker(opens in a new tab) to load native library if available. This fixes
UnsatisfiedLinkError
exceptions on some older devices. For more information on ReLinker usage and configuration see our guide article: https://pspdfkit.com/guides/android/current/miscellaneous/relinker/ (#8197) - ChangedChange occurrences of
pageNumber
,page
, etc. topageIndex
. (#8115)- ChangedRenames
PSPDFSearchResult#pageNumber
toPSPDFSearchResult#pageIndex
. - ChangedRenames
GoToAction#getPage
to#getPageIndex
. - ChangedRenames
QueryPreviewResult#getPage
to#getPageIndex
. - ChangedRenames
StampPickerDialog#setPageNumber
and#getPageNumber
to#setPageIndex
and#getPageIndex
respectively. - ChangedRenames
Bookmark#getPage
to#getPageIndex
. - ChangedRenames
TextSelection#page
to#pageIndex
. - ChangedRenames
OnZoomFactorChangedEvent#page
to#pageIndex
.
- FixedFixes an issue where swiping through a large PDF could cause a crash. (#8141)
- FixedFixes an issue that caused crashes on some documents when dragging selection handles. (#8186)
- FixedFixes an issue where document insets were not applied when creating free-text annotations. (#8185)
- FixedFixes inconsistent peek height of the bottom sheet
ActionMenu
. (#8071) - FixedFixes an issue where contextual toolbars weren't updating toolbar icons correctly. (#8193)
- FixedFixes an issue where share button stopped working after reloading the document. (#8198)
- FixedFixes an issue that caused duplicated text rendering when creating free-text annotation. (#8243)
- FixedFixes an issue where document editor persisted edited state across editing sessions even when editing had been cancelled. (#8241)
- FixedFixes an issue where
DownloadProgressFragment
would always switch to indeterminate progress bar style after a configuration change. (#8166) - FixedFixes an issue where images captured by device camera had wrong orientation when used as stamp image or
PageImage
. (#8221) - FixedFixes an issue where image annotations weren't rotated correctly on rotated PDF pages. (#8135)
- FixedFixes an issue where an invalid modification or creation date inside the PDFs metadata would cause a crash. (#8236)
2.6.0 3 Oct 2016
See the announcement post(opens in a new tab).
- AddedAdds support for image and stamp annotations. (#5628)
- AddedAdds
StampAnnotation
object representing both image and stamp annotations. - AddedAdds UI to add and edit stamp annotations on the page.
- AddedAdds UI to add pictures from device library to the pages.
- AddedAdds a new bottom sheet sharing dialog that replaces the share/print menu. (#7598)
- AddedAdds
ActionMenu
for displaying list ofActionMenuItem
inside grid list bottom sheet. - AddedAdds
SharingMenu
which extendsActionMenu
to display list of sharing targets. - AddedAdds
DefaultSharingMenu
which extendsSharingMenu
to display print and view actions. - AddedAdds
PSPDFActivity#setSharingMenuListener(listener)
for listening to default sharing menu lifecycle and click events.
- AddedAdds download API for saving PDF documents to the local filesystem. (#7553)
- AddedAdds
DownloadRequest
andDownloadJob
for configuring and performing a download. - AddedAdds
DownloadSource
interface for defining different types of remote PDF document sources. - AddedAdds
AssetDownloadSource
for copying a PDF document from the app's assets. - AddedAdds
ContentResolverDownloadSource
for saving a PDF document from a content provider.
- AddedAdds sub-menus to the
ContextualToolbar
instead of displaying a new set of items. Sub-menus are activated with long-pressing the items with sub-menu indicators. (#7116)- AddedAdds
pspdf__contextualToolbarSubmenuBackground
for controlling the background of sub-menus, alongside the already existingpspdf__contextualToolbarBackground
which is now applied to the main menu bar. - AddedAdds
ContextualToolbarMenuBar
class which represents a single bar inside theContextualToolbar
serving as aViewGroup
.
- AddedAdds
CustomSharingMenuExample
to catalog app showcasing how to add custom share actions to sharing menu. (#7564) - AddedAdds set of new methods to
DocumentSharingManager
acceptingShareTarget
for sharing documents to single share target. (#7604). - AddedAdds async versions for methods in
DocumentSharingIntentHelper
that could potentially block UI thread. (#7822) - AddedAdds methods
PSPDFKit#invalidateDocumentCache
andPSPDFKit#invalidatePageCache
for clearing the render cache of a document or page respectively. (#7739) - AddedAdds new document processing examples inside the
DocumentProcessorExample
of the catalog app. (#7594, #7797)- AddedAdds example on how to rotate pages.
- AddedAdds example on how to add new pages to a document.
- AddedAdds better support for preserving passwords from the original document when saving or processing. (#6665)
- AddedAdds
PSPDFKit#openDocument(context, DocumentSource)
andPSPDFKit#openDocuments(context, List<DocumentSources>)
methods. ADocumentSource
object describes the source of a document which can be either aUri
or aDataProvider
. (#7994)- RemovedRemoves
PSPDFKit#openDocuments(List<Uri>)
. It had to be removed instead of deprecated due to Java generics type erasure. It has been replaced withPSPDFKit#openDocuments(List<DocumentSource>)
. - AddedAdds
PSPDFDocument#getDocumentSource()
andPSPDFDocument#getDocumentSources()
methods for retrieving the source of document PDF data. - RemovedDeprecates all
PSPDFKit#open
methods which accepted aDataProvider
or list of documentUri
s. The new methods acceptingDocumentSource
objects should be used instead. - RemovedDeprecates
PSPDFDocument#getUri()
,PSPDFDocument#getUriList()
. The newgetDocumentSource()
andgetDocumentSources()
methods should be used instead.
- AddedAdds position independent executable flag (-fpie) for further security hardening of the native code. (#7731)
- AddedAdds keyboard shortcuts. (#7750)
- AddedAdds Ctrl+P for opening the printer dialog.
- ChangedSelected annotations can now be deleted by pressing backspace or delete.
- AddedAdds
AnnotationCreationMode
enum that is used instead ofAnnotationType
to control active annotation tool in annotation creation mode. (#7883)- RemovedDeprecates
PSPDFFragment#enterAnnotationCreationMode(AnnotationType)
. Use#enterAnnotationCreationMode(AnnotationCreationMode)
instead. - RemovedDeprecates
AnnotationCreationController#getCurrentlyEditedAnnotationType
. Use#getActiveAnnotationCreationMode
instead. - RemovedDeprecates
AnnotationCreationController#changeAnnotationCreationMode(AnnotationType)
. Use#changeAnnotationCreationMode(AnnotationCreationMode)
instead.
- AddedAdds analytics API allowing developers to collect framework data. (#7836)
- AddedAdds
AnalyticsClient
interface. This can be implemented to receive various analytics events and data from the framework. - AddedAdds
Analytics.Event
andAnalytics.Data
classes defining all existing analytics events and their carried data. - AddedAdds
PSPDFKit#addAnalyticsClient
andPSPDFKit#removeAnalyticsClient
for adding and removingAnalyticsClient
instances respectively.
- AddedAdds an option to limit the maximum number of search results. See
SearchConfiguration.Builder#maxSearchResults(int)
. (#7512) - ChangedSignificantly improves rendering performance by partially rendering zoomed pages. (#7531)
- FixedFixes fuzzy text while scrolling around the page.
- ChangedSignificantly reduces memory usage of the application.
- ChangedDefault position of the
AnnotationCreationToolbar
is nowPosition.LEFT
on tablet devices withsw600dp
. (#7517) - ChangedClicking on annotation editing button now toggles annotation creation mode. (#8069)
- ChangedImproves rendering of annotations on rotated documents. (#6312, #7185, #7792)
- ChangedImproves memory usage when searching in a large document. (#7958)
- ChangedImproves font size picker in
SliderPickerInspectorView
. (#8014) - Changed
PSPDFKit.open*Async
methods now return aSingle<PSPDFDocument>
instead ofObservable<PSPDFDocument>
. (#7994) - ChangedRenames controller binding methods in
ContextualToolbar
implementations: (#7908)- Changed
AnnotationCreationToolbar#bindAnnotationCreationController()
,DocumentEditingToolbar#bindDocumentEditingController()
andTextSelectionToolbar#bindTextSelectionController()
are all renamed tobindController()
. - Changed
AnnotationCreationToolbar#unbindAnnotationCreationController()
,DocumentEditingToolbar#unbindDocumentEditingController()
andTextSelectionToolbar#unbindTextSelectionController()
are all renamed tounbindController()
.
- FixedFixes toolbar icon when sharing is disabled - the icon will now show a printer to accurately reflect the remaining action. (#8045)
- FixedFixes an issue where a highlight annotation was rendered with a border. (#7618)
- FixedFixes an issue where some documents couldn't be exported or printed. (#7585)
- FixedFixes an incorrect bitmap recycling when the
PSPDFActivity
is finishing, possibly causing out-of-memory errors when quickly being restarted. (#7659) - FixedFixes a build tools issue causing resource resolution errors at runtime. (#7672)
- FixedFixes a crash originating inside the
ContentResolverDataProvider
if the used content provider was not supporting append operations. (#7716) - FixedFixes an issue where the text selection offsets were wrong in certain documents, causing highlight annotations to be misaligned. (#7271)
- FixedFixes an issue where text selection mode was exited when dragging both handles to the same text index. (#7652)
- FixedFixes an issue where document editor didn't re-render changed pages. (#7690)
- FixedFixes an issue where document didn't refresh when creating highlight annotation from selected text. (#7729)
- FixedFixes an issue where markup annotation color wasn't applied before leaving annotation inspector. (#7786)
- FixedFixes clipped background of selected toolbar icons on some density configurations. (#7741)
- FixedFixes
DocumentListener
callbacksonPageChanged(PSPDFDocument, int)
andonDocumentZoomed(PSPDFDocument, int, float)
inconsistent with paginated scrolling. (#6727) - FixedFixes bookmark list view losing changed sort order when a bookmark is deleted. (#7977)
- FixedFixes wrong tint of bookmark edit button. (#8001)
- FixedFixes autocorrect not working for free text annotations. (#7857)
- FixedFixes markup annotations sometimes being rendered on top of other annotations. (#8029)
- FixedFixes rendering of compound documents with annotations. (#8048)
- FixedFixes an issue where thumbnail bar is being kept on top of the keyboard, thus reducing the available space on the screen. (#7999)
2.5.1 29 Aug 2016
- AddedAdds preview of free-text and ink annotations to annotation inspector when creating annotations. (#7330)
- AddedAdds example on how to add custom share actions to the
CustomActionsExample
of the catalog app. (#7564) - AddedAdds example on how to rotate pages using the
PSPDFProcessor
to theDocumentProcessingExample
of the catalog app. (#7594) - ChangedRenames
PropertyInspectorView#bindToController()
toPropertyInspectorView#bindController()
. (#7540) - ChangedCatalog app now asks for external storage read/write permissions when opening files from implicit intents on Android M and higher. (#7150)
- ChangedAllows re-selecting text via long press gesture when text is already selected. (#7566)
- FixedFixes an issue where
windowSoftInputMode
set onPSPDFActivity
was overwritten withSOFT_INPUT_ADJUST_NOTHING
when opening password protected documents. (#7431) - FixedFixes crash when deselecting FreeText annotations with
null
contents. (#7584) - FixedFixes an issue where ink annotations that were created with smaller bounding box than the minimum bounding box size could not be resized to their original size. (#7438)
- FixedFixes an issue with single dot ink annotation disappearing when moved around the page. (#7436)
- FixedFixes an issue where HUD disappeared when tapping menu item while HUD was hiding. (#7502)
- FixedFixes an issue where annotation creation mode was left after creating note annotation on single page documents. (#7516)
- FixedFixes an issue that could lead to inconsistent UI when clicking on HUD buttons while selecting annotations. (#7520)
- FixedFixes an issue where ink annotations resized to their maximum size were rendered without alpha. (#7534)
- FixedFixes an issue where creating multiple free-text annotations would exit annotation creation mode. (#7591)
2.5.0 15 Aug 2016
See the announcement post(opens in a new tab).
- ChangedUpdates dependencies - support libraries have been reverted to
23.4.0
until release of Android Nougat. RxJava was updated to version1.1.9
. - AddedAdds bookmark support to the UI and APIs. Bookmarks are stored inside the PDF document itself in a portable manner. (#5787)
- AddedAdds Bookmarks tab to the outline view with controls to add and delete bookmarks.
- AddedAdds
BookmarkProvider
class handling allBookmark
related operations. It can be retrieved by callingPSPDFDocument#getBookmarkProvider()
. - AddedAdds
BookmarkListView
as a view to display bookmark list inside a document.
- AddedAdds annotation property inspector replacing old color and thickness picker dialog. (#3594)
- ChangedIMPORTANT: The property inspector coordinator needs to be present in activity layout for annotation inspector to work correctly. If you are using custom view in
PSPDFActivity
, addcom.pspdfkit.ui.inspector.PropertyInspectorCoordinatorLayout
with idR.id.pspdf__inspector_coordinator
(for example, seecustom_pdf_activity.xml
from the catalog app). - AddedAdds
PropertyInspectorView
interface with implementationsColorPickerInspectorView
andSliderPickerInspectorView
for picking colors and thickness/text size. - AddedAdds
PropertyInspector
used as a container forPropertyInspectorView
s. - AddedAdds
PropertyInspectorCoordinatorLayout
used for displaying instances ofPropertyInspector
and handling animations and interactions between them. - ChangedUpdates
AnnotationToolbarFragmentExample
from the catalog app to show how to incorporatePropertyInspectorCoordinatorLayout
with working annotation inspector inPSPDFFragment
within the custom activity. - AddedAdds
CustomAnnotationInspectorExample
showing how to add views to existing annotation inspector and how to create custom annotation inspector UI from scratch.
- AddedAdds
PSPDFActivity.IntentBuilder
that builds an Intent to display a PDF document. This allows customization of Intent flags and extras before starting the activity. (#7158) - AddedAdds an API for controlling annotation inspector when creating or editing annotations.
- AddedAdds
AnnotationInspectorController
through which the annotation inspector can be fully customised. - AddedAdds
bindAnnotationInspectorController
andunbindAnnotationInspectorController
toAnnotationCreationController
andAnnotationEditingController
. - AddedAdds
AnnotationCreationInspectorController
andAnnotationEditingInspectorController
managing annotation inspector in annotation creation and editing modes.
- AddedAdds an API for controlling annotation editing defaults and preferences.
- AddedAdds
AnnotationDefaultsManager
handling defaults and allowed values for annotation properties. - AddedAdds set of
AnnotationDefaults*Provider
interfaces for supported annotation properties andFreeTextAnnotationDefaultsProvider
,InkAnnotationDefaultsProvider
,MarkupAnnotationDefaultsProvider
andNoteAnnotationDefaultsProvider
providing annotation defaults for supported annotation types. - AddedAdds
AnnotationPreferencesManager
handling annotation editing preferences. - AddedAdds
PSPDFFragment#getAnnotationDefaults()
andPSPDFFragment#getAnnotationPreferences
to accessAnnotationDefaultsManager
andAnnotationPreferencesManager
. - AddedAdds
AnnotationDefaultsExample
showing how to use the new annotation defaults API.
- ChangedImproves configuring search and adds more options to the search API. (#7246)
- AddedAdds
SearchConfiguration
toPSPDFActivityConfiguration
containing properties for searching the document. - AddedAdds
SearchView#setSearchConfiguration()
for setting theSearchConfiguration
to theSearchView
implementation. - AddedAdds an option to start search on the current page in the search views. See
SearchConfiguration.Builder#setStartSearchOnCurrentPage()
. - AddedAdds getters and setters for
SearchConfiguration
properties applied toPSPDFSearchViewInline
andPSPDFSearchViewModular
. - AddedAdds setting up priority pages when performing a search. Those pages will be the first ones to search, before the other ones. See
PSPDFSearchOptions#priorityPages()
. - RemovedRemoves
setSnippetLength()
andsetStartSearchChars()
(along with its XML counterparts) fromModularSearchThemeConfiguration
since those don't really belong to the theme, moved toSearchConfiguration
. - RemovedRemoves
setStartSearchChars()
(along with its XML counterparts) fromInlineSearchThemeConfiguration
since that doesn't really belong to the theme, moved toSearchConfiguration
.
- AddedAdds
PropertyInspectorCoordinatorLayout.PropertyInspectorLifecycleListener
that listens for property inspector lifecycle within thePropertyInspectorCoordinatorLayout
(preparing, displaying, removing), set throughPSPDFActivity#setPropertyInspectorLifecycleListener(listener)
and removed throughPSPDFActivity#removePropertyInspectorLifecycleListener()
. - AddedAdds support for annotation resizing guides. (#5555)
- AddedAdds theme attributes for
ToolbarCoordinatorLayout
set through:<item name="pspdf__toolbarCoordinatorLayoutStyle"/>
withdragTargetColor
attribute for setting a color of the target area when dragging the toolbars. It can also be set programmatically throughToolbarCoordinatorLayout#setDragTargetColor
. (#7165) - AddedAdds
ToolbarCoordinatorLayout.LayoutParams
to be used for positioningContextualToolbar
withinToolbarCoordinatorLayout
. (#7161)- AddedAdds
allowedPositions
property as part of theToolbarCoordinatorLayout.LayoutParams
that allows selecting which toolbar positions are allowed. - ChangedImproves toolbar position changes: when forcefully pinned to the top due to the lack of space, the toolbar will restore it's original position once there's enough space again.
- RemovedRemoves
ContextualToolbar#setPosition()
andContextualToolbar#getPosition()
calls. Set position parameter throughToolbarCoordinatorLayout.LayoutParams
, set on theContextualToolbar
.
- AddedAdds
DocumentSharingProvider
automatically to the manifest through manifest merging (no need to set them manually). (#7287) - AddedAdds
android:largeHeap="true"
to theAndroidManifest.xml
using manifest merging. (#7287) - ChangedRenames
Annotation#getPageNumber()
toAnnotation#getPageIndex()
to avoid confusion about zero indexing. (#7340) - ChangedRenames
MediaAssetsContentProvider
toAssetsContentProvider
. It's authority is changed to{$applicationId}.pdf.assets
and it is not added automatically to the app's manifest. (#7391) - ChangedImproves compatibility when flattening documents with non-standard headers. (#7212)
- ChangedImproves logic around copying forms via the processor when the source document has invalid form entries. (#7273)
- ChangedImproves JPEG2000 decoding performance. (#7307)
- RemovedDeprecates
PSPDFActivityConfiguration#printingEnabled()
and replaces it withenablePrinting()
/disablePrinting()
methods for consistency. (#7476) - FixedFixes all documents using the same thread pool causing severe performance issues when trying to do background operations like thumbnail generation. (#7240)
- FixedFixes an issue where note annotation wasn't created with last used color and icon. (#7107)
- FixedFixes several issues found when editing annotation in compound documents. (#7192)
- FixedFixes improper toolbar height on pre-Lollipop devices. (#7334)
- FixedFixes incorrect
InvalidThemeException
being thrown when the context provided to the theme configuration builders is not using someNoActionBar
theme. (#7463) - FixedFixes an issue where annotation could not be resized when scale handle moved outside of a page. (#7367)
- FixedFixes an issue where annotation could not be resized when scale handles moved outside of a page. (#4814)
- FixedFixes an issue that could result in infinite search when performing inline search. (#7410)
- FixedFixes false positive warnings when detecting missing
android:largeHeap
flag. (#7262) - FixedFixes an issue when inline search query is not cleared up when exiting the search bar. (#7453)
- FixedFixes an issue where annotation resizing couldn't be disabled via
AnnotationEditingConfiguration.Builder#setSelectionResizeEnabled
. (#7488)
2.4.3 6 Jul 2016
- AddedAdds
pspdf__tabIndicatorColor
attribute to thepspdf__OutlineView
styleable. The attribute defaults to?colorPrimary
. (#7091) - ChangedMarks exception parameters in
DocumentListener#onDocumentLoadFailed
andDocumentListener#onDocumentSaveFailed
as@NonNull
. (#7122) - Changed
DocumentSharingProvider
will now return theandroid.provider.OpenableColumns
when queried for a shared file. (#7131) - FixedFixes an issue where PSPDFKit thought it runs in debug mode. (#7129)
- FixedFixes an issue where the soft keyboard was not closed after exiting search on some Samsung devices. (#7145)
2.4.2 28 Jun 2016
- ChangedUpdates dependencies - Support libraries (
support-v4
,appcompat-v7
,recyclerview-v7
,cardview-v7
anddesign
) have been updated to version24.0.0
. RxJava was updated to1.1.6
and RxAndroid to1.2.1
. - AddedAdds
ToolbarsInFragmentExample
instead ofAnnotationToolbarFragmentExample
in the catalog app, incorporating all new toolbars instead of just annotation creation toolbar. (#6914) - AddedAdds a lot of the documentation with the matched styling across the framework. (#6406, #6404)
- AddedAdds
InvalidThemeException
that may be thrown if an invalid theme is used. (#6942, #6943) - AddedAdds theme validation to
PSPDFActivity#onCreate
which will throw an exception if the used theme is incompatible with the activity. (#6942) - Changed
ThumbnailBarThemeConfiguration#getBackgroundColor
now defaults to the theme's?colorPrimary
attribute. (#6943) - AddedAdds a default icon to the PDF password screen. To disable the icon set
pspdf__icon
of your theme'spspdf__passwordViewStyle
to@null
. (#6943) - ChangedImproves rendering performance in certain situations. (#6944)
- ChangedImproves thumbnail grid to render thumbnails in page order. (#5307)
- ChangedChanges the toolbar drag being activated with a long press on the drag button. Now it starts as soon as the drag button is touched. (#6927)
- FixedFixes an issue where rotated pages were not rendered correctly in print preview. (#6892)
- FixedFixes an issue with print dialog being canceled when changing orientation. (#6755)
- FixedFixes an issue where overriding menu item clicks in
ContextualToolbar
throughContextualToolbar.OnMenuItemClickListener
was not correctly applied and the default action was executed alongside the custom one. (#6995) - FixedFixes a native crash caused when passing
null
as license toNutrient#initialize
. The method will now throw aPSPDFInvalidLicenseException
if called with anull
license. (#7055) - FixedFixes keyboard not closing after exiting search in some cases. (#7070)
2.4.1 10 Jun 2016
- ChangedTheme attribute
actionModeBackground
is no longer used for setting default color for all contextual toolbars. Please usepspdf__contextualToolbarBackground
instead. (#6912) - RemovedRemoves the no longer used
TextSelectionListener
interface. Please use the newerOnTextSelectionChangedListener
(opens in a new tab) instead. (#6896) - FixedFixes an issue causing a license error when initializing the
PSPDFThumbnailGrid
. (#6910) - FixedFixes an issue where text in note annotation editor had low contrast when using certain background colors. (#6819)
- FixedFixes an issue where annotation color picker didn't show correct color when editing annotations. (#6875)
- FixedFixes crash in
ContextualToolbar
that occurred when theme didn't define theactionModeBackground
attribute. (#6906) - FixedFixes
PSPDFFragment#onSaveInstanceState
blocking the main thread when being called while the fragment was on the fragment back stack without being displayed. (#6971) - FixedFixes an issue with print dialog being canceled when changing orientation. (#6755)
2.4.0 7 Jun 2016
See the announcement post(opens in a new tab).
PSPDFKit 2.4 for Android is one of our largest releases so far. A new annotation toolbar, printing and many smaller improvements to almost all parts of the SDK make this a worthy upgrade.
- ChangedIMPORTANT:
PSPDFActivity
now usesandroid.support.v7.widget.Toolbar
as action bar instead of the default one (#6036). These are the necessary migration changes:- ChangedIf using custom view in
PSPDFActivity
, addandroid.support.v7.widget.Toolbar
with idR.id.pspdf__toolbar_main
contained within thecom.pspdfkit.ui.toolbar.ToolbarCoordinatorLayout
with idR.id.pspdf__toolbar_coordinator
. The toolbar coordinator needs to contain main toolbar as a child so the new toolbars can be displayed and animated properly (for example, seecustom_pdf_activity.xml
from the catalog app). - ChangedThe theme applied to the activity should have
Theme.AppCompat.Light.NoActionBar
as a parent, with these attributes:<item name="windowActionBar">false</item>
,<item name="windowNoTitle">true</item>
and<item name="windowActionModeOverlay">true</item>
. The default color for all the contextual toolbars is set through<item name="actionModeBackground">
.
- AddedAdds support for printing documents in Android 4.4 (API level 19) and higher. (#2936)
- AddedAdds
PrintAdapter
class to manually handle PDF processing for printing. - AddedAdds
DocumentPrintDialog
to display a dialog with printing options.
- AddedAdds an API for controlling the annotation creation mode:
- AddedAdds method to start the annotation creation:
PSPDFFragment#enterAnnotationCreationMode(AnnotationType annotationType)
. - AddedAdds listeners for mode changes:
PSPDFAnnotationManager.OnAnnotationCreationModeChangeListener
andPSPDFAnnotationManager.OnAnnotationCreationModeSettingsChangeListener
. - AddedAdds methods for registering those listeners in
PSPDFFragment
:registerAnnotationCreationModeChangeListener()
andregisterAnnotationCreationModeSettingsChangeListener()
along withunregister*
calls. - AddedAdds
AnnotationCreationController
provided by listener callbacks through which the annotation creation mode can be controlled programmatically.
- AddedAdds an API for controlling the annotation editing mode:
- AddedAdds method to start the annotation editing:
PSPDFFragment#enterAnnotationEditingMode(Annotation annotation)
. - AddedAdds listener for mode changes:
PSPDFAnnotationManager.OnAnnotationEditingModeChangeListener
. - AddedAdds methods for registering that listener in
PSPDFFragment
:registerAnnotationEditingModeChangeListener()
along withunregister*
call. - AddedAdds
AnnotationEditingController
provided by listener callbacks through which the annotation editing mode can be controlled programmatically.
- AddedAdds an API for controlling the text selection mode:
- AddedAdds method to start the text selection mode:
PSPDFFragment#enterTextSelectionMode(int pageNumber, Range textRange)
. - AddedAdds listeners for mode changes:
TextSelectionManager.OnTextSelectionModeChangeListener
andTextSelection.OnTextSelectionChangeListener
. - AddedAdds methods for registering those listeners in
PSPDFFragment
:registerTextSelectionModeChangeListener()
andregisterTextSelectionChangeListener()
along withunregister*
calls. - AddedAdds
TextSelectionController
provided by listener callbacks through which the text selection mode can be controlled programmatically. - RemovedDeprecates
PSPDFFragment#setTextSelection()
(usePSPDFFragment#enterTextSelectionMode()
) andPSPDFFragment#clearTextSelection()
(usePSPDFFragment#exitCurrentlyActiveMode()
).
- AddedAdds
PSPDFFragment#exitCurrentlyActiveMode()
for exiting any currently active mode such as text selection, annotation creation and annotation editing. - AddedAdds an API for controlling the document editing mode:
- AddedAdds methods to start and exit document editing mode:
PSPDFThumbnailGrid#enterDocumentEditingMode()
andPSPDFThumbnailGrid#exitDocumentEditingMode()
. - AddedAdds listeners for mode changes:
PSPDFThumbnailGrid.OnDocumentEditingModeChangeListener
andPSPDFThumbnailGrid.OnDocumentEditingPageSelectionChangeListener
. - AddedAdds methods for registering those listeners in
PSPDFThumbnailGrid
:registerDocumentEditingModeChangeListener()
andregisterDocumentEditingPageSelectionChangeListener()
along withunregister*
calls. - AddedAdds
DocumentEditingController
provided by listener callbacks through which the document editing mode can be controlled programmatically.
- AddedAdds toolbars for special modes (all extend
ContextualToolbar
):AnnotationCreationToolbar
,AnnotationEditingToolbar
,DocumentEditingToolbar
andTextSelectionToolbar
. - AddedAdds
ToolbarCoordinatorLayout
used for animating views and handling animations and interactions between them. Toolbars can now be dragged to the sides of the screen (if enough room). - AddedAdds
ToolbarCoordinatorLayout#displayContextualToolbar(ContextualToolbar toolbar, boolean animate)
andToolbarCoordinatorLayout#removeContextualToolbar(boolean animate)
methods for displaying/removing contextual toolbars from the coordinator. - AddedAdds
ToolbarCoordinatorLayout.OnContextualToolbarLifecycleListener
that listens for toolbar lifecycle within theToolbarCoordinatorLayout
(preparing, displaying, removing), set throughPSPDFActivity#setOnContextualToolbarLifecycleListener(listener)
and removed throughPSPDFActivity#removeOnContextualToolbarLifecycleListener()
. - AddedAdds
ToolbarCoordinatorLayout.OnContextualToolbarMovementListener
that listens for toolbar movements within theToolbarCoordinatorLayout
, set throughPSPDFActivity#setOnContextualToolbarMovementListener(listener)
and removed throughPSPDFActivity#removeOnContextualToolbarMovementListener()
. - AddedAdds theme attributes for new toolbar views icons, set through:
<item name="pspdf__annotationCreationToolbarIconsStyle"/>
,<item name="pspdf__annotationEditingToolbarIconsStyle"/>
,<item name="pspdf__textSelectionToolbarIconsStyle"/>
and<item name="pspdf__documentEditingToolbarIconsStyle"/>
. - AddedAdds
ContextualToolbarMenuItem
class which represents a single item in theContextualToolbar
. - AddedAdds
AnnotationToolbarFragmentExample
to the catalog app. It shows how to incorporateToolbarCoordinatorLayout
inPSPDFFragment
within the custom activity to get toolbar animations. - AddedAdds support for Now-On-Tap feature introduced in Android Marshmallow. (#5294)
- AddedAdds fullscreen version of Document Editor page creator dialog for small devices. (#5984)
- AddedAdds
ScreenReaderExample
which showcases how to build a screen reader using PSPDFKit. (#6489) - AddedAdds highlighting of the currently active page to
PSPDFThumbnailGrid
. (#6601) - AddedAdds new
ThumbnailGridThemeConfiguration
styleable fields:pspdf__itemLabelTextStyle
andpspdf__itemLabelBackground
. (#6445) - AddedAdds a new option to control video playback via
PSPDFActivityConfiguration.Builder#videoPlaybackEnabled
. This is useful for environments with increased security requirements or to work around old Android devices that might be affected by the Stagefright vulnerability. (#6455) - AddedAdds
PSPDFProcessorTask(NewPage)
constructor for creating a new single-page document. (#6643) - AddedAdds
PSPDFProcessor#processDocumentAsync
override acceptingOutputStream
as processor output. (#6666) - AddedAdds an updated
Guide.pdf
to the catalog app. (#6483) - AddedAdds support for scrolling the page while performing a pinch-zoom gesture. (#4797)
- AddedAdds ability to modify page media and crop box to
PSPDFProcessor
withPSPDFProcessorTask#setPageBox
method. (#6746) - AddedAdds
getBox
toPSPDFDocument
to allow retrieval of page media box and crop box. (#6775) - AddedAdds
PSPDFProcessorTask#scalePage
for scaling document pages. (#6655) - RemovedRemoves
AnnotationToolbarIconsConfiguration
. - RemovedRemoves
PSPDFFragment#clearAnnotationListeners()
andPSPDFFragment#clearDrawableProviders()
. Each of the registered listeners or drawable providers should be removed using unregister calls. (#6571) - RemovedRemoves
#notifyAnnotationSelected
,#notifyAnnotationDeselected
, and#notifyAnnotationUpdated
fromPSPDFFragment
. If your code was using those methods, use#setSelectedAnntaton
,#clearSelectedAnnotations
, and#notifyAnnotationHasChanged
respectively. (#6419) - ChangedRefinements of the drawable provider API.
- ChangedIncreases visibility of
PSPDFDrawableProvider#notifyDrawablesChanged()
andPSPDFDrawableProvider#notifyDrawablesChanged(int)
fromprotected
topublic
. - ChangedChanges
PSPDFDrawableProvider#getDrawablesForPage
andPSPDFDrawableProvider#getDrawablesForPageAsync
to use the upperbounded wildcard? extends PSPDFDrawable
.
- Changed
PSPDFThumbnailGrid
will now automatically scroll to the currently active page when being opened. (#5578) - Changed
PSPDFFragment
now correctly restores visible viewport and zoom scale after rotating the device. (#6531) - RemovedDeprecates
Intent
extrasPSPDFYouTubeActivity#ARG_YOUTUBE_URL
andPSPDFMediaDialog#ARG_URI
. Instead usePSPDFYouTubeActivity#ARG_MEDIA_URI
andPSPDFMediaDialog#ARG_MEDIA_URI
withMediaUri
values. (#6621) - ChangedImproves rendering performance for some complex documents. (#6686)
- ChangedImproves security in various critical areas of the framework via using checked memory functions.
- ChangedCorrectly cancels document processing after unsubscribing from
Observable
returned byPSPDFProcessor#processDocumentAsync
. (#6666) - FixedFixes
ConcurrentModificationException
being thrown when registering/unregisteringDocumentListener
s inPSPDFFragment
. (#6744) - FixedFixes
ConcurrentModificationException
being thrown when registering/unregisteringOnVisibilityChangedListener
s inOnVisibilityChangeListenerManager
. (#6866) - FixedFixes possible multiple registrations of
OnVisibilityChangedListener
instances insideOnVisibilityChangeListenerManager
. (#6800) - FixedFixes crash in
PSPDFThumbnailBar
that appeared when opening certain documents. (#6830) - FixedFixes an issue where sharing was canceled when rotating device. (#6062)
- FixedFixes a race condition that could cause a
NullPointerException
when calling methods on thePSPDFFragment
. (#6644, #6650) - FixedFixes an issue causing a
NullPointerException
when injecting a key event before the document has been loaded. (#6680) - FixedFixes an issue where the scrolling is blocked when performed on a page while another page is in text selection mode. (#6807)
- FixedFixes issues while parsing many annotations on page and lifts limit of 500 annotations per page. (#6629)
- FixedFixes an issue where "light" weight font was selected in font substitution process instead of the missing "regular" weight font. (#6487)
- FixedFixes an issue where note annotations were not probably displayed when consecutively added within a short timeframe. (#6585)
- FixedFixes an issue where annotation wasn't deselected when tapping on document background or on a different page. (#5991)
- FixedFixes an issue where
PSPDFFragment#clearSelectedAnnotations
andPSPDFFragment#getSelectedAnnotations
worked only on annotations on the current page. (#6592)
2.3.3 10 May 2016
- ChangedUpdates dependencies - RxJava to
1.1.5
, RxAndroid to1.2.0
. - AddedAdds new
PSPDFThumbnailGrid
UI. (#6437) - AddedAdds improved support for Accessibility services and screen readers (#6495)
- AddedAdds improved support for hardware keyboard shortcuts.
- AddedAdds
keepPages
helper method toPSPDFProcessorTask
. - AddedAdds factory method
DocumentSaveOptions#createDefaultsFromDocument
for creating default save options when processing documents withPSPDFProcessor
. (#6412) - AddedAdds support for XML vector drawables on Android devices back to API 16. (#6207)
- AddedAdds
PSPDFFragment#setInsets
andPSPDFFragment#addInsets
that makes document insets configurable. (#6299) - RemovedRemoves
DocumentEditorThemeConfiguration
. (#6437) - ChangedChanges
DocumentSharingProvider
authority - inAndroidManifest.xml
the provider authority must be<application package>.pdf.share
notcom.pspdfkit.share
. (#6460) - Changed
PSPDFThumbnailGrid
page click listener is now registered viaPSPDFThumbnailGrid#setOnPageClickListener
. - ChangedChanges
PSPDFThumbnailGrid
default background color to light gray. (#6437) - ChangedImproves exception message when calling
PSPDFFragment#setSelectedAnnotation
orPSPDFFragment#setSelectedAnnotations
from a thread other than the main-thread. (#6339) - ChangedMarks
PSPDFFragment#getSelectedAnnotations
return type as@NonNull
. The method will now return an empty list if no annotations were selected. (#6339) - Changed
PSPDFFragment#setSelectedAnnotation
will no longer automatically change the current page, but rather a separate call toPSPDFFragment#setPage
is now required. (#6339) - ChangedFree text annotation is now brought to view when user starts typing. (#5347)
- FixedFixes possible crash when checking provider configuration if application contained no providers. (#6527)
- FixedFixes appearance of duplicate letters on some devices when editing Free Text annotations. (#6308)
- FixedFixes sharing issues on Samsung devices. Note that
DocumentSharingProvider
now MUST be exported. For security reasons, files may only be shared from an isolated directory. (#6462) - FixedFixes an issue where fragment transactions were possibly not committed before the activity was destroyed, resulting in a missing fragment while activity recreation. (#6326)
- FixedFixes
DocumentEditor
visibility. (#6437) - FixedFixes an issue where
PSPDFProcessor
would incorrectly throw aPSPDFInvalidLicenseException
when processing certain documents. (#6409) - FixedFixes an issue where search results could get hidden behind HUD. (#4190)
- FixedFixes an issue where document sharing dialog didn't use activity title as default document name when explicitly set in
PSPDFActivityConfiguration
. (#6426, Z#3575) - FixedFixes an issue where text markup annotations couldn't be selected via
PSPDFFragment#setSelectedAnnotation
. (#6378) - FixedFixes an issue where annotation couldn't be reselected from a previously selected note annotation. (#6476)
- FixedFixes a
NullPointerException
that was generated when launching aPSPDFActivity
with an invalid license. (#6499)
2.3.2 26 Apr 2016
- ChangedText search now also searches over annotation contents. (#5790)
- AddedAdds support for search result highlighting customization. (#6206)
- Changed
PSPDFThumbnailBar
now implementsDocumentListener
and has to be registered viafragment.registerDocumentListener(thumbnailBar)
. (#6171) - AddedAdds
boolean
return type toPSPDFDocument#saveIfModified
methods returningtrue
if there were any changes to save. (#6317) - Changed
Nutrient#initialize
will now log a warning message ifandroid:largeHeap="true"
was not declared inside the app'sAndroidManifest.xml
. (#6157, #6321) - ChangedShows soft keyboard when opening annotation creator name dialog. (#6306)
- RemovedDeprecates methods
setBackgroundColor
,setSearchResultBorderColor
andsetSearchResultBackgroundColor
inDocumentThemeConfiguration#Builder
. UsebackgroundColor
,searchResultBorderColor
andsearchResultBackgroundColor
instead. (#6206) - Changed
PSPDFThumbnailBar
now implementsOnAnnotationUpdatedListener
and has to be registered viafragment.registerAnnotationUpdatedListener(thumbnailBar)
. (#6205) - AddedAdds
PSPDFThumbnailGrid.OnPageTappedListener
and#setOnPageTappedListener(OnPageTappedListener)
. (#6172) - AddedAdds
PSPDFThumbnailBar.OnPageChangedListener
and#setOnPageChangedListener(OnPageChangedListener)
. (#6171) - ChangedDrops
EventBus
eventsEvents#OnAnnotationUpdated
,Events#OnAnnotationSelected
andEvents#OnAnnotationDeselected
. (#6205)- AddedAdds
PSPDFFragment#registerAnnotationSelectedListener
for listening to annotation selection. - AddedAdds
PSPDFFragment#registerAnnotationDeselectedListener
for listening to annotation deselection. - AddedAdds
PSPDFFragment#registerAnnotationUpdatedListener
for listening to annotation updates.
- FixedFixes an issue in certain documents where text selection contained more text that was actually selected. (#6213, Z#3424)
- FixedFixes an issue where selecting a note annotation on a recycled page would create an exception. (#6183, Z#3403)
- FixedFixes an issue where markup annotations couldn't be deselected by tapping on empty document area. (#6228)
- FixedFixes an issue where saving an ink annotation would throw a
NullPointerException
on older devices. (#6276, #6300) - FixedFixes an issue where newly created note annotations where not correctly added to the document after a configuration change. (#6301)
- FixedFixes an issue where flattening and removing annotations at the same time caused problems. (#6344)
2.3.1 8 Apr 2016
- AddedAdds support for exporting selected pages with the Document Editor. (#5987)
- AddedAdds sharing support. (#5633)
- ChangedAllows sharing selected text.
- ChangedAllows sharing free-text and note annotation contents.
- ChangedAllows sharing documents.
- AddedAdds
DocumentSharingProvider
which provides access to shared files for other applications.
- AddedAdds
com.pspdfkit.utils.PDFUtils#createPDFRectUnion
for calculating the union of a list of PDF rects. (#6117) - AddedAdds catalog examples
CustomInlineSearchExample
andCustomSearchUiExample
. (#6037, #6106) - AddedAdds option to set custom password, pdf version and permissions when saving documents. (#6014)
- AddedAdds
DocumentSavingOptions
parameter toonSaveDocument()
call inDocumentListener
for customization. - AddedAdds
DocumentSavingOptions
parameter tosave
methods inPSPDFDocument
. - AddedAdds
getDefaultDocumentSavingOptions()
method toPSPDFDocument
to retrieve document options representing the current document parameters. - AddedAdds option to disable incremental saving via
DocumentSavingOptions
.
- AddedAdds
maximumPreviewResultsPerDocument
andmaximumPreviewResultsTotal
to QueryOptions to allow limitation of preview results in full-text search. (#6047, #6017) - ChangedMarks the return values of various
PSPDFKit#openDocument*
methods as@NonNull
. (#6133) - FixedFixes possible OutOfMemory exceptions when resizing
PSPDFThumbnailBar
. (#6083, Z#3358) - FixedFixes a misleading build error message shown when dependency
com.android.support:cardview-v7
is missing. (#6073) - FixedFixes a possible activity leak. (#6111, Z#3380)
2.3.0 31 Mar 2016
This release features the new Document Editor. This component allows users to access a whole host of page editing features, including new page creation, page duplication, reordering, rotation or deletion, as well as creating a new document from pages selected across multiple existing documents. If you like to add the Document Editor to your license, ping our sales team to receive a quote.
- AddedAdds Document Editor. (#5719)
- AddedAdds handling for document permission flags. (#5151)
- ChangedUpdates dependencies -
com.android.support:recyclerview-v7:23.2.1
,com.android.support:cardview-v7:23.2.1
andcom.android.support:design:23.2.1
have been added, updates RxJava to 1.1.1, RxAndroid to 1.1.0 and support library to23.2.1
. - AddedNew page drawable API. (#5766)
- AddedAdds
PSPDFDrawable
to draw arbitrary content on top of rendered pages. - AddedAdds
PSPDFDrawableProvider
which can serve one or multiple drawables for a page. - AddedAdds
PSPDFFragment#registerDrawableProvider
,PSPDFFragment#unregisterDrawableProvider
, andPSPDFFragment#clearDrawableProviders
for managing drawable providers.
- AddedNew text search API allowing to manually search a document and build custom search implementations. (#5463)
- AddedAdds
PSPDFTextSearch
for searching a document. Searching a document will return a list ofPSPDFSearchResult
objects. - AddedAdds
PSPDFSearchResultHighlighter
for visually highlighting one or multiple search results using the new drawable API. - ChangedSearch views (
PSPDFSearchViewInline
andPSPDFSearchViewModular
) are now inside packagecom.pspdfkit.ui.search
. This package also contains all other search UI related classes.
- AddedAdds
PSPDFFragment#scrollTo
for scrolling to rects on a page. (#5597) - AddedAdds
PSPDFKitActivityConfiguration#setHudViewMode(int)
that makes showing/hiding HUD and system bars configurable. (#5566) - AddedAdds
PSPDFActivity#setHudViewMode(HudViewMode)
that makes showing/hiding HUD and system bars configurable at runtime. (#5566) - ChangedContextual action modes now behave more consistently. (#5414)
- ChangedInline search now scrolls to search results even when they are outside of the current viewport. (#5560)
- Changed
Annotation#getBoundingBox
now returns a copy of the internal rectangle to prevent inconsistent API behavior. (#5122) - Changed
PSPDFDocument#getPermissions
now returns a copy of the internal permissions set. (#5722) - AddedAdds a warning if text-to-speech service is unavailable. (#5552)
- ChangedDisables entering emojis into free text annotation. (#5840)
- FixedFixes an issue where ink paths got lost after zooming while drawing on multiple pages. (#5604)
- FixedFixes an issue where it was possible to create empty free text annotations. (#5468)
- FixedFixes an issue where selected annotation wasn't unselected after selecting text markup annotation. (#5523)
- FixedFixes an issue where scrolling while having text selected would crash the app. (#5653, Z#3160)
- FixedFixes an issue where scrolling by touching some tappable area causes it to highlight for a split second. (#5698)
- FixedFixes an issue where drawing dots with ink is not shown on the screen. (#5614)
- FixedFixes an issue where reading note annotations is not possible if annotation editing is disabled. (#5665)
- FixedFixes ink annotation drawing performance regression. (#5557)
- FixedFixes saving to files with non-ASCII filenames. (#5839)
- FixedFixes an issue where the page 2 places to the left of the last page would disappear when the last page becomes the current one. (#5694)
- FixedFixes an issue in the continuous scroll mode where setting the specific page would align left edge of the screen with the one of the page, instead of the middles. (#5745)
- FixedFixes an issue where annotation was displayed twice when moving or disappeared when unselected. (#5727)
- FixedFixes an issue when using
PSPDFThumbnailBar
in custom layouts. (#5763) - FixedFixes an issue where
PSPDFActivity
wouldn't listen to events after loading new document. (#5785) - FixedFixes an issue appearing randomly when changing orientation after highlighting text selection. (#5798)
- FixedFixes an issue where changing text size of a free text annotation to 1pt didn't work. (#5799)
- FixedFixes an issue where note annotation wasn't deselected after being deleted in note editor. (#5791)
- FixedFixes an issue when soft keyboard is not dismissed after quitting free text annotation editing. (#5843)
- FixedFixes an issue where it wasn't possible to pick grey color in note annotation editor. (#5794)
- FixedFixes an issue with leaking the activity context when initializing in short-lived activities. (#5879)
- FixedFixes an issue where documents where loaded multiple times when using a
DataProvider
as source. (#5869) - FixedFixes an issue where editing annotations would produce flickering. (#5931)
- FixedFixes several out-of-memory errors caused by intensive bitmap allocations. (#5724)
- FixedFixes non-natural fling gestures after pinch-zooming into the document. (#4798)
2.2.1 26 Feb 2016
- ChangedImproves text highlighting by using a smart paragraph selection and not just the selected rect. (#5032)
- AddedAdds support for reading documents from a
ContentProvider
serving data through a pipe (i.e. viaParcelFileDescriptor.createPipe()
). - AddedAdds
com.pspdfkit.listeners.SimpleDocumentListener
which is an empty implementation of theDocumentListener
interface. (#5512) - ChangedInline search now shows results starting from the current page. (#5579)
- ChangedMinor cosmetic tweaks in annotation list. (#5559)
- FixedFixes an issue with duplicated search results when searching from text selection. (#5553)
- FixedFixes an issue when selecting "Testcase_No_Annotations.pdf" example in PSPDFKit catalog's "Document switcher example" would crash the app.
- FixedFixes an issue where edge pages are never marked as current in continuous scroll mode because they never reach the middle of the screen. (#4964)
- FixedFixes an issue where certain characters (like parenthesis, brackets, etc.) could not be searched. (#5596, Z#3117)
- FixedFixes performance regression when editing large annotations. (#5618)
2.2.0 19 Feb 2016
See the announcement post(opens in a new tab).
- ChangedEnables annotation editing on multiple pages, as well as switching pages while editing. (#5346, #5289)
- AddedAdds search menu option for selected text in the document. (#5298)
- AddedAdds
PSPDFKit#openDocumentFromSource
. (Z#2985) - ChangedKeeps parameter names of public API methods. (#5019)
- ChangedDisplays page number indicator overlay after system bars are shown. (#5299)
- ChangedNote annotation editor can now be opened by double-tapping a selected annotation. (#5290)
- ChangedFree text annotation editor now differentiates between editing and writing modes. (#5296)
- Changed
PSPDFFragment
can now be nested as a child fragment. (#5476) - ChangedAllows scrolling while in drawing mode. (#5252, Z#2861)
- FixedFixes an issue where saving to ContentProviders which don't support appending would fail.
- FixedFixes an issue in the free text annotation editor where the soft-keyboard wasn't hidden after selection ended.
- FixedFixes an issue in the free text annotation editor where the soft-keyboard wasn't automatically opened in the landscape screen orientation. (#5503)
- FixedFixes an issue where text couldn't be pasted into the free text annotation editor. (#5123)
- RemovedRemoves wrong
@Nullable
annotation fromPageRenderConfiguration.Builder#build
. - ChangedClicking text markup annotations won't start edit mode if annotation editing is disabled. (#5434)
- FixedFixes an issue where
AssetDataProvider
would return an invalidUri
via#getUri
. (#5420) - FixedFixes
IllegalStateException
crash appearing randomly in paginated layout. (#5361) - FixedFixes animation transition from selected text to ActionMode. (#5378)
- FixedFixes an issue that could cause a crash when opening documents with large number of annotations in a page. (#5455)
- FixedFixes an issue where highlight annotations created from text selection action bar had undefined author field. (#5343)
- FixedFixes an issue where outline button was disabled even when annotation list was available. (#5287)
- FixedFixes an issue where
Bitmap
objects returned byPSPDFDocument#renderPageToBitmap
would not have premultiplied alpha values. (#5412) - FixedFixes an issue where immersive mode wasn't handled correctly while contextual action mode was active.
- FixedFixes
MediaController
displacement. (#5314) - FixedFixes a non-fatal exception on Samsung devices failing to unparcel framework classes. (#5456)
- FixedFixes an issue where annotation editing button was clickable even when disabled visually. (#5288, #5464, Z#3035)
- FixedFixes an issue where drawing ink annotations outside of the page makes it larger than the page itself. (#5498)
- FixedFixes an issue that would cause exceptions when accessing
AnnotationProvider#getAnnotations
concurrently. (#5500) - FixedFixes an issue when adding multiple annotations at the same time programmatically would cause
MissingBackpressureException
to be thrown. (#5233)
2.1.1 2 Feb 2016
- AddedAdded
PSPDFKit#openDocumentsFromSources
,PSPDFActivity#showDocumentsFromSources
andPSPDFFragment#newInstanceFromSources
to allow opening of compound PDF documents from multipleDataProvider
s. - FixedFixes preserving page sharpness when performing zoom actions on already zoomed page (#5302)
- FixedFixes an issue where a subscription license would stop working once expired. (#5327)
- ChangedOutline and search view are now dismissed when entering annotation editing mode. (#5326)
- ChangedPreserving page sharpness when performing zoom actions on already zoomed page (#5302).
- ChangedIn
PSPDFSearchViewInline
, methodsgetPrevIconColorFilter
andgetNextIconColorFilter
are renamed togetPrevIconColorTint
andgetNextIconColorTint
respectively. - AddedAdds closing back arrow to inline search. (#5291)
2.1.0 28 Jan 2016
See the announcement post(opens in a new tab).
Migration guide(opens in a new tab).
- Changed
IMPORTANT: PSPDFActivity is now always based on
AppCompatActivity
andPSPDFAppCompatActivity
class has been removed. This change has been made because new annotation editing UI elements needsupport-v7
andappcompat-v7
dependency. - Changed
Indexed full text search is now supported via the
PSPDFLibrary
class. This feature needs to be enabled for your license. See https://pspdfkit.com/pdf-sdk/android/indexed-search/ for details. - Added
Adds
PSPDFProcessor
to split/merge/flatten PDF documents. - Added
Adds support for incremental PDF saving:
- ChangedFiles will now be appended to instead of being fully rewritten on each save.
- AddedAdded
ContentResolverDataProvider
incremental saving support for files opened via SAF or other content providers. - AddedAdded
supportsAppending
method toWritableDataProvider
. It should returntrue
if theDataProvider
supports appending to PDF file and then handle writing withWrideMode.APPEND_TO_FILE
mode. - ChangedDue to encryption, password protected files cannot be incrementally written. They will always be fully rewritten and encrypted.
- Changed
getUid()
method added toPSPDFDocument
. UID represents a unique ID for a document and is derived fromgetUid
call inDataProvider
if one is used. - Added
Adds the list of annotations under the outline menu. (#5039)
- Changed
getAllAnnotationsOfType
added toAnnotationProvider
for easy retrieval of all annotations of certain types from the document. - Added
Adds
PSPDFActivity#showDocument(Context, DataProvider, PSPDFActivityConfiguration)
method overload (withoutpassword
parameter). - Added
Adds
PSPDFActivity#getDocument
method which returns the currently loaded document. (#5260) - Added
Adds
PSPDFActivity#getPSPDFFragment()
which is a shorthand getter to retrieve the activities fragment. - Added
Adds
PSPDFFragment#getVisiblePDFRect(int page)
andPSPDFFragment#getVisiblePages()
for accessing current visible rect on the page and fetching a list of visible pages. (#4086) - Added
Adds
PSPDFFragment#setScrollingEnabled(boolean enabled)
andPSPDFFragment#setZoomingEnabled(boolean enabled)
that can disable zooming/scrolling in the document view. (#4931) - Added
Adds
DocumentListener#onDocumentZoomed(PSPDFDocument document, int pageNumber, float scaleFactor)
callback method for receiving page zoom changes. (#5017) - Added
Adds
PSPDFDocument#getUri
andPSPDFDocument#getUriList
(for compound documents). (#5015) - Added
New text selection API (#5020)
- AddedAdded typed
TextSelection
class which holds page number, text and rects of the current selection. - ChangedCurrent selection can be retrieved by calling
PSPDFFragment#getTextSelection
. - ChangedSelection can be set using
PSPDFFragment#setTextSelection
. - ChangedA simpler
TextSelectionListener
interface allowing you to intercept all selection events (selection, changes, deselection), and to cancel them.
- Added
Adds
PSPDFConfiguration#pagePadding
for customizing the padding between pages. (#5136) - Changed
Replaces "Loading.." text while the page is being loaded with the progress bar (throbber). (#3640)
- Changed
In
PSPDFAppCompatActivity
andPSPDFActivity
, the methodgetPSPDFKitViews()
is renamed togetPSPDFViews()
. (#5134) - Changed
Copying selected text to clipboard displays a toast message as a feedback (#5253).
- Fixed
Fixes transfer of document permissions and password to saved documents.
- Fixed
Fixes a performance regression that caused jank while scrolling large documents. (#5071)
- Fixed
Fixes an issue on certain devices when accessing external cache directory. (#5103)
- Fixed
Fixes an issue caused by switching the active annotation editing tool for annotations not attached to a document. (#5061)
- Fixed
Fixes setting of creation date on newly created annotations. (#5124)
- Fixed
Fixes link annotation touch feedback being cleared on long-press. (#4891)
2.0.1 16 Dec 2015
- ChangedGreatly improved high-resolution detail rendering performance. (#4886, #4546)
- FixedFixes an issue where highlight annotations were getting darker each time a new one was added. (#4886)
- ChangedImproves browsing performance - UI more responsive during the rendering. (#4914, #4674)
- ChangedPDF parsing/rendering improvements for older, non-compliant versions. (#4903)
- ChangedProper handling of orientation changes when having
android:configChanges="orientation|screenSize"
declared in manifest. (#4955) - FixedFixes an issue where annotation is deselected if annotation editor was opened. (#4902)
- FixedFixes an issue where thumbnail bar was dismissed when dragging a finger over it. (#4896)
- FixedFixes transition into the highlighted search result while in zoom mode. (#4893)
- FixedFixes an issue where certain unicode (emoji) characters in the PDF could be converted into invalid UTF-8. (#4946)
- ChangedDon't deselect annotation immediately as page starts scrolling. (#4880)
- FixedFixes a crash where some theme items weren't resolved on API < 15. (#4941)
- Changed
WriteableDataProvider
renamed toWritableDataProvider
. - FixedFixes search highlighting issues. (#4947)
2.0.0 7 Dec 2015
See the announcement post(opens in a new tab).
PSPDFKit 2 for Android is a major new release, adding support for creating/editing annotations. See the announcement article for details(opens in a new tab). The new minimum API level is 16 (Android 4.1 Jelly Bean).
- Changed
PSPDFDocument
now hasgetAnnotationProvider()
call which returnsAnnotationProvider
object that handles all Annotation related operations. - Changed
getPageAnnotations
call fromPSPDFDocument
has been moved toAnnotationProvider
class. - ChangedImplemented public constructors, getters and setters for newly supported annotation classes. Those are:
- Changed
HighlightAnnotation
- Changed
StrikeOutAnnotation
- Changed
SquigglyAnnotation
- Changed
UnderlineAnnotation
- Changed
InkAnnotation
- Changed
FreeTextAnnotation
- Changed
NoteAnnotation
- AddedAdded Annotation editing user interface. Configuration is controlled by several classes in
PSPDFConfiguration
:- Changed
AnnotationEditingConfiguration
can be used to enable/disable editing per annotation type or altogether. - Changed
AnnotationToolbarThemeConfiguration
and connected theme classes can be used to customize editing toolbar icons.
- AddedAdded ability to disable editing for some annotation types. Currently supported editable annotation types are:
HIGHLIGHT
,STRIKEOUT
,SQUIGGLY
,UNDERLINE
,FREETEXT
,INK
andNOTE
. - ChangedPSPDFKit can now display contents of Note annotations and allows editing of color, contents and icon.
- AddedAdded
WriteableDataProvider
which extends existingDataProvider
and allows writing of edited PDF documents. - Changed
PSPDFDocument
now hassave
andsaveIfModified
methods for saving in synchronous and asynchronous way. - RemovedRemoved previously deprecated
setDisplayedPage
inPSPDFFragment
. UsesetPage
instead. (#4210) - ChangedChanged behaviour of
TextSelectionListener
- iffalse
is returned inonTextSelectionStarted
,onTextSelectionEnded
will be called immediately after it. - ChangedPreviously deprecated
PSPDFFragment#getPageToScreenTransformation
now removed. UsePSPDFFragment#getPageToViewTransformation
instead. - ChangedIn
PSPDFFragment
, renamedconvertPage[Rect/Point]ToView[Rect/Point]
toconvertPDF[Rect/Point]ToView[Rect/Point]
,convertView[Rect/Point]ToPage[Rect/Point]
toconvertView[Rect/Point]ToPDF[Rect/Point]
- Changed
getModDate()
inPSPDFDocumentMetadata
class was renamed togetModificationDate()
.
1.5.0 28 Oct 2015
- AddedAdded
loadingProgressDrawable
PSPDFKitConfiguration option that enables configuration of the document loading throbber. Setting it to null will disable the throbber. (#4259) - RemovedRemoved
PSPDFThumbnailBar#setCurrentPage
. The thumbnail bar is now automatically tied to the document view using the internal event bus. (#4291) - ChangedStop spoken text when text selection ends. (#4391)
- ChangedUpdated support library dependencies to version
23.1.0
. - FixedFixed an issue which prevented to open documents with an empty set of PDF permissions. (#4336)
- FixedFixed an issue where improper text extraction was causing wrong search results. (#4187, #4189)
- FixedFixed an issue where
InputStreamDataProvider
would fail reading data from intermittent input streams. (#4275) - FixedFixed an issue where link annotations and search results would be drawn as black blocks on some pre-Jellybean devices. (#4396)
1.4.1 5 Oct 2015
- AddedAdded
getTitle()
call toDataProvider
interface that lets implementor specify a fallback title of the document if none is available in metdata. - ChangedSignificantly improved performance of loading documents from a
DataProvider
. (#4143) - FixedFixed page rendering bug where wrong page could be momentarily rendered on some Android 5.x devices. (#4148)
- FixedFixed improper page transitions controlled by
boolean animate
argument insetPage(int page, boolean animate)
. (#4112) - FixedFixed locked first swipe after a zoom-out in
PER_PAGE
mode. - FixedFixed an issue where main thread document access could cause jank when opening a document.
1.4.0 24 Sep 2015
See the announcement post(opens in a new tab).
- AddedNew catalog examples:
DocumentSwitcherExample
,SplitDocumentExample
,RandomDocumentReplacementExample
,MemoryDataProviderExample
, andCustomDataProviderExample
. (#3869) - AddedNew
PSPDFActivity#getConfiguration
andPSPDFAppCompatActivity#getConfiguration
allow to easily access the configuration object which was passed while launching the activity. - ChangedConverted
DataProvider
to an interface for more flexibility. Previously, it was an abstract class. - ChangedMoved
DataProvider
tocom.pspdfkit.document.providers
package. - AddedAdded
MemoryDataProvider
to load documents directly from byte arrays. - AddedAdded constants
DataProvider#NO_DATA_AVAILABLE
which has to be returned by aDataProvider
if it fails to read data insideDataProvider#read
. (#3952) - AddedAdded constant
DataProvider#FILE_SIZE_UNKNOWN
which has to be returned by theDataProvider
if it fails to retrieve the correct data size. - ChangedChanged search input field and password field to material design.
pspdf__backgroundColor
,pspdf__borderColor
andpspdf__borderWidth
properties have been removed. (#3693) - ChangedGreatly improved data provider Javadoc documentation. (#3952)
- ChangedUpdated dependencies: RxJava 1.0.14, Support libraries 23.0.1, RxAndroid 1.0.1.
- FixedFixed a problem where
DocumentListener
objects were removed when callingPSPDFActivity#setDocument
orPSPDFAppCompatActivity#setDocument
. - FixedFixed a bug where padding of
PSPDFThumbnailGrid
was applied multiple times. - FixedFixed obfuscation problems in the data provider API. (#3952)
- ChangedUpdated dependencies - RxJava -
1.0.14
, Support libraries -23.0.1
, RxAndroid -1.0.1
. - AddedAdded zoom calls to
PSPDFFragment
for zooming to a specified rect or to a specified zoom scale (zoomTo()
). Also, the document can now be scaled by a given scale factor withzoomBy()
. (#3704) - ChangedThree new properties added to a configuration -
startZoomScale
that enables starting the document at a specified scale,maxZoomScale
which controls the document zoom limit, andzoomOutBounce
defining should the page have that bounce effect when zoomed out or not. - Changed
onDocumentLoaded()
callback is now invoked when both document is loaded and layout displaying the document is ready - FixedFixed invoking multiple
onPageChanged()
calls. (#3845) - ChangedEnabled hiding page labels and showing the page number instead, both while scrolling pages and in outline view. (#3927)
- ChangedDisabled bounce effect on pages in per-page mode, causing some unintuitive behavior. (#3691)
- ChangedImproved file opening performance when accessing DocumentProvider files.
- FixedFixed issues with opening files from SD Card on Android 6.0.
1.3.1 1 Sep 2015
- ChangedPage labels are now displayed in page number popup, outline view and grid view if applicable.
- ChangedEnabled retrieval of page labels via
getPageLabel()
andgetPageIndexForPageLabel()
methods onPSPDFDocument
class. - AddedAdded
getPermissions()
call onPSPDFDocument
class to retrieve PDF document permissions. - ChangedReplaced
PSPDFFragment#setDocumentListener
byPSPDFFragment#registerDocumentListener
andPSPDFFragment#unregisterDocumentListener
. - Changed
PSPDFActivity
andPSPDFAppCompatActivity
now implement theDocumentListener
interface and allow access to listener methods by overriding. - Changed
show()
andhide()
calls on PSPDF views now properly update state of menu items in the Activity. - Changed
setOnVisibilityChangedListener
in PSPDF views has been replaced withaddOnVisibilityChangedListener
andremoveOnVisibilityChangedListener
calls. - FixedFixed a possible memory leak when closing
PSPDFFragment
before document is loaded. - ChangedPrevent crash when invalid start page is passed in
PSPDFActivityConfiguration
. - FixedFixed some annotations sticking around on wrong pages after orientation change.
- FixedFixed issues with link annotation tap highlights.
- ChangedMultiple UI fixes and improvements for immersive mode.
- ChangedImproved fling on the pages while zoomed.
- ChangedFaster settle after a zoom-out.
- FixedFixed diagonal scroll invoking incorrect page fling in
FIT_TO_WIDTH
mode. - ChangedRendering high-resolution image at default zoom scale with insignificant performance hit (#2972).
- FixedFixed detail view clipping in paginated mode (#3696).
- FixedFixed slow vertical fling (#3692).
- ChangedMoving page opposite of the scroll direction in
CONTINUOUS
scroll mode is now limited by the border.
1.3.0 19 Aug 2015
See the announcement post(opens in a new tab).
- ChangedIMPORTANT Classes prefixed with
PSPDFKit
have been renamed toPSPDF
for consistency and future-proofness (e.g.PSPDFKitActivity
is nowPSPDFActivity
) - ChangedPSPDFKit can now open content provider URIs directly without copying files to internal cache.
isOpenableUri
will now returntrue
for all such URIs that can be opened. - ChangedPSPDFCatalog example has been updated to demonstrate opening documents from document provider.
- ChangedActivities derived from
PSPDFKitActivity
orPSPDFKitAppCompatActivity
can now load another PDF document usingsetDocument
parent call. - Changed
Bookmark
class has been renamed toOutlineElement
to better reflect it's function.PSPDFDocument.getBookmarks()
was also renamed toPSPDFDocument.getOutline()
. - ChangedAn error graphic will now appear in
PSPDFKitFragment
/PSPDFKitActivity
/PSPDFKitAppCompatActivity
when attempting to open an invalid file. - Changed
AssetDataProvider
was added to allow opening of PDF documents from APK assets directly. Use it withopen
methods that accept aDataProvider
source. - Changed
ContentResolverDataProvider
was added to open arbitrary content provider URIs. It will be used automatically in all open methods. - AddedAdd
PSPDFDocument#getCharIndexAt
to retrieve the index of a character on a page at the given page coordinates. - ChangedImproved log messages when encountering incompatible device ABIs.
- FixedFixed a problem where the catalog app would restart itself after closing it when being launched using an external intent.
- FixedFixed a crash when using
PSPDFKitThumbnailBar
in custom activities. (#3420) - FixedFixed a crash due to inconsistent state in
PSPDFKitSearchView
(#1695) - ChangedVarious performance and stability improvements to the PDF rendering backend.
- AddedAdded Finnish, Slovenian, Czech and Greek localization.
- Changed
Loading...
text display colors are now properly inverted wheninvertColors
configuration parameter is set. - AddedAdded new annotation type classes:
FreeTextAnnotation
,UnderlineAnnotation
,SquigglyAnnotation
,StrikeoutAnnotation
,HighlightAnnotation
andInkAnnotation
- ChangedDisabled disk cache by default - for simple text document this means a significant performance boost.
1.2.3 6 Jul 2015
- FixedFixed corrupt PDFs crashing the library.
- FixedFixed a crash bug caused by swiping before the document was fully initialized.
- AddedAdded
NoteAnnotation
class to represent note annotations in the document. - Changed
Annotation
object now exposes contents and rich text contents of each annotation. - ChangedDocuments now expose
getAnnotations(page)
call which returns annotations on the page.- ChangedUnknown annotations will be returned as
UnknownAnnotation
object with proper type.
- AddedAdded LeakCanary support. (#3241)
- ChangedExpose
com.pspdfkit.ui.PSPDFKitFragment.getPageToScreenTransformation
. (#3195) - FixedFixed bug causing stack overflow when exiting text selection mode. (#3284)
- ChangedIn-memory caching of rendered pages is now noticeably faster
- AddedAdded
FragmentExample
andCustomFragmentActivity
. (#3338)
1.2.2 23 Jun 2015
- AddedAdded support for
Named
action type in link annotations. - AddedAdded
PSPDFKitActivityConfiguration#layout(int)
. (#3075) - AddedAdded
CustomLayoutExample
to catalog app. (#3075) - ChangedExposed menu action ids for action bar menu customization:
- Changed
com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_THUMBNAIL_GRID
- Changed
com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_SEARCH
- Changed
com.pspdfkit.ui.PSPDFKitActivity#MENU_OPTION_OUTLINE
- FixedFixed page not switching properly on small scroll in
PER_PAGE
scroll mode. (#2905) - FixedFixed multi-line search. (#2993)
- ChangedExposed
startSearch()
calls inPSPDFKitSearchViewModular
andPSPDFKitSearchViewInline
. (#2971) - ChangedQuick switching between menu items now works correctly. (#3157)
- ChangedModular search improved - selected result animated and border coloring added.
- ChangedOptimized performance on ARMv7 devices.
1.2.1 6 Jun 2015
- AddedAdd a new advanced catalog example showing customization and other features.
- ChangedNotify users for missing dependencies. (#3047)
- ChangedAutomatically hide keyboard when browsing through the list of search results. (#2978)
- ChangedExposed custom intent data to be added when launching activities. (#3073)
1.2.0 1 Jun 2015
See the announcement post(opens in a new tab).
- ChangedTheming support - all PSPDFKit views are now customized via themes. Existing appearance configuration in
PSPDFKitActivityConfiguration
and related have been moved to theme attributes. SeeCUSTOMIZATION.html
for more information. - ChangedText selection is now implemented and allows users to copy and listen to selected text.
- ChangedText selection listeners are now implemented.
- ChangedMedia framework with PSPDFKit extensions for Gallery, offline videos and Youtube videos is now implemented.
- ChangedImplemented scroll direction lock for easier reading of content in columns.
- FixedFixed memory caching issues which could lead to a OOM crash.
- AddedAdded inline search (search as action view) option.
- Changed
getPageTextRect
has been changed intogetPageTextRects
that returns multiple rects if the range requires them. - AddedAdded more than 20 new localizations.
- AddedAdded
getPage
andsetPage(int)
calls toPSPDFKitActivity
,PSPDFKitAppCompatActivity
andPSPDFKitFragment
. - Changed
setDisplayedPage(int)
deprecated, usesetPage(int)
instead. - AddedAdded page numbers to table of contents.
- ChangedA bucket full of bug fixes.
1.1.1 17 Apr 2015
- ChangedCustom Activity extended from either
PSPDFKitActivity
orPSPDFKitAppCompatActivity
can now be used by setting classname withactivityClass()
inPSPDFKitActivityConfiguration
for easier customization. - Changed
getPSPDFKitViews()
method was added to Activity classes to make access to PSPDFKit views easier when extending the activity. - AddedAdded
getBookmarks()
call toPSPDFDocument
which retrieves PDF bookmarks. (Table of Contents) - FixedFixed
PSPDFKitFragment
wrongly expecting aParcelable
DataSource
. - ChangedImprovements to fit to width and zooming code.
- ChangedImproved look of page grid display on smaller devices.
- FixedFixed an issue where
setDisplayedPage
call onPSPDFFragment
didn't work before layout. - FixedFixed severe performance degradation on some high-resolution devices like Samsung Note 4.
- FixedFixed accidentally obfuscated listener interfaces.
1.1.0 3 Apr 2015
- ChangedPage view may now be fit to width by using
fitMode
setting inPSPDFKitConfiguration
. - ChangedPDF documents can now be loaded from a custom source with
DataProvider
class. - AddedAdded
DocumentListener
which allows handling page loading events and page tap events. - ChangedFlinging pages in
PER_PAGE
scrolling mode now always flings a single page. - FixedFixed issue where entered password was lost when changing orientation.
- FixedFixed issue where current page was being changed when changing orientation while using a Fragment.
- ChangedZoomed view rendering is now significantly faster.
- ChangedRxJava and support library dependency versions updated to
1.0.8
and22.0.0
respectively.
1.0.4 11 Mar 2015
- FixedFixed an issue where zoomed view was larger than maximum allowed texture size on some devices.