Changelog

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

Newest release

14.2.1 - 2 Dec 2024

PSPDFKitUI

  • Added

    Adds a border to indicate when locked line annotations are selected. (Z#119400)

PSPDFKit

  • Fixed

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

Previous releases

14.2.0 - 12 Nov 2024

With our new company name, PSPDFKit for iOS is now called Nutrient iOS SDK. No technical details have changed: Our modules are still called PSPDFKit and PSPDFKitUI and are available at the same Swift package URL. We want to make this a smooth transition.

Nutrient iOS SDK now requires and is built with Xcode 16.1.

This release removes support for iOS 15 and macOS 12. Your deployment target must now be set to iOS 16 and macOS 13 or greater. (J#IOS-532)

This release also removes APIs that were deprecated between Nutrient iOS SDK 12.0 and 13.0 (inclusive). This includes the legacy menu customization APIs that used Apple’s deprecated UIMenuController and UIMenuItem APIs. For more information, see the migration guide. (J#IOS-529)

PSPDFKitUI

System text selection is now used on document pages. This was a large internal change that has provided improved system integration and a native look and feel. As a result of this, some customization APIs have changed.

  • Removed

    Deprecates the selectText and deselectText components of DocumentViewInteractions. With the switch to system text selection, these components are now only used for image selection. We’d like to bring back similar APIs for system text selection, but to do that, it would help us a lot if you let us know how you’re using these APIs. (J#IOS-570)

  • Removed

    Deprecates SpeechController, which is no longer used with the switch to system text selection. (J#IOS-180)

  • Removed

    Deprecates TextSelectionView.selectionHitTestExtension, as it provided limited functionality and worked only in certain conditions. Reach out to us on Support if you need assistance with customizing when to begin text selection. (J#IOS-572)

  • Removed

    Deprecates UIAction.Identifier.PSPDFKit.define and UIAction.Identifier.PSPDFKit.searchWeb in favor of UIMenu.Identifier.lookup. (J#IOS-180)

  • Removed

    Deprecates UIMenu.Identifier.PSPDFKit.accessibility in favor of UIMenu.Identifier.speech. (J#IOS-180)

  • Removed

    Deprecates the TextSelectionMode enum, which is no longer used. (J#IOS-382)

  • Removed

    Deprecates PDFPageView.select(glyphs:presentMenu:animated:) in favor of the new method select(glyphs:animated:) because the presentMenu parameter is now ignored. (J#IOS-180)

  • Removed

    Deprecates PSPDFGalleryOptionCover, which has long been informally deprecated in favor of GalleryItem.Option.coverImage and GalleryItem.Option.coverMode. (Z#119024)

  • Added

    Adds the standard Look Up, Translate, and Writing Tools menu items for selected text. Look Up replaces Define. (J#IOS-180)

  • Changed

    Improves the look and feel of text selection to match system behavior. (J#IOS-180)

  • Changed

    Improves language detection in the Speak menu item for selected text by using the system implementation, which asks the user in the case of ambiguity. (J#IOS-180)

  • Changed

    Improves the consistency of how many characters are allowed in single-line, non-scrolling, auto-sized text field form elements. (J#IOS-461)

PSPDFKit

  • Removed

    Deprecates URLAction.offset, Action.Option.offsetKey, Action.Option.coverKey, and Action.Option.pageKey, which all haven’t had an effect for some time. (Z#119024)

  • Added

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

  • Changed

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

  • Changed

    Updates the format of version returned in SDK.versionString. It now returns the version information in a new format: “Nutrient iOS SDK {version-number} ({build-number})”. For example: Nutrient iOS SDK 14.2.0 (1420). (J#IOS-594)

  • Changed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

Examples

  • Added

    Adds a ‘Custom Speak Menu Item’ example in Catalog, which shows how to replace the system Speak menu item to change the speech rate, pitch, or language. (#45588)

14.1.1 - 21 Oct 2024

PSPDFKit

  • Fixed

    Fixes a deadlock that could occur when generating Instant JSON in response to an annotation change notification. (J#IOS-584)

  • Fixed

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

14.1.0 - 10 Oct 2024

PSPDFKit

  • Added

    Adds shrinking the measurement label to fit inside elliptical and rectangular area measurement annotations instead of showing the note indicator. (J#IOS-562)

  • Fixed

    Fixes a regression from PSPDFKit 13.6, where applying Instant JSON to a document didn’t work without the forms feature in the PSPDFKit license. (J#IOS-575)

  • Fixed

    Fixes the blend mode not being read correctly, resulting in annotations reverting to a normal blend mode. (J#CORE-691)

  • Fixed

    Fixes PDFs with millions of outline elements using too much memory. (J#CORE-694)

  • Fixed

    Fixes form contents sometimes being rotated after exporting and then importing from Instant JSON. (J#CORE-647)

  • Fixed

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

  • Fixed

    Fixes handwritten signatures sometimes appearing distorted in some page orientations. (J#ANDR-824)

  • Fixed

    Fixes an incorrect font weight being selected for the Lexend font. (J#CORE-339)

Examples

  • Added

    Adds the calibration tool to the Measurement Tools example in our Catalog app. (J#IOS-562)

14.0.1 - 19 Sep 2024

PSPDFKit

  • Fixed

    Fixes some annotations losing their font color when exported to XFDF and imported again. (J#CORE-680)

  • Fixed

    Fixes undo not tracking the correct annotations when using a document with multiple data providers. (Z#117081)

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes digitally signing a document sometimes resulting in an error in Adobe Acrobat about a modified page. (J#CORE-45204)

  • Fixed

    Fixes digitally signing with the SHA384 hashing algorithm not working. (Z#116874)

14.0.0 - 16 Sep 2024

PSPDFKit now requires and is built with Xcode 16.0.

This release adds support for iOS 18, macOS 15 Sequoia, and visionOS 2, while still working back to iOS 15 and macOS 12 Monterey. To concentrate our development and support efforts, we’ll soon raise our deployment targets to iOS 16 and macOS 13 Ventura, removing support for iOS 15 and macOS 12 Monterey.

PSPDFKitUI

  • Removed

    Deprecates PDFConfiguration.textSelectionShouldSnapToWord. PSPDFKit will soon switch to standard system text selection and will no longer support forced snapping. (J#IOS-382)

  • Changed

    Improves performance when entering custom text in choice form fields by not updating the document render until after text editing finishes. (Z#109083)

  • Changed

    Changes the keyboard type for ‘Go to Page’ to .numbersAndPunctuation to enable non-numeric input on iPhone. (#45008)

  • Fixed

    Fixes an issue where the numerical value of NSNotFound is displayed in the outline list when the page index can’t be determined for an outline element. (Z#116497)

PSPDFKit

  • Changed

    Changes the return value of Document.pageLabelForPage(at:substituteWithPlainLabel:) to nil when NSNotFound is provided for the pageIndex parameter. (Z#116497)

  • Fixed

    Fixes a crash when opening certain image files with broken XMP/EXIF headers. (J#CORE-665)

  • Fixed

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

  • Fixed

    Fixes an issue where annotations loaded using XFDFAnnotationProvider may not be visible right away until you select them. (J#CORE-669)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Removed

    Removes the curved edges on text highlights. (J#ANDR-313)

13.9.1 - 30 Aug 2024

  • Changed

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

13.9.0 - 15 Aug 2024

PSPDFKitUI

  • Removed

    Deprecates PDFConfiguration.textSelectionMode. We recommend leaving this at its default value of automatic to provide the best user experience. PSPDFKit will switch to standard system text selection soon and will no longer support alternative modes. (J#IOS-382)

  • Added

    Adds automatically setting the background for tab bars with PDFView. (Z#115586)

  • Changed

    Changes PDFView’s navigation bar toolbar background from .regularMaterial to the default, which is less transparent, providing better legibility. (Z#115586)

  • Changed

    Improves performance when first creating a PDFConfiguration object. (Z#115578)

  • Fixed

    Fixes default instances of PDFConfiguration not being equal, which could have caused infinite update loops with PDFView. (J#IOS-450)

  • Fixed

    Fixes dragging selected annotations not working consistently while the selection tool is active. (J#IOS-409)

  • Fixed

    Fixes the scrubber bar not being displayed in vertical configurations on Mac Catalyst. (J#IOS-415)

  • Fixed

    Fixes the close button not being added by default when PDFViewController is presented modally directly in a navigation controller and the useParentNavigationBar configuration property is true. (#41850)

PSPDFKit

  • Changed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where setting a choice form element’s contents could lead to a deadlock. (J#IOS-344)

Examples

  • Changed

    Improves the E-Reader example and various SwiftUI examples in the Catalog app on iPad in landscape by using .adaptive spread fitting instead of .fill. (#44770)

  • Changed

    Renames the “Highlighting like in Apple Books” Catalog example to “Create Highlights From Selected Text” because the behavior of Apple Books has changed. (J#IOS-382)

13.8.0 - 16 Jul 2024

PSPDFKit now requires and is built with Xcode 15.4.

PSPDFKitUI

  • Added

    Adds support for managing toolbar button setup while using PDFView in SwiftUI. You can now add buttons like DefaultToolbarButtons, AnnotationButton, SearchButton, OutlineButton, and ThumbnailsButton using the toolbar(content:) modifier to customize the toolbar. See our SwiftUI guide for more information. (J#IOS-401)

  • Added

    Adds PDFView.showDocumentTitle(_:) to control where the document title is shown. Also changes the default to not show the document label when using PDFView. (J#IOS-428)

  • Changed

    Improves PDFView so useParentNavigationBar is no longer required. (J#IOS-429)

  • Changed

    Updates PDFView to add a default styling using regular material for the navigation bar. (J#IOS-429)

  • Changed

    Updates PDFView to ignore the safe area internally for better user interface animations. (J#IOS-429)

PSPDFKit

  • Added

    Adds a one-step API to add an annotation to a document from Instant JSON: PDFDocumentProvider.addAnnotation(fromInstantJSON:attachmentDataProvider:). (J#IOS-452)

  • Added

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

  • Changed

    Changes the quality of service for loading ImageDocument from utility to user initiated. (Z#114180)

  • Changed

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

  • Changed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where signed form fields may not display correctly on rotated pages. (J#CORE-608)

  • Fixed

    Fixes an issue where text in form elements appeared smaller during editing when the field specifies a font size slightly larger than would fit within the height of the form element. (J#IOS-324)

  • Fixed

    Fixes the priority of RenderTask being ignored, which would have led to page view rendering being delayed until tasks at the default quality of service finished. (Z#114180)

Examples

  • Added

    Adds a new example, SwiftUIDefaultToolbarExample, which demonstrates how to use the default the toolbar buttons with PDFView. (J#IOS-418)

  • Changed

    Updates all the SwiftUI examples to use the new SwiftUI APIs for customizing the toolbar of a PDFView. See our SwiftUI guide for more information. (J#IOS-418)

  • Changed

    Updates CustomizingFormAppearanceExample to correctly reposition labels over form fields when the page view’s frame updates. (Z#113920)

13.7.0 - 18 Jun 2024

PSPDFKitUI

  • Added

    Adds showing an error message on the page when there isn’t enough memory to render that page. (J#IOS-377)

  • Fixed

    Fixes modally presented PDFViewControllers from being dismissed when completing or canceling the sharing process initiated from openInButtonItem. (Z#112873)

PSPDFKit

  • Added

    Adds a new PDFViewControllerDelegate method, pdfViewController(_:didFinishRenderTaskFor:error:), to get information about if an error occurs while rendering for a page view. (J#IOS-466)

  • Changed

    Changes Document.renderPage(at:context:size:clippedTo:annotations:options:) to render an error placeholder and the annotations into the context even when an error occurs. (J#IOS-377)

  • Fixed

    Fixes a crash related to dynamically linking SQLite when debugging on iOS 18 with the Thread Performance Checker enabled. This didn’t impact release builds and can be worked around in earlier PSPDFKit versions by disabling the Thread Performance Checker in your Xcode scheme settings. (Z#113568)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

13.6.0 - 30 May 2024

PSPDFKitUI

  • Added

    Adds support for .noZoom flag for stamp annotations. (J#IOS-431)

  • Changed

    Improves the menu behavior by keeping it presented after selecting Ungroup. (J#QA-160)

  • Fixed

    Fixes incorrect placement of the annotation selection menu for note and sound annotations when zoomed in. (#44193)

  • Fixed

    Fixes long-pressing to select and drag annotations, deselecting other annotations in the same group after the gesture ended. (J#IOS-445)

  • Fixed

    Fixes overlay annotations not getting rendered in the document images generated for sharing with the flatten annotations option. (#44266)

  • Fixed

    Fixes sound annotation icons being not visible on pages on visionOS. (J#IOS-446)

  • Fixed

    Fixes the length of the rotation stick shown for selected rotatable annotations when zoomed into a page. (#44193)

  • Fixed

    Fixes the selection view for fixed-size annotations appearing larger while using the selection annotation tool. (#44193)

  • Fixed

    Fixes the menus for text selection, annotation selection, and annotation creation not being available when running an iOS app on an Apple silicon Mac. Just like on Mac Catalyst, these menus are only shown on secondary click. In general, using PSPDFKit in an iOS app running on a Mac is unsupported and untested. We recommend using Mac Catalyst instead. (J#IOS-63)

PSPDFKit

  • Added

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

  • Changed

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

  • Changed

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

  • Changed

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

  • Changed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where the SDK could freeze when importing Instant Document JSON into a document with a lot of form fields. (J#IOS-444)

  • Fixed

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

  • Fixed

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

  • Fixed

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

Examples

  • Changed

    Updates the FloatingStampsExample to use the .noZoom annotation flag to get the floating behavior. (J#IOS-434)

13.5.0 - 23 Apr 2024

PSPDFKitUI

  • Changed

    Disables an assertion, “Your license does not include Redaction,” that could occur when the redactionInfoButton’s action was called in unknown circumstances. (Z#110952)

  • Fixed

    Fixes a crash on Mac Catalyst in Optimized for Mac mode when changing the scale of a measurement in measurement settings. (J#IOS-405)

  • Fixed

    Fixes the scrubber bar being visible when in the thumbnails view mode on visionOS. (J#IOS-327)

PSPDFKit

  • Added

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

  • Changed

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

  • Changed

    Avoids out-of-memory terminations when opening documents with very complex pages by canceling rendering when receiving critical memory warnings. PSPDFKit will retry the rendering if sufficient memory becomes available. Otherwise, the page will display as a blank rectangle. (J#IOS-82)

  • Changed

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

  • Fixed

    Fixes a crash when calling the measurement value configuration API on an invalid Document. (Z#110775)

  • Fixed

    Fixes a rendering issue causing pages to appear too small. (J#CORE-550)

  • Fixed

    Fixes a rendering issue where pages may display upside down. (J#CORE-545)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes deleting the value of a form field incorrectly showing the previous value in some situations. (J#CORE-531)

  • Fixed

    Fixes measurement labels on rotated pages not being exported correctly. (J#CORE-529)

  • Fixed

    Fixes the appearance of unsigned signature form fields ignoring some property changes, like their border width. (J#CORE-417)

Instant

  • Fixed

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

  • Fixed

    Fixes image attachments losing transparency information when synced. Now images will use PNG if they have alpha information. (J#IOS-346)

13.4.1 - 29 Mar 2024

  • Added

    Adds empty entries for NSPrivacyTrackingDomains and NSPrivacyCollectedDataTypes in the privacy manifest files for all frameworks. (Z#110709)

PSPDFKitUI

  • Added

    Adds support for changing the title of the sharing screen using PDFDocumentSharingViewController.title. (#43760)

  • Changed

    Improves the title of the sharing screen (PDFDocumentSharingViewController) by matching it to the sharing destination if only one destination is provided. (#43760)

  • Fixed

    Fixes an empty scrubber bar being shown for password protected files on visionOS. (J#IOS-326)

PSPDFKit

  • Fixed

    Fixes a regression in 13.4.0 that could lead to EXC_BAD_ACCESS (KERN_INVALID_ADDRESS) crashes, particularly when opening resource intensive documents. (J#CORE-530)

  • Fixed

    Fixes an issue where opening some kind of forms in a tabbed document interface may hang the app. (J#CORE-460)

  • Fixed

    Fixes licensing alerts not being shown in development builds on Mac Catalyst. (#43745)

13.4.0 - 15 Mar 2024

See the announcement post.

PSPDFKit now requires and is built with Xcode 15.3.

PSPDFKitUI

  • Removed

    Deprecates PDFView initializers with an ObservedObject<Document> as a parameter. Use the initializers with a Document parameter instead. (J#IOS-285)

  • Added

    Adds @MainActor to protocols and some other API to improve support for Swift concurrency checks. (J#IOS-339)

  • Added

    Adds a prefersAssistiveTechnologySettings property on SpeechController to configure if assistive technology (like VoiceOver) settings are preferred over existing SpeechController properties like speakRate and pitchMultiplier. (J#IOS-58)

  • Added

    Adds support for deselecting annotations by tapping them when the selection tool is active. (J#IOS-337)

  • Added

    Adds support for selecting and deselecting annotations while holding the Shift key on a hardware keyboard. (J#IOS-338)

  • Added

    Adds support for selecting annotations by tapping them when the selection tool is active. (J#IOS-336)

  • Changed

    Improves handling of link annotation and outlines that navigate to specific view ports of a page within the PDF (explicit destinations). (J#IOS-323)

  • Added

    Add support for jumping to regions of pages with go to actions, which are used for link annotations and the document outline. E.g. if a section begins half way down a page, the page will be scrolled halfway down if the view settings allow this. (J#IOS-202)

  • Fixed

    Fix view state restoration not working at times when a view controller is pushed and popped on the navigation stack the PDFViewController is in. (J#IOS-219)

  • Changed

    Works around a system issue where auto-completion suggestions deleted entered text when running an iOS app on an Apple silicon Mac. In general, using PSPDFKit in an iOS app running on a Mac is unsupported and untested. We recommend using Mac Catalyst instead. (Z#109790)

  • Fixed

    Fixes an issue where tapping a push button form element could trigger an infinite recursion in certain documents. (J#IOS-340)

PSPDFKit

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where font names with certain encodings may not be parsed correctly. (J#CORE-292)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes undo not being possible for edits to annotations that were created from Instant JSON or XFDFParser. (J#IOS-347)

Instant

  • Changed

    When opening a document with form elements, the form elements will be ignored instead of crashing. Instant on iOS doesn’t support forms. (Z#109524)

Examples

  • Added

    Adds a Catalog example showing a SignatureStore backed by Instant JSON (InstantJSONSignatureStoreExample). (Z#108880)

  • Changed

    Updates the Go dependcies used by the cryptor-cli tool that can be used to encrypt and decrypt files on the server. (J#IOS-258)

13.3.3 - 4 Mar 2024

PSPDFKitUI

  • Fixed

    Fixes reordering signatures in the saved signatures list not always passing the correct order to the SignatureStore. (#43548)

PSPDFKit

  • Fixed

    Fixes a crash when listing embedded files in certain rare PDFs. (J#CORE-493)

Instant

  • Fixed

    Fixes JWT tokens with Base64 URL-safe encoding in the payload part not parsing correctly. (J#CORE-492)

  • Fixed

    Fixes sync failing when unsupported objects are received. These objects will be ignored instead. (J#CORE-407)

13.3.2 - 22 Feb 2024

PSPDFKitUI

  • Changed

    Enables using the Content Editor for any writable single data provider documents. (J#IOS-332)

  • Fixed

    Fixes Go to Page not showing an alert when entering a number greater than the number of pages in the document. (Z#108795)

  • Fixed

    Fixes an issue where assigning a custom PageLabelFormatter to PageLabelView.labelFormatter didn’t work. (#43250)

PSPDFKit

  • Added

    Adds an invalidURLString property on URLAction to read invalid URLs from documents. (Z#108707)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where the user and password provided with the timestampSource in SigningConfiguration was incorrecty percent encoded when contacting the timestamping server when digitally signing. (Z#108336)

  • Fixed

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

  • Fixed

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

  • Fixed

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

13.3.1 - 22 Feb 2024

  • Fixed

    Fixes the XCFrameworks’ signatures not being valid.

13.3.0 - 23 Jan 2024

See the announcement post.

This release adds support for visionOS. See the Introducing PSPDFKit for visionOS blog post for details.

⚠️ The XCFrameworks in this release no longer have valid signatures. Please update to 13.3.1 or see our framework signature validation failed guide.

PSPDFKit now requires and is built with Xcode 15.2.

  • Added

    Adds privacy manifests for all our frameworks. (J#IOS-26)

  • Removed

    Removes APIs that were deprecated in PSPDFKit 11.4 and 11.5. For more information see the migration guide. (#42617)

PSPDFKitUI

  • API

    Calling WebViewController.modalWebView(with:) on a subclass of WebViewController no longer attempts to create an instance of the subclass. (Z#39981)

  • API

    Changes timestamps from DrawView.timePoints to be relative to the first touch (so they start at zero) instead of using Unix timestamps. This was done to avoid use of ProcessInfo.systemUptime which is a “required reason” API. (J#IOS-26)

  • Added

    Adds dashArray, lineEnd1, lineEnd2, and fillColor (line end color) to the default propertiesForAnnotations for measurement annotations, which makes these properties editable in the annotation inspector. (Z#107080)

  • Added

    Adds PDFConfiguration.mainToolbarMode on visionOS that can be used to display toolbar items such as annotation tool, document editing, etc. in the navigation bar or in an ornament anchored to the top of the main window. See our guide for more details. (#43078)

  • Added

    Adds PDFViewController.setMainToolbarOrnamentItems(_:for:) to configure the toolbar items in the ornament anchored to the top of the main window. This can use the new in-built ornament items such as PDFViewController.annotationOrnamentItem, bookmarkOrnamentItem. See our guide for more details. (#43080)

  • Added

    Adds annotation and document editor toolbars as ornaments on visionOS. (J#IOS-134)

  • Added

    Adds hover feedback for visionOS throughout the UI, including in the thumbnail view mode, scrubber bar, and various toolbars. (J#IOS-119, J#IOS-120, J#IOS-121, J#IOS-122)

  • Added

    Adds tabs to main toolbar ornament when using PDFTabbedViewController on visionOS. (J#IOS-149)

  • Changed

    Improves adding Electronic Signatures from the annotation creation menu (long press in empty space on page) by adding the signature annotations at the point that was pressed instead of in the middle of the page. (J#IOS-214)

  • Changed

    Optimizes annotation and text selection menus for visionOS. (#42658)

  • Fixed

    Fixes a crash when showing the link annotation editor for a subclass of Document. (Z#39981)

  • Fixed

    Fixes annotation resizing knobs being unresponsive while dragging quickly. (J#IOS-254)

  • Fixed

    Fixes the font selection list unexpectedly closing when adding a signature with the device in landscape orientation. (J#IOS-65)

PSPDFKit

  • API

    Changes the signature of the unlockCertificateChain(withPassword:) async API to be synchronous as it does not carry out any tasks asynchronously. (#42978)

  • API

    Removes .widthInsensitive from the default value of TextSearch.compareOptions because this option is not compatible with smart search, which is enabled by default. This will have no effect on behavior unless you’re disabling smart search by removing .regularExpression from this option set. (J#IOS-193)

  • API

    The implementations of NSCopying in Document, TextSearch, and PageLabelFormatter will no longer return instances of subclasses. This was unsafe because subclasses may have additional initialization requirements. (Z#39981)

  • API

    PDFViewController.present(with:options:sender:animated:configurationBlock:) will no longer present an instance of a subclass of PDFViewController. If you need to use your subclass, override this method. (Z#39981)

  • Removed

    Deprecates PageSize(_:name:) in favor of the existing equivalent initializer PageSize(size:name:). (Z#39981)

  • Removed

    Deprecates TextSearch.compareOptions in favor of the new TextSearch.comparisonOptions. The old property will no longer store unhandled options from NSString.CompareOptions such as .anchored because it is internally backed by the new property. (J#IOS-193)

  • Added

    Adds API for programmatic regular expression (regex) search in a document by using the new TextSearch.comparisonOptions property with TextSearch.ComparisonOptions.regularExpression. (J#IOS-193)

  • Added

    Adds support for adding long term validation when signing a form element using Document.sign(formElement:configuration:outputDataProvider:). (J#IOS-216)

  • Added

    Adds support for adding long term validation when validating a signed form element using Document.addLongTermValidation(toFormElement:certificates:). (J#IOS-217)

  • Added

    Adds support for verifying a signature and checking the revocation status of the used certificates using PDFSignatureValidator.verifySignatureAndCheckRevocationStatus(withTrustedCertificates:). (J#IOS-229)

  • Changed

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

  • Changed

    When initializing a Document with data providers or appending data providers to an existing document, there is now an assertion that all data providers need to be unique. (Z#107544)

  • Fixed

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

  • Fixed

    Fixes a regression from PSPDFKit 13.2 where deadlocks would occur more frequently with immediate document checkpointing. The issue remains, but the frequency should be back to how it was before. (J#IOS-185)

  • Fixed

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

  • Fixed

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

Examples

  • Added

    Adds DigitalSignatureConfigurationExample that allows customizing various options when digitally signing. (#42823)

  • Fixed

    Fixes drawn signatures being very thin in the Sign All Pages Catalog example. (J#IOS-214)

13.2.0 - 20 Dec 2023

See the announcement post.

⚠️ The XCFrameworks in this release no longer have valid signatures. Please update to 13.3.1 or see our framework signature validation failed guide.

  • Changed

    Improves API safety for apps using Objective-C by removing various uses of __kindof (which allows implicit casting to subclasses). (#42436)

PSPDFKitUI

  • Changed

    Improves contrast of text in the bookmark list in dark mode. (#42655)

  • Fixed

    Fixes free text annotations arriving via Instant, Instant JSON or XFDF that fitted without clipping on another device sometimes clipping when moved. (J#IOS-190)

PSPDFKit

  • API

    Improves type safety by changing the return type of Document.annotations(byDetectingLinkTypes:forPagesAt:options:progress) from [NSNumber : [Annotation]] to [NSNumber : [LinkAnnotation]]. (#42436)

  • Added

    Adds new digital signature API with support for timestamping via Document.sign(formElement:configuration:outputDataProvider:). (J#IOS-195)

  • Added

    Adds additional APIs for digital signature verification on PDFSignatureStatus. (J#IOS-210)

  • Added

    Adds a new async API to unlock a PKCS12 archive - PKCS12.unlockCertficateChain(withPassword:). (J#IOS-220)

  • Added

    Adds a defaultMeasurementValueConfiguration property on Document to set the default units and precision for the Add Scale and Calibrate Length views. (Z#39656)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes edits made to annotations after they were created being discarded when editing form fields. (J#IOS-135)

  • Fixed

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

Examples

  • Added

    Adds a new example, FormCustomDigitalSigningExample, to illustrate carrying out a custom signing implementation using the new signing API Document.sign(formElement:configuration:outputDataProvider:). (J#IOS-220)

  • Changed

    Updates FormDigitalSigningExampleCustomAppearanceExample and AsynchronousExternalDigitalSignatureExample to use the new signing API Document.sign(formElement:configuration:outputDataProvider:). (J#IOS-220)

  • Changed

    Updates FormDigitalSigningExample to illustrate adding timestamp from a timestamp server using the new signing API Document.sign(formElement:configuration:outputDataProvider:). (J#IOS-220)

13.1.0 - 2 Nov 2023

⚠️ The XCFrameworks in this release no longer have valid signatures. Please update to 13.3.1 or see our framework signature validation failed guide.

  • Added

    Adds code signatures to the distributed XCFrameworks so it’s possible to validate that they haven’t been modified since we built them. (J#iOS-23)

PSPDFKitUI

  • Added

    Adds UI to scroll to a specific page by typing when tapping the page label. (J#IOS-124)

  • Fixed

    Fixes ThumbnailBar unnecessarily asserting that its collection view layout isn’t changed. (Z#39285)

  • Fixed

    Fixes a crash related to copying pages from an imported document in the document editor. (J#IOS-99)

  • Fixed

    Fixes a possible crash on iOS 17 when showing the quality picker when adding images. (J#IOS-146)

  • Fixed

    Fixes text selection being invisible on Mac Catalyst when the Increase contrast accessibility setting is enabled. (#42312)

PSPDFKit

  • Added

    Adds an ignorePageRotation property to XFDFAnnotationProvider, XFDFParser, and XFDFWriter. (J#CORE-93)

  • Added

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

  • Removed

    Removes the strip-framework.sh script which is not needed anymore since switching to XCFrameworks, as announced in the version 10 migration guide. (#42105)

  • Changed

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

  • Changed

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

  • Changed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes invalid GoToAction objects having a default page index of 0. (J#IOS-145)

  • Fixed

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

  • Fixed

    Fixes possible crashes when removing annotations that are being rendered on another thread. (J#IOS-164)

13.0.1 - 29 Sep 2023

PSPDFKitUI

  • Fixed

    Fixes a regression from PSPDFKit 13 where it wasn’t possible to tap to move the insertion point or select text in text annotations and form fields. (#42128)

PSPDFKit

  • Fixed

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

Examples

  • Fixed

    Fixes a crash when tapping the Collaborate button in the Board Meeting example or PSPDFKit Instant example in the Catalog app on Mac. (#42050)

13.0.0 - 18 Sep 2023

See the announcement post.

PSPDFKit now requires and is built with Xcode 15.0.

PSPDFKitUI

  • Added

    Adds a scale calibration annotation tool to create new measurement value configurations. See our guide for more information. (#41866)

  • Added

    Adds a floating button when a measurement tool or annotation is selected displaying the selected scale to make choosing a scale easier. (#41866)

  • Changed

    Improves the behavior on Mac for truncated document title text in the tab bar tabs by showing a tooltip with complete document title on pointer hover. (#41707)

  • Changed

    Improves the document title display behavior of the tab bar tabs to truncate text in the middle. (#41707)

  • Changed

    Adjusts horizontal values for UserInterfaceView.pageLabelInsets. (#41055)

  • Fixed

    Fixes VoiceOver positions of text paragraphs and annotations when the window is not full screen (when using Stage Manager, Split View or Slide Over). (#41824)

  • Fixed

    Fixes a crash in TextSelectionLoupe.__deallocating_deinit. (J#IOS-64)

  • Fixed

    Fixes a crash when rotating and copying pages in the document editor. (#41975)

PSPDFKit

  • API

    Removes AnnotationStyle.Key.measurementScale, .measurementCalibration, .measurementPrecision and replaces them with .measurementValueConfiguration. (#41866)

  • Added

    Adds support for storing multiple measurement value configurations (scales and precision) in a document. (#41866)

  • Changed

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

  • Fixed

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

  • Fixed

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

12.4.0 - 28 Aug 2023

In preparation for iOS 17, this version of PSPDFKit drops support for iOS 14. (#39956)

PSPDFKitUI

  • Added

    Adds SwiftUI PDFView modifiers menuForText, menuForImage, and menuForAnnotations as replacements for the deprecated onShouldShowMenuItemsForSelectedText, onShouldShowMenuItemsForSelectedImage, and onShouldShowMenuItemsForSelectedAnnotations. (J#IOS-69)

  • Added

    Adds support for system text autocorrection in Content Editor on iOS 15. (#41127)

  • Added

    Adds the eyedropper tool in the color picker on iOS 17. (J#IOS-60)

  • Changed

    Improves deciding whether to use double page mode with PageMode.automatic in documents where the first page has a different aspect ratio to subsequent pages. (#40535)

  • Changed

    Updates the title of the page range selection screen when sharing from “Range” to “Page Range”. (#38971)

  • Fixed

    Fixes SwiftUI PDFView using legacy menus by default for text and annotation selection. The legacy menus don’t use icons or the context menu appearance for pointers. Now legacy menus will only be used if using the deprecated menu customization APIs. (J#IOS-69)

  • Fixed

    Fixes a memory leak that would occur when exiting Content Editor after interacting with a text box by selecting or deselecting only. (#41326)

  • Fixed

    Fixes note annotations not maintaining their relative position when moved in a group. (#24123)

PSPDFKit

  • Added

    Adds fractional inch precisions for Measurement Tools when using yards, feet or, inches, such as 9 yd 5’-3/4”. (#40628, #40969)

  • Added

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

  • Added

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

  • Added

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

  • Changed

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

  • Changed

    Improves embedding of OpenType CFF fonts. (#40481)

  • Changed

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

  • Changed

    Updates HarfBuzz to 8.1.1. (J#CORE-169)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where the cloudy border effect was always set when importing annotations from Instant JSON. (#40472)

  • Fixed

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

  • Fixed

    Fixes some issues where errors signing documents may not be reported correctly. (#40998)

  • Fixed

    Fixes wrong data being returned when the following steps occur: add an annotation to a document, then set the annotation’s appearanceStreamGenerator (and set isDirty to true), then call writeBinaryInstantJSONAttachment. As a result of this, PSPDFKit may be stricter about a stamp with an image needing a non-empty bounding box in order to get the image as an Instant JSON attachment. (#41349)

Instant

  • Fixed

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

Examples

  • Changed

    Updates some examples to not use configuration options when using a gallery URL in link annotations. (#41651)

12.3.1 - 5 Jul 2023

PSPDFKit now requires and is built with Xcode 14.3.1.

PSPDFKitUI

  • Changed

    Improves ink annotation rendering to avoid artefacts at line ends. (#21933)

  • Changed

    Improves limiting text entry for multiline form fields to avoid allowing adding extra characters that may not end up rendering on the page. (#39405)

  • Fixed

    Fixes 3 finger VoiceOver scroll gesture to switch pages in .perSpread page transition mode not changing pages. (#40878)

  • Fixed

    Fixes possible ink annotation jumps after multiple erasure strokes. (#34020)

  • Fixed

    Fixes the thumbnails sometimes disappearing while switching between the document view mode and thumbnails view mode. (#40507)

PSPDFKit

  • Added

    Adds the option to specify a format version when generating Instant JSON for an annotation or document. PSPDFKit 12.1 switched from generating version 1 to version 2. (#40611)

  • Changed

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

  • Fixed

    Fixes a crash that occurred when using PSPDFKit without setting a license key without first using the PSPDFKit.SDK.shared object. PSPDFKit remains stricter than it was before 12.3 about requiring that the license key is set before any other PSPDFKit API is called. (Z#37253)

  • Fixed

    Fixes a crash when saving after using Content Editor on a page without a font dictionary. (#40803)

  • Fixed

    Fixes an issue where sometimes the wrong font is used when applying changes with Content Editor. (#40663)

  • Fixed

    Fixes an issue where the bold or italic attribute of a font got lost when saving changes with Content Editor. (#40663)

  • Fixed

    Fixes overrides of text markup annotation classes set on a document not being respected for new annotations created in the UI. (#41079)

12.3.0 - 24 May 2023

See the announcement post.

PSPDFKitUI

  • API

    Adds new UIMenu-based API for customizing the menus for selected text and images, which replaces the existing UIMenuItem-based API. Please see the migration guide for more details. (#37123)

  • Removed

    Deprecates the .PSPDFAnnotationCreateActionDidInsert notification. Use .PSPDFAnnotationsAdded instead. (#37122)

  • Removed

    Deprecates the TextSelectionView.discardSelection(animated:) method. Use PDFPageView.discardSelection(animated:) instead. (#35894)

  • Added

    Adds moving and resizing text boxes when using Content Editor. (#40344)

  • Added

    Adds a “Search Web” menu item for selected text.

  • Added

    Adds a magnifying glass when using text markup annotation tools. (#40046)

  • Added

    Adds support for right-to-left layout in the tabbed bar (PDFTabbedViewController). (#30575)

  • Changed

    Improves Content Editor by making text boxes include whole paragraphs rather than single lines. Text boxes now resize downwards instead of rightwards. (#40344)

  • Changed

    Improves the text selection menu by using a context menu when secondary clicking with a trackpad or mouse.

  • Changed

    When pasting and the clipboard/pasteboard contains both an image and string representation, the string will now be ignored instead of being set as the contents (note/comment) of the new image annotation. (#40038)

  • Fixed

    Fixes accessibility Speak and Pause actions in the text selection menu being duplicated and not doing anything. The Speak action is now only shown if the Speak Selection accessibility setting is enabled. (#31121)

  • Fixed

    Fixes an issue where creating annotations using the text selection menu would not ask for the author name first. (#11211)

  • Fixed

    Fixes annotation tool icons not being visible in the text selection menu. (#37564)

  • Fixed

    Fixes last used opacity not being applied to text markup annotations created using the text selection menu. (#17379)

  • Fixed

    Fixes nested inline menus appearing as sub-menus without titles on Mac Catalyst. (#40463)

  • Fixed

    Fixes not being able to select annotations at the same time as deselecting text or images. (#40229)

  • Fixed

    Fixes selecting images taking a long time when Speak Selection accessibility setting is turned on. (#23932)

  • Fixed

    Fixes selecting text over a text markup annotation requiring to hold the finger down for too long. (#29693, #40012)

  • Fixed

    Fixes the Select All menu action selecting text on a different page than the one where the menu was presented from. (#40463)

  • Fixed

    Fixes the page index bound to PDFView sometimes initially being applied incorrectly. (#40431)

  • Fixed

    Fixes free text annotation not entering edit mode on double click on Catalyst apps that don’t set UIApplicationSupportsIndirectInputEvents to YES. (#40531)

PSPDFKit

  • Changed

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

  • Changed

    Improves label placement for polygon area measurement annotations with very thick borders. (#36784)

  • Changed

    Changes the description of FileDataProvider PDFDocumentProvider to omit the file path to increase privacy in logging and crash reports. Only a hash will be shown. To see the file path for debugging, use FileDataProvider.debugDescription instead. (#40440)

  • Changed

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

  • Fixed

    Fixes XFDF annotations loaded on a rotated page getting embedded incorrectly in a shared document. (#30616, #27884)

  • Fixed

    Fixes a crash on iOS 14 when initializing licensing. (#40363)

  • Fixed

    Fixes a crash that occurred when using Processor with a document with a custom AnnotationProvider that doesn’t subclass PDFContainerAnnotationProvider. (#39630)

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes a rare crash when loading a PDF using Instant. (#40419)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes incorrect bounding box of exported Instant JSON from existing annotations in a document with multiple data providers. (#40070)

  • Fixed

    Fixes PSPDFKit crashing when a license key was not set instead of running in evaluation mode. As a result of this, PSPDFKit may be stricter about requiring that the license key is set before any other PSPDFKit API is called. (#40470)

  • Fixed

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

Instant

  • Changed

    Disables InstantViewController’s printButtonItem, messageButtonItem and emailButtonItem because sharing/exporting is not supported with Instant. (#39630)

Examples

  • Removed

    Removes TextSelectionMenuExample as the “Search Web” action is now part of the default menu. (#37123)

12.2.0 - 18 Apr 2023

  • API

    Removes all APIs that were deprecated between PSPDFKit 11.0 and PSPDFKit 11.3. See the migration guide for more details. (#39903)

PSPDFKitUI

  • Added

    Adds default annotation toolbar configurations with 5, 7, 9, 11, 12, 13, and 14 groups to make better use of a range of screen sizes by not collapsing so many tools into groups. The 13 and 14 group configurations are only available if the Measurement Tools feature is enabled in the license. (#39608)

  • Changed

    Improves font auto-sizing behavior in multiline form fields. (#39267)

  • Changed

    Improves the consistency of ordering of the tools in the annotation toolbar between various configurations. (#39608)

  • Changed

    Changes the annotation toolbar to show menus even for groups with a single tool to improve discoverability (because the menu shows the tool name). (#39607)

  • Changed

    Changes the default annotation toolbar configuration when Measurement Tools are enabled to avoid grouping drawing and erasing tools when there is space for 8 or 10 groups. (#39510)

  • Fixed

    Fixes DocumentSharingViewController not calling its didCancelSharingAt delegate method when sharing at the destination view controller is canceled. (#39867)

  • Fixed

    Fixes a regression that disabled pointer effects for text and annotations when using iPad with mouse or trackpad. (#39834)

  • Fixed

    Fixes content offset flickering that happened when editing multi-line form fields after zooming in. (#36018)

  • Fixed

    Fixes crashes that could occur when saving after deleting pages in the document editor. (#37325)

  • Fixed

    Fixes crashes that could occur when saving after deleting, duplicating, or rotating pages in the document editor. (#24718)

  • Fixed

    Fixes form editing in night mode using colors that were not adapted for night mode. (#32256)

  • Fixed

    Fixes multiline text form fields with a small height being incorrectly treated as single-line fields while editing. (#37758)

  • Fixed

    Fixes the zoom of the page view resetting on changing the appearance mode. (#37719)

  • Fixed

    Fixes vertical scrubber bar reducing horizontal document view size. (#38118)

PSPDFKit

  • API

    Renames FileManager protocol to FileManagerProtocol so that it doesn’t clash with Foundation’s FileManager class. (#39815)

  • Removed

    Deprecates PDFCache.StoragePolicy as it was no longer being used in the SDK. (#39928)

  • Added

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

  • Changed

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

  • Changed

    Improves the display of the annotation summary sharing option by using larger margins in the resulting document. (#38773)

  • Changed

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

  • Fixed

    Fixes a crash due to a potential race condition when undoing or redoing changes to free text annotations backed by XFDF providers. (#39594)

  • Fixed

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

  • Fixed

    Fixes an exception that occurred when the progress of a data provider outlived the data provider and was used again. For example, when opening an Instant document being downloaded, then closing and reopening that same document before the download finished. (#36369)

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes night mode rendering for form elements, underline, squiggle, strikethrough, and redaction annotation. (#32256)

  • Fixed

    Fixes warnings that occurred when unarchiving annotations with the fontAttributes set. (#39503)

Instant

  • Added

    Adds the ability to change text markup annotation type using context menus. (#39063)

Examples

  • Added

    Adds a Catalog example showing side-by-side tools for creating straight rectangles and cloudy rectangles by setting up a custom tool variant. (Z#35363)

  • Fixed

    Fixes the bottom-right knob missing in SelectionKnobsExample in the Catalog app. (#39463)

12.1.3 - 16 Mar 2023

PSPDFKitUI

  • Changed

    Improves the interactivity of the page range picker in the document sharing options on iOS 14 and 15. (#38586)

  • Changed

    Improves Dynamic Type support in the document sharing options (PDFDocumentSharingViewController). (#38997)

  • Fixed

    Fixes annotation edits sometimes being lost when changing pages via the outline or bookmarks when using a custom annotation provider. (#34786)

  • Fixed

    Fixes an assertion about a negative offset while laying out zero-sized scrubber bin view. (#39114)

  • Fixed

    Fixes a crash when showing UIPickerView on Mac Catalyst (either in the document sharing options or in the annotation inspector for measurements) when using the Optimize for Mac interface setting. (#39344)

  • Fixed

    Fixes annotation and page range options incorrectly being shown in the document sharing options when sharing the original file. These options are not shown in the UI as they are ignored in this case. (#36951)

  • Changed

    Works around a system issue where using the eyedropper tool in the color picker could cause the system to freeze on iOS 16 by hiding the button. This has been submitted to Apple as Feedback FB12017635. (#38655)

PSPDFKit

  • Changed

    Changes the fallback font for free text annotations from the system font to Helvetica for better interoperability. (Z#35322)

  • Fixed

    Fixes incorrect bounding boxes in exported Instant JSON for annotations added to a document with multiple data providers. (#27635)

  • Fixed

    Fixes an issue where a background image was accidentally inverted when redacting certain PDF pages. (#39342)

  • Fixed

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

Instant

  • Fixed

    Fixes automatic sync retry not behaving as expected in the event of lost connections or network problems. (#38265)

Examples

  • Changed

    Updates RemoteDocumentURLExample to use a remote PDF URL that still exists. (#39339)

12.1.2 - 7 Mar 2023

PSPDFKitUI

  • Fixed

    Fixes the document state overlay not being added, which is used to unlock password-protected documents, show loading progress for remote documents, and show a message when the document is invalid or no document is set. (Z#35404)

12.1.1 - 1 Mar 2023

PSPDFKit

  • Fixed

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

12.1.0 - 17 Feb 2023

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

PSPDFKitUI

  • API

    Changes the subclass of PDFDocumentSharingViewController from PDFStaticTableViewController to UIViewController. (#36834)

  • Removed

    Deprecates the UIAction.Identifier.pspdfkit namespace alias in favour of directly using UIAction.Identifier.PSPDFKit. (#37897)

  • Added

    Adds the new Content Editor feature. This new component allows editing and changing the style of text on PDF pages. (#37583)

  • Added

    Adds delegate modifiers onDidShowUserInterface and onDidHideUserInterface for the SwiftUI PDFView. (#37885)

  • Changed

    Improves entering an annotation author name by showing the keyboard automatically. (#37875)

  • Changed

    Improves the UX of the undo/redo button in that annotation toolbar and document editor toolbar by showing a menu on tap instead of requiring a long press. (#35865)

  • Changed

    Improves the display of font names when picking a font variant within a family in the font picker used for free text annotations. (#38750)

  • Changed

    Changes the behavior of saving confirmation dialog for Document Editor to only appear when closing the document or switching to a different tab. (#38798)

  • Removed

    Removes the close button image (named “x”) from the asset catalog in favor of the system close bar button item. (#35415)

  • Changed

    Updates the UI of PDFDocumentSharingViewController giving a complete overhaul to flow of sharing documents. (#36834)

  • Fixed

    Fixes a crash that could occur when reloading the document in a view controller with a scrubber bar. (#38048)

  • Fixed

    Fixes a possible crash 'rotatableAnnotation.documentProvider' must exist when long pressing to select a stamp annotation if the annotation became detached from the document. (#38075)

  • Fixed

    Fixes adding scaled image annotations not working for images with 16 bits per component without alpha. Screenshots on some newer devices use this format. (#38607)

  • Fixed

    Fixes an issue where entering and exiting thumbnail view mode multiple times would produce duplicate thumbnail pages. (#31794)

  • Fixed

    Fixes an issue where incorrect menu items could have appeared in text fields after showing the text selection or annotation menu. (#26347)

  • Fixed

    Fixes an issue where the displayed document was not correctly updated while a text view was first responder when changing a document. (#38448)

  • Fixed

    Fixes an uncommon crash “Fatal error: Use of unimplemented initializer init(layer:) for class PSPDFKitUI.PeekLayer”. (#37923)

  • Fixed

    Fixes flexible toolbar borders not being pixel aligned in the .top and .inTopBar positions. (#37995)

  • Fixed

    Fixes flexible toolbars not showing a top border when in the .top position (so there was no separator between the navigation bar or tabbed bar and the flexible toolbar). (#37995)

  • Fixed

    Fixes presentation methods for the annotation inspector, comments and color picker view controllers not being available in Objective-C. This fixes the warning “Parameter ‘annotations’ is already documented”. (#37869)

  • Fixed

    Fixes thumbnails in the link annotation editor being missing for password protected documents. (#38313)

  • Fixed

    Fixes thumbnails in the link annotation editor not having accessibility labels. (#38313)

PSPDFKit

  • API

    Changes the version of generated Instant JSON from 1 to 2. Instant JSON version 2 is not compatible with previous versions of PSPDFKit. This version of PSPDFKit and later can import both Instant JSON version 1 and 2. To generate version 1 again, use the new API added in PSPDFKit 12.3.1.

  • Removed

    Deprecates PDFSignatureInfo.byteRange and PDFDocumentProvider.hashDocumentProviderRange(_:hashAlgorithm:) in favor of the new APIs PDFSignatureInfo.byteRanges and PDFDocumentProvider.hashOfData(inRanges:algorithm:), which use IndexSet for better interoperability. (#36879)

  • Removed

    Deprecates PKCS7.create(_:privateKey:certificate:hashAlgorithm:encryptionAlgorithm:) in favor of the new PKCS7.init(digest:type:privateKey:certificate:hashAlgorithm:encryptionAlgorithm:). (#35616)

  • Added

    Adds PKCS7.init(digest:type:privateKey:certificate:hashAlgorithm:encryptionAlgorithm:) to create CMS or PAdES-compatible digital signatures. (#35616)

  • Added

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

  • Changed

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

  • Changed

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

  • Changed

    Improves text parsing and text selection. (#38089)

  • Changed

    Text markup annotations will now be consistently rendered underneath annotations of other types. (#36279)

  • Changed

    Update libexpat to version 2.5.0. (#37257)

  • Changed

    Updates Harfbuzz to 6.0.0. (#38024)

  • Fixed

    Fixes isResizable returning true incorrectly in some cases for free text annotations and ink annotations. (#35280)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes some cases where FreeTextAnnotationView’s endEditing would be called multiple times when ending editing. (#37455)

  • Fixed

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

  • Fixed

    Fixes the annotation tools creating annotations with default properties (resulting in them being blue) after the app was terminated within 5 seconds of a fresh installation or an update that changed default annotation styles. (#28351)

Examples

  • Added

    Adds a new Catalog example, MultipleSharingDestinationsExample.swift, to demonstrate setting up multiple destinations for sharing a document. (#36834)

  • Changed

    Improves the Measurement Tools example by showing the measurement tools more prominently. (#35876)

  • Changed

    Catalog search now searches across Example class names. (#36346)

  • Changed

    Changes TabbedBarExample to use documents at writable locations. (#38891)

  • Changed

    Opening PDFs in Catalog and the Open In Catalog example now show more buttons by using AdaptivePDFViewController. (#37938)

  • Changed

    Updates CustomThumbnailViewControllerFilterExample to return a nil NSProgress when using custom filtering. (#31794)

  • Fixed

    Fixes a crash when closing the Floating Stamps example in the Catalog app due to the annotation subclass not overriding supportsSecureCoding. (#37985)

  • Fixed

    Fixes a memory management issue in AsynchronousExternalDigitalSignatureExample. (#38057)

12.0.3 - 23 Jan 2023

PSPDFKit

  • Changed

    Potentially fixes a crash that could happen on iOS 14 when initializing the framework. (#36093)

12.0.2 - 30 Nov 2022

PSPDFKitUI

  • Changed

    Improves the “Current Page” option when sharing/exporting a document by using the first page of the spread in the center of the viewport instead of the first visible page. (#35386)

  • Changed

    Improves page changes using actions (e.g. links) when using the curl page transition by animating even when the destination is more than 5 pages away. (#37623)

  • Changed

    Moves the actions for changing color and opacity of text markup annotations to the top-level menu. (#37706)

  • Fixed

    Fixes page changes using actions (e.g. links) not being animated when the destination page has a lower page index than the current page (as long as the destination is not more than 5 pages away from the current page in which case animations are deliberately not enabled). (#37623)

  • Fixed

    Fixes rectangular and elliptical area measurement annotations incorrectly showing their measurement label while selected when the annotation was sized at the threshold of having enough space to fit the label. (#37693)

  • Fixed

    Fixes a crash “Requesting note style view height before view has a usable size” that would occur if the notes/comments UI appeared while the keyboard was already visible. (#37448)

  • Fixed

    Fixes a crash when dropping multiple PDF documents/pages into the document editor UI. (#36532)

PSPDFKit

  • Fixed

    Fixes the measurement annotation note icon visibility not being updated after changing the line thickness. (#36718)

  • Fixed

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

Instant

  • Fixed

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

12.0.1 - 3 Nov 2022

PSPDFKit now requires and is built with Xcode 14.1.

PSPDFKitUI

  • Fixed

    Fixes a regression where the annotation creation menu would sometimes be presented when trying to select text. (#37114)

  • Fixed

    Fixes an issue where thumbnails would be highlighted in double page mode incorrectly on Mac Catalyst. (#34205)

  • Fixed

    Fixes drag-and-drop interrupting selecting text when dragging extremely quickly with a pointing device on iPad and Mac. (#37189)

  • Fixed

    Fixes presentation methods for the annotation inspector, comments and color picker view controllers not being available in Objective-C. (#37121)

  • Fixed

    Fixes presenting popovers from bar button items in Mac Catalyst apps on macOS Ventura. (#37108)

  • Fixed

    Fixes selecting a clear fill color from the annotation inspector using a black fill instead on Mac Catalyst. (#37050)

  • Fixed

    Fixes text and annotations not being deselected when the annotation creation menu is presented. (#37114)

PSPDFKit

  • Added

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

Examples

  • Fixed

    Fixes an issue where note annotation would be created on a wrong page in double page mode in CreateNoteFromTextSelectionExample. (#37116)

12.0.0 - 18 Oct 2022

See the announcement post.

PSPDFKit now requires and is built with Xcode 14. Bitcode support has been removed, as it’s now deprecated and App Store Connect no longer accepts app submissions that contain it.

PSPDFKit 12 includes a new, modern menu system for annotation creation and selection menu. To learn more about the new menu customization APIs, check out our migration guide for this release.

PSPDFKitUI

  • API

    Adds new UIMenu-based API for customizing the annotation creation and selection menus, which replaces the existing UIMenuItem-based API. Please see the migration guide for more details. (#26133, #35895)

  • Removed

    Deprecates the PDFPageView.passthroughViewsForPopoverController property. Use the .popoverPassthroughViews presentation option when presenting view controllers instead. (#35895)

  • Removed

    Deprecates the PDFPageView.select(_:animated:) method. Use select(annotations:presentMenu:animated:) or focus(formElement:toggleValue:animated:) instead. (#35895)

  • Removed

    Deprecates the PDFPageView.showColorPicker(for:animated:) method. Use presentColorPicker(for:property:options:animated:completion:) instead. (#35895)

  • Removed

    Deprecates the PDFPageView.showFontPicker(for:animated:) method. Use presentFontPicker(for:options:animated:completion:) instead. (#35895)

  • Removed

    Deprecates the PDFPageView.showInspector(for:options:animated:) method. Use presentInspector(for:options:animated:completion:) instead. (#35895)

  • Removed

    Deprecates the PDFPageView.showLinkPreviewActionSheet(for:from:animated:) method. Use presentLinkActionSheet(for:options:animated:completion:) instead. (#35895)

  • Removed

    Deprecates the PDFPageView.showNoteController(for:animated:) method. Use presentComments(for:options:animated:completion:) instead. (#35895)

  • Removed

    Deprecates the PDFPageView.useAnnotationInspector(for:) method. Use canPresentInspector(for:) instead. (#35895)

  • Removed

    Removes automatic user name suggestion starting with iOS 16, and Mac Catalyst on macOS Ventura. Therefore UsernameHelper.defaultAnnotationUsername and the String parameter in the completion block of UsernameHelper.ask(forDefaultAnnotationUsernameIfNeeded:completionBlock:) has been made nullable. (#35025)

  • Removed

    Removes the “pt” option from the annotation inspector UI for real world distances for measurement annotations. (#36014)

  • Added

    Adds delegate modifiers onDidConfigurePageView and onDidCleanupPageView for the SwiftUI PDFView. (#36470)

  • Changed

    Modernizes the annotation creation and selection menus to use UIEditMenuInteraction with support for context menus on iOS 16 and later. (#26133, #35895)

  • Changed

    Improves the organization of annotation toolbar items for medium screen sizes. (#35778)

  • Changed

    Changes the design of NoteAnnotationViewController. It no longer adjusts its background color to the note annotation. (#35348)

  • Changed

    Updates the appearance of the UI to pick a note annotation’s icon and color for a cleaner, more modern look. (#35372)

  • Fixed

    Fixes FreeTextAnnotationView incorrectly trying to become the first responder while its underlying text view is being edited. (#35895)

  • Fixed

    Fixes a possible crash when adding image annotations. (#36970)

  • Fixed

    Fixes annotations being pasted on a wrong page when using the three-finger gesture or the ⌘V keyboard shortcut. (#23131)

  • Fixed

    Fixes changes to measurement calibration, scale and precision in the annotation inspector not being undoable. (#36780)

  • Fixed

    Fixes images not being shown in annotation creation and selection menus on iOS 16. (#35151)

  • Fixed

    Fixes link annotation views not resetting their background color when selecting and deselecting them programmatically. (#36428)

  • Fixed

    Fixes resolution of .automatic page mode when rotating the device, transitioning to different size classes and embedding a PDFViewController in custom containers. (#32344, #34230)

  • Fixed

    Fixes the annotation inspector not being presentable after merging ink annotations. (#22206)

  • Fixed

    Fixes the lack of visual indication for selected annotations that aren’t editable. (#25555)

  • Fixed

    Fixes the menu not being presentable and customizable for annotations that aren’t editable. (#16215)

  • Fixed

    Fixes unnecessary page render operations being scheduled when tapping on annotations that aren’t selectable. (#25555)

PSPDFKit

  • Removed

    Deprecates UnitTo.point for measurement annotations because PDF points aren’t a useful real world unit. (#36014)

  • Added

    Adds Hebrew localization. (#36047)

  • Added

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

  • Added

    Adds support for undoing changes of the measurement scale and precision properties. (#36780)

  • Changed

    Changes the behavior of LinkAnnotation.copyToClipboard() to copy the URL instead of copying the annotation object itself. (#36428)

  • Changed

    Updates PDFium to version c3451daffa0e96af95b856406668e6188cb139d0. (#36256)

  • Changed

    Updates libexpat to version 2.4.9. (#36612)

  • Changed

    Updates the HarfBuzz library to 5.2.0. (#36547)

  • Changed

    Updates the icons used for note annotations such that they are not clipped when rendered on a page. (#36013)

  • Fixed

    Fixes a license issue when importing annotations with measurement information via Instant JSON when the license doesn’t include the Measurement Tools feature. (#36660)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

Examples

  • Fixed

    Fixes the invalid signature errors in the EmebedContainedSignatureExample and EmebedContainedPadesSignatureExample examples. (#35616)

11.5.2 - 23 Sep 2022

PSPDFKitUI

  • Added

    Adds the set of changed properties in the userInfo dictionary of the .PSPDFAnnotationChanged notification that is sent whenever an annotation is appended while drawing. (#36433)

  • Fixed

    Fixes an issue where a custom ThumbnailFilterSegmentedControl class override might not be used if ThumbnailGridViewCell has also been overridden. (#36436)

PSPDFKit

  • Fixed

    Fixes a crash that occured while loading a document with measurement annotations if the Measurement Tools feature was not enabled in the license. (#36587)

11.5.1 - 11 Sep 2022

PSPDFKitUI

  • Changed

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

  • Fixed

    Fixes an issue where tapping form elements with GoTo actions would have no effect in documents without the form filling permission. (#36109)

PSPDFKit

  • Fixed

    Fixes a crash that could occur when resizing a free text annotation with empty contents. (#36326)

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where colored note annotations would be rendered as black in the saved PDF. (#36283)

11.5.0 - 8 Aug 2022

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

  • API

    Removes all API that was deprecated in PSPDFKit 10.5. Please see the migration guide for more details. (#35431, #35432, #35433)

PSPDFKitUI

  • API

    Changes the type of DocumentSharingConfiguration.applicationActivities from [Any] to [UIActivity] and changes the default value from an array containing just PSPDFActivityTypeOpenIn to an empty array. (#17178)

  • Removed

    Deprecates PSPDFActivityTypeOpenIn, which has been unused since PSPDFKit 9.3 for iOS because UIActivityViewController now includes “open in” functionality directly. (#17178)

  • Removed

    Deprecates the PDFConfiguration.scrollViewInsetAdjustment property because using it had no effect. (#16388)

  • Removed

    Deprecates the ScrubberBar.barTintColor and ScrubberBar.translucent legacy styling properties. Please use the modern ScrubberBar.standardAppearance and ScrubberBar.compactAppearance properties instead to style the scrubber bar. (#34914)

  • Added

    Adds the ability to view, create and edit measurement annotations: Distance, Perimeter, Polygon Area, Rectangle Area, and Ellipse Area. These tools are included in the annotation toolbar by default when the Measurement Tools component is enabled. (#35771)

  • Changed

    Improves the UI icons with a complete set of clearer and bolder new images. (#35289)

  • Changed

    Improves the appearance of the flexible toolbar, including the annotation and document editor toolbars, with a bolder and more rounded style. (#35148)

  • Changed

    Improves the appearance of the tabbed bar. This includes colors for the tab title, tab background, close button drawing, and document overview button. It no longer adjusts to the tint color. (#34866)

  • Changed

    Improves the appearance of the scrubber bar by changing to a slightly larger corner radius for smoother rounded corners, using its tintColor as the currently visible page’s thumbnail border color, and updating the default ScrubberBar.thumbnailBorderColor to a lighter and a darker shade of gray in light and dark mode respectively. (#34914)

  • Changed

    Improves the settings UI by presenting it in a sheet on iOS 15 and above, instead of in a popover. (#34479)

  • Changed

    Improves document layout calculations involving safe area insets for .scrollPerSpread and .scrollContinuous page transitions. (#12933)

  • Changed

    Improves the default annotation toolbar configurations on smaller iPads at the narrowest window size by avoiding automatic group collapsing. (#35148)

  • Changed

    Moves the Edit, Done, and Cancel buttons of PDFDocumentInfoViewController and PDFDocumentSecurityViewController from the navigation bar to the toolbar, and doesn’t show the close button anymore by default, when presented manually. (#34481)

  • Fixed

    Fixes an issue where arrows and line dashes of a line annotation would change in size after deselecting the created annotation. (#24816)

  • Fixed

    Fixes an issue where double-tapping to zoom out would sometimes scroll the document to a random page. (#30011)

  • Fixed

    Fixes an issue where performing undo or redo would scroll the document to the top of the visible page. (#14166)

  • Fixed

    Fixes an issue where updating the configuration of a PDFViewController would scroll the document to the top of the visible page. (#30921)

  • Fixed

    Fixes an issue with PDFDocumentInfoViewController and PDFDocumentSecurityViewController where their close button would not be disabled while in edit mode when presentation changes from popover to modal. (#34481)

  • Fixed

    Fixes document layout calculations involving additionalContentInsets and additionalScrollViewFrameInsets. (#34432, #13164)

  • Fixed

    Fixes documents getting zoomed out when their view state is restored in viewWillLayoutSubviews. (#22390)

  • Fixed

    Fixes memory leaks in DrawView and AnnotationToolbar. (#35655)

  • Fixed

    Fixes the smart zoom interaction not taking safe area insets into consideration. (#32452)

  • Fixed

    Fixes some colors not being correctly localized for accessibility. (#35599)

  • Fixed

    Fixes spread index calculation for .scrollContinuous page transition that could result in spreads being scrolled beyond expected content offset. (#13445, #33198)

  • Fixed

    Fixes spread views not using the correct page mode after rotating the device back and forth. (#34686)

PSPDFKit

  • API

    Renames the icon used for NoteAnnotation.annotationIcon to be same as the icon names for NoteAnnotation.renderAnnotationIcon in an effort to unify the icon sets used for these purposes. Please refer to the migration guide for the updated icon names. (#35289)

  • Added

    Adds MeasurementInfo, MeasurementScale, MeasurementAnnotation and extends LineAnnotation, PolyLineAnnotation, PolygonAnnotation, CircleAnnotation and SquareAnnotation with variants to handle distance, perimeter and area measurements. (#35771)

  • Changed

    Improves the icons for annotation rendering with a complete set of clearer and bolder new images. (#35289)

  • Changed

    Improves readability of log messages by not prefixing each message with function name and line number. (#34773)

  • Changed

    Updates boost to 1.79.0. (#34723)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes persistence of log messages with .info level by no longer marking them as volatile. (#34773)

  • Fixed

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

Examples

  • Added

    Adds MeasurementsExample which demonstrates support for various measurement annotations. (#35695)

  • Changed

    Changes the Catalog app’s navigation bar color to an opaque color. (#34964)

  • Changed

    Updates the accent color of the Catalog app in dark mode, giving it a fresh look. (#34576)

  • Fixed

    Fixes the internal locking of CustomAnnotationProviderExample, showing how to correctly subclass PDFContainerAnnotationProvider. (#35645)

11.4.1 - 14 Jul 2022

PSPDFKit now requires and is built with Xcode 13.4.1.

PSPDFKitUI

  • Fixed

    Fixes various activity indicator views (spinners) not being visible against some backgrounds (mostly in dark mode). (#34970)

PSPDFKit

  • Fixed

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

  • Fixed

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

  • Fixed

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

11.4.0 - 30 May 2022

See the announcement post.

  • API

    Removes all API that was deprecated between PSPDFKit 9.1 and PSPDFKit 10.4. Please see the migration guide for more details. (#33874)

In preparation for iOS 16, this version of PSPDFKit drops support for iOS 13. All devices that support iOS 13 also support iOS 14 and iOS 15. (#33871)

PSPDFKitUI

  • API

    Changes the superclass of ThumbnailFilterSegmentedControl from SegmentedControl to UISegmentedControl since SegmentedControl was deprecated and now removed. (#33874)

  • API

    Removes KeyPathReferenceWritable protocol which was an implementation detail that accidentally ended up as public API. (#33626)

  • API

    Removes UIHostingController.init(rootView:largeTitleDisplayMode:) initializer. Its implementation has been moved to PSPDFKit Catalog. (#33626)

  • API

    Removes View.customizeTextFieldOnAppear(customizeBlock:) function which was an implementation detail that accidentally ended up as public API. (#33626)

  • Added

    Adds SignatureCreationViewController.isSaveSignatureEnabled for checking whether the “Save Signature” toggle is enabled in the Electronic Signatures creation UI. Please refer to the DetachedSignatureCreationExample.swift to see how to use this API when presenting the Electronic Signatures creation UI manually. (#31445)

  • Added

    Adds SignatureCreationViewController.showSaveToggle for enabling showing and hiding of “Save Signature” toggle in the Electronic Signatures creation UI. Please refer to the DetachedSignatureCreationExample.swift to see how to use this API when presenting the Electronic Signatures creation UI manually. (#31445)

  • Added

    Adds SignatureCreationViewController.signatureAnnotation(forPageWith:) for creating an annotation from the Electronic Signatures creation UI. (#31445)

  • Added

    Adds a new DrawViewDelegate API protocol to observe the drawing interactions of the DrawView and to persist the annotation changes to a document. Please see the migration guide if you are using DrawView outside of PSPDFKit. (#31512)

  • Added

    Adds a new property, delegate, on DrawView of type DrawViewDelegate which can be set to observe the interactions with the DrawView only if the DrawView is presented outside of PSPDFKit. (#31512)

  • Changed

    Improves the appearance of selectable bar buttons by increasing the selection fill corner radius, fixing the selection fill being 1 point off vertically centred on the icon, and fixing the icon vertical alignment being off relative to other bar buttons by 1 pixel on @2x displays or 2 pixels on @3x displays. (#34458)

  • Fixed

    Fixes the eraser tool having no effect on an annotation until reactivation of the tool after erasing the annotation completely, undoing the erase, and then trying to erase it again. (#31512)

  • Fixed

    Fixes labels not appearing in the annotation inspector when two annotations are selected. (#34038)

  • Fixed

    Fixes the user interface view hiding again on showing it after changing pages on edge tap. (#32341)

PSPDFKit

  • API

    Changes the type of ImageDocument.supportedContentTypes from [String] to [UTType]. (#34427)

  • API

    Removes Dictionary.valueForKey(_:) function. Please use your own helper for accessing nested dictionary values. (#33626)

  • API

    Removes LogLevelMask option set in favor of the new LogLevel enum. (#33063)

  • API

    Removes String initializers with Annotation.Kind and Annotation.Tool argument types. Please use String(describing:) instead. (#33626)

  • API

    Removes UnfairLock class. Please use your own or system-provided locking mechanism instead. (#33626)

  • API

    Removes multiplication and division operators for CGSize. Please use your own helpers for geometry arithmetics. (#33626)

  • API

    Removes the conformance of Rotation to the ExpressibleByIntegerLiteral protocol. Please use the enum cases instead. (#33626)

  • API

    Renames PSPDFRenderDrawBlock to PDFRenderDrawBlock in Swift and removes the RenderDrawHandler type alias. (#33626)

  • Removed

    Deprecates FormElement.drawHighlight(in:options:multiply:). This method has not been used since at least PSPDFKit 10.2 for iOS and therefore accomplishes nothing. (#33975)

  • Removed

    Deprecates support for embedded YouTube and Vimeo videos (LinkAnnotation.Kind.youTube). Please load videos with direct sources or embed your own player view instead. (#34024)

  • Changed

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

  • Changed

    Changes MutableRenderRequest.document to a read-only property. If you need to request renders for many different documents, please create a new request for each document instead. (#33975)

  • Changed

    Changes the fallback from http to https for link annotations with a URL beginning with www. without a scheme. (#34567)

  • Changed

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

  • Fixed

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

  • Fixed

    Fixes font lookup causing a crash when fonts weren’t correctly initialized yet. (#33593)

  • Fixed

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

  • Fixed

    Fixes issues surrounding rendering Devanagari script. (#33753)

  • Fixed

    Fixes more problems when accessing a SQLite database concurrently. (#34027)

  • Fixed

    Fixes the persistence of images in widgets by properly populating appearanceCharacteristics.normalIcon. (#28950)

Examples

  • Added

    Adds DetachedSignatureCreationExample, a new Catalog example that demonstrates how to present the Electronic Signatures creation UI manually. (#31445)

  • Changed

    Updates SignAllPagesExample to support all signature modes i.e draw, image, and type for signing the document. (#31445)

11.3.2 - 10 May 2022

PSPDFKit now requires and is built with Xcode 13.3.1.

PSPDFKitUI

  • Fixed

    Fixes the scroll position not updating when a GoTo action leading to a nearby page is activated by the .mouseDown trigger when using the .scrollPerSpread page transition. (#33972)

  • Fixed

    Fixes actions for .mouseUp trigger events incorrectly being executed when the touch was lifted outside the target region. (#34320)

PSPDFKit

  • Added

    Adds trimBox and bleedBox properties to PDFPageInfo to read the corresponding rectangular regions from the PDF. (#33660)

  • Added

    Adds more robust input validation when calculating thumbnail sizes. (Z#31063)

  • Changed

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

  • Changed

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

  • Changed

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

  • Fixed

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

  • Fixed

    Fixes fitting size calculation when generating Instant JSON representations of free text annotations. (#34314)

11.3.1 - 6 Apr 2022

PSPDFKitUI

  • Fixed

    Fixes a crash when showing the color picker from a page view (not from the annotation inspector) on Mac Catalyst. (#33736)

PSPDFKit

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

Examples

  • Changed

    Updates the RemoteDocumentURLExample to use a valid URL of a PDF document for displaying. (#33732)

  • Fixed

    Fixes the TabbedBarExample to disable the close all tabs button (clear button) when no there are no document tabs open. (#33732)

11.3.0 - 16 Mar 2022

See the announcement post.

This release changes the persistance implementation of Saved Annotations. To learn more about this, check out our migration guide for this release. Please note that this release does not include any breaking changes.

PSPDFKitUI

  • Removed

    Deprecates ColorPickerFactory, ColorPalette, ColorPatch, ColorPatch.ColorSet and color picker customization in favor of using the system color picker. (#32488)

  • Added

    Adds PersistentAnnotationSetStore that stores saved annotations on disk and makes it the default store used in Saved Annotations list. (#30969)

  • Added

    Adds cloudy polygon annotation tool. (#32866)

  • Changed

    Improves performance of ink annotation drawing by optimizing the number of data points collected. (#23736)

  • Changed

    Changes the polygon annotation tool icon to a triangle. (#32866)

  • Changed

    Updates TextStampViewController to use the built-in color picker when available. (#32511)

  • Changed

    Updates the color picker for the annotation’s fill color with a dedicated button to select a transparent color. (#31580)

  • Fixed

    Fixes a crash occuring when expanding an outline item after the search bar was focused. (#33323)

  • Fixed

    Fixes a memory leak where the PageCurlViewController was not getting deallocated. (#31169)

  • Fixed

    Fixes a potential rare crash due to infinite layout recursion with BaseTableViewController. (#29638)

  • Fixed

    Fixes previously saved annotations disappearing on saving large annotations in the Saved Annotations list. (#30969)

  • Fixed

    Fixes page content offset issues when switching apps after editing a free text annotation. (#31424)

  • Fixed

    Fixes rendering screen annotations that have no associated asset by showing the appearance stream instead. (#29265)

  • Fixed

    Fixes text annotation bounding box calculations when dragging to prevent unnecessary line wrapping or text clipping. (#31688)

PSPDFKit

  • Removed

    Deprecates RenderOptions.drawAppearanceStream, as this property is no longer used. (#28528)

  • Removed

    Deprecates the annotationSets property in the AnnotationSetStore protocol. Use the new fetchAnnotationSets() and setAnnotationSets(_:) functions that offer improved error reporting. (#30969)

  • Removed

    Deprecates the shared property of the SavedAnnotationsViewController class. Use the more appropriately named sharedAnnotationStore property instead. This only affects Swift call sites. (#30969)

  • Added

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

  • Added

    Adds string representation to clipboard when copying a free text annotation in addition to annotation representation. (Z#30435)

  • Added

    Adds support for rendering watermark and custom annotations by showing the appearance stream. (#29992)

  • Changed

    Improves error reporting in some cases when PSPDFKit asserts (crashes) due to invalid configuration or API misuse. (#32157)

  • Changed

    Changes drawn signatures (ink signatures) to resize with their aspect ratio locked. Override shouldMaintainAspectRatio to alter this. (#32752)

  • Removed

    Removes public conformance of the Result type to CustomStringConvertible protocol. Please use the default description instead. (#30969)

  • Changed

    Updates Duktape to version 2.7.0. (#33161)

  • Changed

    Updates XMP toolkit to version 2022.02. (#32824)

  • Changed

    Updates libtiff to version 4.3.0. (#33050)

  • Changed

    Updates the HarfBuzz library to 3.2.0. (#32690)

  • Fixed

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

  • Fixed

    Fixes form fields with JavaScript formatting scripts which may be incorrectly formatted with thousands separators. (#32596)

  • Fixed

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

  • Fixed

    Fixes loading old trailer in PDFs with hybrid cross-reference tables which caused old information to be shown. (#32243)

  • Fixed

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

  • Fixed

    Fixes read-only signature fields sometimes incorrectly showing a “Sign” overlay. (#32310)

  • Fixed

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

Instant

Examples

  • Changed

    Updates a subset of sample documents with fresh look and contents. (#32349)

  • Fixed

    Fixes signatures appearing underneath the white background of the signature field in the PSPDFKit 11 QuickStart Guide in Adobe Acrobat. (#32247)

11.2.4 - 4 Mar 2022

PSPDFKit

  • Changed

    Updates libexpat to 2.4.6. (#33300)

11.2.3 - 23 Feb 2022

PSPDFKitUI

  • Changed

    Improves support for right edge page bindings by advancing in the expected direction when tapping on the left or right edge. (#24478)

  • Fixed

    Fixes a crash when animated GIFs are used in a gallery on a document page. (#33003)

  • Fixed

    Fixes an issue where overlapping text markup annotations might not merge properly. This could result in darker highlights in certain areas. (#32963)

  • Fixed

    Fixes clipped labels in the annotation list when using a right-to-left layout direction. (#33153)

PSPDFKit

  • Added

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

  • Changed

    Updates STB to 2.27. (#32326)

  • Fixed

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

  • Fixed

    Fixes the Sign overlay of unsigned signatures incorrectly appearing in some situations. (#32310)

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes a crash when deserializing image annotations from Instant JSON that reference incompatible existing annotations from the PDF. (Z#28946, #32861)

11.2.2 - 8 Feb 2022

PSPDFKit

  • Changed

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

  • Fixed

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

11.2.1 - 26 Jan 2022

PSPDFKit now requires and is built with Xcode 13.2.1.

PSPDFKitUI

  • Changed

    Improves VoiceOver accessibility by automatically focusing the relevant paragraph or annotation on the page after selecting a search result. (#31191)

  • Changed

    Changes the behavior of the thumbnail bar when double page layout is used by centering the whole spread instead of the first page of the spread when selected. (#32313)

  • Fixed

    Fixes a crash when closing the last document in PDFTabbedViewController using the overview list (MultiDocumentListController). (#32472)

  • Fixed

    Fixes the older signatures UI not storing a signature with an attached certificate despite “Store Signature” being selected when not signing in an existing signature form element. (#32540)

  • Fixed

    Fixes the behavior of highlight annotations on paragraphs with narrow line spacing: The accuracy of markedUpString has been improved so characters from the previous line are no longer falsely captured in common scenarios. (#32170)

PSPDFKit

  • Added

    Adds the ability to remove an image set on a button form element by setting the appearanceCharacteristics or its normalIcon property to nil. (#28949)

  • Fixed

    Fixes objects being rendered with the wrong color due to non-compliant color values. (#30102)

Examples

  • Fixed

    Fixes a crash occurring while trying to dismissing an Instant example displaying another controller modally or in a popover. (#32542)

11.2.0 - 11 Jan 2022

This release adds Instant Collaboration Permissions. Be sure to check out our Collaboration Permissions guide for more information.

See the announcement post.

PSPDFKitUI

  • Added

    Adds a magnifying glass when selecting text that matches the system behavior on iOS 15. (#31426)

  • Removed

    Removes the “Add to Photos” share destination on Mac Catalyst because of a system issue that disables almost all buttons and menu items when this destination is chosen. (FB9727325) (#31320)

  • Fixed

    Fixes an accessibility issue where the clear buttons in the Document Info view controller would not scale with Dynamic Type. (#31955)

  • Fixed

    Fixes an issue where custom views added to the page view’s hierarchy would not be accessible despite being accessibility elements. (#31715)

  • Fixed

    Fixes an issue where page thumbnails would sometimes be scaled down using an incorrect aspect ratio. (#32108)

  • Fixed

    Fixes an issue where the annotation toolbar might be incorrectly positioned after hiding the annotation inspector half-modal. (#31704)

  • Fixed

    Fixes an issue where the first thumbnail in the thumbnail bar would be partially invisible when PDFViewController appears for the first time. (#32308)

  • Fixed

    Fixes an issue where the image editor didn’t correctly crop pictures when zooming or rotating them. (#31676)

  • Fixed

    Fixes an issue where the thumbnail selection highlight for the current page would not be rendered correctly when using automatic page mode. (#32300)

  • Fixed

    Fixes inconsistent rendering when selecting colors from the extended P3 color space in the annotation inspector. (#31967)

  • Fixed

    Fixes the Electronic Signatures UI navigation bar not picking up title attributes set using UIAppearance. This fix only applies on iOS 15 and later. (Z#27959)

PSPDFKit

  • Added

    Adds methods on PDFCache to remove cached images using a document UID to avoid the need to create a Document object. (#29557)

  • Changed

    Improves rendering performance for pages with large numbers of annotations that are either partially transparent or have a non-normal blend mode. (#31319)

  • Changed

    Changes the behavior of Annotation.isOverlay such that assigning a new value no longer updates Annotation.lastModified. (#32352)

  • Removed

    Removes references to the macOS version from the public headers. (#30386)

  • Changed

    Updates the HarfBuzz library to 3.1.0. (#31771)

  • Fixed

    Fixes PDFNewPageViewController reporting a PDFNewPageConfiguration with a PageTemplate of .blank instead of .image when the user picks an image as the page background. There is no difference in behavior, just a change in the value reported programmatically. (#32113)

  • Fixed

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

  • Fixed

    Fixes a potential deadlock when reading additional information from PDFLibrary in the completion handler of a library search query. (#27953)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

Instant

  • Added

    Adds support for Instant Collaboration Permissions. (#30090)

  • Fixed

    Fixes an issue where InstantClientDelegate methods were not called on performing actions using the InstantDocumentDescriptors returned by the InstantClient.localDocumentDescriptors API. (#31629)

Examples

  • Added

    Adds a new Instant example that allows granting users selective permissions for collaborating while using an Instant Document. (#31740)

  • Added

    Adds additional bar buttons in the Catalog Playground example on Mac Catalyst. (#31920)

  • Removed

    Removes 3 Objective-C examples (PSCDocumentPickerSidebarExample, PSCTabbedBarExample and PSCOpenInExample) in favor of their Swift equivalents. (#31852)

  • Removed

    Removes the language switcher from Catalog since all examples except one are now written in Swift. (#31852)

  • Changed

    Renames PSCPlaygroundExample to PSCObjectiveCExample. (#31852)

  • Fixed

    Fixes a crash occurring while trying to dismissing an Instant example displaying another controller modally or in a popover. (#32542)

  • Fixed

    Fixes some navigation bar buttons and titles being resized or truncated on smaller screen sizes in the Catalog industry examples. (#30814)

11.1.1 - 11 Nov 2021

PSPDFKitUI

  • Fixed

    Fixes the delete key on hardware keyboards being able to delete selected form checkboxes and radio buttons. (#31755)

  • Fixed

    Fixes applying a view state with an invalid viewport potentially leading to an assertion. (#30361)

  • Fixed

    Fixes an issue where refreshing pages could lead to an assertion in the thumbnail controller. (#30640)

  • Fixed

    Fixes an unexpected page sometimes being displayed after rotating an iPad when using the curl page transition. (#30599)

PSPDFKit

  • Fixed

    Fixes manual alignment for Document Comparison producing incorrect results for rotated pages. (#31681)

  • Fixed

    Fixes the appearance stream of unsigned signature fields not being rendered. (#31015)

  • Fixed

    Fixes some annotations not always rendering in the correct z-order. (#31671)

  • Fixed

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

Instant

  • Changed

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

  • Changed

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

11.1.0 - 26 Oct 2021

This release adds support for Mac Catalyst apps built for macOS 12 Monterey. See the announcement post.

PSPDFKit now requires and is built with Xcode 13.1.

This release updates the Document Comparison component with a new document alignment feature. If you’d like to add this component to your license, please contact our sales team to receive a quote.

PSPDFKitUI

  • Added

    Adds DocumentAlignmentViewController that can be used to align two versions of a document and generate a comparison between them. (#30106)

  • Added

    Adds the ability to create text markup annotations in the middle of words when using trackpad or mouse. (#30990)

  • Fixed

    Fixes an issue where certain colors picked using the system color picker could appear incorrectly. (#30101)

  • Fixed

    Fixes an issue where the image source picker popover for a form element would be misplaced after rotating the device. (#29036)

  • Fixed

    Fixes an issue where the note annotation popover would shrink too much when the software keyboard was visible. (#31074)

PSPDFKit

  • Added

    Adds ComparisonProcessor that can be used to generate a comparison between two versions of a document. (#30106)

  • Added

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

  • Removed

    Removes PSPDFVersion.h, which included the PSPDFVersionDummy class and preprocessor definitions for the current and previous PSPDFKit versions. We don’t anticipate any need for this file, but if you have one, please contact us. (#31315)

  • Changed

    Updates the FreeType library to version 2.11.0. (#30900)

  • Changed

    Updates the libjpeg-turbo library to version 2.2.1. (#30900)

  • Changed

    Updates the HarfBuzz library to version 3.0.0. (#31113)

  • Changed

    Updates the HarfBuzz library to version 2.9.1. (#30624)

  • Fixed

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

  • Fixed

    Fixes elevated memory consumption when encoding JPEG images. (#31205)

  • Fixed

    Fixes an issue due to a system regression in iOS 15 where calling ProcessInfo.processInfo.isLowPowerModeEnabled in response to a NSProcessInfoPowerStateDidChange notification could result in a deadlock. (#31180)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an assertion that would occur when the rotation property was removed from an annotation. (#31173)

Instant

  • Fixed

    Fixes an issue where calling copy() on an Instant-backed PDFDocument would raise an exception. (#31267)

  • Fixed

    Fixes an issue where the objects returned by InstantClient from localDocumentDescriptors() would not be updated properly. (#31367, Z#27576)

Examples

  • Changed

    Updates ComparisonExample to showcase the new document comparison and alignment features. (#30106)

  • Changed

    Updates the Minimal example to use UIScene-based app lifecycle. (#30767)

11.0.0 - 20 Sep 2021

This release adds support for iOS 15. See the announcement post.

PSPDFKit now requires and is built with Xcode 13.0.

PSPDFKitUI

  • Added

    Adds a colors property to SignatureViewController.Configuration to customize the available signature colors the user can pick from. (#29361)

  • Added

    Adds localized names for all recorded undoable commands. (#29454)

  • Added

    Adds support for transparent bar background changes on iOS 15 when PDFViewController is a direct child of a UINavigationController or a UITabBarController. For other view controller hierarchies, you should set your bar’s scrollEdgeAppearance to be the same as its standardAppearance. (#30749)

  • Added

    Adds an accessibilityIdentifier to all accessibility elements representing a FormElement. The accessibilityIdentifier matches the fullyQualifiedName of the corresponding form element — note that this will differ from the FQN of a form field to disambiguate the unique widgets of radio buttons, checkboxes, etc. (Z#27002)

  • Removed

    Removes the ⌘ ← key command to navigate back in PDFNavigationController when running on iOS 15+ because UIKit added its own ⌘ [ key command for this. (#30174)

  • Changed

    PDFNavigationController no longer sets a scrollEdgeAppearance, which means that the navigation bar has no background when scrolled to the top to match modern iOS design. (#30749)

  • Changed

    PDFViewController doesn’t try to become first responder when reloading on iOS 15+ since this is no longer necessary and can interfere with the UIKit focus system. (#30923)

  • Changed

    MultiDocumentViewController (the superclass of PDFTabbedViewController) can no longer become first responder because its child PDFViewController is a better candidate for first responder. (#30923)

  • Changed

    Updates UIKeyCommands provided by PSPDFKit to account for system changes in iOS 15. (#30174)

  • Fixed

    Fixes an issue where a page label in the document editor was not updated during drag and drop reordering. (#30752)

  • Fixed

    Fixes the UIViewController method addKeyCommands(_:) not working on PDFViewController and PDFTabbedViewController. (#30552)

  • Fixed

    Fixes PDFNavigationController potentially asserting about an invalid interface orientation when presented without any child view controllers. (#30424)

  • Fixed

    Fixes an issue where free text annotations were sometimes being clipped due to incorrect bounding box calculations. (#30649)

  • Fixed

    Fixes an issue where the user interface view would not become visible after editing an empty free text annotation or when using Scribble. (#30998)

PSPDFKit

  • Removed

    Deprecates the PSPDFKit.FileManager methods fileHandleForWriting(to:withBlock:) and fileHandle(forUpdating:withBlock:) because these are not called by PSPDFKit. (#229939)

  • Added

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

  • Changed

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

  • Changed

    Updates the HarfBuzz library to 2.8.2. (#30164)

  • Fixed

    Fixes various completion handler closures not being called in some cases. (#29846)

  • Fixed

    Fixes overlappingSignatureAnnotation sometimes not returning the correct result in annotations that are backed by an XFDF file or other types of custom annotation providers. (#28818)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes inaccessible files possibly being erroneously reported as corrupted. (#29556)

  • Fixed

    Fixes an out of bounds page index access that could occur during note annotation saving in multi-provider documents. (#30742)

  • Fixed

    Fixes annotations being rotated incorrectly when using a custom annotation provider and temporary rotation (setRotationOffset) and saving more than once. (#30730)

Examples

  • Fixed

    Fixes arrow key control not working in the Snake example. (#30552)

10.5.1 - 11 Aug 2021

PSPDFKitUI

  • Added

    Adds the clearOrDeleteAllAnnotations subclassing hook for AnnotationTableViewController. (#30183)

  • Added

    Adds an accessibility identifier to the page label. (#30158)

  • Changed

    Improves transition animations to and from the thumbnail view mode. (#30464)

  • Fixed

    Fixes a crash introduced in 10.5 that occurred when trying to search in the annotation list. (#30411)

  • Fixed

    Fixes an assertion failure that was hit when reloading the thumbnail controller before it was loaded. (#30384)

  • Fixed

    Fixes an issue where rotating the device after navigating to a specific page could result in a previously viewed page being shown. (#28561)

  • Fixed

    Fixes an issue where the search bar in SearchViewController could be scrolled past the visible area when there were no search results. (#29721)

PSPDFKit

  • API

    The PSPDFDocumentWillSaveAnnotationsNotification notification has been refined for Swift as Document.willSaveAnnotations. (#29518)

  • Changed

    Improves freetext annotation rendering across PSPDFKit platforms by honoring the isFitting attribute from Instant JSON. (#28719)

  • Fixed

    Fixes the page render disk cache not inheriting the file protection level of the cache directory and instead using the default protection level of the container as set in the entitlements file. This only applies to newly cached images. To ensure old cached images are not using an incorrect protection level, please either clear the disk cache or enumerate the contents of the cache directory and set the file protection level as desired. (#30430)

  • Fixed

    Fixes the PDF table of contents (outline) linking to the wrong page in certain documents. (#30070)

  • Fixed

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

  • Fixed

    Fixes XFDF annotations like lines without an explicit width attribute not being rendered. In these cases, PSPDFKit now mimics Acrobat’s behavior and implies a line width of 1 pt. (#30291, Z#25968)

  • Fixed

    Fixes fine-grained page reloading not always calling the correct document provider creation callback method. (#29518)

  • Fixed

    Fixes undoing removing an annotation resulting in the annotation being added at an incorrect page index when using a document with multiple document providers. (#30329)

Examples

  • Added

    Adds a new SwiftUI example that demonstrates how to display a custom annotation inspector. (#30099)

  • Added

    Adds support for fetching thumbnails from a remote source in the streaming document example. (#29518)

  • Added

    Adds support for external annotation sources and pageIndex-aware downloading in the streaming document example. (#29518)

10.5.0 - 5 Jul 2021

See the announcement post.

In preparation for iOS 15, this version of PSPDFKit now drops support for iOS 12. (#29669)

PSPDFKitUI

  • API

    Changes a property attribute of AnnotationStateManager.pencilInteraction from nullable to nonnull, since it will never be nil on iOS versions above 12.1. (#29985)

  • Removed

    Deprecates all API related to page grabber: PDFViewController.pageGrabberController, PageGrabber, PageGrabberView, PageGrabberController, PDFConfiguration.pageGrabberEnabled and PDFView.pageGrabberEnabled. These are no longer needed because the scroll indicator from UIScrollView supports dragging on iOS 13 and later. (#30004)

  • Removed

    Deprecates appearanceManager(_:applyAppearanceSettingsForMode:) and appearanceManager(_:updateConfiguration:forMode:) methods of AppearanceModeManagerDelegate since they are replaced by the overrideUserInterfaceStyle property on UIView and UIViewController on iOS 13 and later. (#29820)

  • Removed

    Deprecates tabBarStyle from PDFTabbedBar. (#29820)

  • Added

    Adds pageDescriptionProvider and selectedPagesDescriptionProvider properties on DocumentSharingConfiguration to enable customizing how pages are described in the sharing UI. See the new PageLabelsInSharingExample.swift example in the Catalog for details. (#27826)

  • Removed

    Removes full-page 3D Touch previews from AnnotationTableViewController, BookmarkViewController, OutlineViewController and SearchViewController. 3D Touch will now show a contextual menu instead. (#29892)

  • Changed

    Thumbnail grid cells now automatically scale images if a custom PDFPageCellImageLoading image loader is used that returns images that are too large. (#29518)

  • Fixed

    Fixes an issue where redoing the creation of ink annotations would sometimes result in them being rendered on top of each other. (#29800, #29829)

  • Fixed

    Fixes an issue where some of the UI elements presented a PDFViewController did not inherit its overrideUserInterfaceStyle. (#29870)

  • Fixed

    Fixes an issue where the context menu under the Additional Toolbar Buttons did not show up in certain cases. (#29835)

  • Fixed

    Fixes an issue where the undo and redo toolbar buttons would not be reliably updated in certain scenarios. (#29855)

  • Fixed

    Fixes choppy page scrolling that could occur in rare cases near the first or last page in continuous scrolling mode. (#29394)

  • Fixed

    Fixes an issue when picking images from the Photo Library asking for access to the camera, which would cause the image picker to fail the first time. (#29674)

  • Fixed

    Fixes the cells in the document editor having incorrect top inset when using the .top toolbar position and when the toolbar was not positioned exactly at the top of the PDFViewController’s view. (#29891)

PSPDFKit

  • Added

    Adds support for rendering pages with a transparent background. (#29867)

  • Changed

    Changes the scaling mode for button form element images to use aspect fit to prevent images from being clipped. (#17805)

  • Changed

    Refines performRead(_:), performWrite(_:) and performWriteAndWait(_:) methods of PDFContainerAnnotationProvider for Swift. (#29754)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where signing a document in some cases may fail without a specific error object. (Z#25217)

  • Fixed

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

  • Fixed

    Fixes an issue where undo and redo stacks would persist in an invalid state after saving changes in the Document Editor. (#29691)

  • Fixed

    Fixes an issue where undo and redo stacks would persist in an invalid state after setting a temporary page rotation offset. (#29924)

  • Fixed

    Fixes an issue where undoing and redoing changes made to annotations would not restore their previous custom appearance streams. (#19523)

Instant

  • Added

    Adds support for Instant Document Permissions. (#29983)

  • Added

    Adds support for the (optional) creator_name claim in JWTs: Documents managed by Instant now reflect this value in their defaultAnnotationUsername property, if it is encoded in the JWT. As a result, all annotations and comments locally created in this Document will report this value as their creator. (#29507)

  • Fixed

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

  • Fixed

    Fixes an issue where locally created Instant comment markers could end up appearing as regular note annotations. (#30010)

Examples

  • Fixed

    Fixes the unreachable URL for the document used in the DocumentProgressExample which led to the document not loading. (#29619)

10.4.2 - 11 Jun 2021

PSPDFKit

  • Changed

    Works around a system regression with font downloading on iOS versions between 14.0.0 and 14.4.2 by selectively disabling extended font choices and related lookup code. (#29779)

10.4.1 - 2 Jun 2021

PSPDFKit

  • Changed

    Improves the reliability of undoing annotation removal. (#29641)

  • Changed

    Improves the reliability of undoing changes made to text markup and sound annotations. (#29594)

  • Fixed

    Fixes a crash that could occur when undoing the addition or removal of annotations. (#29594)

  • Fixed

    Fixes a performance regression, most noticeable during drawing, introduced by overly verbose logging. (#29613)

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes a crash that could occur in some cases when undoing resizing an image annotation. (#29595)

  • Fixed

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

  • Fixed

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

Examples

  • Added

    Adds a new Catalog example that shows how to redact text using a regular expression. (#29528)

  • Fixed

    Fixes an issue in the InstantDocumentViewController where calls to present alerts were not on the main thread. (#29619)

10.4.0 - 20 May 2021

See the announcement post.

To learn more about the breaking changes introduced with the new APIs, check out our migration guide for this release.

PSPDFKitUI

  • Removed

    Deprecates annotationStyleController(_:willStartChangingProperty:) method of AnnotationStyleViewControllerDelegate protocol in favor of annotationStyleController(_:didBeginChangingProperty:). (#14301)

  • Removed

    Deprecates annotationStyleController(_:didEndChangingProperty:) method of AnnotationStyleViewControllerDelegate protocol in favor of annotationStyleController(_:didEndChangingProperty:affectedProperties:). (#14301)

  • Removed

    Deprecates the showAnnotationMenuAfterCreation configuration option. This functionality can be replicated by observing the PSPDFAnnotationsAdded notification and programmatically selecting the new annotation and showing the menu. (#29148)

  • Added

    Adds a canShowAnnotationReviews document feature, which may be used to disable viewing and editing annotation reviews (accepted, rejected, cancelled, or completed states) in the comments UI. (#28049)

  • Added

    Adds support for displaying annotation results in the PDFDocumentPickerController FTS search UI. (#28587)

  • Added

    Adds support for showing annotation reviews when annotation editing is disabled. (#28049)

  • Changed

    Improves accessibility in the Electronic Signatures UI (SignatureCreationViewController). (#28903)

  • Changed

    Improves license validation when programmatically creating SignatureCreationViewController or SignatureViewController. (#28798)

  • Changed

    Changes the handling of a nil text color when editing single line text fields in forms from using the system label color to using black. This fixes these fields being hard to read in dark mode. (Z#24073)

  • Changed

    The SwiftUI PDFView can now be initialized with a document object in addition to the existing document binding initializer. (#28723)

  • Fixed

    Fixes ContainerViewController showing empty segments if a child view controller implementing SegmentImageProviding provides a nil image. (#28952)

  • Fixed

    Fixes a crash when using the new Signature component on macOS Catalina. (#28878)

  • Fixed

    Fixes an issue where link preview action sheets were not shown if link annotations were not editable. (#29131)

  • Fixed

    Fixes an issue where setting a nil selectedFont in the FontPickerViewController would disable font selection. (Z#24686)

  • Fixed

    Fixes an issue where sometimes pages would be incorrectly changed when zooming out in continuous page transition. (#26777)

  • Fixed

    Fixes an issue where the Wikipedia inline popover would not show a title in the popover when running via Mac Catalyst. (#29014)

  • Fixed

    Fixes an issue where the optional Wikipedia inline popover would not always be placed exactly on the selected text. (#29014)

  • Fixed

    Fixes glitches when using the showAnnotationMenuAfterCreation configuration option with text markup, note, polygon, and polyline annotations. The menu will not be shown for these annotation types after creation. (#29148)

  • Fixed

    Fixes two Speak menu items being shown for selected text when the Speak Selection accessibility setting is enabled. Only the system menu item will be shown now. (#29169)

PSPDFKit

  • API

    Adds a new undo architecture, which replaces the existing UndoController API. Please refer to the migration guide for more details. (#14301)

  • API

    Removes the initializers of PDFCache, DiskCache, and MemoryCache because PSPDFKit handles creating these objects. (#24592)

  • Removed

    Deprecates the ButtonFormElement.ButtonFlag, TextFieldFormElement.TextFieldFlag, and ChoiceFormElement.ChoiceFlag option sets because they were not used. (#29395)

  • Added

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

  • Added

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

  • Changed

    Improves file coordination efficiency during saving. (#28770)

  • Changed

    Changes the licenseKey to be nullable. This initializes the SDK in trial mode. (#28211)

  • Changed

    The scrollable thumbnail bar now updates more efficiently when documents are streamed on-demand. (#28657)

  • Changed

    Updates FreeType to 2.10.4.179. (#28676)

  • Changed

    Updates HarfBuzz to 2.8.0. (#28598)

  • Changed

    Updates the Botan library to 2.18.0. (#29123)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue that caused annotation added via Instant JSON not being added to a document generated with the processor. (#29023)

  • Fixed

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

  • Fixed

    Fixes an issue where PSPDFFormField could not be subclassed and overridden. (#28955)

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes several small leaks of KVO related information through improved setup and handling. (#29026, Z#24171)

Examples

  • Added

    Adds a Catalog example, DisableAnnotationReviewsExample, which showing how annotation reviews can be disabled using Document Features. (#28049)

  • Added

    Adds a new Instant example demonstrating how to display different sets of annotations on a document using Instant Layers. (#28718)

  • Added

    Adds a new Instant example that shows two instances of the same document to simulate multiple users editing the document. (#28718)

  • Added

    Adds a SwiftUI version of the streaming document example. (#28723)

  • Changed

    Updates the PSPDFKit Instant example to directly open an Instant Document and moving the options to start a new session or join an existing session to the Collaborate menu in the example. (#28718)

10.3.0 - 30 Mar 2021

See the announcement post.

This release adds the Electronic Signatures and Instant Comments components. If you’d like to add either component to your license, please contact our sales team to receive a quote. To learn more about the breaking changes introduced with the new APIs, check out our migration guide for this release.

PSPDFKitUI

  • API

    Changes the type of PDFConfiguration.signatureStore property to be optional. Its default value is nil if you previously had no signature features or when using the new Electronic Signatures component. (#27404)

  • API

    All initializers of SearchViewController, except init(document:), are now marked unavailable to match the implementation. (#28169)

  • API

    SignatureStore protocol no longer requires implementing init(storeName:) and storeName. These requirements have been moved to KeychainSignatureStore. (#28092)

  • API

    KeychainSignatureStore may now be initialized without a storeName to use the default store name. (#28092)

  • API

    Removes UIHostingView class. Please use your own helpers for interoperability between SwiftUI and UIKit. (#28229)

  • Removed

    Deprecates SegmentedControl class. Please consider creating your own segmented control subclass. (#24801)

  • Added

    Adds PDFViewController.selectedAnnotations property to get or set the selected annotations inside a view controller. (#27878)

  • Added

    Adds signatureButtonItem property to PDFViewController that shows the signing UI. Requires the Electronic Signatures feature to be present in your license. This button is enabled by default when Electronic Signatures are enabled and Annotations are not enabled. (#27404)

  • Added

    Adds Annotation.Tool.iconImage(with:) function that can be used to get an icon for an annotation type. (#28023)

  • Added

    Adds additional actions to the SwiftUI ActionEvent publisher. (#28470)

  • Added

    Adds support for playing back audio from hidden video and audio annotations. (#27488)

  • Added

    Adds support for adding links to reading list when long-pressing on a link annotation in a Mac Catalyst app on macOS Big Sur. (#28236)

  • Added

    Adds spread index attributes to the spread change analytics event. (#26690)

  • Changed

    Improves various UI elements and interactions when “Optimized Interface for Mac” mode is enabled in a Mac Catalyst app. (#28023, #28140)

  • Changed

    Improves the default color presets for pen ink annotations. Variants that previously set a background color have been replaced with additional line color options. (#28147)

  • Changed

    Improves PDFDocumentSharingViewController by not calling documentSharingViewController(_:shouldSave:withOptions:) delegate method when the Document being saved has its annotationSaveMode set to .disabled. (#28432)

  • Changed

    Improves the user experience when switching sections in PDFDocumentSharingViewController by disabling the fade animation. (#28140)

  • Changed

    Some icons have been replaced with matching SF Symbols on iOS 13 and later. (#28149)

  • Changed

    Replaces the color picker with the system UIColorPickerViewController on iOS 14 and macOS Big Sur, where applicable. (#27772)

  • Changed

    The window subtitle is set to display the visible page range in a Mac Catalyst app on macOS Big Sur. (#28156)

  • Changed

    The tint color of toolbars is now set to .labelColor by default in a Mac Catalyst app. (#28112)

  • Changed

    The confirmation dialog is no longer shown when deleting a note annotation in a Mac Catalyst app. (#28142)

  • Changed

    View controllers that are not in the current view mode are now automatically removed from the hierarchy to improve performance. (#28158)

  • Added

    New page actions without a sender are now better handled by the Document Editor. (#28112)

  • Fixed

    Fixes a crash that would occur when panning a page while zoomed in using .curl page transition. (#26690)

  • Fixed

    Fixes SignatureViewController initialization to enable correct override behavior from Swift. (#28321)

  • Fixed

    Fixes an issue where removing an already deleted PDF file that was temporarily generated for sharing purposes would log a warning. (#28382)

  • Fixed

    Fixes an issue where an ink annotation could sometimes not be erased when zoomed in. (#26829)

  • Fixed

    Fixes an issue where PDFViewController would sometimes stop responding to touches after cancelling a sharing activity. (#28382)

  • Fixed

    Fixes an issue where the button for adding a reply was not disabled whilst editing an annotation reply. (#28342)

  • Fixed

    Fixes an issue where the search popover would not correctly resize in a Mac Catalyst app on macOS Big Sur. (#28312)

  • Fixed

    Fixes an issue where selecting multiple annotations would use reverse the order when sorting annotations. (#28311)

  • Fixed

    Fixes an issue where using PDFView in SwiftUI could trigger a runtime warning for state modification during view update. (#28444)

PSPDFKit

  • API

    DataProviding protocol has breaking changes to include error propagation on most access methods. (#28530)

  • API

    MenuItem.identifier must be set during initialization. The property is now read-only to reflect this design. (#28318)

  • Removed

    Deprecates SignatureContainer.init(annotation:signer:biometricProperties:) in favor of init(signatureAnnotation:signer:biometricProperties:) that supports image signatures with the new Electronic Signatures component. (#27404)

  • Removed

    Deprecates SignatureContainer.annotation property in favor of signatureAnnotation that supports image signatures with the new Electronic Signatures component. (#27404)

  • Added

    Adds StampAnnotation.isSignature property to support image signatures with the new Electronic Signatures component. (#27404)

  • Changed

    Logging now uses OSLog by default, which exports the log category next to the message for better filtering in the Console app on macOS. (#28386)

  • Changed

    Improves the support for sandboxed URLs that require strict security scope calls to be accessed. (#28530)

  • Changed

    Improves the saving experience in the Document Editor and Redaction components by displaying the system picker immediately if there are no other directory choices available. (#27948)

  • Changed

    Improves RGB color space conversion for annotation colors to make it more resilient to arbitrary input. (#27652)

  • Changed

    Improves file coordination when interacting with NSDocument in a Mac Catalyst app. (#28555)

  • Changed

    Serializing the standard document configuration now includes bookmark data that can be loaded in a sandboxed Mac Catalyst app. Make sure to set com.apple.security.files.bookmarks.document-scope in your Entitlements file so that macOS allows bookmark deserialization. (#28343)

  • Changed

    Updates FreeType to 2.10.4.106. (#27771)

  • Changed

    Updates libjpeg-turbo to 2.0.90. (#27771)

  • Fixed

    Fixes a regression where custom blend mode of an annotation would no longer be stored in the PDF when the annotation had the .invisible flag set. (#28422, Z#23418)

  • Fixed

    Fixes a performance regression when using RenderOptions.additionalCIFilters. When using the same set of filters with different input parameters, please refer to the documentation of this property for more details. (Z#23166)

  • Fixed

    Fixes an incorrect assertion in PDFViewController when setting documents that report progress. (Z#23132)

  • Fixed

    Fixes an issue when trying to export a redacted document twice with the same name. (#27948)

  • Fixed

    Fixes an issue when setting date and time in form fields that have JavaScript formatting. (#27939)

  • Fixed

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

  • Fixed

    Fixes an issue where deleting a note annotation could incorrectly cause an error message to be logged. (#28240)

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where dirty state was tracked incorrectly for certain annotation types. (#28289)

  • Fixed

    Fixes an issue where a path could be resolved incorrectly in a Mac Catalyst app if the bundle was located in a different folder. (#28383)

Instant

  • Added

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

Examples

  • Added

    Adds an example demonstrating how to programmatically add an image signature to a document. (#27404)

  • Added

    Adds an example demonstrating how to use a custom annotation toolbar in SwiftUI. (#28475)

  • Added

    Adds Mac Catalyst support to the SwiftUI Document Browser example project. (#28288)

  • Changed

    Improves PSPDFKit Catalog by converting remaining Objective-C examples to Swift and removing several outdated examples. (#28450)

  • Changed

    Updates SignAllPagesExample to use the new Electronic Signatures component. (#27404)

  • Removed

    Removes AccessDigitalSignatureBiometricPropertiesExample, AccessInkSignatureBiometricDataExample, FormInteractiveDigitalSigningExample, OnlyAllowDigitalSigningExample, and OnlyAllowInkSigningExample because the Electronic Signatures and Digital Signatures functionalities are now separated. (#27404)

  • Fixed

    Fixes an issue in DocumentInfoSidebarExample where leftBarButtonItems of the view controller in the sidebar were instead placed as rightBarButtonItems. (#28204)

10.2.1 - 18 Feb 2021

PSPDFKit now requires and is built with Xcode 12.4.

PSPDFKitUI

  • Changed

    The toolbar in NoteAnnotationViewController will no longer be hidden when typing comments on iPad. (#26771)

  • Fixed

    Fixes an issue where a document using XFDFAnnotationProvider did not contain the XFDF annotations when sharing. (#27498)

  • Fixed

    Fixes an issue where erasing an ink annotation in night rendering mode did not honor the adjusted annotation colors. (#24621)

  • Fixed

    Fixes automatic appearance matching between the main navigation bar and the annotation toolbar. (#27897)

  • Fixed

    Fixes the annotation toolbar not showing certain collapsed buttons on iOS 14. (#27719)

PSPDFKit

  • Added

    Adds Equatable and Hashable conformances to Annotation.State. (#28063)

  • Changed

    Improves the experience of rotating annotations by better detecting unsupported configurations. (#26703)

  • Changed

    Updates OpenJPEG to version 2.4.0. (#27917)

  • Fixed

    Fixes a regression where visibility flags of annotations were ignored. (#27996)

  • Fixed

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

  • Fixed

    Fixes an issue related to subclassing Document and order of designated initializer calls. (#27909)

  • Fixed

    Fixes an issue where Annotation.isDirty property would get reset incorrectly. (#26629)

Instant

  • Changed

    Improves error handling when resolving entries in an offline cache that has been tampered with. (#28005)

Examples

  • Added

    Adds an example demonstrating how to set custom delegates of view controllers presented in SwiftUI. (#27807)

  • Fixed

    Fixes an issue where our example projects could cause Xcode to crash when clicking on their Swift Packages tab. (#28099)

10.2.0 - 1 Feb 2021

See the announcement post.

PSPDFKitUI

  • Added

    Adds conformance to UIScreenshotServiceDelegate on PDFViewController. The view controller can be set as the delegate of a window scene’s screenshotService to allow the user to quickly export the current state of the document by taking a screenshot. (#27524)

  • Changed

    Improves text insertion point visibility for text annotations and form fields on Mac Catalyst. (#26615)

  • Changed

    Improves the UX when opening embedded files on Mac Catalyst by always showing the system QuickLook UI rather than an iOS-style modal. (#26890)

  • Changed

    Improves the user experience of repeatedly rotating the device when zoomed in on a page. Rotating the device no longer causes the page to zoom out. (#24004)

  • Changed

    Changes in selected annotations now animate in more cases. (#26893)

  • Changed

    Hides the brightness setting in SettingsViewController on Mac Catalyst because it has no effect on that platform. (#27651)

  • Changed

    The PDFViewController.barButtonItemsAlwaysEnabled array now includes the PDFViewController.closeButtonItem by default. (#27008)

  • Changed

    Various optimizations for the ‘Optimized for Mac’ Catalyst mode. (#27780)

  • Fixed

    Fixes an issue where arrow keys would navigate between pages instead of navigating the text cursor when editing text in Mac Catalyst. (#23095)

  • Fixed

    Fixes an issue where changing the type of a text markup annotation would delete its replies. (#26484)

  • Fixed

    Fixes an issue where printing a document didn’t work without Annotation Editing enabled. (#27613)

  • Fixed

    Fixes an issue where printing a password protected document via the print button would not work. (#27615)

  • Fixed

    Fixes crashing or other incorrect behavior that may occur when deleting comments (Annotation Replies) in a certain order on iOS 14. (#26356)

  • Fixed

    Fixes an issue where the loading screen for Reader View could flash white. (#24518)

  • Fixed

    Fixes an issue where the shadow of the floating scrubber bar was not hidden when switching to the docked scrubber bar. (#27577)

  • Fixed

    Fixes markup annotations being inadvertently auto-selected after creation. (#27344)

PSPDFKit

  • API

    Renames VerticalAlignment to Annotation.VerticalAlignment to not cause a name conflict with SwiftUI.VerticalAlignment. (#27585)

  • API

    Changes the Swift names of notifications posted by UndoController to match Swift conventions. (#27165)

  • Added

    Adds new URLDataProvider to allow Document to show files directly from a HTTP/HTTPS address. See the new RemoteDocumentURLExample.swift example in the Catalog for details. (#26711)

  • Added

    Adds a render option which allows changing the required form border color. (#26181)

  • Added

    Adds more diagnostic information details in user info of PDFSignerError. Note: The additional information is provided as a debugging aid. It is not localized and not meant for display to end-users. (Z#22316)

  • Added

    Adds new pointSequencesPublisher Combine publisher to DrawView to easily track changes on its pointSequences property. (#27591)

  • Added

    Adds new version of sqlite3 used in full text search. Upgrading from version 3.27.0 to 3.34.0. (#27459)

  • Added

    Adds support for parsing multiple certificates inside a single .pem file. (#26396)

  • Added

    Adds support for validating PAdES B digital signatures. (#25153)

  • Changed

    Reduces the memory required to load PDF documents by 15% to 35%, depending on the document. (#27182)

  • Changed

    Improves document editor validation by allowing editing for more document types and selectively disabling in-place saving when it’s not possible. (#26849)

  • Changed

    Improves font selection process for bold and italic fonts. (#26719)

  • Changed

    Improves how certificate expiration in digital signatures is handled. (#27047)

  • Changed

    Improves memory usage when LowMemoryMode is specified. (#27186)

  • Changed

    Improves responsiveness in documents with a large number of link annotations and PDF actions. (#24398)

  • Changed

    Improves simplified and traditional Chinese font selection. (#26674)

  • Changed

    Changes the annotation drawing model to only call Annotation.draw(context:,options:) when no appearance stream is drawn, and introduces Annotation.lockAndRender(in:,options:) which should be used in all cases where an annotation needs to be rendered. (#23269)

  • Changed

    Digital signatures will no longer show the PSPDFKit version number when inspected using third-party software. (#26183)

  • Changed

    Optimizes the document change process to decrease memory pressure if the main thread is blocked for a prolonged time via API that renders documents. (#26808)

  • Changed

    Updates Botan to 2.17.1. (#26794)

  • Changed

    Updates Botan to 2.17.3. (#27469)

  • Changed

    Updates Duktape to 2.6.0. (#26435)

  • Changed

    Updates Expat to 2.2.10. (#27472)

  • Changed

    Updates HarfBuzz to 2.7.4. (#27467)

  • Fixed

    Fixes a potential thread deadlock during simultaneous reading and saving in CoordinatedFileDataProvider. (#26901)

  • Fixed

    Fixes a problem where some DER-encoded signatures may not be validated correctly. (#25757)

  • Fixed

    Fixes a possible crash when the document editor modifies a file that is being rendered. (#26803)

  • Fixed

    Fixes an issue where a signature field may appear as unsigned even when an ink annotation is overlapping it. (#27126)

  • Fixed

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

  • Fixed

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

  • Fixed

    Fixes an issue where the annotation point Swift API overlay could not convert DrawingPoint structs. (#27061)

  • Fixed

    Fixes an issue where the note icon would not be displayed on markup annotations. (#27164)

  • Fixed

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

  • Fixed

    Fixes an issue with Free Text annotations which caused text to sometimes get cut-off when resizing using the bottom right knob. (#22483)

  • Fixed

    Fixes annotations parsed with XFDFParser not being saved when added to a document. (#27551)

  • Fixed

    Fixes discrepancies in annotation rendering between selected and deselected states, particularly in night mode. (#22923)

  • Fixed

    Fixes target annotation lookup for PDF actions. (#23845)

Instant

  • Changed

    Improves syncing of InstantDocumentDescriptor in InstantClient by tracking documents with failed authentications due to limited network connectivity. (#26418)

Examples

  • Added

    Adds new examples to PSPDFKit Catalog illustrating how PSPDFKit is used in various industries like e-learning, board meetings, magazines, e-readers, aviation, and construction. (#26590)

  • Added

    Adds Swift versions for several PSPDFKit Catalog examples. (#27745, #27748, #27749, #27750, #27753, #27756, #27758)

  • Changed

    Improves the PSCLockedAnnotationsExample.m to also work for programmatically selected annotations. Also adds Swift version of this example called LockedAnnotationsExample.swift.(#24972).

  • Added

    Added an example demonstrating how to customize the UI of forms in a PDF file. (#26078)

  • Fixed

    Fixes an issue in the Document Info Sidebar example where the search bar would not show up in the sidebar. (#26468)

10.1.2 - 6 Jan 2021

PSPDFKit now requires and is built with Xcode 12.3.

PSPDFKitUI

  • Fixed

    Fixes an issue where a grouped annotations did not show the delete menu item on selection. (#26344)

  • Fixed

    Fixes an issue where read-only or locked ink annotations could render incorrectly during attempted editing. (Z#22038)

  • Fixed

    Fixes an issue where where the PDFPageView would not render the image if its corresponding document’s render options had skipAnnotationArray set. (#27440)

  • Fixed

    Fixes scrolling to selected text form fields in continuous scroll mode. (#26465)

PSPDFKit

  • Changed

    Improves free text callout rendering by honoring stored appearance streams. (#27118)

  • Changed

    Improves document change process to decrease memory pressure if the main thread is blocked for a prolonged time via API that renders documents. (#27111)

  • Fixed

    Fixes an issue where blendMode was not set correctly for annotations loaded with legacy versions of the NSCoder format. (#27061)

  • Fixed

    Fixes an issue where paths could be overdrawn resulting in incorrect shapes. (#27330)

  • Fixed

    Fixes an issue where the annotation point Swift API overlay could not convert DrawingPoint structs. (#27061)

  • Fixed

    Fixes an issue where the appearance stream was incorrectly ignored for a stamp annotation with its subject property set. (#26598)

  • Fixed

    Fixes an issue where using the processor could cause a crash if memory runs out while processing complex documents. (#27253)

Examples

  • Changed

    Improves the contrast in dark mode for the author name label in Show Author Name On Annotation Selection PSPDFKit Catalog example. (#27191)

  • Fixed

    Fixes an issue with annotation selection in the Create Text Annotation When Tapping Whitespace PSPDFKit Catalog example. (#27200)

10.1.1 - 1 Dec 2020

PSPDFKitUI

  • Changed

    Improves Apple Pencil detection so it kicks in when using a text markup tool, as it did before PSPDFKit 9.5. (#26751)

  • Changed

    Improves PDFDocumentPickerController search UI and navigation bar handling. (#27016)

  • Changed

    Disables the UIKit focus system in PSPDFKit table views, which improves various behaviors on Mac Catalyst. (#26799)

  • Changed

    Hides the brightness slider from BrightnessViewController on Mac Catalyst because it has no affect on that platform. (#26910)

  • Fixed

    Fixes a memory leak in the download manager, used in the gallery view controller. (#26962)

  • Fixed

    Fixes a potential deadlock in the Document Editor component when saving was invoked while rendering pages is still ongoing. (#26896)

  • Fixed

    Fixes a potential race condition in the Document Editor if saving is invoked while pages are still rendering. (#26901)

  • Fixed

    Fixes an issue where modal galleries could not be presented with the .openSafari link action. (#27006)

PSPDFKit

  • Added

    Adds a workaround for a system bug in iPhone 12 mini which caused the height of the flexible toolbar to be calculated incorrectly. (#26432)

  • Changed

    The Swift initializer to PDFViewController now has a default value of nil for document. (#26898)

  • Changed

    Works around an issue where Xcode would run the iPad Air (4th gen) Simulator when running on Apple Silicon with an Intel slice in Rosetta 2 emulation instead of arm64. (FB8917095). (#27048)

  • Fixed

    Fixes a memory leak that occurred when clicking on a dropdown form element. (#26876)

  • Fixed

    Fixes a potential deadlock when rendering annotations and changing them on multiple threads. (#27088)

  • Fixed

    Fixes a potential deadlock with form elements under high-load situations. (#26895)

  • Fixed

    Fixes an issue when converting negative JavaScript numbers on arm64. (#27087)

  • Fixed

    Fixes an issue where background tasks were not always correctly ended. (#27005)

  • Fixed

    Fixes an issue where choice form elements might show a cached value on first change if the annotation backing store is an external file. (#26877)

Examples

  • Added

    Adds a Catalog example that adds a custom overlay views to the PDFPageView whenever a user selects an annotation. See ShowAuthorNameOnAnnotationSelectionExample.swift. (#26798)

  • Fixed

    Fixes a tap location issue in the Create Text Annotation When Tapping Whitespace example. (#27095)

10.1.0 - 11 Nov 2020

See the announcement post.

PSPDFKit now requires and is built with Xcode 12.2.

PSPDFKitUI

  • API

    Changes a subclassing hook of BookmarkViewController to not return a new cell. (#26287)

  • Removed

    Deprecates the PSPDFSafePreferredInterfaceOrientation function. (#25974)

  • Added

    Adds a pageIndexPublisher on PDFViewController to subscribe to page index change events. (#25993)s

  • Added

    Adds a new PDFView SwiftUI view that wraps a PDFViewController and conveniently exposes common configuration and delegate hooks. (#25856)

  • Added

    Adds a new PDFViewController.reloadPages(indexes:animated:) method to reload multiple pages in the view hierarchy at once. (#26350)

  • Added

    Adds a new documentPublisher property to PDFViewController to be notified about document changes. (#26513)

  • Added

    Adds the ability to update annotation views on page views after changing render options. (#26655)

  • Changed

    Improves Free Text callout annotation knee point placement during editing. (#25641)

  • Changed

    Improves annotation accessibility so it omits types not in the document’s renderAnnotationTypes. (#21627)

  • Changed

    Improves focus ring handling on Mac Catalyst. (#26360)

  • Changed

    Improves outline search performance. (#26661)

  • Changed

    Improves the scribble user experience and allows users to write anywhere on the page to create a new free text annotation. (#26272)

  • Changed

    Improves the web link editing UI (WebsiteLinkAnnotationEditingViewController) to allow adding custom URL schemes. (#26264)

  • Changed

    Improves trimming leading or trailing punctuation characters when using the Search or Define menu items for selected text. (#25895)

  • Changed

    The SearchViewController now automatically updates the current search after the document is saved to account for potentially removed content. (#26513)

  • Fixed

    Fixes a crash that would occur when attempting to scroll past the available spreads using page curl transition. (#26689)

  • Fixed

    Fixes an issue where PDFDocumentViewControllerDelegate calls were not being invoked under certain circumstances. (#26134)

  • Fixed

    Fixes an issue where link annotations and form elements would become highlighted when drawing. (#26498)

  • Fixed

    Fixes an issue where selecting and promptly dragging an annotation was not working. (#26370)

  • Fixed

    Fixes an issue where updating the line end of a callout annotation to none caused its bounding box to get calculated incorrectly. (#26294)

PSPDFKit

  • API

    Renames PSPDFDocumentCheckpointSavedNotificationSucessKey to PSPDFDocumentCheckpointSavedNotificationSuccessKey. (#26649)

  • Removed

    Deprecates the subFilter property of PDFSigner. Use the signatureType property instead. (#25051)

  • Added

    Adds a new reload(documentProviders:dataProviderOverride:) method to Document to reload a single document provider with optionally replacing the data provider as well. This is useful for a fine-grained document updating when compound documents are used. (#26350)

  • Added

    Adds new invalidation methods in PDFCache to invalidate multiple pages at once. The API has been renamed to reflect this and the old version has been deprecated. (#26350)

  • Changed

    Improves documentation for TextFormField.isComb. (#26598)

  • Changed

    Improves performance with path drawing by removing unnecessary path operations. (#25922)

  • Changed

    Improves rendering performance of documents with lots of image patterns. (#26186)

  • Added

    Adds new annotationChangePublisher to capture added, removed and changed annotation events. (#26105)

  • Changed

    Document now offers a savePublisher Combine publisher for save events. (#25963)

  • Changed

    Improves documentation of PDFLibrary notifications. (#26040)

  • Changed

    Replaces all instances of PSPDFValueTransformerName with the better suited NSValueTransformerName. (#26124)

  • Changed

    Updates the CocoaPods artifacts to support the standard Xcode 12 XCFramework format. (#26355)

  • Changed

    Document now conforms to the ObservableObject protocol. (#26105)

  • Changed

    OutlineElement and Annotation classes now conform to the Identifiable protocol. (#26109)

  • Fixed

    Fixes a problem where the signature reason, name or location may not appear correctly if they contain non-ASCII characters. (#26671)

  • Fixed

    Fixes an issue where partially redacted curved path objects may be misdrawn. (#26698)

  • Fixed

    Fixes annotation points and bounding boxes loading as zero when using the external file annotation save mode and calling setRotationOffset(_:forPageAt:) before annotations were loaded. Note that this API is intended for temporary rotations. We recommend using the Document Editor for persistent rotations. (#26639)

  • Fixed

    Fixes duplication of newly created pages in the Document Editor. (#26074)

Examples

  • Added

    Adds a new streaming document Catalog example (StreamingDocumentExample.swift) which highlights how a PDF file can be streamed page-by-page for faster display. (#26350)

  • Added

    Adds a new SwiftUIDocumentBrowser example to show integration of the DocumentBrowser and the new SwiftUI PDFView. Requires iOS 14. (#26114)

  • Added

    Adds a variety of new SwiftUI examples to the Catalog. (#26116)

  • Added

    Adds an example showing how to toggle visibility of annotations in a document. (#26655)

  • Added

    Adds an example demonstrating how to remove password protection from a document using the processor. (#26055)

10.0.3 - 2 Nov 2020

PSPDFKitUI

  • Added

    Adds a new cancelErase method on DrawView. (#24025)

  • Changed

    Improves displaying the print sheet on Mac Catalyst. (#26317)

  • Changed

    Improves draw view cleanup logic to prevent a possible rendering glitch while exiting drawing mode. (#26485)

  • Changed

    Improves the drawing experience with Apple Pencil by automatically dismissing visible annotation inspectors or note popovers when drawing begins. (#26257)

  • Changed

    Improves undo registration by not registering an undo action for subdivided ink annotation lines during erasing, if no points were actually removed. (#26296)

  • Changed

    The StatefulTableViewController now automatically removes unwanted implicit animations create from outside created auto layout constraints. (#26540)

  • Changed

    Works around FB8833942 which can cause a retain cycle when search is not dismissed in various view controllers. (#26645)

  • Changed

    Works around a regression (FB8865609) in iOS 14.2 where copy: is called multiple times by the accessibility system, slowing down adding and editing image annotations. (#26681)

  • Fixed

    Fixes an issue if background document JavaScript triggered an alert. (#26650)

  • Fixed

    Fixes an issue where an existing selected annotation would disappear on creating a new annotation with the PDFConfiguration.showAnnotationMenuAfterCreation option enabled. (#24953)

  • Fixed

    Fixes an issue where an ink annotation pasted from clipboard could not be erased using Apple Pencil. (#26224)

  • Fixed

    Fixes an issue where clearing the contents of a form field using a swipe action in the AnnotationTableViewController did not work. (#26364)

  • Fixed

    Fixes an issue where loading a document which hasn’t been loaded before could trigger an assertion in specific configurations. (#26670)

  • Fixed

    Fixes an issue where print parameters were not properly used when printing via a JavaScript print action. (#24821)

  • Fixed

    Fixes an issue where some specific image sizes could not be imported using ImagePickerController. (#26491)

  • Fixed

    Fixes an issue where the resizing the app window in split screen mode with a drawable annotation tool enabled would draw an annotation temporarily. (#24025)

  • Fixed

    Fixes entry of custom values for choice form elements on iOS 14. (#26330)

  • Fixed

    Fixes momentary presentation of accessory views when choice form elements are selected. (#26405)

PSPDFKit

  • Added

    Adds support for finding the correct form field type in non-conforming PDF files. (#26459)

  • Changed

    Improves performance for form elements with an extremely high number of associated annotations. (#26443)

  • Changed

    Improves the documentation for AnnotationManager.ChangeBehaviorKey.suppressNotifications. (#26431)

  • Fixed

    Fixes a problem where signing a document again after filling a form field may invalidate existing digital signatures. (#25637)

  • Fixed

    Fixes an assert that was triggered by malformed documents that contained fonts that were not indirect objects. (#26450)

  • Fixed

    Fixes an issue in the Document Editor when adding an item to a imported page. (#25837)

  • Fixed

    Fixes an issue where form calculation was triggered when setting an empty string on a form field that didn’t have a value. (#26345)

  • Fixed

    Fixes an issue where the note icon for markup annotations sometimes render farther than the marked up text. (#25740)

  • Fixed

    Fixes an issue where using additional filters for rendering the PDF pages could crash the app. (#25957)

  • Fixed

    Fixes rendering a wrong color if the color was using a ICC color profile and the color was out of bounds. (#26535)

  • Fixed

    Fixes setting the TextFormField properties isMultiLine, isPassword, isComb, doNotScroll, isRichText, doNotSpellCheck, and fileSelect and the ChoiceFormField properties isEdit, isMultiSelect, commitOnSelChange, and doNotSpellCheck to false not behaving as expected. (#25498)

  • Fixed

    Fixes text clipping for form fields exceeding their maxLen due to programatic changes. (#26340)

Examples

  • Added

    Adds a Catalog example that shows how to store annotations in JSON files for multiple users. (#26352)

  • Fixed

    Fixes errors in some Catalog examples when calling write(toFileURL:) on Processor with a URL where a file already exists. (#26588)

10.0.2 - 27 Oct 2020

PSPDFKit

  • Fixed

    Fixes CVE-2020-15999 in upstream dependency FreeType. (#26610)

10.0.1 - 7 Oct 2020

PSPDFKitUI

  • API

    The default value for SearchViewController.useOutlineForPageNames was changed from true to false since the option can lead to performance issues with certain complex documents. (#20924)

  • Changed

    Improves accuracy of grabbing text selection handles. (#26032)

  • Changed

    Improves compatibility with view controller initialization with a 3rd-party SDK that swizzles UIViewController.didMove(toParent:). (#26018)

  • Fixed

    Fixes a crash that would occur when changing pages using page curl transition. (#23068)

  • Fixed

    Fixes a retain cycle that could lead to documents not getting deallocated until their presenting PDFViewController got deallocated as well. (#26100)

  • Fixed

    Fixes an issue that could result in the annotation toolbar not correctly reflecting the selected annotation state when first appearing. (#25980)

  • Fixed

    Fixes an issue where scrolling a page while zoomed in was not possible when using page curl transition. (#26143)

  • Fixed

    Fixes an issue where the Additional Toolbar Items button in the annotation toolbar wouldn’t show all collapsed buttons. (#25929)

  • Fixed

    Fixes an issue where the button to decrease the count of new pages to add in the PDFNewPageViewController would get disabled if the count went over 99. (#26064)

  • Fixed

    Fixes view controllers presented full screen from the PDFViewController being dismissed immediately if the PDFViewController was inside a parent view controller such as PDFTabbedViewController. This was noticeable with the camera picker. (#25997)

PSPDFKit

  • Changed

    Improves outline parsing performance by lazy loading outline element actions on demand. (#20924)

  • Changed

    Improves performance loading some documents with broken internal links (named destinations). (#24398, #26099)

  • Changed

    Improves the documentation for Processor.Configuration.merge(item:onPage:). (#26199)

  • Fixed

    Fixes a crash in the AddFreeTextAnnotationProgrammaticallyExample in the Catalog sample project. (#25940)

  • Fixed

    Fixes a crash on preparing a form element for signing that has just been added to the document. (#25739)

  • Fixed

    Fixes an issue where OCR could not be performed on certain images due to an incorrect render scale. (#26118)

  • Fixed

    Fixes an issue where an app would crash on trying to load an embedded file in a PDF document created using multiple data providers. (#26023)

  • Fixed

    Fixes an issue where appearance streams weren’t re-generated when using the processor even though ‘NeedAppearances’ was set in the PDF. (#26123)

  • Fixed

    Fixes an issue where documents with high object numbers were identified as corrupt. (#26062)

  • Fixed

    Fixes an issue where the Simulator slice from CocoaPods XCFrameworks was incorrect. (#26198)

  • Fixed

    Fixes an issue where trying to convert Annotation.Kind to a String led to an infinite loop. (#25949)

  • Fixed

    Fixes an issue where warning messages were displayed in other readers when flattening a signature form field. (#25923)

  • Fixed

    Fixes form field JavaScript actions in the generated documents when merging two or more documents together. (#25603)

  • Fixed

    Fixes the PDF JavaScript function getNthFieldName to return the FQN of the form field. (#26144)

10.0.0 - 21 Sep 2020

See the announcement post.

PSPDFKit now requires and is built with Xcode 12.0.

PSPDFKit, Instant, and PSPDFKitOCR can now be integrated into your projects via Swift Package Manager. To learn more check out our new Swift Package Manager integration guide.

Xcode 12 automatically handles the dSYMs and BCSymbolMaps in XCFrameworks, therefore the strip-framework.sh script is no longer required. It will be removed in a future update. Please see our PSPDFKit 10 for iOS migration guide to learn about the appropriate migration strategy.

PSPDFKitUI

  • Added

    Adds accessibility elements for annotations on pages. (#21627)

  • Added

    Adds fine-grained VoiceOver accessibility support by making paragraphs on pages individual accessibility elements. (#21627)

  • Added

    Adds modern UIButton contextual menus on iOS 14 where appropriate. (#25001)

  • Added

    Adds showing the user’s name in the suggestions bar when entering the annotation username. (#25065)

  • Added

    Adds support for opening links in ReaderViewController. (#24301)

  • Added

    Adds the ability to select and copy text from additional fields on the document info UI. (#25513)

  • Added

    Adds tooltips to the annotation and document editor toolbar for Mac Catalyst. (#25716)

  • Added

    Adds support for modern text selection gestures on iOS 13 and later to more closely resemble the system style across all versions of iOS and Mac Catalyst. (#21012)

  • Changed

    Improves VoiceOver accessibility support when using the scroll per spread page transition by not automatically scrolling across pages when swiping left/right to change the focused element so that the behavior is more predictable. (#25693)

  • Changed

    Improves accessibility of the signature popup’s color buttons. (#21627)

  • Changed

    Improves automatic merging of highlight annotations with the same color. (#24636)

  • Changed

    Improves cell sizing and layout in AnnotationGridViewController (used for adding stamps and saved annotations). (#24820)

  • Changed

    Improves the behavior when adding the first document to PDFTabbedViewController using PDFTabbedViewController.addDocument(_ document:, makeVisible:, animated:). The shouldMakeDocumentVisible parameter will be ignored for the first document: The document will be visible even if the shouldMakeDocumentVisible parameter is false. (#24845)

  • Changed

    Improves the scrubber bar marker placeholder sizing. (#25520)

  • Changed

    Changes the sharing process to allow sharing the document when DocumentSharingConfiguration.AnnotationOptions.embed is selected and the document has its annotationSaveMode set to .disabled. (#23614)

  • Changed

    Various cell buttons use macOS buttons when using Catalyst in the new Optimized for Mac mode. (#24948)

  • Fixed

    Fixes a crash due to a system issue when scrolling in the annotation list while Voice Control is turned on. (#21627)

  • Fixed

    Fixes a crash that would occur on some iPad devices running iOS 14 when the app was backgrounded while the annotation tool inspector popover was visible. (#25067)

  • Fixed

    Fixes a crash when tapping the escape key on a hardware keyboard immediately after tapping the Define text selection menu item. (#25897)

  • Fixed

    Fixes an issue that resulted in the modal note UI being shown instead of the annotation menu when interacting with note annotations in certain size-class configurations. (#23543)

  • Fixed

    Fixes an issue where PDFViewControllerDelegate.pdfViewController(:shouldSave:withOptions:) was wrongly called even when the annotationSaveMode of the displayed Document in the PDFViewController was set to .disabled. (#23614)

  • Fixed

    Fixes an issue where a document would not be saved when a PDF controller was popped from a navigation stack in some cases on iOS 14. (#25168)

  • Fixed

    Fixes an issue where copying pages after duplicating pages more than once in the document editor could cause a crash. (#25667)

  • Fixed

    Fixes an issue where links couldn’t be opened when not using Safari as the default browser. (#25869)

  • Fixed

    Fixes an issue where opening NoteAnnotationViewController of any annotation would immediately mark that annotation as dirty. (#25023)

  • Fixed

    Fixes an issue where quickly switching between thumbnail view and document view would sometimes cause the document to become invisible. (#24428)

  • Fixed

    Fixes an issue where tapping on a bookmark in a BookmarkViewController presented by a PDFViewController in a UISplitViewController would dismiss all the presented controllers. (#25524)

  • Fixed

    Fixes an issue where tapping on a search result in a SearchViewController presented by a PDFViewController in a UISplitViewController would dismiss all the presented controllers. (#25816)

  • Fixed

    Fixes an issue where the annotation toolbar would not get tinted correctly when the navigation bar was hidden. (#24326)

  • Fixed

    Fixes an issue where unsaved changes of a document were not contained in the PDF document shared using a submit form action. (#23614)

  • Fixed

    Fixes an issue where variable-sized documents were laid out incorrectly. (#21703)

  • Fixed

    Fixes an issue with Vimeo integration via the gallery feature. (#24737)

  • Fixed

    Fixes issues with showing multiple document thumbnails in MultiDocumentViewController if thumbnailViewIncludesAllDocuments is set. (#24861)

  • Fixed

    Fixes superfluous cell selection highlights on the document info UI. (#25513)

  • Fixed

    Fixes the share sheet popover sometimes being positioned incorrectly when using the Share item in the text selection menu. (#25900)

PSPDFKit

  • Added

    Adds the ability to integrate PSPDFKit, Instant, and PSPDFKitOCR via Swift Package Manager. (#24590)

  • API

    The PSPDFIdentifiable protocol was unused and has been removed. (#25685)

  • Removed

    Deprecates DrawingPoint.isValid/PSPDFDrawingPointIsValid in favor of DrawingPoint.isFinite/PSPDFDrawingPointIsFinite. (#25078)

  • Added

    Adds a new .signatureOnly signature appearance setting to create a digital signature with a custom appearance. (#25143)

  • Added

    Adds support for PEM format PKCS#1 private keys for use with digital signatures. (#24919)

  • Added

    Adds the option to prepare a PAdES signature container with the “ETSI.CAdES.detached” signature sub-filter type. Signature must be created externally. (#24887)

  • Changed

    Improves OfficeConversionOperation API to wait for connectivity before trying to connect to the PSPDFKit Server for the file conversion operation. The converted file downloading task from the server times out after 120 seconds. (#25639)

  • Changed

    Improves font rendering in forms with Chinese, Japanese, Korean and Thai characters. (#24337)

  • Changed

    Improves log noise in the OCR Library by removing unnecessary log messages in release mode. (#25532)

  • Changed

    OCR now uses NEON and AVX intrinsics for better performance. (#24870)

  • Changed

    The byteRange property of the PDFSignatureInfo class has been refined for Swift. (#25143)

  • Changed

    Updates HarfBuzz to version 2.7.2. (#25717)

  • Fixed

    Fixes a crash that could happen when creating form fields. (#25806)

  • Fixed

    Fixes an issue where appearance streams of form field widgets weren’t preserved correctly. (#25550)

  • Fixed

    Fixes an issue where bezier paths were drawn incorrectly when a miter limit was set. (#25758)

  • Fixed

    Fixes an issue where form elements were included in the page rendering which shouldn’t have been. (#25799)

  • Fixed

    Fixes an issue where the digital signature advanced properties contained the signature creator twice. (#25611)

Examples

  • Added

    Adds description for the Local Network usage popup of the Instant-iOS-Example app. (#25639)

  • Added

    Adds Swift variants of the PSCGalleryExample and PSCCustomGalleryExample PSPDFKit Catalog examples. (#25072)

  • Added

    Adds a Catalog example showing how to show a PDFViewController alongside a modern sidebar containing the document info views. See DocumentInfoSidebarExample.swift. This example is a modern and improved example acting as a replacement of “Split View Controller Sidebar” which now has been dropped. (#24981)

  • Added

    Adds description for the Local Network usage popup of the Catalog example app. (#25639)

  • Changed

    Renames PSPDFCatalog to Catalog to make it more in line with Swift naming style. (#23480)

  • Changed

    Replaces existing standalone examples with a new minimal Swift integration example. The CustomFontPath example was made part of Custom Fonts guide article in the process. (#25845)

  • Fixed

    Fixes a potential deadlock that would occur when accessing the PDFContainerAnnotationProvider’s description. (#24544)

9.5.2 - 25 Aug 2020

PSPDFKitUI

  • API

    Changes the return type of AnnotationToolbar.button(withType:variant:createFromGroup:) from UIButton to UIButton?, to be nullable. This method could have always returned nil, but this was not reflected in the public method definition. (#24989)

  • Changed

    Improves memory usage while loading image using ImagePickerController. When ImagePickerController is used in an app extension, a scaled down version of the image is used to avoid exceeding the 120 MB limit of app extensions. (#24809)

  • Fixed

    Fixes a crash which occurred when restoring text selection state after relaunching. (#24898)

  • Fixed

    Fixes an issue where PSPDFViewControllerDelegate’s willBeginDisplayingPageView:forPageAtIndex: method would get called with a pageIndex of a page that is off-screen in some configurations. (#24018)

  • Fixed

    Fixes an issue where drawing stopped worked when screen mirroring on page changes while a drawing tool was active. (#24975)

  • Fixed

    Fixes an issue where zoom syncing didn’t work when customizing the view hierarchy when screen mirroring. (#24975)

  • Fixed

    Fixes scrubbing and visible page display on the scrubber bar for right-bound documents. (#24047)

  • Fixed

    Fixes the last set annotation styles not being saved for dash array, border and blend mode. To revert to not saving these, remove these property keys from AnnotationStyleManager’s styleKeys. (#19429)

  • Fixed

    Fixes the scrubber bar position indicator placement for single leading and trailing pages in double page mode when displaying right-bound documents. (#25503)

PSPDFKit

  • Changed

    Improves the Processor behavior when license doesn’t include the forms component. (#24604)

  • Fixed

    Fixes FTS queries with 3 or more words when searching for an exact match when using the unicode tokenizer. (#25068)

  • Fixed

    Fixes a crash that could happen as a result of a race condition when form fields were repaired and the page was rendered at the same time. (#24885)

  • Fixed

    Fixes an issue where a thin white bar could be visible along the right edge of a document page in inverted rendering mode. (#21334, #24830)

  • Fixed

    Fixes an issue where a form field value was lost when using external annotation saving. (#24740)

  • Fixed

    Fixes an issue where text form fields weren’t displayed correctly after flattening due to their appearance stream being wrong in the original document. (#24918)

  • Fixed

    Fixes duplicate string occurrences when copy and pasting from documents with duplicate content. (#25108)

  • Fixed

    Fixes setting the PDFFormField properties isReadOnly, isRequired and isNoExport to false not behaving as expected. (#25498)

  • Fixed

    Fixes the placement of the popup annotation linked to a note annotation. When a note annotation is moved, the popup annotation will now follow the location and is always placed within the bounds of the page. (#24468)

  • Fixed

    Fixes the saving of small shapes with large line widths. Shapes with these characteristics in documents saved by PSPDFKit will now be visible on any reader. (#25531)

9.5.1 - 23 Jul 2020

PSPDFKitUI

  • Fixed

    Fixes a PDFViewController’s delegate being reset to nil if this property was set in an Objective-C override of the designated initializer initWithDocument:configuration: and the object was initialized with a default nil argument on the Swift convenience initializer init(document:delegate:configurationBuilder:). (#24802)

  • Fixed

    Fixes a paste message being shown to the user each time SavedAnnotationsViewController appeared on iOS 14. (#24850)

  • Fixed

    Fixes an incorrect nullability annotation on the return type of annotationViewClass(for:). (#24945)

  • Fixed

    Fixes an issue that prevented the shouldHideUserInterfaceOnPageChange flag from being correctly honored when using page curl transition. (#24875, Z#19805)

  • Fixed

    Fixes an issue where PDFViewControllerDelegate method pdfViewController(_:shouldSelect:on:) wasn’t called when selecting some annotatios. (#24884)

  • Fixed

    Fixes an issue where PDFViewControllerDelegate methods pdfViewController(_:didSelect:on:) and pdfViewController(_:didDeselect:on:) would be called when selecting or deselecting annotations programmatically. (#24884)

  • Fixed

    Fixes an issue where SignedFormElementViewController could not be dismissed when presented as a popover. (#24923)

  • Fixed

    Fixes an issue where a newly added annotation was placed on a previously interacted page even if the page was no longer on screen. (#24583)

  • Fixed

    Fixes an issue where scrubber bar thumbnail images would not render correctly when quickly switching appearance mode. (#14937)

  • Fixed

    Fixes an issue where some annotations were added to an incorrect page in double page mode. (#21270)

  • Fixed

    Fixes the color picker and font picker popovers not being dismissed on tap. The color picker can be shown using the Custom item in the edit menu for text markup annotations. The font picker can be shown from the edit menu for free text annotations if the annotation inspector is disabled. (#24976)

PSPDFKit

  • Fixed

    Fixes a problem where signing a document with existing digital signatures may invalidate them. (#24780)

  • Fixed

    Fixes an issue where objects rendered with the Overlay blend mode didn’t always render correctly. (#24298)

  • Fixed

    Fixes an issue where our text parser returned descending characters from the line above the intended search area. (#24709)

  • Fixed

    Fixes an issue where text form fields would be rendered with a black fill color for certain documents after saving the annotations in an external file. (#24739)

  • Fixed

    Fixes an issue where text with word or character spacing is shifted after redaction has been applied. (#24476)

  • Fixed

    Fixes an issue where umlauts were displayed wrong in certain documents because the wrong encoding was used when shaping the text. (#24465)

  • Fixed

    Fixes registered subclasses of AnnotationCell not being used. (#24545)

  • Fixed

    Fixes partial annotation parsing for sound and link annotations when external annotation storage is used. (#24813)

9.5.0 - 13 Jul 2020

See the announcement post.

This release adds the OCR component. If you would like to add it to your license, ping our sales team to receive a quote. To learn more about our new touch handling API, please consult our migration guide for this release.

PSPDFKitUI

  • API

    Adds new touch handling API, which replaces certain delegate calls and subclassing hooks. Please refer the migration guide for details. (#9708)

  • Added

    Adds drag and drop in the document editor for macOS 11.0. (#24669)

  • Changed

    Improves annotation creation via the annotation state manager by failing gracefully and logging error details, if a page view for annotation insertion isn’t available. (#24558)

  • Changed

    Improves compatibility with Mac Catalyst on macOS Big Sur. (#24623)

  • Changed

    SpeechController now uses settings from assistive technologies if enabled on iOS 14 and macOS 11. (#24658)

  • Fixed

    Fixes KeychainSignatureStore failing with a secure coding error. (#24554)

  • Fixed

    Fixes an issue where the custom buttons added to the UIToolbar of the ScrubberBar did not receive touch events. (#24211)

PSPDFKit

  • Removed

    Deprecates the Processor class method cancellAllConversionOperations in favor of the rename, cancelAllConversionOperations. (#24630)

  • Added

    Adds a new PSPDFKitOCR framework, to perform optical character recognition (OCR) on a PDF document. (#24248)

  • Changed

    Improves memory handling for Office file conversion operation. (#24485)

  • Changed

    Improves performance when removing a unloaded document from cache. (#24669)

  • Changed

    Improves handling of memory warning notifications for documents with unsaved changes. (#24654)

  • Changed

    Separates ConversionOperation subclasses into their own header and implementation files. (#24562)

  • Changed

    Updates GSL to version 3.1.0. (#24480)

  • Changed

    Updates HarfBuzz to version 2.6.7. (#24477)

  • Fixed

    Fixes a problem where some certificates with CRL distribution point extensions may not be validated correctly. (#24660)

  • Fixed

    Fixes a crash when parsing certain rare documents. (#24599)

  • Fixed

    Fixes a very rare crash on certain documents when multiple pages were rendered at the same time. (#24598, #24626)

  • Fixed

    Fixes a possible endless loop while trying to repair form fields in certain documents. (#23901, #24597)

  • Fixed

    Fixes an issue where form fields may not be editable in some cases. (#23123)

9.4.0 - 16 Jun 2020

See the announcement post.

This release adds the Reader View component, as well as Office Files Support. If you would like to obtain PSPDFKit Server or add either to your license, ping our sales team to receive a quote.

In preparation for iOS 14, this version of PSPDFKit now drops support for iOS 11. It also requires and is built with Xcode 11.5 (11E608c). PSPDFKit and PSPDFKitUI now also come with a stable module interface. This enables linking with PSPDFKit frameworks, even if the Swift compiler version used in your application differs from the one we used to build the frameworks.

This release has some smaller breaking API changes. Please see our migration guide for details.

PSPDFKitUI

  • API

    Replaces the LinkAnnotationEditingContainerViewController.init(page:, selectedRects:) initializer with LinkAnnotationEditingContainerViewController.init(document:, pageIndex:, selectedRects:). Page objects cannot be created outside of PSPDFKit so the previous initializer was not usable as public API. (#24413)

  • API

    Changes the type of the pointSequences property on DrawView from [[NSValue]] to [[DrawingPoint]] in Swift (#23734)

  • API

    PSPDFDocumentViewLayoutPageMode has been renamed to PDFDocumentViewLayout.PageMode in Swift. (#23861)

  • API

    PSPDFDocumentViewLayoutSpreadMode has been renamed to PDFDocumentViewLayout.SpreadMode in Swift. (#23861)

  • Removed

    Deprecates the constants used as options in SpeechController API in favor of new constants of type SpeechController.Option. (#24223)

  • Removed

    Deprecates the longPressGestureRecognizer property on BackForwardButton, ToolbarGroupButton, and ToolbarDualButton since these are not always used by PSPDFKit itself. (#23878)

  • Added

    Adds Reader View: A new component that reformats document text into an easy-to-read, single-column view that’s optimized for mobile devices. (#23580)

  • Added

    Adds a workaround for an OS issue where text input on Mac Catalyst could cause a memory race on macOS 10.15.4 and 10.5.5. (#24390)

  • Added

    Adds contextual menus on tabbed bar to close tabs on iOS 13. Earlier versions show an action sheet on long press as before. The menu or sheet can now be activated from anywhere on the tab rather than just the close button. (#23878)

  • Added

    Adds explanatory text at the bottom of PDFDocumentSecurityViewController when SDK.Setting.honorDocumentPermissions is disabled to clarify that restricting permissions will not change behavior in the app. To hide this message, use setLocalizationDictionary or setLocalizationClosure to use an empty string for the key DocumentSecurity_PermissionsDisabledExplanation. (#23857)

  • Added

    Adds showing the annotation inspector’s color preset reset menu immediately in response a secondary click on a trackpad or mouse. This enhancement requires UIApplicationSupportsIndirectInputEvents to be enabled in your app’s Info.plist. (#23878)

  • Added

    Adds subtle trackpad and mouse hover effects to many parts of the UI. (#23641)

  • Added

    Adds support for enabling UIApplicationSupportsIndirectInputEvents in the app‘s Info.plist. (#24026)

  • Added

    Adds support for sharing documents with unsaved changes. (#23436)

  • Added

    Adds trackpad and mouse scrolling on the half modal navigation bar (for the annotation inspector) and the image cropping UI (for adding image annotations). (#24029)

  • Changed

    Improves accessibility in table view cells that show multiple buttons. (#21627)

  • Changed

    Improves the UX of present PDFViewController bar button items, by disabling instead of hiding them in cases where the button availability can change during the document presentation. (#23345)

  • Changed

    Improves the behavior of the certificate picker in the signature dialog by resizing the popover. (#24095)

  • Changed

    Improves the history list on the back and forward navigation buttons by using a system contextual menu. (#23878)

  • Changed

    Improves the snapping behavior of the annotation toolbar in some edge cases. (#23751)

  • Changed

    Changes the behavior of FlexibleToolbar so that it can no longer be dragged if supportedToolbarPositions has only one value. (#23655)

  • Fixed

    Fixed an issue where TextSelectionView.selectedText would return an empty string instead of nil if no text was selected. (#23946)

  • Changed

    Text to speech now uses a more accurate way to autodetect the document language. (#24223)

  • Changed

    Works around issue which caused the annotation toolbar to lose its background when the window loses focus on Mac Catalyst. (#21711)

  • Fixed

    Fixes an issue that could invoke PDF actions from multiple annotations simultaneously during a tap event, if the annotations were in close proximity. (#23456, #23845)

  • Fixed

    Fixes an issue where switching page transition from continuous to curl caused the page to get zoomed in. (#21266)

  • Fixed

    Fixes an issue where the scrubber bar page markers were not updated correctly while using double page mode. (#24144, #24149)

  • Fixed

    Fixes annotation summary sharing (DocumentSharingConfiguration.AnnotationOptions.summary) not working if the license does not include the WebKit-based HTML to PDF conversion feature. (#24339)

  • Fixed

    Fixes the window document reference being set even if allowWindowTitleChange was disabled on Mac Catalyst. (#23773)

PSPDFKit

  • API

    Changes the PSPDFObject string constants to an extensible enum PSPDFObjectFinderOption. Also introduces a new extensible enum PSPDFObjectFinderType to separate the output types from the options. (#24343)

  • API

    Changes the type of the options dictionary keys on the URLAction initialiser from String to Action.Option. (Only affects Swift). (#23831)

  • API

    Changes the type of the options parameter of annotationsByDetectingLinkTypes:forPagesAtIndexes:options:progress:error: from NSDictionary<NSString *, NSDictionary<NSNumber *, NSArray<PSPDFAnnotation *> *> *> * to NSDictionary<PSPDFObjectFinderType, NSDictionary<NSNumber *, NSArray<PSPDFAnnotation *> *> *> *. (#24343)

  • API

    Changes the type of the options parameter of objectsAtPDFPoint:pageIndex:options: and objectsAtPDFRect:pageIndex:options: from NSDictionary<NSString *, NSNumber *> * to NSDictionary<PSPDFObjectFinderOption, NSValue *> *. (#24343)

  • API

    In the PSPDFPageView class, changes the type of the options param in objectsAtPoint:options: and objectsAtRect:options: from NSDictionary<NSString *, NSNumber *> * to NSDictionary<PSPDFObjectFinderOption, NSValue *> * and return type from NSDictionary<NSString *, id> * to NSDictionary<PSPDFObjectFinderType, id> *. (#24343)

  • API

    Removes the Swift free function BoundingBoxFromLines. (#24435)

  • API

    Removes the PDFPage class, as it was not possible to create or obtain PDFPage objects via public API. (#24413)

  • API

    Renames PDFFileAnnotationPovider to PDFFileAnnotationProvider (only affects Swift). (#24072)

  • API

    Renames PDFSigner.Error to PDFSignerError in Swift. This is a breaking change with no deprecation in order to avoid ambiguity with the Swift.Error type. (#23912)

  • API

    The Processor class methods generatePDF(from ...) now have a non-optional return type and call their completion handler with an error if the required feature is missing in the license. (#24352)

  • API

    The behavior of the editable property of Annotation was changed slightly. It now also depends on the readOnly property. (#23868)

  • Removed

    Deprecates the constants used for searching text using PDFLibrary API in favor of new constants of type PDFLibrary.Option. (#24215)

  • Removed

    Deprecates the BackForwardActionListDelegate methods backForwardList(_:requestedBackActionExecution:) and backForwardList(_:requestedForwardActionExecution:), and the BackForwardActionList methods requestBack, requestBack(to:), requestForward , and requestForward(to:) in favor of variants with an animated parameter. (#23791)

  • Removed

    Deprecates the type aliases PDFLine and ViewLine because their names were inaccurate. (#24433)

  • Removed

    Deprecates AESCryptoInputStreamErrorCode renaming it to AESCryptoInputStreamError in Swift. Xcode will provide an automatic fix. (#23912)

  • Removed

    Deprecates AESCryptoOutputStreamErrorCode renaming it to AESCryptoOutputStreamError in Swift. Xcode will provide an automatic fix. (#23912)

  • Removed

    Deprecates Cryptor.ErrorCode renaming it to CryptorError in Swift. (#23912)

  • Removed

    Deprecates PSPDFError renaming it to PSPDFKitError in Swift. Xcode will provide an automatic fix. (#23912)

  • Removed

    Deprecates PSPDFSignerError renaming it to PSPDFSignerErrorCode in Objective-C. (#23912)

  • Removed

    Deprecates all cases of AESCryptoInputStreamError, replacing them with more consistent names. (#23912)

  • Removed

    Deprecates all cases of AESCryptoOutputStreamError replacing them with more consistent names. (#23912)

  • Added

    Adds a new API for PSPDFKit Server powered Office document conversion to PDF files. (#24304)

  • Added

    Adds XCFramework support for CocoaPods allowing you to use the CocoaPods integration in Mac Catalyst projects. (#21374)

  • Added

    Adds removeSignature() to SignatureFormElement to allow removing digital signatures programmatically. (#24094)

  • Added

    Adds new Annotation.clearAppearanceStream() helper. (#24114)

  • Added

    Adds support for executing GoBack and GoForward named actions. (#23791)

  • Added

    Adds support for saving into any data provider with a data sink in the document editor. (#24103)

  • Changed

    Improves error reporting when calling write(toFileURL:) on Processor with a URL where a file already exists. (#24092)

  • Changed

    Improves quality of fallback font rendering. (#24136)

  • Changed

    Ensures that note annotations with an unknown icon always use a fallback image. (#23977)

  • Changed

    Improve style sheet parsing to recognize font names better. (#23968)

  • Fixed

    Fixes a dangling pointer upon destruction of PSPDFKit. (#24387)

  • Fixed

    Fixes a problem where the asset name of a screen annotation may not be decoded correctly in some cases. (#24269)

  • Fixed

    Fixes a problem where the font name of a free text annotation may not be decoded correctly in some cases. (#24269)

  • Fixed

    Fixes an issue flattening form fields correctly when the artbox of the page contains an offset. (#23385)

  • Fixed

    Fixes an issue where attempting to access link annotations that reference remote destinations containing certain characters could lead to a failed assertion. (#24212)

  • Fixed

    Fixes an issue where combo boxes with attached JavaScript actions would fail to execute the attached actions when changing their value. (#23120)

  • Fixed

    Fixes an issue where text was rendered incorrectly when the ‘comb’ option was used. (#24395)

  • Fixed

    Fixes an issue where the read-only property of an annotation would get ignored if the annotation had a user, allowing it to be erasable. (#23868)

  • Fixed

    Fixes an issue where using a custom background color filled the rendered image beyond the page bounds. (#22590)

Instant

  • API

    PSPDFInstantDocumentState has been renamed to InstantDocumentState in Swift. (#24215)

  • API

    PSPDFInstantSyncingLocalChangesDisabled has been renamed to InstantSyncingLocalChangesDisabled in Swift. (#24215)

  • Added

    Adds a new error code to InstantError for the case where syncing fails due to the size of the sync payload exceeding the server limit: .payloadLimitExceeded. (#23293)

  • Removed

    Deprecates PSPDFInstantError renaming it to PSPDFInstantErrorCode in Objective-C. (#23912)

Examples

  • Added

    Adds an example showing how to add hide and reveal areas to the Catalog. (#23772)

  • Added

    Adds an example showing how to create a teacher / student example to the Catalog. (#23818)

9.3.3 - 11 May 2020

PSPDFKit

  • API

    The document must now have a file annotation provider when calling the PDFDocumentProvider method setRotationOffset(_:forPageAt:). Calling this method when there is no file annotation provider will have no effect. (#23686)

  • Changed

    Updates strip-framework.sh to fix the ITMS-90238: Invalid Signature error which would occur when uploading Mac Catalyst apps to App Store Connect when the dSYMs were not added to the Run Script Phase. (#24172)

  • Fixed

    Fixes an issue in strip-framework.sh which would occur where running the app for a second time when the dSYMs were added to the Run Script Phase. (#24172)

  • Fixed

    Fixes a crash that could occur when flattening certain note annotations, created by or edited on other PDF editors. (#24146)

  • Fixed

    Fixes an assertion failure “Should not be creating new annotations when applying rotation” when calling setRotationOffset(_:forPageAt:) to apply temporary before the document has loaded annotations when using a custom annotation provider. We recommend using the Document Editor for persistent rotations. (#23686)

  • Fixed

    Fixes edits to the page binding not being saved in certain documents. (#24115)

9.3.2 - 4 May 2020

PSPDFKit now requires and is built with Xcode 11.4.1 (11E503a).

PSPDFKitUI

  • Changed

    Improves VoiceOver accessibility by not posting UIAccessibilityPageScrolledNotification after the spread changes since this would block reading the page text. (#21627)

  • Changed

    Works around a system issue that could lead to missing pages on iOS 13.4 and later. (#24067)

  • Fixed

    Fixes a “does not recognize selector” crash that would occur on older iOS 13.4 betas that did not include the new pointer API. (#23894)

  • Fixed

    Fixes an issue where ink annotations with the locked flag were wrongly allowed to be erased. (#23840)

  • Fixed

    Fixes an issue where setting searchResultZoomScale would cause the selected search result to zoom and fill the whole page. (#23949)

  • Fixed

    Fixes an issue where hit testing could sometimes miss a selected line annotation on Mac Catalyst. (#23989)

  • Fixed

    Fixes an issue with the color picker where it would end up entirely black after opening for the second time. (#23900)

PSPDFKit

  • Removed

    Deprecates the mergePage(from:password:sourcePageIndex:destinationPageIndex:transform:blendMode:) method of Processor.Configuration and replaces it with mergeAutoRotatedPage(from:password:sourcePageIndex:destinationPageIndex:transform:blendMode:) which auto-rotates the page to match the rotation of the destination page. (#23858)

  • Changed

    Improves strip-framework.sh to prevent the ITMS-90238: Invalid Signature error which could occur when uploading Mac Catalyst apps to App Store Connect. (#23940)

  • Fixed

    Fixes an issue where non-Latin text may not render correctly. (#23287)

  • Fixed

    Fixes an issue where wrong characters were displayed in multi-line form fields. (#23317)

Instant

  • Fixed

    Fixes an issue where unsupported annotation types could lead to a crash. (#23752)

9.3.1 - 8 Apr 2020

PSPDFKitUI

  • API

    PSPDFFormSubmissionController is now public and has been renamed to PDFFormSubmissionController in Swift. This class was private initially even though it was referenced in PDFFormSubmissionDelegate. (#23792)

  • API

    formSubmissionControllerShouldPresentResponse(inWebView:) method of PDFFormSubmissionDelegate protocol has been renamed to formSubmissionControllerShouldPresentResponseInWebView(_:) in Swift. (#23792)

  • Changed

    Improves design of flexible toolbar placeholders and ensures they don’t overlap when screen space is tight. (#23751)

  • Fixed

    Fixes an issue where PSPDFApplePencilDetectedNotification was not set whenever ApplePencilManager detected an Apple Pencil. (#23767)

  • Fixed

    Fixes overrides of the ScrubberBar API scrubberBarThumbSize and emptyThumbnailImageView not being used. (#23753)

  • Fixed

    Fixes an issue which caused free text annotations on the second page onwards to scroll out of bounds of the page when edited. (#23830)

  • Fixed

    Fixes an assertion that would occur in PDFViewController.viewWillAppear(_:) for licenses without the annotation editing component. (#23905)

PSPDFKit

  • Fixed

    Fixes an issue where accessing SDK.Setting.additionalFontDirectories in Swift would cause an ambiguous use error. (#23774)

  • Fixed

    Fixes potential document corruption when incremental saving encrypted documents. (#23689)

Examples

  • Changed

    Updates additional Swift example code for PSPDFKit Swift API changes. (#23774)

9.3.0 - 27 Mar 2020

See the announcement post.

PSPDFKit now requires and is built with Xcode 11.4 (11E146).

This release has breaking API changes, especially in Swift. Please see more details in our migration guide..

  • API

    Changes all types to use Swift-friendly names in Swift, removing the PSPDF prefix. Modules supply an implicit namespace. Please refer the migration guide for details. (#23139)

  • API

    Changes many sets of related constants such as dictionary keys to use structs and enums in Swift. For example, options for annotation addition/removal, presentation options for PSPDFPresentationActions, and PSPDFGalleryItem property and option keys. See the migration guide for details. (#22962)

  • API

    Further refines various API in Swift. See the migration guide for details.

PSPDFKitUI

  • API

    The method -textStampViewController:didCreateAnnotation: is now required to be implemented by types adopting the PSPDFTextStampViewControllerDelegate protocol. (#21315)

  • Removed

    Removes the page curl transition from PSPDFSettingsViewController on Mac Catalyst. (#23074)

  • Removed

    Deprecates PSPDFFlexibleToolbarPositionsAll and replaces it with PSPDFFlexibleToolbarPositionAll. (#9466)

  • Removed

    Deprecates PSPDFFlexibleToolbarPositionsVertical and replaces it with PSPDFFlexibleToolbarPositionVertical. (#9466)

  • Removed

    Deprecates the displayAsEllipse, borderWidth and indicatorSize properties of PSPDFColorButton in favor of new customization properties. (#21357)

  • Added

    Adds support for the Assemble, Modification, Annotation, Form Milling, and Printing document permissions. Read the announcement blog post for more details. (#1022)

  • Added

    Adds Dark Mode support to PSPDFSignatureViewController and PSPDFSignatureSelectorViewController. (#21357)

  • Added

    Adds a new optional flexible toolbar position: PSPDFFlexibleToolbarPositionTop. See ToolbarPositionTopExample in the PSPDFKit Catalog for more details. (#9466)

  • Added

    Adds a new text selection mode, PSPDFTextSelectionModeAutomatic, for dynamic text selection handling between different pointer devices. This mode is now the default. (#23674)

  • Added

    Adds support for iOS 13.4 trackpad and mouse hover for text, link annotations and resizing annotations. (#23644)

  • Added

    Adds trackpad and mouse hover highlighting in the annotation toolbar and document editor toolbar (via the common superclass PSPDFToolbar). (#23641)

  • Changed

    Improves Voice Control accessibility in some table views by separating the accessibility value from the accessibility label. (#21627)

  • Changed

    Improves support for accessibility text sizes and the large content viewer. (#23576)

  • Changed

    Improves the design of the brightness slider in the advanced color picker in the annotation inspector. (#21356)

  • Changed

    Changes the icon used for note annotations in the annotation toolbar and menu bar. (#23003)

  • Changed

    Improves free text annotation bounding box handling. They now update when changing the font size or name in the inspector. (#22961)

  • Changed

    Free text annotations are now allowed to shrink smaller than the size they were when starting editing. Resize behavior is now consistent between non-edit mode and edit mode. (#22961)

  • Fixed

    Fixes an issue which caused free text annotations to scroll the page when text reached the right edge of the page. (#23434)

  • Fixed

    Fixes an issue where overriding PSPDFFreeTextAnnotation with a subclass sometimes had no effect. (#23680, Z#18022)

  • Fixed

    Fixes an issue where pages may scroll unexpectedly when using continuous vertical scrolling and the keyboard is shown by another app in Split View or Slide Over. (#23463)

  • Fixed

    Fixes a potential deadlock when rendering pages with annotations in the document editor. (#23687)

  • Fixed

    Fixes an issue where the bookmark list edit button would sometimes not receive touches in iOS 13.4 when the views are loaded in a certain order. (#23706)

  • Fixed

    Fixes an issue where the search results could be duplicated when searching for a second time. (#23152)

  • Fixed

    Fixes the page view method canCreateAnnotationsShowMessage not showing a message. (#23532)

  • Fixed

    Fixes an issue with page curl mode where open popovers would get positioned incorrectly when transitioning from landscape to portrait. (#22805)

PSPDFKit

  • API

    In Objective-C, the fields property of PSPDFAbstractFormAnnotation is now typed NSArray<id<PSPDFFormFieldIdentifier>> * to more clearly document what this property contains. In Swift, this property has been refined as var fieldIdentifiers: [FormFieldIdentifier]?. (#23596)

  • API

    Renames the PSPDFReachability enum to PSPDFReachabilityStatus. (#23636)

  • API

    Updates the update block in -[PSPDFAnnotationManager updateAnnotationsOnPageAtIndex:error:withUpdateBlock:] to allow reporting errors occurred in the block. (#23517)

  • API

    PSPDFAnnotationWriteOptions type has been renamed to PSPDFAnnotationWriteOption. Along with it, its constant PSPDFAnnotationWriteOptionsGenerateAppearanceStreamForTypeKey has been renamed to PSPDFAnnotationWriteOptionGenerateAppearanceStreamForType. (#23539)

  • Removed

    Removes entries for the localized string key "Could not retrieve the signature contents". Use "Could not retrieve the signature contents." (with period at end) instead. (#23037)

  • Removed

    Removes entries for the localized string key "Saved Annotations". Use "SavedAnnotations" (no space) instead. (#23037)

  • Removed

    Removes entries for the localized string key "The certificate has expired". Use "The certificate has expired." (with period at end) instead. (#23037)

  • Removed

    Removes the localized strings entry with the key "Polyline" in favor of "PolyLine" (with capital L), which can be accessed through the PSPDFAnnotationStringPolyLine constant. The user-facing text is still Polyline. (#23233)

  • Removed

    Removes the localized strings with keys beginning with PSPDFPolicyEvent, which were not used by PSPDFKit. (#23493)

  • Removed

    Removes the localized strings with the key "Page". PSPDFKit now uses "Page %@" instead. (#23493)

  • Removed

    Removes the unused PSPDFSettings protocol. (#23226)

  • Removed

    Removes support for very large images in the embedded gallery. Please resize images to a suitable size on a server before loading them on a device. (#23082)

  • Removed

    Deprecates -[<PSPDFDataProviding> replaceWithDataSink:error:] in favor of -replaceContentsWithDataSink:error:. (#23703)

  • Removed

    Deprecates PSPDFAnnotationRegisterOverrideClasses. This functionality should not be needed and will be removed in a future update. PSPDFFileAnnotationProvider already takes care of registering the appropriate overrides when reading an external annotation file. (#23701)

  • Added

    Adds British English localization. (#23186)

  • Added

    Adds PSPDFError.dataProviderIsInFlight, which is reported when an operation on DataContainerProvider, FileDataProvider, or CoordinatedFileDataProvider fails because the receiver is not yet ready for use. (#23612)

  • Added

    Adds a global override to disable PSPDFDocument permissions in the PSPDFKit UI. Configurable via the PSPDFHonorDocumentPermissionsKey option on PSPDFKitGlobal. (#1022)

  • Added

    Adds stricter validation to digital signature containers created externally. (#23011)

  • Added

    Adds support for validating digital signatures created by DocuSign. (#22191)

  • Added

    Adds documentation for the optional DataProviding methods implemented by DataContainerProvider, FileDataProvider, and AESCryptoDataProvider. (#23612)

  • Changed

    Improves the class overriding mechanism and adds PSPDFOverridable conformance to all participating classes. (#18178)

  • Changed

    Changes the default value of enableHorizontalResizing from PSPDFFreeTextAnnotation to be enabled. (#22961)

  • Fixed

    Fixes PDF JavaScript when scripts are encoded in UTF-16. (#23044)

  • Fixed

    Fixes a potential issue resulting in data loss after saving. (#23474, #23485)

  • Fixed

    Fixes a rare issue where document checkpointing could assert as a race condition when cleaning up files. (#23699)

  • Fixed

    Fixes a rare problem where the application may terminate unexpectedly after loading a document or setting a form field value. (#22924)

  • Fixed

    Fixes a regression where the rotation knobs were incorrectly hidden on selecting a free text annotation. (#23607)

  • Fixed

    Fixes an issue with flattening form fields when the ArtBox of the page contains an offset. (#23385)

  • Fixed

    Fixes a crash when rendering certain pages from multiple threads. (#23209, #23339)

  • Fixed

    Fixes an issue where clearing the cache could sometimes lead to a deadlock. (#23651, Z#18024)

  • Fixed

    Fixes an issue where document features could remain stale when the document progress functionality was used (e.g. Instant downloads). (#23330)

  • Fixed

    Fixes an issue where error information was not propagated properly in -[PSPDFAnnotationUpdater moveAnnotationAtZIndex:toZIndex:error:]. (#23517)

  • Fixed

    Fixes an issue where free text annotation could be rotated after resizing with annotation rotation disabled. (#23438)

  • Fixed

    Fixes an issue where freshly recorded and deleted sound annotations would loose audio after the deletion is undone. (#23389)

  • Fixed

    Fixes an issue where opening a certain document with form fields caused a crash. (#23001)

  • Fixed

    Fixes an issue where spacing between words was far too large. (#23439)

  • Fixed

    Fixes an issue where text on form fields is occasionally rendered with incorrect rotation on rotated pages. (#22854)

  • Fixed

    Fixes an issue where values of text form fields are only visible when selected. (#23652)

  • Fixed

    Fixes localized text in some places. (#23493)

  • Fixed

    Fixes some rare stability issues when filling a form document with JavaScript scripts. (#23443)

Examples

  • Added

    Adds a Catalog example illustrating how to force the top position for the annotation and document editor toolbars. (#9466)

  • Added

    Adds an example that showcases how to detect and redact faces from PDF documents. (#23337)

  • Added

    Added an example that illustrates how to programmatically create a new free text annotation, such that the user can immediately start typing. (Z#17749)

9.2.2 - 18 Feb 2020

PSPDFKitUI

  • Fixed

    Fixes an issue where the scrollable thumbnail bar didn’t update a page image when annotations were added, changed, or deleted on a page. (#23146)

  • Fixed

    Fixes an issue where we could assert in [PSPDFDocumentViewTouchHandler presentationContext] when the view controller is dismissed while a tap is handled in the same runloop. (#23183)

PSPDFKit

  • Fixed

    Fixes an issue where Helvetica-Bold wasn’t displayed correctly. (#22664)

  • Fixed

    Fixes an issue where form field elements would not be fillable even if their backing form field was not readonly. (#21061)

  • Fixed

    Fixes an issue where some PDF JavaScript calculations may not work correctly. (#23043)

  • Fixed

    Fixes an issue where the mailDoc and similar JavaScript functions may not parse their arguments correctly. (#23257)

  • Fixed

    Fixes empty text form fields not rendering their background color. (#23263)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to disable digital signatures modification and only allow adding ink signatures. (#23165)

9.2.1 - 29 Jan 2020

PSPDFKitUI

  • API

    The PSPDFOutlineCell subclassing hook has been renamed from outlineIntentLeftOffset to outlineIndentLeftOffset. (#23085)

  • Added

    Adds accessibility labels for the back and forward buttons, used for the action stack navigation stack. (#23047)

  • Changed

    Improves performance for displaying the outline view controller as popover. (#23085)

  • Changed

    Implicit animations in the PSPDFOutlineViewController are now suppressed for initializing cells. (#23085)

  • Changed

    Works around an issue where a popover shown in an input accessory view might have a wrong arrow position on devices with a bottom safe area inset. (#21803)

  • Fixed

    Fixes a crash that could occur when applying view state with the curl page transition. (#23068)

  • Fixed

    Fixes an issue that could trigger an assertion if the annotation list controller was dismissed before annotations fully load. (#23109)

  • Fixed

    Fixes an issue where automatic page mode would incorrectly default to double page mode when used in split screen on an iPad in landscape. (#21706)

  • Fixed

    Fixes an issue where bookmark icon on scrollable thumbnail bar was rendered semi-transparent on iOS 13. (#22947, Z#16992)

  • Fixed

    Fixes an issue where the cropped image from the image editor was not the same size as the size that was displayed due to a rounding error. (#23022)

  • Fixed

    Fixes an issue where the image editor didn’t show the up-to-date size of the resulting image in the title after changing the size. (#23022)

  • Fixed

    Fixes an issue where user interface was allowed hide after a tabbed bar started dragging, causing an irrecoverable ‘No Document Set’ screen without a navigation bar. (#21707)

  • Fixed

    Fixes an issue with the image cropping interface which caused the cropped area to be slightly offset than intended. (#23004)

  • Fixed

    Fixes the custom stamp preview not being visible. (#23061)

PSPDFKit

  • Fixed

    Fixes -[PSPDFAnnotationSet initWithAnnotations:copyAnnotations:] not normalizing bounding boxes like its deprecated variant did. (#23061)

9.2.0 - 21 Jan 2020

See the announcement post and migration guide for this release.

PSPDFKitUI

  • API

    The color property of PSPDFColorButton is now correctly marked as optional/nullable. (#22695)

  • API

    Removes support for 3rd-party styluses. (#22628)

  • Removed

    Deprecates PSPDFImageQualityHigh, replacing it with PSPDFImageQualityBest. (#22763)

  • Added

    Adds Dark Mode support to the notes and comments screen (PSPDFNoteAnnotationViewController). (#21333)

  • Added

    Adds a high quality option to the image picker (PSPDFImageQualityHigher). (#22763)

  • Added

    Adds support for Page Up / Page Down keys to go to the previous/next page. (#22415)

  • Added

    Adds support for the Select All menu command on Mac Catalyst. (#22685)

  • Changed

    Improves PSPDFAnnotationGridViewController so it shows more annotations when the view is larger (wider than 700 points). (#21423)

  • Changed

    Improves logic around the image picker to no longer require the NSPhotoLibraryUsageDescription permission in your app’s Info.plist. (#21778)

  • Changed

    Improves performance and smoothness of animations in PSPDFAnnotationTableViewController when annotation updates occur. (#22831)

  • Changed

    Improves some error alert titles. (#22757)

  • Changed

    Improves the ordering of the key commands exposed by PSPDFNavigationController so their order in the discoverability overlay matches the reading order of the bar buttons on screen. (#22635)

  • Changed

    Improves the page selection logic to pick the most recently interacted page when switching from landscape to portrait in page curl mode. (#20452)

  • Changed

    Improves the stamp annotation creation process by reducing the copying of annotations when creating them via the saved annotations picker or the stamps picker user interface. (#22666)

  • Changed

    Improves the styling of the accessory view used in the PSPDFChoiceFormEditorViewController. (#19936)

  • Changed

    Changes the approximate image size for PSPDFImageQualityMedium from 1024 × 768 to 1600 × 1200 because the previous size was very close to PSPDFImageQualityLow. (#22763)

  • Changed

    Changes the behavior of the popover presenting PSPDFChoiceFormEditorViewController to allow dismissing the controller on tapping outside of it. (#22852)

  • Changed

    Changes the hardware keyboard command to select the top/bottom item in a list from command up/down arrow to option up/down arrow in order to match standard Mac behavior. (#22683)

  • Changed

    Floating keyboards now no longer trigger keyboard avoidance actions on PSPDFAvoidingScrollView subclasses apart from free-text annotation avoidance. (#22436)

  • Changed

    Improve contrast, especially in Dark Mode, of some tinted UI elements such as text in the outline and icons in the annotation list. (#22197)

  • Changed

    Makes the background in the image editor use a translucent color, to see the cut off part of the image. (#22914)

  • Changed

    Synchronizes the default borderEffectIntensity for cloudy borders with other PSPDFKit platforms. The default intensity when switching to cloudy borders via the PSPDFKit UI is now 2 instead of 3. (#22611)

  • Changed

    The image quality picker of PSPDFImagePickerController is now enabled by default. Set its allowedImageQualities to PSPDFImageQualityBest to disable this. (#22763)

  • Changed

    The thumbnail grid now reloads in a more efficient way when bookmarks are changed while it is displayed. (#22687)

  • Changed

    Using the keyboard shortcut to select all text or annotations on Mac Catalyst no longer shows the selection menu automatically. (#22651)

  • Changed

    PSPDFBrightnessManager has a new mode to disable the idle timer completely. (#22802)

  • Fixed

    Fixes an issue where -[PSPDFPageView annotationViewForAnnotation:] might have returned the wrong value, and improves the documentation of this method. (#22578)

  • Fixed

    Fixes an issue where PSPDFNavigationController would pass the wrong item in the delegate callback navigationBar:shouldPopItem: when going back using a hardware keyboard. (#22635)

  • Fixed

    Fixes an issue where changing pages would not work on the first and last pages on documents with a right page binding in the curl transition. (#22668)

  • Fixed

    Fixes an issue where ink annotations drawn using Apple Pencil would create a temporary copy when moved while still in edit mode. (#21833)

  • Fixed

    Fixes an issue where ink annotations with customized blend mode would flicker when drawing, erasing or zooming. (#21187, Z#16604)

  • Fixed

    Fixes an issue where the PSPDFTabbedBar’s add document and overview buttons could have clear backgrounds. (#21725)

  • Fixed

    Fixes an issue where the image in the image editor might be shown partially behind the navigation bar. It is now centered inside the safe area without being occluded. (#22914)

  • Fixed

    Fixes an issue where the popover presented in the PSPDFTabbedViewController with list of open documents was not dismissed when the button presenting it was hidden. (#22799)

  • Fixed

    Fixes an issue where the scrubber bar would have the wrong page marker set when reacting to a new document being set on the PSPDFViewController. (#22739)

  • Fixed

    Fixes the annotation list not updating when annotations change while the list is visible. (#22789)

PSPDFKit

  • API

    Changes the localized string key Redact to be for the redaction annotation type instead of the word “Redact”, which is no longer translated by PSPDFKit. In other words, the key Redact was removed and then the key Redaction was changed to Redact to match the PDF specification. The best way to get this localized string key is to use the constant PSPDFAnnotationStringRedaction. (#21243)

  • API

    Changes the localized string key for the file annotation type from File to FileAttachment to match the PDF specification. The best way to get this localized string key is to use the constant PSPDFAnnotationStringFile. (#21243)

  • API

    Changes the localized string key for the free text annotation type to only FreeText. The duplicate entry with the key Text is now used for note annotations to match the PDF specification. The best way to get this localized string key is to use the constant PSPDFAnnotationStringFreeText. (#21243)

  • API

    Changes the localized string key for the note annotation type from Note to Text to match the PDF specification. The best way to get this localized string key is to use the constant PSPDFAnnotationStringNote. (#21243)

  • API

    Changes the parameter type of the PSPDFDefaultAnnotationStyleManager methods defaultColorPresetsForKey: and defaultBorderPresetsForKey: from String/NSString to AnnotationStateVariantID/PSPDFAnnotationStateVariantID. (#22769)

  • Added

    Adds support for incrementally saving encrypted documents. (#22722)

  • Added

    Adds support for the JavaScript function ‘doc.gotoNamedDest’. (#18957)

  • Changed

    Improves complex script text rendering. (#22573)

  • Changed

    Improves error handling for -[PSPDFFileAnnotationProvider saveAnnotationsWithOptions:error:]. (#14335)

  • Changed

    Improves image stamp quality and reduces PDF size growth by avoiding unnecessary image re-encoding. (#22828, #20325)

  • Changed

    Improves license check error message to be more user friendly. (#12904)

  • Changed

    Improves user-facing descriptions of the types of annotations by considering variants. (#21243)

  • Changed

    Improve compatibility with macOS 10.15 Preview for annotation notes in the sidebar. (#22791)

  • Removed

    Removes the localized strings entry with the key Squiggle, which was not used. The localized text for the squiggly annotation type has changed to ‘Squiggle’ using the key Squiggly as before. The best way to get this localized string key is to use the constant PSPDFAnnotationStringSquiggly. (#22861)

  • Changed

    Uses modern NSFontDescriptor enums on macOS for better Swift bindings. (#22678)

  • Fixed

    Fixes a problem where encrypted documents could not be digitally signed correctly. (#22722)

  • Fixed

    Fixes a problem where some PDF pages may not be rendered correctly. (#22767)

  • Fixed

    Fixes an issue that caused a blank page after flattening annotations on a certain document. (#22279)

  • Fixed

    Fixes an issue where characters weren’t escaped correctly when exporting XFDF. (#22844)

  • Fixed

    Fixes an issue where free-text annotations were not rendered properly on selection when rendered with filter render options. (#20512)

  • Fixed

    Fixes an issue where multiple form elements that are related to the same form field could not be targeted as a group in JavaScript actions, as described by the PDF Reference. The form elements can still be addressed individually by appending .x to the (fully qualified) name of the form field, where x is the index of the form element in the annotations property of the PSPDFFormField. (#22755)

  • Fixed

    Fixes an issue where popup annotations were positioned incorrectly. (#22730)

  • Fixed

    Fixes an issue where text is not displayed in small free-text annotations. (#22514)

  • Fixed

    Fixes an issue where the file size optimization algorithm didn’t run. (#22809)

  • Fixed

    Fixes an issue where the outline was overridden if set, before property was accessed. (#22678)

  • Fixed

    Fixes an issue where toggling eraser on a page with temporary rotation rendered ink annotations in a regressed state. (#22434)

  • Fixed

    Fixes an issue which led to bookmarks not getting updated when importing InstantJSON. (#22198)

  • Fixed

    Fixes an issue with creating a Submit Form action from JSON without action flags. (#22784)

  • Fixed

    Fixes an issue with form calculations if one of the form fields contained multiple form elements. (#22675)

Instant

  • Changed

    Improves the responsiveness of moving and scaling image annotations by avoiding unnecessary work. (#22578)

  • Fixed

    Fixes a deadlock that could occur when changes were accumulated while a sync was already in progress. (#22703)

  • Fixed

    Fixes an issue where stamps created on the iOS device would immediately vanish when deselected, and never synced. (#19742)

  • Fixed

    Fixes an issue where shape annotations would grow temporarily when another shape annotation was drawn immediately afterwards. (#20236)

Examples

  • Changed

    Renamed PSCAddingButtonExample.m to PSCAddingCustomViewsExample.m and improved the example which now demonstrates how to add overlay views that stay aligned with PDF content. (#21704)

  • Fixed

    Fixes the close button in the document view not always working in the Split View Controller Sidebar example. (#21278)

9.1.1 - 12 Dec 2019

PSPDFKit now requires and is built with Xcode 11.3 (11C29).

PSPDFKitUI

  • Changed

    Right clicking on Mac Catalyst now selects text or images automatically. (#22626)

  • Changed

    The image selection context menu now offers a Save option for Mac Catalyst. (#22626)

  • Fixed

    Fixes a crash that would occur on some iPad devices when the app was backgrounded while the annotation tool inspector popover was visible. (#22472)

  • Fixed

    Fixes an issue where the image selection was not always visible. (#22626)

  • Fixed

    Fixes an issue where the keyboard shortcut items for free text annotations were not correctly updated when toggling the accessory view. (#22512)

PSPDFKit

  • Changed

    Improves font selection and prefers fonts already in the document in more cases. (#22530)

  • Fixed

    Fixes a race condition in PSPDFAESCryptoDataProvider that could result in app termination when Multithreaded Rendering was enabled. (#20011)

  • Fixed

    Fixes an issue where a form field element appearance stream was regenerated accidentally. (#21618)

  • Fixed

    Fixes an issue where flattened note annotations at the borders of pages would not be rendered correctly. (#22353)

  • Fixed

    Fixes an issue where symlinks where not properly resolved for the documentsDirectoryURL in -[PSPDFLibraryFileSystemDataSource -initWithLibrary:documentsDirectoryURL:documentHandler:]. (#22518)

Examples

  • Added

    Adds a Catalog example that shows how to customize the buttons that appear on the free text accessory view. (#22506)

  • Added

    Adds the ability to load Instant documents from servers protected with HTTP Basic Authentication. (#18960)

  • Changed

    Improves the list of examples in the Catalog app by making titles and descriptions multi-line. (#22621)

9.1.0 - 3 Dec 2019

See the announcement post.

PSPDFKitUI

  • API

    Adds -[PSPDFConfiguration allowWindowTitleChange] to control window title changes in Mac Catalyst. (#22167)

  • API

    -[PSPDFPageView showMenuForAnnotations:targetRect:allowPopovers:animated:] has been deprecated in favor of showMenuForAnnotations:targetRect:contextMenuOption:animated:. (#22303)

  • API

    -[PSPDFPageView showMenuIfSelectedAnimated:allowPopovers:] has been deprecated in favor of showMenuWithOption:animated:. (#22303)

  • API

    Changes the type of the standardAppearance and compactAppearance properties on PSPDFScrubberBar from UIBarAppearance to UIToolbarAppearance to be more consistent and specific. (#22479)

  • Added

    Adds support for selecting ranges of pages in the Document Editor UI by dragging with two fingers. This can be disabled by subclassing PSPDFDocumentEditorViewController and overriding collectionView:shouldBeginMultipleSelectionInteractionAtIndexPath: to return false. (#22536)

  • Added

    Adds a new keyboard shortcut (Command + option + G) to jump to a page. (#22291)

  • Added

    Adds a subclassing hook to customize document saving when the app is saved for the various autosave reason (backgrounding, terminating, …). (#22077)

  • Changed

    Improves conflict resolution handling after file deletion by automatically removing deleted documents from built-in view controllers when the documents don’t have any unsaved changes and are not currently being displayed. (#22025)

  • Changed

    Improves page rendering when a zoomed window is resized. (#21836)

  • Changed

    Improves smart thumbnail size calculation to show more thumbnails on larger screens. This is especially beneficial with Mac Catalyst. (#21424)

  • Changed

    Improves the layout of the color presets in the annotation inspector on larger devices. (#21777)

  • Changed

    Note annotations can now be moved faster on iPad and Mac Catalyst. The detail view animation is now instant. (#22303)

  • Changed

    The delegate methods on PSPDFSpeechController are now always called on the main thread. (#22301)

  • Changed

    The security part of the document info view is now shown as a separate item in the segmented control. See PSPDFDocumentInfoOptionSecurity to add or remove this new item. (#21462)

  • Changed

    When context menus are enabled, selecting a note annotation will now present the PSPDFNoteAnnotationViewController. (#22303)

  • Fixed

    Fixes an issue that could prevent the annotation list to be dismissed while searching. (#21895)

  • Fixed

    Fixes an issue where -[PSPDFResizableView outerKnobOfType:] would return nil for the last knob type. (#22302)

  • Fixed

    Fixes an issue where deleting selected annotations with the delete key didn’t work. (#22099)

  • Fixed

    Fixes an issue where the keyboard shortcut items for free text annotations were not correctly updated when toggling the accessory view. (#22512)

PSPDFKit

  • API

    Changed PSPDFFreeTextAnnotationView textViewForEditing from a property to a method, which changes Swift usage. (#21989)

  • API

    -[PSPDFCache imageForRequest:imageSizeMatching:] now has an error parameter. (#21836)

  • API

    -[PSPDFCacheInfo cacheInfoForRequest:] now has an error parameter. (#21836)

  • API

    -[PSPDFRenderTask initWithRequest:] now has an error parameter. (#21836)

  • Removed

    Deprecates -attachBinaryInstantJSONAttachmentFromDataProvider:mimeType:error: and replaces it with -attachBinaryInstantJSONAttachmentFromDataProvider:error:, omitting the mimeType. (#17813)

  • Removed

    Deprecates the PSPDFAnnotationProviderRefreshing protocol. PSPDFContainerAnnotationProvider now conforms to this protocol, which means that PSPDFKit handles refreshing internally. If you are implementing the refreshing protocol, please contact us to discuss your requirements. (#21885)

  • Added

    Adds support for Image Documents with transparency. (#18907)

  • Added

    Adds support for copying ink signatures to the clipboard. (#21608)

  • Added

    Adds support for input file lists (.xcfilelist) to strip-framework.sh to simplify adding the dSYMs. (#22151)

  • Added

    Adds support for redaction annotations to Instant JSON. (#21389)

  • Added

    Adds support for setting temporary rotations using setRotationOffset when using custom annotation providers that are subclasses of PSPDFContainerAnnotationProvider. (#21885)

  • Added

    Adds the ability to initialize PSPDFImageDocument with any data provider. (#21140)

  • Changed

    Improves NSSecureCoding support for various classes. (#20696)

  • Changed

    Improves handling when other apps installed on the system declare new types (UTIs) for standard filename extensions like .pdf and .jpg. (#22418)

  • Changed

    Improves memory usage while searching document with a lot of annotations. (#22367)

  • Changed

    Improves the performance of the redaction component so that big documents are redacted quicker. (#22102)

  • Changed

    Improves the rendering of annotations with dashed borders. (#10216)

  • Changed

    PSPDFKit for Mac Catalyst no longer uses a separate AppKit bundle, fixing issues with App Store Connect. (#21606)

  • Changed

    Rendering complex annotation appearance streams no longer blocks accessing the annotation object on a different thread. (#21836)

  • Changed

    State restoration for PSPDFViewController and related classes now support secure coding. (#22125)

  • Changed

    Updates HarfBuzz to version 2.6.2. (#21686)

  • Fixed

    Fixes ISO8601 timezone support in Instant JSON. (#21148)

  • Fixed

    Fixes a crash related to multi-threading and font loading. (#22387)

  • Fixed

    Fixes a rare situation where setting form field flags may cause a deadlock. (#19942)

  • Fixed

    Fixes a regression that caused certain link annotations to not work. (#21709)

  • Fixed

    Fixes an issue where a deadlock could occur after executing a PDF action or JavaScript. (#22201)

  • Fixed

    Fixes an issue where annotation additional actions may not be deserialized correctly. (#21983)

  • Fixed

    Fixes an issue where annotations were updated too often after executing a PDF action or JavaScript. (#22201)

  • Fixed

    Fixes an issue where deleting or moving pages from a PDF did not update the outline. (#21620, #22048)

  • Fixed

    Fixes an issue where some filled form fields may not show their content correctly. (#22100)

  • Fixed

    Fixes an issue where symlinks where not properly resolved for the documentsDirectoryURL in -[PSPDFLibraryFileSystemDataSource -initWithLibrary:documentsDirectoryURL:documentHandler:]. (#22518)

  • Fixed

    Fixes an issue where text after signing had incorrect characters after looking at it in another viewer. (#20930)

  • Fixed

    Fixes an issue where text entered in certain form fields was rendered garbled. (#21700)

  • Fixed

    Fixes an issue where the redaction tool may not work correctly in some cases when selecting text. (#22486)

  • Fixed

    Fixes widget annotation rotation property persistence when coming from Instant JSON. (#21552, #21621)

Instant

  • Changed

    Reduces network traffic when loading additional layers of the same document. (#21787)

  • Fixed

    Fixes an issue where purging the local storage of a PSPDFInstantClient instance would have it hang on to its existing document descriptors in an unusable state. (#21935)

Examples

  • Added

    Adds Catalog example that shows how to add copyright notices to documents when sharing. (#21693)

  • Added

    Adds a PSPDFKit Catalog example that combines a custom annotation provider with setting temporary page rotations. (#21885)

  • Added

    Adds a PSPDFKit Catalog example that shows how to customize the buttons that appear on the free text accessory view. (#22506)

  • Changed

    Improves structure of the Catalog project by grouping examples by category and sorting them alphabetically. (#22392)

  • Fixed

    Fixes the document not being presented automatically after scanning a QR code in the PSPDFKit Instant example in PSPDFKit Catalog. (#21979)

9.0.3 - 14 Nov 2019

PSPDFKit now requires and is built with Xcode 11.2.1 (11B500).

PSPDFKitUI

  • API

    The scrubber bar now uses gestures for tap detection to block system gestures such as dismissing a modal presentation with a swipe. This lead to the removal of the -[PSPDFScrubberBar processTouch:] subclassing hook, which was not being called even before this change. (#22336)

  • Added

    Adds new API to PSPDFProgressLabelView to customize the colors of the text and progress indicator. (#21717)

  • Added

    Adds support for system highlight colors for text selection on Mac Catalyst. (#21994)

  • Changed

    Improves error handling when a document is selected in the redaction view controller. (#22169)

  • Changed

    Changes the color of the placeholder text and progress view in PSPDFThumbnailViewController to use a secondaryLabelColor on iOS 13 and grayColor for older versions. (#21717)

  • Changed

    Scrolling via Space/Shift-Space keyboard now correctly scrolls the active viewport on continuous scrolling, and advances pages for per-page scrolling or page curl transition. (#22118)

  • Changed

    The inspector is now enabled when multiple annotations of the same type are selected. (#22195)

  • Fixed

    Fixes an issue where VoiceOver would still read out the search progression PSPDFSearchViewController even after searching the document did complete. (Z#15979)

  • Fixed

    Fixes an issue where PSPDFNoteAnnotationViewController didn’t correctly set the appearance of its navigation bar and toolbar. (#22000)

  • Fixed

    Fixes an issue where annotation toolbar and inspector didn’t support certain appearance customizations. (#22113)

  • Fixed

    Fixes an issue where documents wouldn’t be shared correctly on Mac Catalyst. (#21821)

  • Fixed

    Fixes an issue where note annotations could not be deleted on Mac Catalyst. (#22083)

  • Fixed

    Fixes an issue where rotating the device in page curl mode could lead to an assertion failure. (Z#16000)

  • Fixed

    Fixes an issue where tapping on a search result would not necessarily scroll the search result on screen in continuous scrolling mode. (#22011)

  • Fixed

    Fixes an issue where not all available options on a given PSPDFChoiceFormEditorViewController would be selectable when being presented as a popover on iOS 13. (#22247)

PSPDFKit

  • Changed

    Increases image size limits. (#22029)

  • Fixed

    Fixes an issue if a TrueType font collection has more than 32 fonts. (#22148)

  • Fixed

    Fixes an issue where an annotation copied from another document was rendered blurry. (#20070)

  • Fixed

    Fixes an issue where certain high resolution images weren’t rendered. (#22322)

  • Fixed

    Fixes an issue where creating an annotation using +[PSPDFAnnotation annotationFromInstantJSON:documentProvider:error:] would lead to a crash if the destination document had multiple document providers. (#22207)

  • Fixed

    Fixes an issue where form repairs were done too eagerly. (#20786)

  • Fixed

    Fixes an issue where pages would be rendered with incorrect background colors when setting PSPDFRenderOptions.backgroundFill for any render type. (#21800)

  • Fixed

    Fixes an issue where selecting the Open In option when sharing pages out of a document would not work. (#22209)

  • Fixed

    Fixes an issue where temporarily rotated annotations were saved incorrectly in PSPDFAnnotationSaveModeEmbeddedWithExternalFileAsFallback mode. (#22188)

  • Fixed

    Fixes an issue where using a big size for the digital signature container may abort the digital signing process. (#22130)

  • Fixed

    Fixes a crash that would occur while rendering a thumbnail for a page which does not have a valid size. (#22365)

  • Fixed

    Fixes an issue where certificates with multi-value RDNs may not be parsed correctly. (#22221)

Examples

  • Changed

    Updates CustomImagePickerControllerExample.swift illustrating how to customize the PSPDFImagePickerController’s allowedImageQualities. (#22002)

9.0.2 - 21 Oct 2019

PSPDFKitUI

  • Changed

    Improves the annotation popover placement algorithm. (#21851)

  • Changed

    Sets the highlight text color of the labels in the search result cell to white to improve legibility. (#21964)

  • Fixed

    Fixes an issue where changing the compactAppearance property of PSPDFScrubberBar had no effect. (#21927)

  • Fixed

    Fixes an issue where customizing UINavigationBar via UIAppearance API had no effect in iOS 13. (#21837)

  • Fixed

    Fixes an issue where saved annotations wouldn’t be displayed on PSPDFSavedAnnotationsViewController. (#21761)

PSPDFKit

  • Added

    Adds support for printing array structures from JavaScript code inside a PDF. (#19063)

  • Fixed

    Fixes a rare deadlock when rendering certain documents. (#21856)

  • Fixed

    Fixes a rendering error where the font ArialMT wasn’t selected correctly. (#21744)

  • Fixed

    Fixes an issue where PSPDFKit.bundle’s version number was incorrect on Mac Catalyst. (#21737)

  • Fixed

    Fixes an issue where multiple simultaneous conflict resolution prompts could potentially trigger an internal assertion. (#21694)

  • Fixed

    Fixes an issue where some Swift API, like PSPDFKitGlobal.setLogHandler(), were not accessible when using the CocoaPods integration. (#21846)

  • Fixed

    Fixes a performance regression when rendering with an ICC based color space. (#21776)

  • Fixed

    Fixes an issue where some properties of a widget annotation were not persisted when the document was saved. (#21546)

Instant

  • Fixed

    Fixes a regression that would lead to excessive sync activity. (#21847)

  • Fixed

    Fixes an issue where deleting the local storage for a layer could result in an assertion failure. The situation now fails gracefully. (#21880)

  • Fixed

    Fixes an issue with the image cache where two layers of the same document would be displayed such that they appear to have identical annotations until after the first annotation update. (#21666)

Examples

  • Added

    Adds a Catalog example illustrating how to customize the appearance of the navigation bar and annotation toolbar. (#21961)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to restore a document to its previously opened reading position. (#21904)

  • Added

    Adds required entitlements to the Catalog example when running on macOS. (#21999)

  • Fixed

    Fixes a crash that would occur when opening PSPDFKit Catalog on macOS. (#21738)

9.0.1 - 10 Oct 2019

PSPDFKit now requires and is built with Xcode 11.1 (11A1027).

PSPDFKitUI

  • Added

    Adds new API standardAppearance and compactAppearance to style the PSPDFToolbar on iOS 13. (#21665)

  • Added

    Adds allowReorderingDocuments on PSPDFTabbedViewController to support disabling reordering documents in the tabbed bar. (Z#15717)

  • Fixed

    Fixes an issue on iOS 13 where menus would flicker and disappear if they were nested one level deep. This happened for changing properties of text markup annotations. (#21735)

  • Fixed

    Fixes a crash when using the tab key on a hardware keyboard to navigate form fields on iOS 13. (#21613)

  • Fixed

    Fixes an issue where sharing a document multiple times with custom page ranges would produce invalid documents. (#21080)

  • Fixed

    Fixes an issue where the PSPDFFlexibleToolbar did not match the appearance of the given navigation bar or a toolbar on iOS 13. (#21665)

  • Fixed

    Fixes an issue where the status HUD was not positioned correctly when a keyboard was visible. (#21636)

  • Fixed

    Fixes an issue where the thumbnails border color was incorrect in Dark Mode in scrollable thumbnail mode. (#21642)

  • Fixed

    Fixes a possible crash that would occur when exporting documents as images with flattened annotations. (#21739)

  • Fixed

    Fixes an issue with certain configurations where documents may initially appear zoomed in. (#21625)

PSPDFKit

  • Fixed

    Fixes an issue where documents using certain kind fonts (especially Chinese, Japanese, and Korean) would cause the app to crash. (#21626)

  • Fixed

    Fixes secure coding of PSPDFRenderOptions. Before all properties would be encoded as nil or zero, which could lead to rendering pages with black backgrounds. (#21708)

  • Fixed

    Fixes an issue where the z-index wasn’t preserved when flattening annotations. (#21385)

  • Fixed

    Fixes an issue where a digital signature applied to a certain kind of document may not show correctly in third party PDF readers. (#18943)

  • Fixed

    Fixes an issue when using multi-threaded rendering. (#18582)

  • Fixed

    Fixes a crash when using the processor on certain documents with very deep object hierarchies. (#21674)

Instant

  • Fixed

    Fixes a possible crash when loading annotations failed in certain Instant documents. (#21617, Z#15606)

  • Fixed

    Fixes an issue where removing the local storage for a document descriptor briefly after loading it could lead to a deadlock. (#21766)

9.0.0 - 19 Sep 2019

See the announcement post.

PSPDFKit now requires and is built with Xcode 11.0.

This release features support for a new platform - Mac Catalyst. Be sure to check out our Introducing PSPDFKit for Mac Catalyst blog post for more information.

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. The guide also provides migration steps for xcframework integration and the removal of PSPDFKitSwift.

  • Removed

    Removes all previously deprecated API. Please see our PSPDFKit 9 for iOS migration guide to learn about the appropriate migration strategy. (#20904)

PSPDFKitUI

  • API

    Changes PSPDFStatusHUD class methods and PSPDFStatusHUDItem push methods to take a window as parameter, as there now might be multiple status HUDs due to multi-window support on iOS 13. (#21429)

  • API

    PSPDFFlexibleToolbarController methods for showing/hiding toolbar now include an optional completion block. (#19807)

  • API

    Renames the PSPDFConfiguration properties scrollOnTapPageEndEnabled, scrollOnTapPageEndAnimationEnabled, and scrollOnTapPageEndMargin to scrollOnEdgeTapEnabled, animateScrollOnEdgeTaps, and scrollOnEdgeTapMargin. (#20923)

  • API

    The designated initializer for PSPDFViewState has been replaced in favor of -[PSPDFViewState initWithPageIndex:viewPort:selectionState:selectedAnnotationNames:]. (#20655)

  • API

    PSPDFUsernameHelperWillDismissAlertNotification has been replaced with PSPDFUsernameHelperDidDismissViewNotification. This is posted after the dismissal ends rather than before to work better with sheets on iOS 13 that can be dismissed by swiping down. (#20978)

  • Removed

    Removes PSPDFPresentationShouldPopoverDismissBlockKey because API provided by UIKit should be sufficient. (#20978)

  • Removed

    Removes brightnessManager property from PSPDFBrightnessViewController since brightness is now directly handled on the UIScreen instance. (#21495)

  • Removed

    Removes brightness related properties from PSPDFBrightnessManager. (#21495)

  • Removed

    Removes interactiveReorderingGestureRecognizer from PSPDFTabbedBar since the tabbed bar uses drag and drop for reordering now. (#20431)

  • Removed

    Removes support for using UIWebView in PSPDFWebViewController. (#19807)

  • Added

    Adds PSPDFDocumentInfoCoordinator.documentInfoViewController to enable showing the document info UI in custom ways. (#19807)

  • Added

    Adds PSPDFPageView methods for showing contextual menus: showMenuForPoint:animated: and showAnnotationMenuAtPoint:animated:. (#19807)

  • Added

    Adds precise immediate text selection handling on Mac Catalyst. (#21012)

  • Added

    Adds support for attaching a user activity to a tab dragged from the tabbed bar, to allow the system opening a new window scene on iOS 13. (#20431)

  • Added

    Adds support for context menus to the annotation toolbar on iOS 13. (#21205)

  • Added

    Adds support for dragging and dropping tabs across different PSPDFTabbedViewController instances. This can be enabled via allowDraggingTabsToExternalTabbedBar and allowDroppingTabsFromExternalTabbedBar. (#20431)

  • Added

    Adds support for iOS 13 Dark Mode. (#20403)

  • Added

    Adds support for the new Cut/Copy/Paste gestures from iOS 13. (#21293)

  • Added

    Adds an option for rounded corners to the flexible toolbar and refines the default toolbar design. (#21206)

  • Changed

    Improves compatibility with iOS 13 sheet presentations, which can be dismissed by swiping downwards. (#20978)

  • Changed

    Improves logic to place the share activity view controller on the page when sharing an image. (#19807)

  • Changed

    Improves the annotation line-end selection UI in the annotation style controller. (#21535, #21542)

  • Changed

    Improves the annotation toolbar and document editor icon designs, so it’s easier to distinguish them. (#21078)

  • Changed

    Improves toolbar selection and orientation transition animations. (#21206)

  • Changed

    Changes PSPDFSignatureViewController to always use a consistent aspect ratio for the signing area. Previously this was only the case on iPad. (#20978)

  • Changed

    Changes moving tabs in the tabbed bar to use drag and drop instead of interactive reordering. (#20431)

  • Changed

    Changes some view controllers to always use a form sheet presentation style by default: the signature view, the link annotation editing view, and the privacy access denied view shown from the new page view. (#20978)

  • Changed

    Changes the PSPDFNewPageViewController presented from the document editor to uses a standard form sheet rather than our custom half modal style (in compact widths). (#20978)

  • Changed

    Changes the minimum value of the brightness slider to 0.0 instead of 0.1 to match the range of UIScreen.brightness. (#21495)

  • Changed

    File Annotations can now be deleted via the default annotation menu. (#21293)

  • Changed

    Improved keyboard support: Command-Arrow Up/Down navigates to first/last page. (#20869)

  • Changed

    PSPDFUndoController canUndo/canRedo now always updates correctly, even if invoked via the undo manager directly. (#19807)

  • Changed

    Updates default values for text selection properties textSelectionMode and shouldShowSelectionHandles on Mac Catalyst and extends the documentation for textSelectionShouldSnapToWord. (#21012)

  • Fixed

    Fixes an iOS 13 specific unsatisfiable constraint warning on PSPDFAnnotationStyleViewController. (#21196)

  • Fixed

    Fixes an issue that caused the search UI to be misplaced when using the search button item action with a custom button. (#21409)

  • Fixed

    Fixes an issue where selection of a page did not persist on reordering using drag and drop interaction in the Document Editor. (#21474)

  • Fixed

    Fixes an issue where the accessibility label of a page was incorrect after reordering the page in the Document Editor. (#21474)

  • Fixed

    Fixes editing free text annotations not always showing the keyboard when using multiple windows. (#21341)

  • Fixed

    Fixes the PSPDFDocumentSharingViewController showing incorrect sharing options if the selected destination was set before the controller being presented. (#21410)

PSPDFKit

  • API

    -[PSPDFDataProviding replaceWithDataSink:] has been extended to include an error parameter -[PSPDFDataProviding replaceWithDataSink:error:]. (#14338)

  • API

    Renames the PSPDFKit global singleton to PSPDFKitGlobal to avoid conflicts with the PSPDFKit module name in Swift. (#21292)

  • API

    Swift-incompatible methods on PSPDFProcessor and delegate-based error and completion handling on PSPDFProcessorDelegate have been removed. (#21233, Z#15373)

  • API

    The PSPDFProcessor PDF generation API has been converted to class methods to better isolate it from the PDF processing operations. (#21000)

  • API

    The PSPDFRenderOption enumeration has been replaced with the PSPDFRenderOptions class that now properly supports NSSecureCoding. (#17342)

  • API

    The shouldDeleteAnnotation property on PSPDFAnnotation has been replaced with isDeletable. (#21293)

  • API

    PSPDFAnnotationStyleManager now uses PSPDFStylePreset, a new protocol, rather than __kindof PSPDFModel* to expose preset instances. (#21362)

  • API

    PSPDFLineAnnotation.init(point1:point2:) is no longer a failable initializer that produces an implicitly unwrapped optional. (#21194)

  • API

    The class property isDeletable on PSPDFAnnotation has been converted to a per-object property to include object flags. (#21293)

  • Removed

    Removes the rendering option to disable text anti-aliasing when using the non-native text rending option. (#21204)

  • Removed

    Removes the class property isWritable on PSPDFAnnotation. All implemented subclassed annotation and form types are writable. (#21293)

  • Added

    Adds NSSecureCoding support to PSPDFAnnotation and its subclasses. (#12026)

  • Added

    Adds NSSecureCoding support to PSPDFColorPreset and PSPDFBorderStylePreset. (#21362)

  • Added

    Adds support for setting a user activity on PSPDFDocument. (#20431)

  • Changed

    Improves JPEG2000 with transparency support. (#20483)

  • Changed

    Improves filesystem checking to better handle external storage and file server support on iOS 13. (#21159)

  • Changed

    Improves font rendering and fixes several edge cases. (#20930)

  • Changed

    Improves handling and documentation of custom digital signature sizes. Now cases where the signature size exceeds the reserved size in a document will be informed correctly. (#21304)

  • Changed

    Improves the validation of Instant JSON payloads so that case differences in properties are tolerated. (#21145)

  • Changed

    Disables generating PDFs from URLs and HTML strings on Mac Catalyst. (#21000)

  • Changed

    Updates Botan to version 2.11.0. (#20549)

  • Changed

    Updates Duktape to version 2.4.0. (#20954)

  • Fixed

    Fixes a bug in redaction rendering where the font size wasn’t consistent. (#21088)

  • Fixed

    Fixes an issue with transparent strokeColor in Instant JSON. (#21391)

  • Fixed

    Fixes an issue when importing XFDF files in specific documents. (#21271)

  • Fixed

    Fixes an issue where images with the lighten blend mode didn’t get rendered correctly. (#20642)

  • Fixed

    Fixes an issue where loading a document would fail if it contained JPEG2000 images not specifying a color space. (#21311)

  • Fixed

    Fixes an issue where text after signing had incorrect characters after looking at it in another viewer. (#20930)

  • Fixed

    Fixes an issue where the error object was not set in case of a failure in -[PSPDFDataProviding replaceWithDataSink:error:]. (#21116)

  • Fixed

    Fixes an issue where using the document editor to merge a document with many pages would lead to an out-of-memory crash. (Z#15277)

  • Fixed

    Fixes issues with transparent image stamp annotations. (#7646)

  • Fixed

    Fixes issues with transparent images in XFDF. (#9221)

  • Fixed

    Fixes some stability issues related to color space management. (#21529)

  • Fixed

    Fixes some stability issues when fonts are loaded from a document. (#21042)

  • Fixed

    Fixes some use cases where PDFs with JavaScript validation scripts may not work as expected. (#21291)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to show a PSPDFViewController in SwiftUI. (#20381)

  • Added

    Adds an example illustrating how to always show dark user interface style on the annotation toolbar. (#20403)

  • Added

    Adds multi-window support to PSPDFKit Catalog on iOS 13. (#20431)

  • Added

    Adds support to drag and drop tabs in TabbedBarExample. (#20431)

  • Changed

    Changes the default appearance of the Catalog app to match Apple recommended styling. (#20211)

  • Fixed

    Fixes an issue in the catalog PSCDrawAnnotationsAsOverlayExample where annotation were not overlaid appropriately. (#21276)

8.5.2 - 6 Sep 2019

PSPDFKitUI

  • Added

    Adds a new property on PSPDFConfiguration called allowRemovingDigitalSignatures to control whether a digital signature can be removed or not. See DisableRemovingDigitalSignatureExample in PSPDFKit Catalog for more details. (#20586)

  • Changed

    Changes the designated initializer of PSPDFSignedFormElementViewController to the new added initializer initWithSignatureFormElement:allowRemovingSignature:. (#20686)

  • Fixed

    Fixes an issue where a sharing action would be executed automatically if the first sharing configuration available has no options to pick from. (#20964)

  • Fixed

    Fixes an issue where the existing configuration was not preserved while showing a new digitally signed document in a new controller. (#20686)

PSPDFKit

  • Changed

    Improves error reporting in +[PSPDFAnnotation annotationFromInstantJSON:documentProvider:error:] when the document was misconfigured. (#21177)

  • Changed

    Improves memory usage with complex documents. (#20970)

  • Changed

    Improves the stability of some PDF form operations. (#21032)

  • Changed

    Improves the validation of InstantJSON in some corner cases. (#20748)

  • Fixed

    Fixes a problem where some dates may be incorrectly formatted as Sunday. (#20363)