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

Newest Release

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-140)

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)

Previous Releases

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)

  • Fixed

    Fixes an issue with annotation hit testing that could result in taps being received by a link annotation that was underneath another link annotation. (#21055)

  • Fixed

    Fixes an issue where link annotations with a nil border color and a valid dash array were not being rendered. (#20749)

  • Fixed

    Fixes annotations being misplaced when reopening a document that loads annotations from an external file after setRotationOffset:forPageAtIndex: had been used to apply a temporary rotation when that document was saved. (#20976)

  • Fixed

    Fixes annotations sometimes being blurry when reopening a document that loads annotations from an external file after setRotationOffset:forPageAtIndex: had been called before that document was saved. (#20976)

  • Fixed

    Fixes annotations sometimes not being saved to an external file after only annotation updates happened and setRotationOffset:forPageAtIndex: was called before saving. (#20976)

  • Fixed

    Fixes pasted rotated vector stamps being double rotated which resulted in clipping. (#20916)

  • Fixed

    Fixes -[PSPDFProcessorConfiguration drawOnAllCurrentPages:] producing offset drawing when the page has a MediaBox with a non-zero origin. (#20797)

  • Fixed

    Fixes the drawingBlock of PSPDFFileAppearanceStreamGenerator not automatically handling page rotation. (#20983)

  • Fixed

    Fixes a possible crash in certain documents due to a null dereference in isLinkedInAcroForms. (#21121)

Instant

  • Added

    Adds a migration to populate the isFitting flag for all pre-existing free text annotations when appropriate, preventing the clipping of text on other platforms. This is an extension of the earlier fix which only populated this flag when an annotation was changed again. (#20727)

  • Changed

    The isFitting property of free text annotations now properly reflects whether the text did fit on iOS. The text of such annotations will no longer be clipped in documents exported from PSPDFKit Server or in PSPDFKit for Web. (#20727)

Examples

  • Fixed

    Fixes a crash that would occur when opening the Kiosk Grid example on iOS 13. (#20861)

8.5.1 - 8 Aug 2019

PSPDFKitUI

  • Added

    Adds -[PSPDFDocumentSharingViewController initWithDocuments:sharingConfigurations:] and makes it the designated initializer. (#20842)

  • Fixed

    Fixes an issue where annotations could not be moved in the annotation list when not all annotations were shown (typically when there were links). (#20822)

  • Fixed

    Fixes an assertion when presenting certain table view controllers on iOS 13. (#20833)

  • Fixed

    Fixes an assertion when using a custom variant for free text annotations. (#20823)

  • Fixed

    Fixes the initially selected segment in PSPDFDocumentSharingViewController being ‘Share’ instead of the first one when custom configurations are used. (#20842)

PSPDFKit

  • Added

    Adds PSPDFDocumentSaveStrategyRewriteAndOptimizeFileSize to enable file size optimizations when saving documents. (#20826)

  • Changed

    Improves performance when opening documents with many links. (#20786)

  • Fixed

    Fixes an issue where rotating pages using the document editor would always reset the page binding setting to the left edge. (#20732)

Instant

  • Changed

    Prevents text clipping on other platforms when a free text annotation was created or updated on iOS such that all text is visible. (#20727)

Examples

  • Fixed

    Fixes PSCFormFillingExample to properly respect specific input formats and validations of the form fields. (#20606)

8.5.0 - 31 Jul 2019

See the announcement post.

PSPDFKit now requires and is built with Xcode 10.3 (10G8).

  • Added

    Adds an optional JSON Podspec (podspec.json) that you can use by appending .json to your podspec link. Learn more in our CocoaPods guide. (#20335)

PSPDFKitUI

  • API

    The PSPDFDocumentInfoCoordinator’s delegate property is now of type PSPDFDocumentInfoCoordinatorDelegate, which is a newly introduced protocol. (#20469)

  • Removed

    Deprecates PSPDFSignatureViewController’s lines property in favor of its drawView.pointSequences. (#20450)

  • Added

    Adds the ability for users to change the order in which annotations are stacked on the page (the z-index) from either the annotation inspector or the annotation list. (#100)

  • Added

    Adds the ability for users to change the document’s page binding in PSPDFDocumentInfoViewController. (#10603)

  • Added

    Adds a unified color palette. This replaces the rainbow, modern, vintage, and monochrome color palettes in the default color set provided when creating and editing annotations. (#20212)

  • Added

    Adds a halfModalStyle property to PSPDFConfiguration to allow the use of the annotation inspector without the card design introduced in PSPDFKit 8.4 for iOS. (#19944)

  • Added

    Adds a PSPDFDocumentInfoViewControllerDelegate protocol to respond to changes from PSPDFDocumentInfoViewController. (#20510)

  • Changed

    Changes links to open in Safari by default, because we believe this provides a better user experience. This can be changed back to SFSafariViewController (the in-app browser) by setting PSPDFConfiguration.linkAction to PSPDFLinkActionInlineBrowser. (#20692)

  • Changed

    Disables natural drawing for ink annotations by default because it can sometimes produce artifacts at line ends. This can be changed back using PSPDFConfiguration.naturalDrawingAnnotationEnabled. (Z#14856)

  • Changed

    Reduces the minimum line width for ink annotations from 0.5 to 0.1 in the annotation inspector. (#20654)

  • Fixed

    Fixes an issue that caused certain pages to fade from black on iOS 13 when they were moved on-screen. (#20513)

  • Fixed

    Fixes an issue where the back button of a navigation controller did not work on iOS 13. (#20533)

  • Fixed

    Fixes an issue where annotations could appear duplicated and flipped after the app goes into the background. (#18695)

  • Fixed

    Fixes an issue where you could delete a non-editable note annotation. (#20419)

  • Fixed

    Fixes an issue where text wouldn’t be spoken if a device was in silent mode. (#20392)

  • Fixed

    Fixes a floating scrubber bar layout issue by correctly ignoring the unsupported scrubberBarType values. (#20258)

  • Fixed

    Fixes PSPDFNavigationController’s back external keyboard command taking precedence over text input. (Z#14834)

  • Fixed

    Fixes navigating through forms using the tab key on external keyboards not working for multi-line text fields. (#20218)

  • Fixed

    Fixes a rare issue where bookmark manager initialization could be triggered recursively and assert. (#20566)

PSPDFKit

  • Added

    Adds API to change the order in which annotations are stacked on the page (the z-index). (#100)

  • Added

    Adds support for rotating image stamp annotations. (#19692)

  • Added

    Adds support for rotating vector stamp annotations. (#20345)

  • Added

    Adds support for rendering emojis in free text annotations and forms. (#20629)

  • Added

    Adds a PSPDFObjectsTestIntersectionFractionKey option for the document object finder, which can be used to filter out objects based on the fraction of their area intersecting with the target rectangle. (#20643)

  • Added

    Adds support for preserving the Instant JSON id in the PDF. (#20572)

  • Added

    Adds support for serializing and deserializing border properties of link annotations. (#20359)

  • Added

    Add support for vertical alignment in single-line form fields when exporting or printing PDF files. (#19882)

  • Changed

    The pageBinding property setter of PSPDFDocument now saves the page binding into the document instead of just keeping it in memory. (#20327)

  • Changed

    Improves automatic repair of AcroForms when loading documents with a large number of annotations. (#19947)

  • Changed

    Updates Expat to version 2.2.7. (#20545)

  • Changed

    Updates libpng to version 1.6.37. (#19851)

  • Changed

    Updates openjpeg to version 2.3.1. (#20647)

  • Fixed

    Fixes an issue reading media boxes. (#20592)

  • Fixed

    Fixes a deadlock that could occur when performing concurrent equality checks on annotation objects. (#20688)

  • Fixed

    Fixes calling sizeToFit on a free text annotation resizing the annotation incorrectly. (#20302, Z#14464)

  • Fixed

    Fixes an issue where annotations could become rotated and distorted in certain documents. (#20267)

  • Fixed

    Fixes the appearance stream of stamp annotations sometimes not being preserved when the annotation is rotated, which is needed to avoid distorting it. (#15898)

  • Fixed

    Fixes an assertion when importing annotations outside the page range using XFDF. (#20424)

  • Fixed

    Fixes page indices being incorrect after the first data provider when exporting Instant JSON from a document with multiple data providers. (#20343)

  • Fixed

    Fixes a crash that would occur after applying an Instant JSON update to a document where the changes contained form field updates. (#20152)

  • Fixed

    Fixes an issue where form fields with calculation order may not be flattened correctly by the processor. (#20434)

  • Fixed

    Fixes an issue where some documents with dropdown fields may show an arrow when the document is flattened. (#9539)

  • Fixed

    Fixes a problem where overriding the digital signature reserved size may corrupt the signature appearance. (#20496)

  • Fixed

    Fixes an issue that may prevent documents with certain restrictions from being digitally signed. (#20741)

  • Fixed

    Fixes an issue where a custom dataSource set on a PSPDFSigner object was overridden sometimes. (#20487)

  • Fixed

    Fixes an issue where some documents signed with invisible signatures could not be validated correctly. (#20277)

Examples

  • Added

    Adds a Swift counterpart to the example PSCSaveAsPDFExample.m called SaveAsPDFExample.swift. (#20672)

8.4.2 - 5 Jul 2019

PSPDFKitUI

  • Added

    Adds the ability to cut or copy pages from the PSPDFDocumentEditorViewController and paste them into other applications. Pasting PDFs copied from other applications is now also supported. (#19960)

  • Changed

    Improves the documentation for sharing options related to printing and preset PSPDFViewController bar button items. (#18987)

  • Fixed

    Fixes internal document references not being retained when cutting and pasting pages in PSPDFDocumentEditorViewController. These are now preserved so PDF GoTo Actions still work after saving. (#19470)

  • Fixed

    Fixes an issue where annotation property changes from the inspector were not preserved when killing the app before exiting the annotation state. (#20232)

  • Fixed

    Fixes images having a low resolution after being attached to form elements using the buttonImportIcon JavaScript API. Images will now be added at full resolution. (Z#14555)

  • Fixed

    Fixes incorrect group spacing and cell layout issues on the sharing UI. (#18987)

  • Fixed

    Fixes links and text field form elements showing a black border instead of no border when no color was set on the annotation and a non-zero border thickness was set. (#20449)

PSPDFKit

  • Added

    Adds -[PSPDFDocumentEditor rotationForPageAtIndex:] to get the current rotation for a page of the document being edited. (#19960)

  • Added

    Adds a property on PSPDFBookmarkManager to access the associated PSPDFDocument instance. (#20226)

  • Changed

    Improves the loading performance for complex documents with lots of link annotations. (#19399)

  • Changed

    PSPDFBookmarksChangedNotification is no longer posted when loading a document. (#18638)

  • Fixed

    Fixes very occasional text rendering problems. (#20155)

Instant

  • Fixed

    Fixes markup annotations not syncing reliably. (#20235)

  • Fixed

    Fixes certain annotation types appearing rotated and distorted on rotated pages. (#20291)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to add a square annotation with cloudy borders button to the annotation toolbar. (#20400)

  • Fixed

    Fixes Swift and Objective-C language detection of the examples on iOS 11. (#19953, Z#13392)

8.4.1 - 20 Jun 2019

PSPDFKitUI

  • Changed

    Showing the annotation toolbar programmatically is now blocked by default when saving is not possible. (#16816)

  • Fixed

    Fixes an issue where top-level entries in PSPDFOutlineViewController couldn’t be searched. (#20004)

  • Fixed

    Fixes an issue where pages could go blank if an element on them had first responder status while they were moved offscreen. (#19638)

  • Fixed

    Fixes an issue where PSPDFTabbedViewController’s tabbed bar would not appear when the view controller was embedded in a container controller. (#19414, #19826, Z#13332)

  • Fixed

    Fixes an issue where setting the barTintColor on PSPDFScrubberBar did not have any effect. (#20169)

  • Fixed

    Fixes an issue where setting the tintColor of the page grabber did not have any effect. (#20081)

  • Fixed

    Fixes an issue where a shape annotation with a large line thickness could disappear when resized to small sizes. (#20022)

  • Fixed

    Fixes an issue where the document could be modified during saving in the document editor. (#19830)

  • Fixed

    Fixes an issue where the user could open the inspector of a non-editable annotation by selecting an editable one first. (#20283)

  • Fixed

    Fixes the undo behavior for free text annotation rotation and resizing so that the annotation does not get distorted. (#20133)

  • Fixed

    Fixes an issue that caused the document view to be loaded prematurely during PSPDFViewController initialization. (#20255)

  • Fixed

    Fixes an issue with the annotation inspector where a UITableView separator was incorrectly shown under the last item. (#20109)

PSPDFKit

  • Added

    Adds support for importing and exporting free text callout annotations using JSON. (#18202)

  • Changed

    Improves loading performance for documents with complex outlines. (#20279)

  • Changed

    Improves rendering of text with non-Latin characters. (#20189)

  • Fixed

    Fixes an issue where image stamp annotations rotated by third-party software may lose their appearance. (#20165)

  • Fixed

    Fixes video metadata lookup for YouTube videos. (#20180)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to persist PSPDFSettingsViewController settings in NSUserDefaults. (#20210)

  • Changed

    Improves DrawOnPagesExample.swift to show how to draw multiple watermarks with different attributes. (#18922)

8.4.0 - 30 May 2019

See the announcement post.

PSPDFKitUI

  • Removed

    Deprecates -[PSPDFDigitalSignatureCoordinator presentSignedDocument:showingPageIndex:] in favor of presentSignedDocument:showingPageIndex:withPresentationContext: to make presenting the signed document easier. (Z#13752)

  • Removed

    Deprecates PSPDFUserInterfaceView.thumbnailBarInsets, which did not do anything. (#19771)

  • Removed

    Removes the optionsView property from PSPDFNoteAnnotationViewController(SubclassingHooks) because returning any other value would lead to a crash. (#19841)

  • Removed

    Removes the declarations of -configureZoomView:forSpreadIndex:, and -configureScrollView: from PSPDFDocumentViewLayout(Subclassing). These methods were unimplemented, and not used internally. Calling them would have lead to an “unrecognized selector” crash. (#19841)

  • Removed

    Removes the unimplemented PSPDFPageLabelView(SubclassingHooks) category. (#19841)

  • Removed

    Removes the unimplemented subclassing hooks -cancelDrawingAnimated: and -doneDrawingAnimated: from PSPDFAnnotationStateManager. (#19841)

  • Removed

    Removes the unimplemented category PSPDFSavedAnnotationsViewController(SubclassingHooks). Calling the method it declared would have lead to an “unrecognized selector” crash. (#19841)

  • Added

    Adds a new look and feel for the scrubber bar, which now appears to be floating in the user interface. To revert to the old design, set thumbnailBarMode to PSPDFThumbnailBarModeDockedScrubberBar in PSPDFConfiguration. (#16110)

  • Added

    Adds an improved, modern visual design for the annotation inspector. (#19053)

  • Added

    Adds support for rotating free text annotations to any angle. (#15900)

  • Added

    Adds the ability to customize the eraser thickness in the UI which can be changed in the Annotation Inspector invoked from the Annotation Toolbar. (#18918)

  • Added

    Adds the ability to apply redactions in a new file, to not overwrite the current document, from the UI. (#19247)

  • Added

    Adds support for showing a blend mode menu item to the markup annotations selection menu. (#19985)

  • Added

    Adds a subclassing hook, -[PSPDFUserInterfaceView updatePageLabelFrameAnimated:], for changing the page label position. (#19217)

  • Added

    Adds <PSPDFCommonWebView>. This protocol documents the API requirements for the object returned by the webView property of PSPDFWebViewController. It acts as an abstraction of the common API of UIWebView and WKWebView, as used by our view controller. (#19841)

  • Added

    Adds biometric properties on PSPDFDrawView: pointSequences, pressureList, timePoints, touchRadii and inputMethod. Calling clear on PSPDFDrawView now also clears any currently collected biometric data. (#19800)

  • Changed

    Marks the inherited initializer -[PSPDFMenuItem initWithTitle:action:] as unavailable because it cannot be used with this class. (#19841)

  • Changed

    Moves PSPDFGalleryItem(Protected) into a separate header file, and turned it into a class continuation. For subclassing PSPDFGalleryItem, please use #import <PSPDFKitUI/PSPDFGalleryItem+Subclassing.h> now. (#19841)

  • Changed

    Promotes the declaration of -updatePageLabel in PSPDFThumbnailGridViewCell(SubclassingHooks) up the class hierarchy to PSPDFPageCell. (#19841)

  • Changed

    Single-page documents now have the thumbnail bar hidden by default. A new property in PSPDFConfiguration (hideThumbnailBarForSinglePageDocuments) lets you configure this behavior. (#16110)

  • Fixed

    Fixes a crash that could occur in -[PSPDFThumbnailFlowLayout ensureLayoutAttributesForItemsUpTo:] when viewing page thumbnails in double page mode. (#19984)

  • Fixed

    Fixes a regression introduced in PSPDFKit 8.3.2 where the header in the thumbnail layout would be misplaced after rotation, and the sticky header would not stick. (Z#13392)

  • Fixed

    Fixes an issue where an annotation’s fillColor returned UIColor.clearColor instead of nil for a clear color. (#19896)

  • Fixed

    Fixes an issue where annotations drawn in dark mode had a black fill color instead of a clear fill color. (#19831)

  • Fixed

    Fixes an issue where erasing or undoing an ink annotation changed the alpha of the remainder of the drawn ink annotation on page. (#19900)

PSPDFKit

  • API

    Replaces the rotation property setter of PSPDFFreeTextAnnotation with setRotation:updateBoundingBox:, which is declared in the PSPDFRotatable protocol. (#19983)

  • Added

    Adds Welsh localization. (#19923)

  • Added

    Adds a new PSPDFPKCS7 class for representing a digital signature PKCS7 container. (#19916)

  • Added

    Adds a way to construct an instance of a PSPDFPrivateKey from NSData that represents a valid private key in either PKCS1 or PKCS8 encoding format. (#19916)

  • Added

    Adds embedSignatureInFormElement: API to the PSPDFSigner, an API that embeds a digital signature in a document already prepared to contain a digital signature. (#19479)

  • Added

    Adds hashDocumentProviderRange: API to the PSPDFDocumentProvider, an API that returns a hashed part of a document provider, indicated by a particular byte range. Useful for creating digital signatures. (#19479)

  • Added

    Adds prepareFormElementToBeSigned: API to the PSPDFSigner, an API that reserves space in a signature form field so that it can be signed later. (#19479)

  • Added

    Adds the ability to set a custom signature watermark. (#19438)

  • Added

    Adds support for the Doc.documentFileName JavaScript API. (#18775)

  • Changed

    Makes enums use NS_CLOSED_ENUM so Swift callers don’t need to handle unknown cases. (#18679)

  • Changed

    Improves rendering of text in appearance streams. (#19877)

  • Changed

    Improves the performance of some JavaScript calculation scripts. (#19234)

  • Changed

    Embedded goto actions will go to the specified page instead of going to the first page of the embedded target document. (#10963)

  • Changed

    Improves automatic repair of AcroForms to support more document errors. (#19834)

  • Changed

    Renames PSPDFSignatureInputMethod enum to PSPDFDrawInputMethod. The previous values have been deprecated. (#19800)

  • Changed

    Updates Expat to version 2.2.6. (#19868)

  • Changed

    Updates the Botan library version to 2.10.0. (#19767)

  • Fixed

    Fixes a bug which caused the font picker to scroll to the selected item with a jerky animation. (#19108)

  • Fixed

    Fixes an issue creating form fields where some fields could not be retrieved later by their original keys. (#19945)

  • Fixed

    Fixes an issue where JavaScript API doc.getField() could get into a state where it wasn’t possible to retrieve newly created form fields. (#20027)

  • Fixed

    Fixes an issue where rotating a page after deleting a note annotation could lead to an assertion failure. (#19853)

  • Fixed

    Fixes an issue where the line start and end of a polyline annotation didn’t honor a clear fill color. (#20097)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to add a Blend Mode menu item to the highlight annotation selection menu. (#19985)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to customize the annotation inspector to set blend mode for vector stamp annotations. (#19979)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to access the biometric data of an ink signature from a -[PSPDFSignatureViewController drawView]. (#19800)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to access the biometric properties after digitally signing a document. (#19800)

  • Added

    Adds an Objective-C version of the “Document progress” example where a PDF file is downloaded and displayed using the PSPDFViewController. (#19897)

  • Changed

    PSCCustomAnnotationProviderExample now properly uses the PSPDFContainerAnnotationProvider. (#20024)

8.3.2 - 15 May 2019

PSPDFKitUI

  • Added

    Adds PSPDFTextSelectionMenuActionCopy, PSPDFTextSelectionMenuActionMarkup, PSPDFTextSelectionMenuActionRedact, PSPDFTextSelectionMenuActionCreateLink, and PSPDFTextSelectionMenuActionAnnotationCreation to PSPDFTextSelectionMenuAction to allow for easier customization of allowed menu actions via PSPDFConfiguration.allowedMenuActions. (#19817)

  • Fixed

    Fixes a crash within PSPDFDocumentEditorViewController that would happen when calling -[PSPDFViewController reloadData] after setting a new document with a lower page count than the current one. (#19839)

  • Fixed

    Fixes an issue where the annotation state of the PSPDFAnnotationStateManager was set to an empty string when no annotation tool was selected. (#19911)

  • Fixed

    Fixes an issue where the thumbnails view would automatically scroll for certain documents when the stickyHeaderEnabled property of PSPDFThumbnailFlowLayout was set to YES. (#19437)

  • Fixed

    Fixes the alignment of the indexing status cell in PSPDFDocumentPickerController. (#19673)

PSPDFKit

  • Added

    Adds undo support for link annotations. (#19702)

  • Added

    Adds a variant property on PSPDFAnnotation. (#19903)

  • Fixed

    Fixes an issue where the redaction text may not be correctly added in some scenarios. (#19703)

  • Fixed

    Fixes an issue with file conflict resolution which caused incorrect handling of cases where an opened document is renamed, moved, or deleted when the app is backgrounded. (#19782)

8.3.1 - 2 May 2019

PSPDFKitUI

  • Fixed

    Fixes an issue where the comments indicator icon was misplaced for rotated stamp annotations. (#19652)

  • Fixed

    Fixes an issue where the flexible toolbar shadow was misplaced during the animation when moving the toolbar to a new position. (#19709)

  • Fixed

    Fixes an issue where the username alert’s done button would remain disabled when programmatically presenting the alert with an empty suggested name. (#19695)

  • Fixed

    Fixes an issue with button alignment on the scrubber bar toolbar on devices with bottom safe area insets. (#16254)

  • Fixed

    Fixes an issue with the page mode not updating when rotating the device while editing a free text annotation. (#19160)

PSPDFKit

  • Changed

    Improves performance when attempting to load custom fonts on demand. (#19662, #19661)

  • Changed

    Improves performance when executing JavaScript actions on form fields with complex interdependent validation logic. (#19661)

  • Changed

    Improves results from PSPDFLibrary when the PSPDFLibraryMatchExactPhrasesOnly option is specified, and a tokenizer other than the default porter tokenizer is used. (#19685)

  • Changed

    Prevents a potential multithreading violation when the sqlite backend is accessed while a low memory notification is broadcasted. (#19750)

  • Fixed

    Fixes an issue where the PSPDFRenderDrawBlock set using -[PSPDFProcessorConfiguration drawOnAllCurrentPages:] was overridden by the PSPDFRenderDrawBlock of a PSPDFDocument’s render options. (#19541)

  • Fixed

    Fixes an issue where an annotation would not be up-to-date when using the processor while using the external file annotation save mode. (#19498)

  • Fixed

    Fixes an issue where readonly checkboxes may not be rendered correctly. (#19506)

  • Fixed

    Fixes a crash that could occur when deleting annotations using the menu interface. (#18061)

  • Fixed

    Fixes a potential crash when processing large documents under low-memory conditions. (#19768)

Examples

  • Changed

    Updates PSCPredefinedEmailBodyExample to use the new Document Sharing API. (#19725)

  • Fixed

    Fixes a crash on the Custom Sharing Options example in Catalog. (#19711)

8.3.0 - 23 Apr 2019

See the announcement post.

PSPDFKit now requires and is built with Xcode 10.2.1 (10E1001).

PSPDFKitUI

  • API

    Changes the methods on PSPDFSaveViewControllerDelegate to better handle saving files, especially for supporting showing the system file picker. Replaces -saveViewControllerDidEnd:shouldSave: with -saveViewController:saveFileToURL:completionHandler:, -saveViewController:didFinishWithURL:, and -saveViewControllerDidCancel:; and replaces -saveViewControllerShouldSave:toPath:error: with -saveViewController:saveFileToURL:completionHandler:. (#16997)

  • API

    Makes the searchString parameter in -[PSPDFDocumentPickerControllerDelegate documentPickerController:didSelectDocument:pageIndex:searchString:] correctly declared as nullable. (#19040)

  • API

    Removes -[PSPDFViewModePresenter updateInsetsForTopOverlapHeight:] with dropping support for iOS 10. (#19445)

  • Removed

    Deprecates the document editor specific API (initWithDocumentEditorConfiguration: and documentEditorConfiguration) and removes PSPDFDocumentEditorConfigurationConfigurable conformance on PSPDFSaveViewController. (#16997)

  • Removed

    Deprecates -[PSPDFAnnotationPresenting didShowPageView:] in favor of -[PSPDFAnnotationPresenting willShowPageView:] to better communicate the timing of this method call. (#19333)

  • Removed

    Deprecates -[PSPDFSignatureViewController keepLandscapeAspectRatio], since showing the signature drawing area in a landscape format is the default. (#18772)

  • Removed

    Deprecates the PSPDFPresentationPersistentCloseButtonKey presentation option and PSPDFNavigationController’s persistentCloseButtonMode and persistentCloseButton properties. Persistent close buttons are no longer used by PSPDFKit itself and support for them will be removed in a future release. (#18867)

  • Added

    Adds new UI for link annotation creation and editing via PSPDFLinkAnnotationEditingContainerViewController, PSPDFPageLinkAnnotationEditingViewController, and PSPDFWebsiteLinkAnnotationEditingViewController. (#18909)

  • Added

    Adds the link annotation tool to the default Annotation Toolbar configurations. (#18909)

  • Added

    Adds support for showing link annotations with multiple rects, which happens if the link spans multiple lines. (#18909)

  • Added

    Adds a rotation knob to PSPDFResizableView that can be used to change the angle of standard stamps and custom text stamps. Its appearance and position can be customized using the new rotationKnob property and centerPointForRotationKnobInFrame: method on PSPDFResizableView, and the PSPDFKnobTypeRotation enum value. (#15901)

  • Added

    Adds external keyboard commands to navigate lists (table views) using arrow keys. (#7824)

  • Added

    Adds external keyboard commands for navigation bar and toolbar buttons when using PSPDFNavigationController. (#7824)

  • Added

    Adds external keyboard commands to switch tab in the document info view. (#7824)

  • Added

    Adds a configuration option to enable adding multiple bookmarks to the same page in the UI. (#16371)

  • Added

    Adds shouldResetAppearanceModeWhenViewDisappears property on PSPDFViewController, which allows you to disable the appearance mode reset on -[PSPDFViewController viewWillDisappear:]. (#19562)

  • Changed

    Improves Digital Signature signing experience by presenting the Annotation Toolbar only when it is required. (#18192)

  • Changed

    Improves signature drawing area sizing to make sure no drawings are cut off when rotating the device or resizing the app. (#18772)

  • Changed

    Improves the behavior of form fields with autosizing fonts. (#19303)

  • Changed

    Improves the internal annotation username state handling which caused issues when programmatically dismissing the annotation username alert. (#18905)

  • Changed

    Improves the performance and reliability of the Document Editor. (#19349)

  • Changed

    Changes how editableAnnotationTypes are set on PSPDFAnnotationTableViewController when presented by PSPDFKit. Links will be filtered out by default. (#18909)

  • Changed

    Changing the type of markup annotations now sets the style of the changed annotation to the last used style for the new type. (#19255)

  • Changed

    Enables link annotation editing by default, by adding them to PSPDFConfiguration.editableAnnotationTypes. (#18909)

  • Changed

    Improve the logic to properly inset the Annotation Toolbar when the page grabber is used. (#18685)

  • Changed

    The timing of -[PSPDFDocumentViewControllerDelegate willBeginDisplayingSpreadView:forSpreadAtIndex:] as well as PSPDFDocumentViewControllerWillBeginDisplayingNotification have been changed to be called before displaying the spread, as expected from their names. (#19333)

  • Changed

    PSPDFDocumentPickerController now handles sandbox restrictions on the Simulator more accurately when trying to delete documents. (#19040)

  • Fixed

    Fixes a memory leak when interacting with sound annotations. (#19295)

  • Fixed

    Fixes an issue that could result in blank pages after scrolling or device rotation. (#18848, #18682)

  • Fixed

    Fixes an issue where PSPDFThumbnailViewController and PSPDFDocumentEditorViewController would hold outdated references for documents when calling -[PSPDFViewController reloadData], resulting in inconsistencies. (#19363)

  • Fixed

    Fixes an issue where PSPDFViewController was not completely reloading after changing the document’s pageBinding property. (#19199)

  • Fixed

    Fixes an issue where a document could not be deleted in PSPDFDocumentPickerController. (#19458)

  • Fixed

    Fixes an issue where changing the appearance mode would not be reflected on the currently visible pages in page curl mode unless the page was changed. (#18869, Z#12698)

  • Fixed

    Fixes an issue where editing permissions was not allowed if the document was opened with user (open) password. (#19188)

  • Fixed

    Fixes an issue where keyboard was not dismissed in favor of a form field popover. (#6523)

  • Fixed

    Fixes an issue where the activity indicator on a page was still visible even after the completion of the rendering. (#19529)

  • Fixed

    Fixes an issue where the Annotation Toolbar was not correctly placed when using the page grabber and the app was resized. (#19334)

  • Fixed

    Fixes an issue where the wrong preset would be selected in the Annotation Inspector if multiple presets with the same color combination where present. (#19623)

  • Fixed

    Fixes an issue which caused the line annotation’s start and end color to not persist correctly. (#19535)

  • Fixed

    Fixes memory leaks when using PSPDFDocumentSharingViewController. (#14468)

  • Fixed

    Fixes page change keyboard shortcuts in right-to-left layouts. (#19385)

  • Fixed

    Fixes the half modal inspector scroll position sometimes jumping after showing the font picker or going back. (#19050, #19052)

  • Fixed

    Fixes the half modal drag indicator appearing above the font picker search field where it didn’t fit well. (#18881)

PSPDFKit

  • API

    Replaces the rotation property setter of PSPDFStampAnnotation with setRotation:updateBoundingBox:, which is declared in the PSPDFRotatable protocol. (#15888)

  • Removed

    Deprecates -[PSPDFBookmarkManager removeBookmarkForPageAtIndex:] in favor of the new removeBookmarksForPageAtIndex:, which more accurately describes the handling of multiple bookmarks per page. (#16371)

  • Added

    Adds support for rotating stamp annotations to any angle and ensures the visual size is retained when the rotation is changed. (#15899)

  • Added

    Adds a customData property to PSPDFAnnotation. The contents of this property are saved to the corresponding annotation provider. (#18889)

  • Added

    Adds PSPDFDirectory.documentPickerDirectory as a way to show the system file picker for directory selection. (#16997)

  • Added

    Adds a drawingBlock property to PSPDFFileAppearanceStreamGenerator to allow additional custom drawing. See AppearanceStreamGeneratorWithCustomDrawingExample in PSPDFKit Catalog. (#19277)

  • Added

    Adds French (Canadian) localization. (#19686)

  • Added

    Adds showWatermark to PSPDFSignatureAppearance. This allows hiding the watermark from digital signatures. (#19438)

  • Added

    Adds support for signing PDF documents using P12 keystores that contain CA certificates. (#19448)

  • Added

    Adds support for modifying form fields and annotation widgets to Instant Document JSON. (#18771)

  • Added

    Adds FontStyle to Instant JSON for widget annotations. (#18083)

  • Changed

    Improves JavaScript error validation and error reporting. (#18899)

  • Changed

    Improves performance of pages which hold lots of objects. (#19396)

  • Changed

    Improves the performance of documents with JavaScript interactivity in many common scenarios. (#19119)

  • Changed

    Automatically triggers a clearCache when the data directory is set. (#18898)

  • Changed

    Changes the default PSPDFDocumentEditorConfiguration.saveDirectories to PSPDFDirectory.documentPickerDirectory, to use the system file picker for choosing a save location. (#16997)

  • Changed

    Increases the default levels of undo actions from 40 to 100 to store more history. (#18756)

  • Changed

    Loading PDF actions is now more reliable. (#18843)

  • Changed

    Optimizes storage size of Magic Ink template files. (#19453)

  • Changed

    Suppresses parsing and potential display of unsupported annotation types, such as widget annotations. (#19415)

  • Changed

    Updates ICU to version 63.1. (#18974)

  • Changed

    Updates libjpeg-turbo to 2.0.2. (#18973)

  • Changed

    Updates libpng to 1.6.36. (#18972)

  • Changed

    Updates zlib to 1.2.11. (#18975)

  • Fixed

    Fixes a problem where a form field that is made visible by a JavaScript script may not show its formatted appearance. (#19119)

  • Fixed

    Fixes a rare issue when parsing outlines. (#19469)

  • Fixed

    Fixes a very occasional crash on editing form elements. (#19595)

  • Fixed

    Fixes an assertion that could occur when applying certain rotation values in Instant JSON in certain documents. (#19391)

  • Fixed

    Fixes an issue exporting Instant JSON shape annotations with transparent stroke colors. (#19120)

  • Fixed

    Fixes an issue when redacting documents with monochrome inline images. (#19579)

  • Fixed

    Fixes an issue when drawing a path using a pattern with alpha transparency. (#19148)

  • Fixed

    Fixes an issue when rendering text with an overlay blend mode. (#19151)

  • Fixed

    Fixes an issue when setting transparent colors in annotations. (#19120)

  • Fixed

    Fixes an issue when sharing a document that resulted in blank pages. (#19267)

  • Fixed

    Fixes an issue where the QuadPoints of link annotations were saved to the PDF incorrectly. (#19427)

  • Fixed

    Fixes an issue where -[PSPDFDocument+DataDetection objectsAtPDFRect:pageIndex:options:] could return a nil annotations array. (#18846)

  • Fixed

    Fixes an issue where a page would sometimes fail to render when scrolling through a document quickly. (#18571)

  • Fixed

    Fixes an issue where annotations created by Apple Preview may not be copied and pasted correctly. (#19154)

  • Fixed

    Fixes an issue where border width and border dash array of free-text annotations were not serialized properly to Instant JSON. (#19481)

  • Fixed

    Fixes an issue where entering text after a PDF document script has executed may not work correctly. (#19119)

  • Fixed

    Fixes an issue where form field input may not be correctly validated while the user is typing if some form field flags are set. (#19448)

  • Fixed

    Fixes an issue where link annotations may not work correctly after a document is exported. (#19222)

  • Fixed

    Fixes an issue where malformed widget annotations weren’t correctly attached to the form. (#19581)

  • Fixed

    Fixes an issue where opening a document with annotations written by a version of PSPDFKit prior to 8.0 could lead to a deadlock. (#19007)

  • Fixed

    Fixes an issue where some JPX images may not render correctly. (#18648)

  • Fixed

    Fixes an issue where some memory may be leaked after running a script. (#19016)

  • Fixed

    Fixes an issue where stamps with custom AP streams were added with the wrong rotation on rotated PDF pages. (#19351)

  • Fixed

    Fixes an issue where text edited in form fields was incorrectly set in other form fields as well. (#19236)

  • Fixed

    Fixes an issue where the fillColor property was ignored in Instant JSON for polyline annotations. (#19443)

  • Fixed

    Fixes an issue with instant ink annotation not being sent to clients. (#19325)

  • Fixed

    Fixes an issue with text markup alignment on accented characters. (#18214)

  • Fixed

    Fixes some characters being missing from search preview. (#19361)

Instant

  • Changed

    Demotes an assertion about an unexpected state of the database to a recoverable error when applying changes from the server. (#18698)

  • Fixed

    Fixes an issue where multiple authentication requests for the same layer could be running concurrently. Under certain circumstances, this could cause multiple concurrent sync requests for the same layer too. (#18698)

Examples

  • Changed

    All Swift examples have been updated to Swift 5. (#19405)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to customize the tab title of a PSPDFTabbedViewController. (#19590)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to customize the table view cell for a PSPDFSearchViewController. (#19572)

  • Added

    Adds an example in Swift to customize the buttons in the Annotation Toolbar. (#19232)

  • Fixed

    Fixes an issue where the close button was not visible in Custom Sharing Options example. (#19345)

  • Fixed

    Fixes an issue with the navigation bar’s appearance and visibility in the example catalog. (#19348)

8.2.3 - 21 Mar 2019

PSPDFKitUI

  • Fixed

    Fixes an issue where -[PSPDFTabbedViewControllerDelegate tabbedPDFController:didChangeVisibleDocument:] was not getting called when closing the visible tab. (#19298)

  • Fixed

    Fixes an issue where tall form fields with auto-sizing fonts would behave incorrectly. (#19303)

  • Fixed

    Fixes scrubber bar flickering when manipulating annotation properties. (#19200, #19210)

PSPDFKit

  • Changed

    Updates scripts embedded in PSPDFKit.framework, so Xcode does not try to sign them for specific setups. All embedded scripts need to be called with bash from now on, e.g. bash PSPDFKit.framework/strip-bitcode.sh. You can manually delete the #!/bin/sh line from the script for older versions if you encounter ERROR ITMS-90035: “Invalid Signature. Code object is not signed at all.” pointing to a script embedded in PSPDFKit.framework. (#19190)

  • Fixed

    Fixes an issue where the caps key may be incorrectly enabled on some form fields. (#19246)

  • Fixed

    Fixes an issue where ink drawings created in macOS Preview and represented as vector stamps could in some cases be incorrectly displayed as a default stamp. (#19157)

Examples

  • Fixed

    Fixes Swift language detection in the PSPDFKit Catalog on beta versions of Xcode. (#19095)

8.2.2 - 11 Mar 2019

PSPDFKitUI

  • Changed

    Improves behavior when trying to share invalid documents. (#19102)

  • Changed

    Improves the behavior for multiline form fields that have autosizing fonts. (#18999)

  • Changed

    Improves the behavior when interacting with form fields when the page is zoomed in. (#18417)

  • Changed

    Reduces the number of registered undo actions when dragging an ink annotations, which might have caused main thread freezes previously. (#19169)

  • Fixed

    Fixes an issue that prevented the shouldHideUserInterfaceOnPageChange flag from being correctly honored when using tap to scroll navigation. (#16362)

  • Fixed

    Fixes an issue where document metadata was ignored when sharing through UIActivityViewController. (#19056)

  • Fixed

    Fixes an issue where sound annotations could not be played back if they did not have a note attached to it. (#19038)

  • Fixed

    Fixes an issue where the “Copy” option is shown for annotations that do not support copying. (#15854)

  • Fixed

    Fixes an issue where undoing free text callout annotation changes did not work properly. (#18197)

PSPDFKit

  • Changed

    Reduces the numbers of undo actions recorded when modifying the points of free text callout, line, polyline, and polygon annotations. (#18197)

  • Removed

    Removes the PSPDFFormElementFlag enumeration, which was unused. The supported flags can be set through the readOnly, required, and noExport properties on PSPDFFormField. (#19101)

  • Fixed

    Fixes a potential crash when resolving additional downloadable fonts. (#18981)

  • Fixed

    Fixes a rare deadlock when using undo/redo while a document is being deallocated. (#18977)

  • Fixed

    Fixes an issue that could result in missing annotation note indicators for notes added in third party editors. (#19039)

  • Fixed

    Fixes an issue where a form field with custom formatting may not be formatted correctly when its exported XFDF data is imported again. (#18791)

  • Fixed

    Fixes an issue where annotation note indicators could be clipped when positioned on the edge of the annotation bounding box. (#19039)

  • Fixed

    Fixes an issue where changes to the fileURL property of objects in a document’s dataProviders array were not reflected in the fileURLs, or fileURL property of that document. PSPDFDocument now uses KVO to reflect changes to the fileURL property of its dataProviders that conform to PSPDFFileDataProviding in its own fileURLs, and fileURL properties. (#18835)

  • Fixed

    Fixes an issue where some JavaScript keystroke handling scripts may not work as intended. (#19070)

  • Fixed

    Fixes an issue where the image of a push button may be displaced in some cases. (#18932)

  • Fixed

    Fixes some issues where certain properties changed by a JavaScript script may not reflect correctly in the UI. (#18125)

  • Fixed

    Fixes an issue where some layers were hidden incorrectly. (#14439)

8.2.1 - 18 Feb 2019

PSPDFKitUI

  • Changed

    Improves the internal annotation username state handling which caused issues when programmatically dismissing the annotation username alert. (#18905)

  • Changed

    Improve the logic to properly inset the annotation toolbar when the page grabber is used. (#18685)

  • Fixed

    Fixes an issue that could result in blank pages after scrolling or device rotation. (#18848, #18682)

  • Fixed

    Fixes an issue where changing the appearance mode would not be reflected on the currently visible pages in page curl mode unless the page was changed. (#18869, Z#12698)

  • Fixed

    Fixes an issue where keyboard was not dismissed in favor of a form field popover. (#6523)

  • Fixed

    Fixes the half modal drag indicator appearing above the font picker search field where it didn’t fit well. (#18881)

PSPDFKit

  • Changed

    Improves JavaScript error validation and error reporting. (#18899)

  • Changed

    Automatically triggers a clearCache when the data directory is set. (#18898)

  • Fixed

    Fixes an issue where -[PSPDFDocument+DataDetection objectsAtPDFRect:pageIndex:options:] could return a nil annotations array. (#18846)

  • Fixed

    Fixes an issues where a page would sometimes fail to render when scrolling through a document quickly. (#18571)

8.2.0 - 7 Feb 2019

See the announcement post. PSPDFKit 8.2 for iOS is the last minor version to support iOS 10. PSPDFKit 8.3 for iOS will raise the deployment target to iOS 11, allowing us to concentrate our development and support efforts.

PSPDFKitUI

  • Removed

    Deprecates -[PSPDFDocumentEditorToolbarController toggleSaveActionSheet:presentationOptions:completionHandler:] in favor of -[PSPDFDocumentEditorToolbarController toggleSavingConfirmationViewController:presentationOptions:completionHandler:]. (#17589)

  • Removed

    Deprecates -[PSPDFDocumentSharingViewControllerDelegate documentSharingViewController:willShareFiles:] and adds a new delegate method to set a custom filename for the generated files when sharing documents. (#18781)

  • Removed

    Deprecates PSPDFFlexibleToolbarContainerView.flickToCloseEnabled which allowed to close the toolbar by flicking down on it while dragging. (#17893)

  • Removed

    Deprecates bookmarkString on PSPDFBookmarkCell, since the cell now displays multiple labels. (#10916)

  • Added

    Adds additional bookmark UI features and improves the overall bookmark cell design. (#10916)

  • Added

    Adds a smoother and more delightful annotation inspector on iPhone that works as a proper sliding panel to better align with modern iOS design. (#17963)

  • Added

    Adds shouldStartEditingBookmarkNameWhenAdding on PSPDFBookmarkViewController to disable the new behavior where an added bookmarks’ name is automatically made editable. (#10916)

  • Added

    Adds -[PSPDFConfiguration redactionUsageHintEnabled] to determine if the redaction usage hint should be shown the first time the redaction tool is selected. (#18437)

  • Added

    Adds textSelectionMenuItemForCreatingAnnotationWithType: to get a text selection annotation creation menu item, to make it easier to customize the text selection menu. (#17635)

  • Added

    Adds a new default annotation toolbar configuration, to make the toolbar show an appropriate amount of items, in more cases. (#17322)

  • Added

    Adds a subclassing hook for customizing the alert controller shown when the document editor is going to be dismissed. (#17589)

  • Added

    Adds view state restoration support for the document editor toolbar. (#18467)

  • Changed

    Improves automatic font size calculation for text widgets. (#18095)

  • Changed

    Improves bounding box calculation used for creating text markup and redaction annotations in the UI to more closely reflect the actual text frames, and to not accidentally mark up adjacent characters. (#17675, #16629)

  • Changed

    Improves conflict resolution handling while the view controller is not visible. (#18159)

  • Changed

    Improves memory usage when scrolling through pages quickly in a large document. (#18460)

  • Changed

    Improves the interaction for form fields that contain both the DoNotScroll and auto-sizing font flags. (#18254)

  • Changed

    Improves the way default page templates are handled on PSPDFNewPageViewController. (#18239)

  • Changed

    Changes the condition for determining if all text selection markup creation menu items should be displayed, from checking if the current device is an iPad, to checking if the view is shown in a regular horizontal size class. (#18117)

  • Changed

    Changes the condition for determining if the markup style menu items should be shown in a submenu, from checking if the current device is an iPad, to checking if the view is shown in a regular horizontal size class. (#18117)

  • Changed

    Imposes support for setting the flexible toolbar position via the toolbarPosition property. The set value is now prioritized over any preserved user state. (#18467)

  • Changed

    Padding for text selection is no longer applied on the model level for glyphs, but instead only on the UI level for the text selection view. (#18036)

  • Changed

    The minimum font size is now 4px, the maximum is 200px. (#18485)

  • Fixed

    Fixes a potential assertion when a HUD toggle is scheduled but the view is removed during that time. (#18670)

  • Fixed

    Fixes an issue in Document Permissions screen which allowed the user to save modified permissions without setting a Document Owner password. Previously, the permissions were not getting actually updated, however the UI might have led the user to believe so. (#18496)

  • Fixed

    Fixes an issue in Document Permissions screen which allowed the user to set the same Document Open and Document Owner password. They can’t be the same. For more details, please see https://pspdfkit.com/blog/2018/protecting-pdf-documents/. (#18495)

  • Fixed

    Fixes an issue where a modally presented PSPDFViewController could be dismissed after tapping on an annotation from the annotations list. (#18643)

  • Fixed

    Fixes an issue where a warning was needlessly logged when the license did not include the Annotation Editing component. (#18448)

  • Fixed

    Fixes an issue where backward and forward buttons were not updated correctly. (#18523)

  • Fixed

    Fixes an issue where drawing in the signature UI was not following the touch location. (#18522)

  • Fixed

    Fixes an issue where drawing or creating text markups didn’t work when scrolling to the next or previous page after activating the tool. (#18715)

  • Fixed

    Fixes an issue where form fields that were marked as multiline but had the doNotScroll flag set and are really short would fail to accept input. (#16965)

  • Fixed

    Fixes an issue where highlighting text using markup annotations did not work reliably after changing page using the thumbnail scrubber bar. (#18613)

  • Fixed

    Fixes an issue where image stamp annotations could be inserted in the wrong spread in double page mode. (#18654)

  • Fixed

    Fixes an issue where merging markup annotations or converting a markup to a different type caused the bounding box to change unexpectedly. (#18092)

  • Fixed

    Fixes an issue where selected text and annotations were shown on an external screen while screen mirroring, which caused some UI glitches. (#18570)

  • Fixed

    Fixes an issue where the UIMenuController for selected annotations was not positioned correctly. (#18186)

  • Fixed

    Fixes an issue where the delegate of PSPDFSignatureSelectorViewController was overriden, when set before the view appeared. (#18431)

  • Fixed

    Fixes an issue where the annotation inspector popover was not positioned correctly if the annotation was partially off screen. (#18453)

  • Fixed

    Fixes an issue where the document on an external screen got stuck while screen mirroring when re-connecting a display while a document was visible. (#18570)

  • Fixed

    Fixes an issue where the rect of newly added stamp annotations in double page mode was incorrect. (#18654)

  • Fixed

    Fixes an issue where the user interface view could get stuck in a visible or hidden state, when switching pages while editing a free text annotation. (#18541)

  • Fixed

    Fixes an issue where unsaved ink annotations were rendered incorrectly after rotating the page. (#18230)

  • Fixed

    Fixes customization of the subject when sharing documents via email using the system share sheet. (#18099)

  • Fixed

    Fixes support for dynamic document editor toolbar button layouts by correctly invoking and honoring the -[PSPDFDocumentEditorToolbar buttonsForWidth:] subclassing hook. (#18669)

PSPDFKit

  • API

    Changes the return type of -[PSPDFBookmarkManager addBookmarkForPageAtIndex:] from void to PSPDFBookmark *. (#10916)

  • Removed

    Deprecates PSPDFDocumentSaveOptionForceRewrite in favor of newly added PSPDFDocumentSaveOptionForceSaving and PSPDFDocumentSaveOptionStrategy. (#18142)

  • Removed

    Deprecates -[PSPDFDocument applyInstantJSONFromDataProvider:toDocumentProvider:error:] in favor of a version that adds a lenient parameter, that controls the behavior when the JSON is (partially) invalid. (#18630)

  • Added

    Adds PSPDFOriginalFontNameAttributeName to improve handling of fonts in free text annotations where the font is not readily available. In addition, setting an annotation’s fontName now preserves the fontSize. (#18421)

  • Added

    Adds localizedActionType to PSPDFAction, and changes some of the strings returned from localizedDescriptionWithDocumentProvider:. (#10916)

  • Added

    Adds support for cloudy borders in shape annotations and free text annotations via Instant JSON. (#18547)

  • Added

    Adds support for multi-threaded rendering. (#18199)

  • Added

    Adds support for stamp and free text annotation rotation in Instant JSON. (#18019)

  • Added

    Adds support for the doc.removeField JavaScript API. (#18621)

  • Changed

    Improves compatibility with 3rd-party SDKs that use Aspects to hook into message passing. (#18793)

  • Changed

    Improves handling of a document’s documentProviders being recreated, which happens when calling clearCache and in low-memory situations. (Z#12006)

  • Changed

    Improves handling of failures to add annotations to a given annotation provider. Annotations that could not be attached to the document are now not included in the return value of an annotation provider’s -addAnnotations:options: method. (#16326)

  • Changed

    Improves initial text parsing performance. (#18534)

  • Changed

    Improves performance when looking up fonts. (#17981)

  • Changed

    Improves the locking mechanism for password-protected documents so that calling -[PSPDFViewController reloadData] won’t reload an explicitly-locked document. (#18561)

  • Changed

    Improves the performance of documents which apply masks to text objects. (#15497)

  • Changed

    Allow the use of -[PSPDFDocumentProvider setRotationOffset:forPageAtIndex:] on providers with custom annotation providers like XFDF or PSPDFKit Instant. (#17603)

  • Changed

    Exposes -[PSPDFAnnotation blendMode]. See https://pspdfkit.com/guides/ios/annotations/annotation-blend-modes/. (#18410)

  • Fixed

    Fix an issue in full-text search that could cause a deadlock during indexing. (#18750)

  • Changed

    Padding for glyph frames is no longer applied in PSPDFBoundingBoxFromGlyphs and PSPDFRectsFromGlyphs. PSPDFDefaultTextPaddingFactor has been removed as well. (#18036)

  • Changed

    The documentProvider property on PSPDFAnnotation is now readonly. (#18578)

  • Changed

    Updates the Botan library to version 2.9.0. (#18271)

  • Changed

    Use app name in JavaScript alerts. (#18529)

  • Fixed

    Fixes a bug where annotations parsed from XFDF would be displayed incorrectly on a rotated page. (#17603)

  • Fixed

    Fixes a problem importing/exporting color values. This could lead to unnecessary appearance stream regeneration. (#18428)

  • Fixed

    Fixes a rare deadlock when using ink annotations from multiple threads. (#18674)

  • Fixed

    Fixes an issue when opening a rotated Image Document. (#17791)

  • Fixed

    Fixes an issue where creating text markup annotations via +textOverlayAnnotationWithRects:boundingBox:pageIndex: ignored the bounding box parameter and used the union of the rects as bounding box instead. (#18092)

  • Fixed

    Fixes an issue where rendering a page with lot of annotations on a large zoom scale would cause memory usage to spike. (#18224)

  • Fixed

    Fixes an issue with Image Documents when images have an orientation. (#17791)

  • Fixed

    Fixes an issue with Image Documents when saving back to an already rotated image. (#18483)

  • Fixed

    Fixes an issue with accessing the document metadata after receiving a low memory warning. (#18769)

  • Fixed

    Fixes an issue with render cancellation when using a document that contains multiple data providers. (#18563)

  • Fixed

    Fixes delegates not being correctly called for PSPDFDocumentEditorDelegate for some editor actions. (#18531)

  • Fixed

    Fixes text markup annotations being created incorrectly on rotated pages with text that appears the right way up. (#18219, Z#11941)

Instant

  • Changed

    Improves the display of and interaction with image annotations that have not been loaded yet. (#17004)

  • Changed

    Enables support for creating and modifying stamp annotations. (#18773)

  • Changed

    Hide Sharing action in PSPDFInstantViewController. Instant document cannot be shared. (V#1883)

  • Fixed

    Fixes an issue where stamp annotations would lead to a failed assertion. (#17911)

  • Fixed

    Fixes an issue where underline annotations would not sync properly. (#18030)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to disable bouncing for the document scroll and zoom views. (#18765)

  • Added

    Adds an example in Swift for using the Apple Maps widget in a PDF page. (#18067)

  • Changed

    Updates Catalog example to better illustrate how to customize the file names of documents being shared. (#18574)

8.1.3 - 15 Jan 2019

PSPDFKitUI

  • Added

    Adds a new subclassing hook to PSPDFDocumentSharingViewController to customize the mail compose view controller when sharing to the Email destination. (#17955)

  • Changed

    Improves change tracking to prevent presentedItemDidChange loops that could prevent saves with certain system file provider extensions. (#18409)

  • Changed

    Publicly declares PSPDFFlexibleToolbarContainerDelegate conformance in PSPDFDocumentEditorViewController. (#18451)

  • Fixed

    Fixes an issue in the Security/Permissions screen where the toolbar buttons changed prematurely. (#18261)

  • Fixed

    Fixes an issue in the document editor where adding a new page after reordering pages would undo the reordering. (#18492)

  • Fixed

    Fixes an issue that prevented tapping buttons on the document editor toolbar after long-pressing the thumbnail of a single page document. (#18181)

  • Fixed

    Fixes an issue where the size of the generated image for sharing changed according to the scale of the device screen. (#18217)

  • Fixed

    Fixes an issue where the swipe to delete action in the annotations list only worked for the first entry. (#18207)

  • Fixed

    Fixes an issue where unsaved Free Text annotations did not render correctly after rotation of a page. (#18179)

  • Fixed

    Fixes an issue that prevented the UI for sharing documents from being presented. (#18039)

  • Fixed

    Fixes a potential exception when dismissing the document info popover. (#18215)

  • Fixed

    Fixes an exception when calculating the tab bar index with a width of zero. (#18227)

PSPDFKit

  • Added

    Adds a unique identifier uuid to PSPDFAnnotation. (#17635)

  • Changed

    Improves error reporting when creating an image for a page of a document fails. (#18212)

  • Fixed

    Fixes an issue when invalid Image Documents are read back. (#18110)

  • Fixed

    Fixes an issue where the redaction of a monochrome image may change its color unexpectedly. (#18176)

  • Fixed

    Fixes an issue with some documents using large amounts of memory when searching and navigating. (#18118)

8.1.2 - 20 Dec 2018

PSPDFKitUI

  • Added

    Adds -[PSPDFDocumentSharingViewControllerDelegate documentSharingViewController:shouldShareFiles:toDestination:] to be able to halt the sharing process in case you want to handle the generated files yourself. (#17957)

  • Fixed

    Fixes a rare exception when doing programmatic scrolling on iOS 10. (#18048)

  • Fixed

    Fixes an assertion when the page view is about to be reused, but tries to finalize displaying the multimedia gallery. (#18060)

  • Fixed

    Fixes an exception when trying to invoke share in the web view controller, when no URL is set. (#18026)

  • Fixed

    Fixes an issue where PSPDFDrawView could not be subclassed and overridden. (#18157)

  • Fixed

    Fixes an issue where drawing strokes might have been offset when resizing the app or rotating the device. (#17320)

  • Fixed

    Fixes an issue where drawings could be offset from the actual touch location on very tall or wide pages. (#17769)

  • Fixed

    Fixes an issue where the values for overlayText and repeatOverlayText were not persisted in the Redaction Annotation Inspector. (#17694)

  • Fixed

    Fixes an issue where video preview generation could cause the main thread to stutter. (#17802)

  • Fixed

    Fixes an issue with closing a tab via the close button and a keyboard shortcut at the same time. (#18104)

  • Fixed

    Fixes an issue with image cropping when the image is invalid. (#18103)

PSPDFKit

  • Changed

    Improves file asset handling for invalid PDF documents. (#18102)

  • Changed

    Improves handling of invalid documents when enqueueing them in PSPDFLibrary. (#18106)

  • Changed

    Improves handling of malformed documents when parsing the extended graphics state. (#18057)

  • Changed

    Improves the API documentation for PSPDFUsernameHelper and PSPDFDocument.defaultAnnotationUsername. (#18031)

  • Changed

    Improves thread handling and exiting when an app termination event is detected. (#18044)

  • Changed

    Improve app termination handling when background library indexing operations are in flight. (#18056)

  • Fixed

    Fixes a crash parsing text on a very small number of documents. (#18032)

  • Fixed

    Fixes an assertion that might be triggered on document deallocation when the undo controller hasn’t been cleaned up yet. (#18062)

  • Fixed

    Fixes an issue where PSPDFLibrary would return incorrect results when searching within documents that contained Unicode surrogate pairs (like Emoji) in their text. (#3292)

  • Fixed

    Fixes an issue where redacting certain kinds of vector graphics may incorrectly redact part of the background. (#18071)

  • Fixed

    Fixes an issue where redacting certain kinds of vector graphics may result in a lot of memory consumption. (#18065)

  • Fixed

    Fixes an issue where the JavaScript method Doc.print may not work correctly. (#18111)

  • Fixed

    Fixes an issue where the signature overlay may show incorrect text in non-Western languages. (#17918)

  • Fixed

    Fixes an issue with file change tracking that could trigger to multiple conflict resolution messages or a document reload loop. (#18090, #18133)

  • Fixed

    Fixes some visualization issues with markup annotations, specially on rotated pages. (#12927, #13162, #17713, #17889, #18002, #18024)

8.1.1 - 7 Dec 2018

PSPDFKitUI

  • Added

    Adds support for unlocking an encrypted document when screen mirroring, as soon as the document is unlocked on the device. (#17990)

  • Changed

    Makes the draw gesture recognizer resilient against an unexpected number of touches. (#18005)

  • Fixed

    Fixes a crash that could occur after deleting pages in the document editor. (#17987)

  • Fixed

    Fixes a potential exception when restoring view state for the document editor, before it is loaded. (#17984)

  • Fixed

    Fixes an exception that might occur when the document editor loads images in the background while the user removes pages from the document. (#17985)

  • Fixed

    Fixes an incorrect license check assertion that could be triggered when transitioning between the document and thumbnail view modes. (#17994)

  • Fixed

    Fixes an issue causing an infinite recursion when unlocking an encrypted document with screen mirroring enabled. (#17990)

PSPDFKit

  • Changed

    Improves strikeout annotation rendering, by making the line a little bit thicker and the baseline a little bit below the vertical center. (#17889)

  • Fixed

    Fixes a rare exception when deallocating undoable objects in multiple threads. (#17983)

8.1.0 - 6 Dec 2018

See the announcement post.

PSPDFKitUI

  • Removed

    Deprecates the PSPDFPageView methods convertViewPointToPDFPoint:, convertPDFPointToViewPoint:, convertViewRectToPDFRect:, and convertPDFRectToViewRect: in favor of the clearer and more versatile pdfCoordinateSpace property. (#12053)

  • Removed

    Deprecates PSPDFAnnotationStateManager.drawingInputMode. Set the state to PSPDFAnnotationStringEraser instead. (#17458)

  • Added

    Adds -scrollsToPageAtIndex:document:animated to the PSPDFViewModePresenter protocol. (#15136)

  • Added

    Adds allowEditing, rightActionButtonItems, leftActionButtonItems to PSPDFDocumentInfoViewController and PSPDFDocumentSecurityViewController to allow customizing the interface. (#16429)

  • Added

    Adds visiblePageIndexes property to PSPDFViewModePresenter. (#15136)

  • Added

    Adds a Cancel button to discard changes in PSPDFDocumentInfoViewController and PSPDFDocumentSecurityViewController. (#16790)

  • Added

    Adds a PSPDFConfiguration option, shouldAdjustDocumentInsetsByIncludingHomeIndicatorSafeAreaInsets, to enable the document view to ignore the home indicator when calculating safe area insets. (#17849)

  • Added

    Adds a pdfCoordinateSpace property on PSPDFPageView as the new preferred way to convert between PDF page and view coordinates. (#12053)

  • Added

    Adds a default conflict resolution UI to PSPDFViewController, PSPDFMultiDocumentViewController and PSPDFTabbedViewController via a new PSPDFConflictResolutionManager class. (#13367)

  • Added

    Adds support for all three possible double-tap actions from the second-generation Apple Pencil (UIPencilInteraction). (#17458)

  • Added

    Adds support for redacting more elements, like images, paths, annotations and forms. (#17002)

  • Added

    Adds the ability to share multiple pages of a document as images. (#17020)

  • Added

    Adds a pencilInteraction property and annotationStateManagerDidRequestShowingColorPalette: delegate method on PSPDFAnnotationStateManager to customize Apple Pencil double-tap actions. (#17458)

  • Changed

    Improves flexible toolbar behavior, by disabling user interaction on its contentView while dragging it, to not cause UI glitches in case a button tap would present UI. (#17714)

  • Changed

    Improves performance when scrolling in the thumbnail list, especially for complex documents. (#17337)

  • Changed

    Improves the Document Editor experience on iPhones. (#17613)

  • Changed

    Improves the descriptions for errors that happen when sharing documents. (#17774)

  • Changed

    Improves the experience on the Document Editor when reordering pages. (#17838)

  • Changed

    Improves the page selection experience when sharing multiple documents at once. (#17138)

  • Changed

    Improves the screen mirroring experience and now properly syncs the configuration between the original and the mirrored view controller. (#17484)

  • Changed

    Improves the sharing experience for documents that don’t have annotations. (#17220)

  • Changed

    Prevents the annotation toolbar from being visible if the document is invalid after calling -[PSPDFViewController reloadData]. (#17624)

  • Changed

    Removing a page on PSPDFDocumentEditorViewController no longer briefly displays a random number as the page number. (#17727)

  • Changed

    Switching between the Thumbnails view and the Document Editor now preserves the position of the current page instead of scrolling to the first page. (#15136)

  • Changed

    PSPDFDocumentSharingViewController now correctly calls -[PSPDFViewControllerDelegate pdfViewController:shouldSaveDocument:withOptions:] when sharing a document. (#16488)

  • Fixed

    Fixes a potential exception when calculating collection view scroll offsets on iOS 10. (#17962)

  • Fixed

    Fixes an issue when deleting pages in some documents on PSPDFDocumentEditorViewController. (#17762)

  • Fixed

    Fixes an issue when sharing PDF documents as images. (#17686)

  • Fixed

    Fixes an issue when sharing single-page documents using certain sharing configurations. (#17705)

  • Fixed

    Fixes an issue where text markup and redaction selection could mark up whole images. (#17360)

  • Fixed

    Fixes an issue where the document info and security UI disabled editing for encrypted documents. (#17271)

  • Fixed

    Fixes an issue where the multi-annotation selection tool started recognizing the pan gesture only after a long swipe when zoomed into the page a lot. (#17565)

PSPDFKit

  • API

    The distinction between standard stamps and custom text stamps has been clarified with the following deprecations and replacements. If you previously used the stamp subject consider whether you want a standard or custom text stamp. For standard stamps, subject has been deprecated in favor of stampType and the value of this property should usually be one of the values defined by the new PSPDFStampType string enum. PSPDFKit will provide the localized title for standard stamps. localizedSubject has been deprecated in favor of title. Set the title instead of stampType for custom text stamps, where you provide a title that has already been localized or user-generated. subtext has been deprecated in favor of subtitle. (#15895)

  • API

    -[PSPDFAnnotationSummarizer temporaryPDFFileURLForPages:completionBlock:] is now only available on iOS. (#17109)

  • Added

    Adds a custom tokenizer (PSPDFLibraryUnicodeTokenizerName) that performs full Unicode case folding on the input text. (#16219)

  • Added

    Adds better support for annotations with custom appearance streams. (#15658)

  • Added

    Adds progress reporting and cancellation support to PSPDFAnnotationSummarizer. (#17749)

  • Added

    Adds support for conflict resolution options to PSPDFCoordinatedFileDataProvider and PSPDFDocument. This is achieved by levering APFS to create a lightweight file copy used for safe reading and potential later restoration. (#13367)

  • Added

    Adds support for page bookmarks in compound documents. (#11008)

  • Changed

    Improves compatibility with forms on malformed PDFs. (#17707)

  • Changed

    Improves document features to reflect the current state of the document, by automatically updating them once an encrypted document has been unlocked. (#17271)

  • Changed

    Improves error handling when saving a document fails. (#17685)

  • Changed

    Improves performance on initializing a data provider. (#17897)

  • Changed

    Improves tracking of external file changes. (#17946)

  • Changed

    Changes the type of the keys of PSPDFDocumentPDFMetadata to PSPDFMetadataName. (#16790)

  • Changed

    Log message sent from our render core can now be intercepted with the log handler. (#17732)

  • Changed

    PSPDFDocumentXMPMetadata and PSPDFDocumentPDFMetadata now have failable document initializers and simply return nil if a document is not valid. (#17736)

  • Changed

    PSPDFUndoController now checks if an undo/redo operation can be performed and fails gracefully, instead of throwing an exception when undo/redo is called on an empty stack. (#17921)

  • Removed

    Removes zooming in on search results on iPads. (#17260)

  • Changed

    The disk cache is now invalidated when a device locale change is detected. (#17919)

  • Changed

    The redaction feature now deletes annotations and form fields that intersect with a redaction annotation. (#17390)

  • Changed

    PSPDFAnnotationSummarizer no longer returns a nullable on its initializer. (#17109)

  • Fixed

    Fixes a potential race condition when changing annotation properties from multiple threads at the same time. (#17690)

  • Fixed

    Fixes a problem where some text in a PDF document may be redacted incorrectly. (#17699)

  • Fixed

    Fixes an issue applying redactions on encrypted documents. (#17722)

  • Fixed

    Fixes an issue looking up destinations in a names tree. This could lead to unresolvable link/outline destination. (#17206)

  • Fixed

    Fixes an issue opening certain documents with invalid IRT fields. (#17797)

  • Fixed

    Fixes an issue that may happen after copying a page using the document editor. (#17825)

  • Fixed

    Fixes an issue when using PSPDFAppearanceCharacteristics without an image. (Z#11409)

  • Fixed

    Fixes an issue where XMP metadata was corrupted when saving password protected documents. This enables saving bookmarks into password protected documents. (#17238)

  • Fixed

    Fixes an issue where changing the button caption property of a button from JavaScript code may not change the button appearance. (#17719)

  • Fixed

    Fixes an issue where editing a form field in the middle may incorrectly move the cursor to the end. (#17926)

  • Fixed

    Fixes an issue where keystroke range replacements were not caught by Javascript correctly. (#17106)

  • Fixed

    Fixes an issue where some PDF documents may show an indefinite spinner and not render correctly. (#17446)

  • Fixed

    Fixes an issue where the Javascript VM init sequence prevented errors from bubbling up to the user. (#17745)

  • Fixed

    Fixes an issue where the overlay text of a redaction may not be in the correct place in some cases. (#17695)

  • Fixed

    Fixes an issue where the wrong message is return when a certificate is expired. (#16727)

  • Fixed

    Fixes an issue with importing/exporting vector stamps with InstantJSON. (#16690)

  • Fixed

    Fixes issues when importing annotations on rotated pages using InstantJSON. (#17814)

Instant

  • Added

    Adds support for the Magic Ink tool. (#17362)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to search and redact text. (#17755)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to write and attach Instant JSON binary data. (#17778)

  • Added

    Adds an example on how to create a custom UI to enter a name for a bookmark when adding one. (#17886)

8.0.4 - 28 Nov 2018

PSPDFKitUI

  • Changed

    Improves handling of annotations with invalid bounding boxes. (#17731)

  • Fixed

    Fixes an issue with presenting annotation filtering progress during concurrent annotation edits. (#17730)

  • Fixed

    Fixes an issue with the annotation toolbar and sub menus. (#17716)

PSPDFKit

  • Changed

    Improves error handling in the text parser for corrupted PDF documents. (#17735)

  • Changed

    Improves handling of embedded assets in annotations. (#17717)

  • Changed

    Background library index tasks are now correctly stopped when an application will terminate event is sent. (#17733)

  • Changed

    Improve NSCoder error handling support for PSPDFDataContainerProvider. (#17734)

  • Fixed

    Fixes a potential issue when rendering images. (#17737)

  • Fixed

    Fixes an issue where PSPDFImageDocument’s data provider would reference invalid memory. (#17763)

  • Fixed

    Fixes an issue where text could not be selected in certain documents. (#17759)

  • Fixed

    Fixes an issue where text for highlighted annotations sometimes didn’t include newline character. (#17595)

  • Fixed

    Fixes an occasional issue when rendering text. (#17747)

  • Fixed

    Fixes the PSPDFAnnotation API hasBinaryInstantJSONAttachment and writeBinaryInstantJSONAttachmentToDataSink:error: returning incorrect values in certain situations. (Z#11192)

  • Fixed

    Fixes an issue where underline annotations may not work correctly on rotated pages. (#14252)

Instant

  • Fixed

    Fixes an issue where attempting to sync an invalid document could lead to an assertion failure. (#17817)

  • Fixed

    Fixes an issue where image attachments with a more specific MIME-type were rejected as invalid server data. (#17790)

  • Fixed

    Fixes an issue where incomplete image transfers would lead to missing images and possibly a flood of sync requests. (#17788)

  • Fixed

    Fixes an issue where the concurrently finishing downloads of image attachments could have lead to a crash or data loss. (#17807)

8.0.3 - 15 Nov 2018

PSPDFKitUI

  • Changed

    Improves handling of cell layout when parent frame has a size of zero. (#17622)

  • Changed

    Improves text selection handle behavior in documents with vertical or rotated text. (#14252)

  • Fixed

    Fixes an issue when switching the annotation tool while selecting text with a markup annotation tool. (#17623)

  • Fixed

    Fixes an issue where undo could remove an annotation from a previous document. (#17620)

  • Fixed

    Fixes an issue with selecting a polyline or polygon annotation with the finger, while currently being created with an Apple Pencil. (#17625)

PSPDFKit

  • Changed

    Improves text selection for documents with rotated pages. (#14252)

  • Fixed

    Fixes a crash that may happen when trying to generate the appearance stream of a push button. (#17627)

  • Fixed

    Fixes a potential issue when converting magic ink annotations. (#17618)

  • Fixed

    Fixes a potential issue when rendering certain PDF documents with note annotations. (#17617)

  • Fixed

    Fixes an issue in handling documents with partially invalid pages. (#17621)

  • Fixed

    Fixes an issue with unexpected state when clearing the annotation selection for specific configurations. (#17619)

8.0.2 - 9 Nov 2018

PSPDFKitUI

  • Added

    Adds support for the new iPad Pros. (#17522)

  • Added

    Adds allowEditing, rightActionButtonItems, leftActionButtonItems to PSPDFBookmarkViewController to allow customize the interface. (#16429)

  • Changed

    Improves annotation deselection behavior when creating new annotations or navigating between pages. (V#1832)

  • Changed

    Improves annotations list styling while editing. (#17434)

  • Changed

    Improves customization options of PSPDFDocumentInfoCoordinator. (#16429)

  • Fixed

    Fixes an animation glitch with the toolbar in the document info and document security UI. (#17437)

  • Fixed

    Fixes missing search on annotations list view controller. (#17482)

PSPDFKit

  • Added

    Adds support for util.scand, a JavaScript API that can be used from PDF documents to parse dates from strings. (#17480)

  • Changed

    Improves performance while entering text using a non-latin font into form fields. (#17593)

  • Changed

    Adjust default values of PSPDFLibrary cooldown timer for iOS 12.0 and higher. (#17441)

  • Changed

    Changes the format of the InstantJSON bookmark format. The id is now saved in pdfBookmarkId and skippedBookmarkIds has been renamed to skippedPdfBookmarkIds. (#17400)

  • Fixed

    Fixed an issue where the wrong encoding was used for the Symbol font. (#17245)

  • Fixed

    Fixes a crash that could occur if an annotation is deleted while a checkpoint is being saved. (#17408)

  • Fixed

    Fixes a crash that may happen when you add form fields with certain kinds of JavaScript scripts. (#17472)

  • Fixed

    Fixes an issue where JavaScript dependent calculations may not be executed after a syntax error. (#17025)

  • Fixed

    Fixes an issue where JavaScript form field validation erroneously used the previous value. (#16462)

  • Fixed

    Fixes an issue where redacting content in some documents may show validation issues in third party readers. (#17486)

  • Fixed

    Fixes an issue where rotating a page after adding a note annotation would crash without saving the document prior to rotation. (#17473)

  • Fixed

    Fixes duplicate annotations when using PSPDFXFDFAnnotationProvider together with PSPDFFileAnnotationProvider. (#17526)

  • Fixed

    Fixes an issue inserting Emoji, Arabic or East Asian text in form fields. (#17574)

Instant

  • Fixed

    Fixes an issue where incoming changes in the middle of editing the text of a freetext annotation would lead to an assertion failure. (#17377)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to convert HTML to PDF with Swift. (#17536)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to programmatically create a push button form field with a custom image. (#17569)

  • Added

    Adds the Calculator.pdf JavaScript demo to the Catalog. This example showcases a calculator application implemented completely inside a PDF using JavaScript. (#17547)

8.0.1 - 25 Oct 2018

PSPDFKitUI

  • Changed

    Improves presentation experience by changing pages without animation when external keyboard is used. (#17346)

  • Changed

    Improves scrolling performance for very complex documents when zoomed in. (#16655)

  • Changed

    Changes the fill color set for redaction annotation which now does not include the unsupported clear color option. (#17261)

  • Changed

    Magic Ink tool now does not convert the detected shape to its corresponding shape annotation if the creation of the detected shape annotation type is not added to the edtableAnnotationTypes property of the PSPDFConfiguration object. (#17241)

  • Fixed

    Fixes a crash when using page curl transition and automatic page mode, during resizing the app in Split View. (#17323)

  • Fixed

    Fixes a potential crash when having a filter selected in PSPDFThumbnailViewController. (#17325)

  • Fixed

    Fixes an issue where tapping on undo while drawing a polygon shape or line annotation lead to a crash. (#17296)

  • Fixed

    Fixes an issue where the PSPDFScrubberBar displayed the wrong thumbnail if the document hadn’t completed rendering and also when replacing the document. (#9387, #17135)

  • Fixed

    Fixes an issue where the page rendering indicator was not animated and positioned properly. (#8524)

  • Fixed

    Fixes creation of overlapping markup annotations. (#17316)

  • Fixed

    Fixes height of the search view controller to show all available results when possible. (#17254)

  • Fixed

    Fixes height of the search view controller when no matches are found. (#17254)

PSPDFKit

  • Added

    Adds -[PSPDFNamedAction initWithNamedActionType:] as alternative initializer. (#17311)

  • Changed

    Improves a free text annotation compatibility with Adobe Acrobat and other PDF readers. (#15095)

  • Changed

    Improves support for NSSecureCoding in PSPDFDocument. (#17273)

  • Changed

    Improve magic ink’s detection of lines and arrows. (#17339)

  • Fixed

    Fixes an issue rendering certain documents with complex clip paths. (#16683, #17267)

Instant

  • Added

    Adds support for shape annotations. (#17239, #17263, Z#10922)

  • Fixed

    Fixes a bug that deleted all local layers of a document instead of just the layer backing a document descriptor. (#17264)

  • Fixed

    Fixes a deadlock that could occur when deleting a layer or all loaded data. (#17257)

  • Fixed

    Fixes an issue that could cause open file descriptors to be leaked when deleting the local data for a layer, document, or the entire Instant client. (#17303)

  • Fixed

    Fixes an issue where remote deletion of the last annotation on a page would not correctly update the display. (#17062)

8.0.0 - 17 Oct 2018

See the announcement post.

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

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

  • API

    Removes all deprecated API. For a full list with suggested migration paths, see the migration guide. (#16157)

PSPDFKitUI

  • API

    The flow for sharing documents has been revamped to allow the user to first decide what options to apply to the sharing documents and then sharing to a given destination; this change normalizes the sharing experience across PSPDFKit. Please refer the migration guide if you did anything related to sharing, such as overriding PSPDFDocumentSharingViewController, or using PSPDFDocumentSharingCoordinator or it’s subclasses. (#16453)

  • API

    Changes the return type of PSPDFPageView’s showNoteControllerForAnnotation:animated: from PSPDFNoteAnnotationViewController to void to make it clearer this can show custom UI. If you need the view controller being presented, use pdfViewController:didShowController:options:animated:. (Z#10488)

  • API

    Removes incorrect usage of UI_APPEARANCE_SELECTOR on PSPDFLinkAnnotationView and improves the documentation for that class. (#16689)

  • API

    Resolves incorrect type usage and improves type safety on PSPDFConfiguration.propertiesForAnnotations and related APIs, with the introduction of a new extensible enum - PSPDFAnnotationStyleKey. (#16501)

  • API

    Removes PSPDFScrubberBar.isSmallToolbar since the scrubber bar can have multiple sizes now. Override scrubberBarHeight to change its size. (#16017)

  • API

    Removes PSPDFFlexibleToolbarHeight, PSPDFFlexibleToolbarHeightCompact, and PSPDFFlexibleToolbarTopAttachedExtensionHeight since the flexible toolbar can now have different sizes. (#16017)

  • API

    Renames PSPDFAnnotationStringRedact to PSPDFAnnotationStringRedaction, and PSPDFAnnotationTypeRedact to PSPDFAnnotationTypeRedaction. (#2127)

  • API

    Renames PSPDFBackButtonStyle to PSPDFButtonStyle. (#2127)

  • API

    Changes PSPDFDocumentPermissionsLevel, PSPDFFormFieldType, and PSPDFSubmitFormActionFormat from NS_OPTIONS to NS_ENUM. (#16863)

  • API

    Renames PSPDFSignatureBiometricPropertiesOptionPressue to PSPDFSignatureBiometricPropertiesOptionPressure. (#16863)

  • Added

    Adds PSPDFConfiguration.documentViewLayoutDirectionalLock so that the scrolling direction can be locked on the document view. (#16687)

  • Added

    Adds magicInkReplacementThreshold to PSPDFConfiguration. Adjust this property to change the shape detection strictness. (#16839)

  • Added

    Adds redactionInfoButton to the user interface view, that is shown when there are uncommitted redaction annotations in the document. This button can be disabled via PSPDFConfiguration.shouldShowRedactionInfoButton. (#2127)

  • Added

    Adds a new ‘Spread Fitting’ setting to PSPDFSettingsViewController. (#15724)

  • Added

    Adds a new Magic Ink tool that recognizes drawn shapes and converts them to shape annotations. This tool is defined as a new variant of the Ink tool: PSPDFAnnotationVariantStringInkMagic. (#3923)

  • Added

    Adds a new ink_highlighter image for use with the Highlighter variant of the Ink tool. (#16839)

  • Added

    Adds a section separator to the settings UI. (#16261)

  • Added

    Adds accessibility labels to the note annotation style view. (#11808)

  • Added

    Adds support for creating redaction annotations from the annotation toolbar and from the text selection menu. (#2127)

  • Added

    Adds support for the CMD-W command to close a document tab on PSPDFTabbedViewController. (#16088)

  • Changed

    Improves how the document configuration applies to the visible document by avoiding unnecessary reload. (#16486)

  • Changed

    Improves state restoration after rotation on PSPDFThumbnailViewController. (#16973)

  • Changed

    Improves support for Dynamic Type and self-sizing cells in table views. (#16024)

  • Changed

    Improves support for following readable width for various table views and cells. (#16013)

  • Changed

    Improves the playback experience of sound annotations while interacting with documents. (#16422)

  • Changed

    Improves the rendering support of push buttons. (#16507)

  • Changed

    Improves the undoing experience for items dropped into PSPDFDocumentEditorViewController from other applications via Drag and Drop. (#16048)

  • Changed

    Changes how the presets cell title is displayed in the annotation inspector. (#16674)

  • Changed

    Changes the flexible toolbar width to 50 points on iPads on iOS 12, to match the system behavior. (#16017)

  • Changed

    Image Documents now offer smarter defaults for the settings controller. (#16135)

  • Changed

    Introduces PSPDFStyleButton, that is used for the back/forward and redaction info button in the user interface view. (#2127)

  • Changed

    Prevents the menu controller from being displayed when a markup annotation is created using a markup tool. (#16650)

  • Changed

    Readonly form fields are now tappable and execute actions/additionalActions. (#16865)

  • Changed

    Shows an alert with a usage description the first time the redaction feature is used. (#2127)

  • Changed

    The left/right edge tap navigation (scrollOnTapPageEndEnabled) now no longer applies in vertical scrolling configurations. (#16530)

  • Changed

    The menu for selected text and selected images now features a Share item. The ‘Save to Camera Roll’ menu on images has been removed, as Share includes this as potential action. We added PSPDFTextSelectionMenuActionShare to control this. (#16141)

  • Fixed

    Fixes a crash that could occur when quickly changing the document presentation options. (#16659)

  • Fixed

    Fixes a logic issue that prevented the highlight annotation type menu from being displayed on some configurations. (#16884)

  • Fixed

    Fixes a potential UI access on the main thread from PSPDFDrawView. (#16414)

  • Fixed

    Fixes a hang of the main thread when certain progress views were updated in an unforeseen manner. (#17147)

  • Fixed

    Fixes an infinite loop when adjusting the document size after a device rotation. (#16579)

  • Fixed

    Fixes an issue that could prevent the annotation toolbar from showing, if it was invoked when the user interface was hidden. (Z#10094)

  • Fixed

    Fixes an issue that could result in an incorrect jump to page behavior in documents with varying page sizes viewed in continuous scrolling mode. (#16627)

  • Fixed

    Fixes an issue where custom render options using PSPDFAppearanceModeManager were not applied when PSPDFViewController is initialized with a document. (#16728)

  • Fixed

    Fixes displayed page not updating when changing tabs in page curl mode. (#16788)

  • Fixed

    Fixes an issue where drawn layers disappeared if the app is backgrounded. (#16795)

  • Fixed

    Fixes an issue where hidden annotations could temporary become visible during erasing. (#16750)

  • Fixed

    Fixes an issue where rotating the device while PSPDFThumbnailViewController was visible, could have resulted in thumbnails disappearing. (#15527, #16678)

  • Fixed

    Fixes an issue where section footers were sometimes sized incorrectly. (#16146)

  • Fixed

    Fixes an issue where the close button would disappear when changing segment in the document outline after changing from regular to compact width. (#15910)

  • Fixed

    Fixes an issue where the color change animation for note annotations on iOS 10 didn’t sync properly. (#16752)

  • Fixed

    Fixes an issue where the selected text overlay would be misplaced on rotation. (#17139)

  • Fixed

    Fixes an issue where zooming to a page index might display that page partially off-screen when using continuous page transition. (#16967)

  • Fixed

    Fixes an where deleting all annotations in list animated the cells to the top right corner. (#16696)

  • Fixed

    Fixes changes to PSPDFNoteAnnotationViewController’s showColorAndIconOptions property not being applied immediately while the view is visible. (Z#10487)

  • Fixed

    Fixes page view size when tab bar is visible. (#16474)

  • Fixed

    Fixes secure unarchiving of PSPDFViewState not working. (#16850)

PSPDFKit

  • API

    PSPDFKit now uses a standardized coordinate system where the page origin is always in the lower-left corner as the page appears on screen. The simplifies interaction with pages that have a rotation or cropbox set in the PDF. Please see the migration guide if you did anything in PDF coordinates or page coordinates, such as reading or writing annotation or glyph positions, or using PSPDFViewState. (#15890)

  • API

    Instant JSON binary attachment APIs now take and return a mime-type. (#16039)

  • API

    Removes PSPDFPageInfo’s rect, rotatedRect, and rotationTransform. They have been replaced by size and transform. (#15890)

  • API

    Separates PSPDFPageInfo’s rotation property into savedRotation and rotationOffset. (#15890)

  • API

    Removes the externalSignatureDelegate property of PSPDFSigner. Use the delegate property instead, as it’s intended to be more flexible. (#15853)

  • API

    Removes the synchronous signing methods in PSPDFSigner. It’s more preferred to use the ones that are based on setting a custom dataSource or delegate, as they offer more flexibility. (#15853)

  • API

    Changes the parameters of the conversion functions between view and PDF coordinate spaces. (#15890)

  • Added

    Adds API support for resetting form fields to the PSPDFFormParser. (#16808)

  • Added

    Adds API to PSPDFProcessorConfiguration to apply redaction annotations. (#2127)

  • Added

    Adds Comparison features. Adds changeStrokeColorOnPageAtIndex:toColor:, and mergePageFromDocument:password:sourcePageIndex:destinationPageIndex:transform:blendMode: to PSPDFProcessorConfiguration. (#16396)

  • Added

    Adds PSPDFAdditionalFontDirectories option to configure additional font directories. (#13991)

  • Added

    Adds PSPDFDocumentSaveOptionApplyRedactions to apply redactions when saving the document. (#2127)

  • Added

    Adds PSPDFSignerDataSource and PSPDFSignerDelegate to be able to add digital signatures to documents asynchronously. (#15853)

  • Added

    Adds maximumContiguousIndexingTime and automaticPauseDuration to PSPDFLibrary to configure the automatic pause. (#17026)

  • Added

    Adds outlineColor to PSPDFAnnotationStateManager, and PSPDFAnnotationStyleKeyOutlineColor as a new annotation style key, to allow setting the outline color of redaction annotations. (#2127)

  • Added

    Adds a configurable privateKey property to PSPDFSigner. For convenience, this property is already set for you if you use the most common PSPDFSigner subclass, PSPDFPKCS12Signer, as soon as you unlock the .p12 bundle. (#15853)

  • Added

    Adds a new render option, PSPDFRenderOptionDrawRedactionsAsRedacted, to draw redactions in their redacted state. (#2127)

  • Added

    Adds model-level support for redaction annotations via the new PSPDFRedactionAnnotation class. (#2127)

  • Added

    Adds the ability to compare document pages via PSPDFProcessorConfiguration. Requires the PDF Comparison feature to be enabled in your license. (#16396)

  • Added

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

  • Changed

    Improves the performance of documents with a lot of JavaScript calculations. (#11925, #16490)

  • Changed

    Renames PSPDFMarkupAnnotation to PSPDFTextMarkupAnnotation, and its highlightedString property to markedUpString. (#16652)

  • Fixed

    Fixes a bug where the reason or location of a digital signature may not be persisted in the document correctly. (#15853)

  • Fixed

    Fixes a potential deadlock during document (re-)initialization. (#15005)

  • Fixed

    Fixes a race condition that could result in an incorrect page count when using documentByAppendingDataProviders:. (#16994)

  • Fixed

    Fixes a render rounding issue that may happen in PDF documents with a displaced cropbox. (#15169)

  • Fixed

    Fixes an issue that caused problems saving new annotations in particular documents. (#16717)

  • Fixed

    Fixes an issue when extracting link annotations. (#16854)

  • Fixed

    Fixes an issue where JavaScript scripts that hold a strong local reference to event.target may not work correctly. (#16507)

  • Fixed

    Fixes an issue where documents with a large number of form fields failed to display editing options. (#16911)

  • Fixed

    Fixes an issue where form elements were not correctly updated. (#16408)

  • Fixed

    Fixes an issue where importing images in push buttons via JavaScript may add an annotation in some cases. (#16751)

  • Fixed

    Fixes an issue where not all form fields were listable immediately after opening a document. (#16479)

  • Fixed

    Fixes an issue where some PDF pages could not be inserted as attachments for images. (#16729)

  • Fixed

    Fixes an issue where some document outlines may not be persisted correctly after using the document processor. (#16688)

  • Fixed

    Fixes an issue where some documents with JavaScript may be unresponsive for a great amount of time. (#16886)

  • Fixed

    Fixes an issue where the blend mode of ink annotations may not be persisted correctly. (#16376)

  • Fixed

    Fixes an issue where the system sound recorder could invoke messages on already deallocated delegates after recording a sound annotation. (#16743)

  • Fixed

    Fixes an issue with JPEG2000 images. (#14850)

  • Fixed

    Fixes an issue with document checkpointing after saving fails. (#16600)

  • Fixed

    Fixes an issue with free text annotations reducing render quality after moving them around many times. (#16329)

  • Fixed

    Fixes an locking issue that could result in a deadlock while saving document editor changes. (#16980)

  • Fixed

    Fixes annotations created from Instant JSON being offset from their correct position in documents with non-uniform page sizes. (#16802, Z#10493)

  • Fixed

    Fixes a performance problem with documents that contain large clipping paths. (#16481)

  • Fixed

    Fixes a problem applying Instant Document JSON. (#16004)

  • Fixed

    Fixes a problem rendering documents with particular fonts. (#16361)

  • Fixed

    Fixes an issue where the selection indices may not be set correctly during JavaScript keystroke validation. (#17199)

Instant

  • Added

    Adds support for image annotations. (#11957)

  • Added

    Adds the ability edit link annotations in PSPDFInstantViewController via editableAnnotationTypes. (#16665)

  • Added

    Add handling of editableAnnotationTypes in PSPDFInstantViewController. (#16139, Z#9855)

Examples

  • Added

    Adds PSPDFKit Catalog example illustrating how to blur specific pages in a document. (#16702)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to disable auto saving and ask for permission for saving the document while exiting. (#16456)

  • Added

    Adds an example showcasing how to enforce a fixed style for link annotations. (#16689)

  • Added

    Adds support for opening files in place to the Catalog example. (#16497)

  • Added

    Adds a PSPDFKit Catalog example showing show to replace PSPDFNoteAnnotationViewController with custom UI. (Z#10488)

  • Changed

    Changes the page rotation examples’ title and description for better distinction. PSCRotatePageExample.m changes the orientation of the pages and saves it to the PDF making them permanent while RotatePageExample.swift rotates the pages of the document temporarily only for that opened instance. (#16996)

  • Fixed

    Fixes an issue where documents did not open properly in the “Open In” example. (#16616)

7.7.2 - 23 Aug 2018

PSPDFKitUI

  • Fixed

    Fixes an issue where iOS 12 could throw an exception inside -[UIAccessibilityInformationLoader _loadAccessibilityInformationOnMainThread:]. (#16489)

  • Fixed

    Fixes an issue where a reused outline cell could have a custom text color set. (#16355)

  • Fixed

    Fixes an issue where newly created annotations could have an incorrect fill color assigned in rare cases. (#16562)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how create free text annotations continuously. (#15825)

7.7.1 - 9 Aug 2018

PSPDFKitUI

  • Added

    Adds the selection tool to the default image configuration options. (#16109)

  • Added

    Adds a new markupAnnotationMergeBehavior configuration option. (#16425)

  • Changed

    Improves form element behavior when the form field has scrolling disabled. (#13239)

  • Changed

    Improves top content inset calculations to cover more presentation scenarios. (#16020)

  • Changed

    Ensures text selection gestures are handled by a single page at a time. (#16374)

  • Changed

    Form submission actions that have a mailto URL now display the system mail composer with the form in the requested format attached. (#16072)

  • Changed

    Tapping a search result that changes to a different page now offers a back action to return to the previous page. (#16343)

  • Fixed

    Fixes PSPDFDocumentSharingViewController.selectedOptions not being respected if set before the view controller is presented. (#15832)

  • Fixed

    Fixes Drag and Drop support for PSPDFDocumentEditorViewController so that pages are always exported in the correct format if the destination application accepts PDF files. (#16230)

  • Fixed

    Fixes a crash in the inline search manager through better sanitization. (#16226, Z#9937)

  • Fixed

    Fixes an issue that caused newly added annotations to flicker when switching between drawing tools. (#16128)

  • Fixed

    Fixes an issue where PSPDFFontPickerViewController subclasses did not honor the passed fontFamilyDescriptors completely. (#16306)

  • Fixed

    Fixes an issue where selectedPages was not reset in PSPDFDocumentEditorToolbarController when setting a new documentEditor and caused selectedPages to be in an outdated state. (#16213)

  • Fixed

    Fixes an issue where markup annotations were incorrectly created when tapping on an empty space. (#16189)

  • Fixed

    Fixes an issue where newly created annotations could be inserted into the wrong document when switching tabs. (#16166)

  • Fixed

    Fixes an issue where the search view controller would sometimes be displayed full-screen without a cancel button instead of being displayed as a popover. (#16378)

  • Fixed

    Fixes an issue with using the tab bar controller when the document editor component was not licensed. (#16331)

  • Fixed

    Fixes search results sometimes not being highlighted on page when tapping on a search result that is not on the current page. (#15236)

PSPDFKit

  • Added

    Adds -library:didFinishIndexingDocumentWithUID:success: to PSPDFLibraryDataSource. (#16185)

  • Added

    Adds -library:didRemoveDocumentWithUID: to PSPDFLibraryDataSource. (#16185)

  • Added

    Adds PSPDFRotatable protocol that enables annotations to be rotated. (#16183)

  • Changed

    Annotations that are hidden or have the NoView flag set are no longer part of interactions. (#16344)

  • Changed

    Clarify requirements for custom UID values on PSPDFDocument. (Z#9936)

  • Changed

    Ensures PSPDFDocument.title is updated when the document is unlocked. (V#1599)

  • Changed

    Ensures that PSPDFLibrary stops indexing when the application is terminating. (#16212)

  • Changed

    Image documents now correctly report that bookmarks are not supported. (#16138)

  • Fixed

    Fixes an issue where an assertion is raised when adding an annotation while the underlying file for a PSPDFDocument is being changed. (#16276)

  • Fixed

    Fixes PSPDFDocument.title not being updated when the title is changed by an instance of PSPDFDocumentPDFMetadata. (#16193)

  • Fixed

    Fixes a crash that would occur when trying to edit a document after having duplicated pages. (#16360)

  • Fixed

    Fixes a race condition during undo registration that could result in a bad memory access. (#16216)

  • Fixed

    Fixes an issue where PSPDFLibraryFileSystemDataSource would remove previously indexed documents when adding a document in explicit mode. (#16185)

  • Fixed

    Fixes an issue where calling JavaScript function AFSpecial_Keystroke with certain arguments may cause an infinite loop in some devices. (#16126)

  • Fixed

    Fixes an issue where form elements were not detected by PSPDFDocument (when using PSPDFFileAnnotationProvider). (#16161)

  • Fixed

    Fixes an issue where radio buttons could be unselected. (#16233)

  • Fixed

    Fixes drawing annotations on rotated pages. (#16183)

  • Fixed

    Fixes an issue when loading checkpoint files. (#16277)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to disable bookmark editing. (#16416)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to use a custom bookmark cell to disable renaming of bookmarks. (#16358)

7.7.0 - 19 Jul 2018

See the announcement post.

PSPDFKitUI

  • API

    PSPDFTextMenu is now an extensible enum string. This changes how Swift imports the strings. (#15789)

  • Removed

    Deprecates -[PSPDFViewControllerDelegate pdfViewControllerDidChangeControllerState:] in favor of -[PSPDFViewControllerDelegate pdfViewController:didChangeControllerState:error:]. (#9087)

  • Removed

    Deprecates -[PSPDFPageView showSignatureControllerAtRect:withTitle:options:animated:]. Use showSignatureControllerAtRect:signatureFormElement:options:animated: instead. (#15788)

  • Removed

    Deprecates insertAnnotations: and insertAnnotations:forPageAtIndex:inDocument: on PSPDFPageView. To know when annotations are inserted, listen for PSPDFAnnotationCreateActionDidInsertNotification instead. To add annotations, use addAnnotations:options: on PSPDFDocument. Set the pageIndex on an annotation before adding it to define the page. (#15788)

  • Removed

    Deprecates the filtering API on PSPDFThumbnailViewController in favor of a new, more flexible asynchronous API. (#14572)

  • Removed

    Deprecates showNoteControllerForAnnotation:showKeyboard:animated: on PSPDFPageView. Use showNoteControllerForAnnotation:animated: instead. (#15788)

  • Added

    Adds Document Info view controller: PSPDFDocumentInfoViewController. (#12227)

  • Added

    Adds Document Info view to the outline and annotation list. (#12227)

  • Added

    Adds Document Security view controller. PSPDFDocumentSecurityViewController. (#12227)

  • Added

    Adds Safari Reading List, Copy and Share to the menu shown when long pressing on web links. (#13798)

  • Added

    Adds PSPDFAnnotationCreateActionDidInsertNotification and PSPDFAnnotationCreateActionInsertedAnnotationsKey to get better timing for newly inserted annotations. (#15788)

  • Added

    Adds PSPDFDocumentSharingOptionImageWithMetadata to PSPDFDocumentSharingOptions, and adds it to the default sharing configurations. This only takes effect when sharing PSPDFImageDocuments. (#15432)

  • Added

    Adds PSPDFSegmentImageProviding protocol implemented by controllers used in PSPDFDocumentInfoCoordinator, to provide image in place of title. (#13677)

  • Added

    Adds a way to add multiple pages to a document using a specified configuration, via API and user interface. (#13937)

  • Added

    Adds support for the Info action on documents, which now displays the new document metadata view controller. (#15987)

  • Added

    Adds the ability to insert new pages at specific indexes with PSPDFNewPageViewController. (#13880)

  • Added

    Adds the ability to cut and paste pages when editing a document. (#15754)

  • Changed

    Improves export flow for image documents. (#15432)

  • Changed

    Improves page curl to better adapt to documents that don’t match device screen ratio. (#15786)

  • Changed

    Improves performance during drawing by avoiding unnecessary page re-rendering. (#16032)

  • Changed

    Improve performance when scrolling page content when zoomed in. (#16029)

  • Changed

    Pages now use predictive rendering while scroll deceleration is active to improve render performance. (#15542)

  • Changed

    Replaces title texts with icons in the document info UI. (#13677)

  • Changed

    Solves flickering on the annotation list for PDF forms. (#14881)

  • Changed

    The digital signature verification popover now uses a better sizing logic. (#15942)

  • Changed

    The note editor is now displayed with form presentation mode on an iPhone Plus. (#4488)

  • Changed

    PSPDFDocumentEditorViewController now supports importing and exporting images and PDFs from other applications via Drag & Drop in iOS 11 and above. (#15812)

  • Fixed

    Fixes PSPDFConfiguration.editableAnnotationTypes not being respected for note annotations. (#15779)

  • Fixed

    Fixes a crash that occurred when rotating in page curl mode. (#15765)

  • Fixed

    Fixes a crash when using custom page templates on PSPDFNewPageViewController. (#15857)

  • Fixed

    Fixes an issue where PSPDFResizableViewDelegate methods were not called for custom PSPDFResizableView subclasses. (#15762)

  • Fixed

    Fixes an issue where PSPDFViewController would not fully reload when appearing in some uncommon cases. (V#1309, V#1609)

  • Fixed

    Fixes an issue where a page image from a document previously used with PSPDFViewController might be shown instead of the page of the current document. (#15932)

  • Fixed

    Fixes an issue where annotations could be displayed mirrored or more than once after drawing. (#15770)

  • Fixed

    Fixes an issue where changing PSPDFConfiguration.isFirstPageAlwaysSingle was not honored after being changed. (#15819)

  • Fixed

    Fixes an issue where newly added image annotations did not respond to touches. (#15667)

  • Fixed

    Fixes an issue where using buttonImport on forms via JavaScript could break the default image annotation insertion feature. (#15731)

  • Fixed

    Fixes misalignment of text in PSPDFNewPageViewController when presented as full screen. (#15471)

  • Fixed

    Fixes reference cycles in PSPDFDownloadManager and PSPDFGalleryViewController. (#16018)

  • Fixed

    Fixes the “Open In” activity not working when sharing documents using PSPDFDocumentSharingOptionImage. (#16028)

  • Fixed

    Fixes the timing for -[PSPDFDocumentViewControllerDelegate documentViewController:didCleanupSpreadView:forSpreadAtIndex:] and PSPDFDocumentViewControllerDidCleanupSpreadViewNotification. They are now correctly dispatched during spread cleanup (reuse) and not when the spreads go offscreen. (#16032)

PSPDFKit

  • API

    Adds isUnlockedWithFullAccess property to PSPDFDocument. (#12227)

  • API

    Improves type safety of PSPDFDocumentPDFMetadata keyed subscript access. (#12227)

  • API

    Introduces dedicated types for annotation variants (PSPDFAnnotationVariantString) and state-variant identifiers (PSPDFAnnotationStateVariantID), and updates all related APIs to correctly consume and vend the new types. (#14238)

  • Removed

    Deprecates PSPDFDiskCache’s jpegCompression in favor of compression. (#14075)

  • Removed

    Deprecates PSPDFProcessorSkipPDFCreationKey since it no longer does anything. (#15894)

  • Removed

    Deprecates the rotation property on PSPDFAnnotation and adds the same property on the subclasses PSPDFFreeTextAnnotation and PSPDFStampAnnotation. (#15894)

  • Added

    Adds isEncryptedWithUserPassword, isUnlockedWithFullAccess, isUnlockedWithUserPassword properties to PSPDFDocumentProvider. (#12227)

  • Added

    Adds permissionsLevel property to PSPDFDocumentProvider to indicate access level of opened document. (#12227)

  • Added

    Adds support for JavaScript do not disturb mode. In that mode, if code tries to show an alert message, it will be automatically translated into a console log instead. This is useful in the batch processing of form fields that may have validation scripts attached. You can configure this mode via the javaScriptStatus property of PSPDFDocument. (#15498)

  • Added

    Adds support for extracting and attaching binary Instant JSON attachments. (#15834)

  • Added

    Adds support for rendering borders and border colors in link annotations. (#15566)

  • Added

    Adds image attachments to Instant Document JSON. (#15748)

  • Changed

    Improves document password support and compatibility with third-party readers. (#15951)

  • Changed

    Improves the performance of the document searcher, specially in devices with low memory. (#15916)

  • Changed

    Improves hash call performance for lazily evaluated actions. (#13917)

  • Changed

    Ensures that the processor always encrypt documents using the 128-bit AES algorithm if the user didn’t change the defaults. (#15946)

  • Removed

    Removes incorrect PSPDF_CLASS_AVAILABLE annotation from PSPDFDocumentEditorConfiguration. Subclassing this class is not supported, and has now been marked with PSPDF_CLASS_AVAILABLE_SUBCLASSING_RESTRICTED. (#15147)

  • Changed

    PSPDFDocumentEditor now returns NSProgress when calling importPagesTo:fromDocument:withCompletionBlock:queue: for better status tracking. (#15918)

  • Fixed

    Fixes PSPDFFile.fileURL returning an empty NSURL when initialized with a nil fileURL. (#16120)

  • Fixed

    Fixes a crash that could occur after adding an annotation deserialized from Instant JSON. (#14815, Z#9340)

  • Fixed

    Fixes a problem where a form field may not be automatically formatted in some cases. (#15567)

  • Fixed

    Fixes a problem where entering text in some form fields with JavaScript validation may not be possible. (#15864)

  • Fixed

    Fixes a problem where some XFA forms with JavaScript may show an alert message when the document is open. (#16000)

  • Fixed

    Fixes a race condition that could lead to an assertion failure through improved locking. (#15548)

  • Fixed

    Fixes a rare issue adding page references with the document editor. (#14705)

  • Fixed

    Fixes an issue exporting document pages with a rare outline configuration. (#15923)

  • Fixed

    Fixes an issue where a new digital signature could not be created in some documents. (#15683, #15702)

  • Fixed

    Fixes an issue where bookmarks may not be saved correctly in certain documents. (#15826)

  • Fixed

    Fixes an issue where rendering was being incorrectly canceled. (#15685)

  • Fixed

    Fixes an issue where the library tokenizer was nil after creating the library with +[PSPDFLibrary libraryWithPath:tokenizer:error:]. (#15991)

  • Fixed

    Fixes memory leaks that occurred when using PSPDFProcessor. (#15767)

  • Fixed

    Fixes serialization and deserialization of the PSPDFURLAction.unmodifiedURL URL property. (#13990)

Instant

  • Added

    Add support for notes on annotations that support them. (#15511)

7.6.2 - 28 Jun 2018

PSPDFKitUI

  • Fixed

    Fixes PSPDFConfiguration.editableAnnotationTypes not being respected for note annotations. (#15779)

  • Fixed

    Fixes a crash that occurred when rotating in page curl mode. (#15765)

  • Fixed

    Fixes an issue where newly added image annotations did not respond to touches. (#15667)

  • Fixed

    Fixes an issue where using buttonImport on forms via JavaScript could break the default image annotation insertion feature. (#15731)

PSPDFKit

  • Fixed

    Fixes a crash that could occur after adding an annotation deserialized from Instant JSON. (#14815, Z#9340)

  • Fixed

    Fixes an issue where a new digital signature could not be created in some documents. (#15683, #15702)

7.6.1 - 14 Jun 2018

PSPDFKitUI

  • Fixed

    Fixes an issue that could cause blank pages in per page and continuous page modes. (#15504)

  • Fixed

    Fixes an issue with PSPDFImagePickerController where allowedImageQualities was ignored if the image editor was disabled. (#15599)

PSPDFKit

  • Changed

    Improves image document saving performance. (#15540)

  • Added

    Adds the ability to print image documents. (#15375)

  • Changed

    Image quality for JPEG now used in Image Documents. (#15499)

  • Changed

    Validation errors generated by JavaScript code are now localized in every language that is currently supported. (#14577)

  • Fixed

    Fixes mistaken API rename for -[PSPDFDocument fileURLs]. (#15660)

  • Fixed

    Fixes an issue with vector stamp annotations becoming grey when moving or resizing them. (#15345)

  • Fixed

    Fixes an issue when closing documents with smart form tab orders. (#15580)

  • Fixed

    Fixes an issue where a form field may be rendered more times than necessary. (#15528)

  • Fixed

    Fixes an issue where annotation additional actions may not be preserved after a document is saved. (#2185)

  • Fixed

    Fixes growing image document after save. (#15479)

7.6.0 - 30 May 2018

See the announcement post.

In preparation for iOS 12, this version of PSPDFKit now drops support for iOS 9. It also requires and is built with Xcode 9.4 (9F1027a). The new Image Documents component, which enables you to keep PSPDFImageDocuments editable even after saving, requires an updated license.

We prepared a migration guide to help you with some of the API changes in this version.

PSPDFKitUI

  • Removed

    Deprecates PSPDFDrawLayer related public APIs on PSPDFDrawView. (#14921)

  • Added

    Adds -pdfViewController:shouldSaveDocument:withOptions: and -pdfViewController:didSaveDocument:error to PSPDFViewControllerDelegate. (#14910)

  • Added

    Adds blend modes to the annotation inspector. The ink highlighter by default now uses a multiply blend mode for clear, black text. (#15080)

  • Added

    Adds customization options for PSPDFNoteAnnotationViewController. (#15305)

  • Changed

    Improves comment author display in PSPDFCommentCell to accommodate longer author names. (#15065)

  • Changed

    Improves layout of the buttons on PSPDFSignatureViewController by making them respect the safe area and dynamic type. (#15063)

  • Changed

    Improves state restoration to restore and persist selected annotations. (#14935)

  • Changed

    Improves support for Dynamic Type, particularly for larger accessibility sizes. (#14788)

  • Changed

    Improves the layout of the stamps grid, to always look reasonably dense, while keeping the stamps big enough to read. (#13675)

  • Changed

    Changes the default state of the Store Signature checkbox to be disabled to not store the created signature without users explicitly checking it. (#15250)

  • Changed

    Makes selection experience more consistent across platforms. (#14729)

  • Changed

    Makes the custom stamp option in the stamps UI more apparent. (#1824)

  • Changed

    Moves ‘Saved Annotations’ to its own annotation toolbar item, as opposed to being a tab on the stamps UI. (#1824)

  • Changed

    Setting the doNotScroll property on a form text field now works correctly. (#14926)

  • Changed

    Sharing with UIActivityViewController now only includes the document, not the title as well. This fixes a Text File being created alongside the PDF when exporting files. (#12782)

  • Changed

    The userInterfaceViewMode setting now defaults to .automaticNoFirstLastPage. (#15077)

  • Changed

    The behavior of scrollOnTapPageEndEnabled has been changed to be enabled by default again and reacting immediately, without waiting for a potential double tap gesture. The edge span where taps are accepted scrollOnTapPageEndMargin has been reduced to 44 pixels. The default for scrollOnTapPageEndAnimationEnabled has been changed to NO. This allows fast tapping through a document. (#13098)

  • Changed

    The home indicator on iPhone X is now automatically hidden when the HUD is not visible. (#15006)

  • Changed

    -[PSPDFTextSelectionView sortedGlyphs:] now sorts the passed in glyphs in their reading order. (#15400)

  • Changed

    PSPDFConfiguration’s scrollOnTapPageEndMargin and scrollOnTapPageEndAnimationEnabled is now honored when using PSPDFPageTransitionCurl. (#15333)

  • Fixed

    Fixes -[PSPDFConfiguration shadowOpacity] not being honored for configurations where the page transition was set to PSPDFPageTransitionScrollPerSpread. (#15369)

  • Fixed

    Fixes a crash in that could occur when selecting text if the initial selection did not contain any valid characters. (#15445)

  • Fixed

    Fixes a document’s table of contents’ colors not being shown correctly. (#15295)

  • Fixed

    Fixes a rare issue that could lead to a crash in PSPDFResizableView layout when rotating rapidly. (#15410)

  • Fixed

    Fixes an issue where comments would not scroll out from underneath the keyboard or toolbar on iOS 10 in PSPDFNoteAnnotationViewController. (#15415)

  • Fixed

    Fixes an issue where drawing a signature area was not possible when digitally signing a document via the PSPDFPageView signature API. (#14765)

  • Fixed

    Fixes an issue where embedded videos with autoplay enabled would start playing before their page was visible. (#14662)

  • Fixed

    Fixes an issue where the font size for a form element was calculated wrong. (#15274)

  • Fixed

    Fixes an issue where the printing UI wouldn’t prevent interactions with the rest of the application, breaking the printing flow. (#10480)

  • Fixed

    Fixes issues with pages not being displayed in page curl mode. (#15280)

  • Fixed

    Fixes layout of saved annotations and stamps UI on iPhone X. (#1824)

  • Fixed

    Fixes text alignment for text field cells. (#15304)

  • Fixed

    Fixes the text insertion point not always staying in the visible area while writing comments on annotations. (#14201)

PSPDFKit

  • Changed

    The minimum deployment target is now iOS 10. Support for iOS 9 has been removed. (#14398)

  • API

    The configuration builder blocks in PSPDFBaseConfiguration are now noescape for better Swift compatibility. (#15077)

  • API

    The constants in PSPDFAnnotationStyleManager have been renamed and now better map to Swift. (#15077)

  • API

    PSPDFDocument.annotationsForPageAtIndex:type: is now guaranteed to never return nil. (#15077)

  • Removed

    Deprecates PSPDFFileAnnotation’s appearanceName in favor of iconName. (#15319)

  • Removed

    Deprecates class-level methods on PSPDFProcessor and introduces new new instance-based API that allows for cancellation. (#10480)

  • Added

    Adds the ability to keep annotations on PSPDFImageDocuments editable even after saving. Requires the Image Documents feature to be enabled in your license. See https://pspdfkit.com/blog/2018/image-documents/ for more information. (#14894)

  • Added

    Adds an external file source option when adding new pages to a document with the document editor. (V##248)

  • Added

    Adds blend modes to Annotations. This improves rendering for appearance steams with different blend modes. (#15080)

  • Added

    Adds the ability to define arbitrary patterns for new pages when editing a document. (#14951)

  • Added

    Adds the ability to embed files to PSPDFFileAnnotation using -[PSPDFEmbeddedFile initWithFileURL:fileDescription:]. See the new AddFileAnnotationProgrammaticallyExample and AddFileAnnotationWithEmbeddedFile in PSPDFKit Catalog. (#15210)

  • Changed

    Improves JavaScript support, including form formatting, calculation, and validation. (#9501)

  • Changed

    Improves XFDF output by omiting opacity if set to the default (1.0). (#15354)

  • Changed

    Improves rendering behavior for stamp annotations. Stamps are keeping their aspect ratio on resizing now. Stamps created with PSPDFKit now always use the same rendering, no matter if they were just created or after being saved in the document. The subject of stamps is now always rendered in uppercase characters. Custom stamps are now sized-to-fit before adding them to the document. (#1824)

  • Added

    Adds annotation name to Instant JSON. Also renamed pspdfkit/file name to filename to prevent collisions. (#14856)

  • Added

    Adds better detection for standard stamp subjects for Instant JSON. (#14919)

  • Changed

    Cancelling a PSPDFRenderTask now reduces further CPU usage more effectively. (#14218)

  • Changed

    PSPDFPageRenderer is now deprecated and will be removed in a later update. (#15189)

  • Fixed

    Fixes a crash which occurred when manually searching a protected document. (#15177)

  • Fixed

    Fixes a potential deadlock situation during document cache invalidation. (#15259)

  • Fixed

    Fixes an issue where glyph frames were larger than expected due to unexpected values in their fonts. (#14169)

  • Fixed

    Fixes an issue where newly created note annotations would require two taps for deselection. (#15221)

  • Fixed

    Fixes security vulnerability CVE-2018-9127 in Botan, where wildcard certificates could be accepted for invalid hostnames. (#15374)

  • Fixed

    Fixes an issue where some action destinations may not work properly. (#14901)

  • Fixed

    Fixes a problem where editing some numeric form fields didn’t show a completely numeric keyboard. (#15484)

Instant

  • Added

    Adds support for Instant Layers: https://pspdfkit.com/blog/2018/instant-layers/ (#13834)

  • Added

    Adds support for exporting and importing stamp annotations with images for Instant JSON. (#15296)

  • Changed

    Improves error reporting regarding invalid JWTs. (Z#8755)

  • Removed

    Deprecates all methods in PSPDFInstantClientDelegate in favor of renamed methods to improve API clarity and consistency. (#13834, #15464)

  • Removed

    Deprecates PSPDFInstantDocumentDescriptor’s updateAuthenticationToken: and downloadDocumentUsingAuthenticationToken:error: in favor of the more specific reauthenticateWithJWT: and downloadUsingJWT:error:. (#13834)

  • Removed

    Deprecates the notifications PSPDFInstantDidUpdateAuthenticationTokenNotification, PSPDFInstantDidFailUpdatingAuthenticationTokenNotification, and related PSPDFInstantAuthenticationTokenKey in favor of the notifications PSPDFInstantDidReauthenticateNotification, PSPDFInstantDidFailReauthenticationNotification, and the related PSPDFInstantJWTKey. (#13834)

Examples

  • Added

    Adds a PSPDFKit Catalog example illustrating how to use a custom bookmark provider. (#15105)

  • Changed

    Improves the Catalog’s listing of examples. The Catalog now lists all the examples in the selected language. If an example is not available in the particular language selected, then the example in the other language is listed. (#15100)

7.5.2 - 4 May 2018

PSPDFKitUI

  • Fixed

    Fixes an issue where selection would work incorrectly if a page was cropped or rotated. (#15042)

  • Fixed

    Fixes the spread zoom not always being reset when scrolling back to a spread in the .scrollPerSpread pageMode. (#14825)

PSPDFKit

  • Fixed

    Fixes an issue where glyph frames were incorrectly calculated when the page matrix is not identity. (#13668)

7.5.1 - 25 Apr 2018

PSPDFKitUI

  • Added

    Adds a signer subclassing hook to PSPDFSignatureViewController, enabling setting the certificate used for digital signing programmatically. This makes it possible to only allow the user to create a digital signature, instead of an ink signature. (#14846)

  • Fixed

    Fixes an issue where a crash could occur if PSPDFNoteAnnotationViewController changed size while it was presenting an action sheet. (#14742)

  • Fixed

    Fixes a keyboard avoidance offset issue during interactive keyboard dismissal. (Z#8690)

  • Fixed

    Fixes document pages not being selected when the thumbnail was tapped on the bottom half. (#14764)

PSPDFKit

  • Changed

    Improves compatibility of note annotations with certain 3rd-party viewers such as Apple Preview. (#14953)

  • Changed

    Improves performance when annotations are loaded. (#14983)

  • Changed

    Improves the logic when note icon indicators should be rendered. (#14961)

  • Changed

    Saving image documents now keeps any additional extended attributes. (#14905)

  • Fixed

    Fixes a problem where the text in unsigned form field overlays may be cut off. (#14922)

  • Fixed

    Fixes an issue where images could be encoded in the PDF without optimization. (#14916)

  • Fixed

    Fixes an issue where recording couldn’t be started for an existing sound annotation. (#15010)

7.5.0 - 11 Apr 2018

PSPDFKitUI

  • API

    Adds a textView parameter to -[PSPDFNoteAnnotationViewController updateTextView]. Customize the object passed to updateTextView: instead of using the textView property. (#5721)

  • API

    Groups PSPDFKitThumbnailViewFilter* constants as extensible string enum. (#14571)

  • API

    Removes the tapGesture property on PSPDFNoteAnnotationViewController and the class no longer conforms to UIGestureRecognizerDelegate. (#5721)

  • API

    PSPDFPageView is no longer guaranteed to conform to PSPDFNoteAnnotationViewControllerDelegate. (#5721)

  • Removed

    Deprecates PSPDFNoteAnnotationViewController’s allowEditing, beginEditing, showCopyButton, deleteAnnotationActionTitle, deleteAnnotation:, deleteOrClearAnnotationWithoutConfirmation, textView, and borderColor. (#5721)

  • Removed

    Deprecates shouldBeginEditModeWhenPresented on PSPDFNoteAnnotationViewController, and showNoteControllerForAnnotation:showKeyboard:animated: in favor of showNoteControllerForAnnotation:animated: on PSPDFPageView, as choosing to show the keyboard is now decided based on heuristics, if the user might want to start editing. (#14205)

  • Added

    Adds UI to PSPDFNoteAnnotationViewController that enables the user to see existing reviews for a comment, add their own review status, or change their review status. (#14421)

  • Added

    Adds document type attribute to document load analytics event. (#14732)

  • Added

    Adds showing and adding annotation replies in PSPDFNoteAnnotationViewController. Replies will no longer be shown on the page. (#5721)

  • Added

    Adds support for -[PSPDFConfiguration scrollOnTapPageEndEnabled] in page curl layouts. (#13302)

  • Changed

    Improves PSPDFPageModeAutomatic behavior in connection with PSPDFPageTransitionScrollContinuous. This now always prefers single pages to take better use of the available screen real estate. (#14822)

  • Changed

    Improves the layout of the search view controller on devices with bottom safe area insets. (#12969)

  • Changed

    Improves type safety by removing the __kindof type annotation from -[PSPDFDrawView annotations], -[PSPDFPageView passthroughViewsForPopoverController], and -[PSPDFPageView selectedAnnotations]. This only affects Objective-C. (#14490)

  • Changed

    Changing page by tapping on page edges is now disabled by default. To enable this, change PSPDFConfiguration.scrollOnTapPageEndEnabled to YES. (#14418)

  • Changed

    Ensures that PSPDFAnalyticsEventNameAnnotationCreationModeExit is always logged. (#14839)

  • Changed

    Ensures that the optional analytics provider tracks log deletion for all cases. (#14817)

  • Removed

    Removes ellipses in menu items (UIMenuItem) because there is no standard convention for this on iOS and space can be scarce. For example ‘Inspector…’ is now ‘Inspector’. (#14235)

  • Fixed

    Fixes an issue that could result in a crash when the size class changes while in a page curl layout. (#14555)

  • Fixed

    Fixes an issue that makes the page curl left or right align pages even though it is in single page mode. (#14555)

  • Fixed

    Fixes an issue that triggered a page change animation in page curl in some cases even though the page was already visible. (#14528)

  • Fixed

    Fixes an issue where PSPDFPageView would display a wrong page in rare occasions. (#14442)

  • Fixed

    Fixes an issue where annotations with the Invisible, Hidden, or NoView flags set could be tappable. (#14772)

  • Fixed

    Fixes an issue where pages were not animating into place when showing or hiding the inspector. (#13627)

  • Fixed

    Fixes an issue where paginated layouts would drift by a fraction of a point with every page if PSPDFViewController is set to a non-integer size in the direction of scrolling. (#14543)

  • Fixed

    Fixes annotations shown as overlays (notes) not respecting the Invisible, Hidden, and NoView flags. (#5721)

PSPDFKit

  • API

    Renames PSPDFSignatureHashAlgorithmSHA386 to PSPDFSignatureHashAlgorithmSHA384 which is actually the correct name. (#13932)

  • API

    tryLoadAnnotationsFromFileWithError: has been removed from PSPDFFileAnnotationProvider. Use loadAnnotationsWithError: instead to customize annotation loading. (#14570)

  • API

    Adds isGenerated to PSPDFGlyph to check if the glyph is an autogenerated filler. (#14606)

  • API

    PSPDFGlyph.indexOnPage is not -1 to indicate that it is a generated filler. Use PSPDFGlyph.isGenerated instead. indexOnPage can now be used to uniquely identify a glyph on a page, and is the index of the glyph in the PSPDFTextParser.glyphs array. (#14606)

  • Removed

    Deprecates PSPDFAnnotationOptionUserCreatedKey. (#14669)

  • Removed

    Deprecates PSPDFTextBlock.glyphs, PSPDFWord.glyphs, and PSPDFSelectionState.selectedGlyphs in favor of NSRange-based APIs. (#14606)

  • Added

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

  • Added

    Adds isReply and inReplyToAnnotation properties on PSPDFAnnotation. (#5721)

  • Added

    Adds properties for author-specific state on PSPDFNoteAnnotation. (#5721)

  • Changed

    Improves cleaning up resources in PSPDFDocument’s dealloc. (#14586)

  • Changed

    Improves performance when examining document permission features. (#14747)

  • Changed

    Improves text selection performance in documents with a lot of text. (#14516)

  • Changed

    Filters out invalid characters from a page’s text. (#14516)

  • Changed

    Performance improvements for documents with many data sources. (#14651)

  • Changed

    Removing an annotation with removeAnnotations:options: on PSPDFAnnotationManager or PSPDFDocument now also removes replies to that annotation. (#14385)

  • Changed

    The relationship between PSPDFXFDFAnnotationProvider and PSPDFFileAnnotationProvider is now more explicit. If you use XFDF for form filling, you now need to keep around both providers. Furthermore, the annotation manager now only saves into the first annotation provider implementing the save method. Previously all were called, which could have led to incorrect results. (#14323)

  • Fixed

    Fixes a crash that could happen during application termination. (#14483)

  • Fixed

    Fixes a lock inversion when setting up the document providers. (#14525)

  • Fixed

    Fixes a potential crash when saving a document. (#14082)

  • Fixed

    Fixes a potential issue when removing annotations. (#14381)

  • Fixed

    Fixes an issue that prevented correct caching of rendered pages. (#14390)

  • Fixed

    Fixes an issue where -[PSPDFTextParser textWithGlyphs:] would exclude the last glyph. (#14636)

  • Fixed

    Fixes an issue where a flattened document shows a blank page in Preview. (#13708)

  • Fixed

    Fixes an issue where action destinations would not be found if sorted incorrectly. (#14412)

  • Fixed

    Fixes an issue where document checkpoints were not loaded for decoded document instances. (#14624)

  • Fixed

    Fixes an issue where image data wasn’t properly removed after rewriting the PDF. (#14708)

  • Fixed

    Fixes an issue where searching for text in a document would return results with empty text blocks. (#14516)

  • Fixed

    Fixes an issue where some PSPDFDocumentSecurityOptions initializers would sometimes return nil. (#14646)

  • Fixed

    Fixes an issue where the documents features sometimes returned an incorrect value when called right after creating a PSPDFDocument. (#14574)

  • Fixed

    Fixes an issue where using a custom bookmark provider with readonly documents disabled adding and editing bookmarks. (#14574)

  • Fixed

    Fixes animated GIF images support in the gallery. (#13897)

  • Fixed

    Fixes document corruption issue when document has a header and is incrementally saved. (#14249)

  • Fixed

    Fixes pages not being centered when zooming is disabled in landscape. (#14091)

Instant

  • Changed

    Improves type safety by removing the __kindof type annotation from -[PSPDFInstantDocumentDescriptor annotationWithIdentifier:forDocument:error:]. This only affects Objective-C. (#14490)

Examples

  • Added

    Adds PSPDFKit Catalog example illustrating how to rotate pages in 90 degree steps. (#14445)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to add a custom filter by subclassing PSPDFThumbnailViewController. (#14380)

  • Fixed

    Fixes Catalog “XFDF Annotation Provider, Encrypted” example. (#13912)

  • Fixed

    Fixes an issue where the Document Editor icon was not visible in NewPageFromDocumentExample.swift and ProgrammaticDocumentEditingExample.swift. (#14641)

7.4.1 - 19 Mar 2018

PSPDFKitUI

  • Fixed

    Fixes an issue where enabling link annotation editing would not work. (#14477)

  • Fixed

    Fixes an issue where pages had a gap between them in page curl layout. (#13329)

PSPDFKit

  • Added

    Adds PSPDFAESCryptoDataSink. (#13912)

  • Fixed

    Fixes an issue where the deletion of an annotation could not be undone properly. Important: Calling removeAnnotations:options: on a PSPDFFileAnnotationProvider no longer posts PSPDFAnnotationChangedNotification! Deleted annotations are still being returned from dirtyAnnotations until the next save — like before. They are, however, not returned from annotationsForPageAtIndex: anymore. This behavior is also far less surprising. (#14305)

  • Fixed

    Fixes a document corruption bug when the document has a header and is incrementally saved. (#14249)

  • Fixed

    Fixes Catalog “XFDF Annotation Provider, Encrypted” example. (#13912)

  • Fixed

    Fixes an animation glitch when rearrange pages with the document editor. (#14367)

  • Fixed

    Fixes an issue where PSPDFTextParser.glyphs could be incorrect for certain documents. (#10844)

  • Fixed

    Fixes an issue where dropdown arrow on combo boxes are not seen when box has a small width. (#14326)

  • Fixed

    Fixes an issue where dropdown arrows are still seen on combo boxes when document is flattened. (#9539)

  • Fixed

    Fixes issue where pdfId was required when importing a Instant JSON document. (#14494)

  • Fixed

    Fixes potential deadlocks during annotation rendering. (#14534)

  • Fixed

    Fixes an issue where opening large documents with marked content used very large amounts of memory. (#14415)

  • Fixed

    Fixes potential deadlocks when opening a lot of documents. (#14503)

  • Fixed

    Fixes an issue where PSPDFFile.fileData did not lazily memory map the file data when being called from user code. (#14539)

7.4.0 - 2 Mar 2018

See the announcement post.

PSPDFKitUI

  • API

    Replaces firstLineRect, lastLineRect, and innerRect properties of PSPDFTextSelectionView with rectForFirstBlock, rectForLastBlock, and selectionRects. (#9677)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to create a form programmatically. (#14215)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to use the Instant JSON Annotation and Document APIs. (#14087)

  • Added

    Adds an overlay message shown when digitally signing a document without a form field. (#13583)

  • Added

    Adds support for selecting vertical text. (#322)

  • Changed

    Improves compatibility with the React Native view component. (#14222)

  • Changed

    Improves performance by only creating the text selection view’s text parser when required. (#14291)

  • Changed

    Improves performance when sharing file-based documents via the Open In activity. (#14011)

  • Changed

    Improves visualization of thumbnails, especially when filtering for bookmarked or annotated pages. (#12512)

  • Changed

    Improves text selection using PSPDFTextSelectionView by selecting text in distinct blocks. (#322, #9677)

  • Changed

    Improves performance when editing free text annotations. (#13971)

  • Changed

    Improves scrolling and zooming performance. (#13971)

  • Changed

    Changes the inspector to use the annotation type as the title instead of Style. (#14057)

  • Changed

    Tapping to select an annotation in multi-select mode now works again. (#11432)

  • Fixed

    Fixes a crash that happened when adding stamp annotations with 3rd party stylus support enabled. (#14086)

  • Fixed

    Fixes an issue where annotation notes were not editable on iPhone with iOS 9. (#14323)

  • Fixed

    Fixes an issue where bookmarks could be created but not saved into a document. (#9107)

  • Fixed

    Fixes an issue where content insets were not respected in searchable choice form elements while searching. (#13987)

  • Fixed

    Fixes an issue where switching between documents with different page bindings didn’t update the scroll direction correctly. (#13849)

PSPDFKit

  • API

    -[PSPDFContainerAnnotationProvider clearNeedsSaveFlag] now asserts that it is called inside a write block! For more details, please refer to the documentation of PSPDFContainerAnnotationProvider(SubclassingHooks). (#14181)

  • API

    Certain types in Swift have been renamed to improve interoperability. (#10491)

  • API

    PSPDFDocumentSecurityOptions initializers may return error instead of assert. (#10491)

  • Removed

    Deprecates encryptionAlgorithm in PSPDFPrivateKey, in favor of signatureEncryptionAlgorithm, which is enum-typed. (#13940)

  • Added

    Adds PSPDFDocumentFeatures as a central place for checking the availability of various features. (#9107)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to generate a PDF document on a mobile device without any server use. (#13776)

  • Added

    Adds a new protocol, PSPDFExternalSignature, that can be used to provide a digital signature for a document externally. (#13940)

  • Added

    Adds an example UpdateConfigurationWhenRotatingExample.swift for changing the configuration when rotating the device. (#13820)

  • Added

    Adds support for automatic access tracking for security scoped URLs. (#13863)

  • Added

    Adds the shouldTrackDeletions class property to PSPDFContainerAnnotationProvider to customize the effect of removeAnnotations:options: on dirtyAnnotations. See PSPDFContainerAnnotationProvider.h for more information. (#8839)

  • Changed

    Adjusts the gap between two pages in continuous scroll mode. (#13877)

  • Changed

    Changes the localized description of empty note annotations from Text to Note (localized). (#14057)

  • Changed

    Improve error messages when digitally signing a document failed. (#13741)

  • Changed

    Shows an error message when digitally signing failed instead of throwing an exception in some cases. (#13741)

  • Changed

    PSPDFTextParser now respects reading order of text blocks defined in the PDF using Marked Content. (#9677, #322)

  • Fixed

    Fixes FTS5 search on SQLite versions >= 3.20.0. (#14036)

  • Fixed

    Fixes a deadlock when calling removeAllAnnotationsWithOptions: on an instance of PSPDFContainerViewController or a subclass and clarifies locking requirements. (#14178)

  • Fixed

    Fixes an assertion when a non-specified named action was deserialized via Instant JSON. (#13804)

  • Fixed

    Fixes an issue saving a document with invalid PDF syntax (empty dictionary key). (#14009)

  • Fixed

    Fixes an issue where -[PSPDFAnnotation annotationFromInstantJSON:documentProvider:error:] attached the annotation to the document. (#14140)

  • Fixed

    Fixes an issue where some annotations in a custom annotation provider were not rendered properly. (#12762)

  • Fixed

    Fixes an issue where some form fields with custom FQNs may not be signed correctly. (#14309)

  • Fixed

    Fixes an issue where the hash of two equal PSPDFAnnotation objects could be different. (#13852)

  • Fixed

    Fixes an issue where the wrong font was selected. (#14027)

  • Fixed

    Fixes crashes on document unload when FormTabOrderCalculator is being processed. (#13976)

  • Fixed

    Fixes issue with text selection in certain cases. (#13803)

  • Fixed

    Fixes potential crash when saving files with irregular outlines. (#14116)

  • Fixed

    Fixes the issue where PSPDFDocument.hasDirtyAnnotations would return NO after removing an annotation from a custom annotation provider. (#8839, Z#5114)

Instant

  • Added

    Adds PSPDFInstantErrorInvalidURL and stricter validation of the server URL to PSPDFInstantClient’s initializer. (#14158)

  • Changed

    Improves recovery from network failures during sync by monitoring reachability of the Instant server. (#11901, Z#7385)

7.3.1 - 26 Jan 2018

PSPDFKitUI

  • Added

    Adds the ability to undo clear actions while editing free text annotations. (#13828)

  • Changed

    Improves touch handling for the scrollable thumbnail bar mode for documents with only a few pages. (#13861)

  • Fixed

    Fixes a crash that occur if shake to undo is invoked during free text editing. (#13829)

  • Fixed

    Fixes an issue where presented annotations toolbar was not updated after changing controller’s PSPDFConfiguration. (#13858)

  • Fixed

    Fixes an issue where tapping a free text annotation while selected doesn’t start editing on 3D Touch compatible devices, or when using Apple Pencil. (#11424)

  • Fixed

    Fixes an issue where the displayed page labels were incorrect when switching layouts right after initialization. (#13824)

  • Fixed

    Fixes an issue which switching to the correct page when rotating from a double to a single page mode. (#13887)

  • Fixed

    Fixes an issue with restoring the view state when rotating while in a page curl layout. (#13823)

  • Fixed

    Fixes missing search bar in the outline and annotation list on iOS 11, if the corresponding view controllers were presented without being wrapped in a navigation controller. (Z#7994)

  • Fixed

    Fixes the last stroke drawn in an ink annotation with opacity below 100% appearing too dark until the annotation is deselected. (#13895)

  • Fixed

    Fixes overrideClass:withClass: in the configuration not working with PSPDFPageView. (#13881)

  • Removed

    Removes the PSCUpdateConfigurationWithoutReloadingExample example, which was using outdated API. (#13801)

PSPDFKit

  • Added

    Adds a allowedPathExtensions property to PSPDFLibraryFileSystemDataSource to configure the types of files it returns for indexing. (#13967)

  • Fixed

    Fixes an issue where checkbox values were not updated correctly. (#13843)

  • Fixed

    Fixes an issue where digitally signing a document multiple times may invalidate previous signatures. (#13582)

Instant

  • Changed

    Improves the Instant Catalog example to support 7 letter codes. (#13858)

7.3.0 - 12 Jan 2018

See the announcement post.

PSPDFKitUI

  • API

    Introduces -[PSPDFDocumentEditorDelegate documentEditorRequestsFullReload:], which requests a full document editor UI reload. (#13168)

  • API

    Replaces policy event strings on PSPDFApplicationPolicy with an extensible enum. (#13722)

  • API

    Adds +[PSPDFImagePickerController availableImagePickerSourceTypes] to allow specifying the source types of a PSPDFImagePickerController subclass. See CustomImagePickerControllerExample in PSPDFKit Catalog for details. (#13724)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to go to a specific outline programmatically. (#13166)

  • Added

    Adds a PSPDFKit Catalog example illustrating how to customize page labels. (#13343)

  • Added

    Adds a PSPDFKit Catalog example of how to monitor for touch events. (#13706)

  • Added

    Adds a new signatureIntegrityStatus to PSPDFSignatureStatus, which shows if the document has been modified in a way that has broken a digital signature. (#13570)

  • Added

    Adds a PSPDFConfiguration preset for easy configuration of PDF controllers showing image documents. (#13538)

  • Changed

    Improves detection of the page focused by the user when rotating. (#12558)

  • Changed

    Improves text selection behavior. It’s now possible to start selecting and marking up text in one direction and then switch to the opposite direction in a single gesture. (#11415)

  • Changed

    Improves the PSPDFDocumentPickerController documentation. (#8417)

  • Changed

    Improves support for document editing inside the tabbed view controller. (#13168)

  • Changed

    Improves performance of the annotation list view controller. (#13546)

  • Changed

    Improves saving when the application is backgrounded or terminated. (#13586)

  • Changed

    Improves support when embedding multiple PSPDFViewController instances into a UIPageViewController instance. (#13702)

  • Changed

    Improves text markup selection behavior when starting a selection outside of text and moving over text afterwards. (#11937)

  • Changed

    Improves the coloring of the filter segmented control at the top of the thumbnails view. It now has higher contrast against light backgrounds and uses the tint color if it provides sufficient contrast. (V#1369)

  • Changed

    Improves the accuracy of the information about the digital signature validation process by demoting some non-critical errors to warnings. (#13570)

  • Changed

    Improves the page grabber layout in various configurations. (#13465)

  • Changed

    Improves the annotation toolbar layout when using the page grabber or a vertical scrubber bar. (#13465)

  • Changed

    Improves the sound annotation player layout when using a vertical scrubber bar on iPhone X. (#13465)

  • Changed

    Improves language detection for text to speech. (#8939)

  • Changed

    Hide the annotation section in PSPDFDocumentSharingViewController for documents which do not have annotations. (#13179)

  • Changed

    The showsScrollIndicator properties on PSPDFDocumentView and PSPDFDocumentViewController now default to NO in scroll per spread mode. (#13506)

  • Fixed

    Fixes an issue where the scrubber bar was unable to switch to the first or last page in some documents. (#13258)

  • Fixed

    Fixes an issue where an assert could be triggered when replacing a file while it is being displayed. (#13362)

  • Fixed

    Fixes an issue with the page view label formatter where the custom formatter was not used. (#13343)

  • Fixed

    Fixes an issue where rotating from double to single page spreads leads to the wrong page when editing a note annotation. (#9524)

  • Fixed

    Fixes an issue with transparent background on list of open documents. (V#1345)

  • Fixed

    Fixes an issue where draw annotation tools were not properly reselected after changing layouts or rotating the device. (#12907)

  • Fixed

    Fixes an issue where read-only signed digital signatures may not be tappable. (#13573)

  • Fixed

    Fixes unnecessary document saves triggered by loading certain annotation types. (#13734)

  • Fixed

    Fixes an issue where embedded file preview was missing the close button when useParentNavigationBar was set to YES. (#13699)

  • Fixed

    Fixes a potential crash which could occur when setting a custom PSPDFApplicationPolicy in +[PSPDFKit setLicenseKey: options:]. (#13725)

  • Fixed

    Fixes an issue where PDFs with corrupted pages where not rendered at all in certain layout configurations. (#13720)

  • Fixed

    Fixes an issue where pages with different sizes were positioned incorrectly in thumbnail mode on devices with 3x screens. (#13693)

  • Fixed

    Fixes an issue where some list boxes do not display all the possible options. (#13454)

  • Fixed

    Fixes an issue where in some view hierarchies the page size was only using the visible screen space instead of the size of the view. (#13579)

  • Fixed

    Fixes an issue where the content is offset when scrolling backwards. (#13551)

  • Fixed

    Fixes an issue with continuous scrolling layouts that have fillAlongsideTransverseAxis disabled. (#13688)

PSPDFKit

  • Removed

    Deprecates the baseURL property from PSPDFFileDataProvider. (#12525)

  • Removed

    Deprecates baseURL-based PSPDFFileDataProvider initializers. (#12525)

  • Added

    Adds PSPDFImageDocument for simple annotating of image files using PSPDFKit. (#13538)

  • Added

    Adds form field values to Instant JSON. (#13335)

  • Added

    Adds a new log level (PSPDFLogLevelCritical), that is enabled by default. (#13212)

  • Added

    Adds support for PEM-encoded certificates in PKCS#7 files. (#13698)

  • Changed

    Improves file coordination update notifications, by ignoring cases that do not represent content changes. (#13394)

  • Changed

    Improves the detection of digital signatures in third-party PDF readers. (#13593)

  • Changed

    Improves the stability of the digital signing process with some certificate authorities with missing fields. (#13694)

  • Changed

    Improves locking during document cache reset. (#10984)

  • Fixed

    Fixes an issue where zooming in on large free text annotations, stamps, or form fields could use a lot of memory, which could result in crashing. (#13685, #13686)

  • Fixed

    Fixes missed search terms which span over a newline without a hyphen. (#11862)

  • Fixed

    Fixes an issue with stamp annotations not being rendered when using XFDF. (#13330)

  • Fixed

    Fixes an issue with sound annotations losing sound data when using XFDF. (#13324)

  • Fixed

    Fixes specific issue where previous xref has the same object number as a newly created object. (#13183)

  • Fixed

    Fixes an issue where PSPDFGalleryManifest could override a link annotation’s url in some cases. (V#1084)

  • Fixed

    Fixes an issue where image stamp annotations appeared scaled up. (#13703)

  • Fixed

    Fixes a problem where signed documents loaded using a data provider may incorrectly warn about changes when validated. (#13549)

  • Fixed

    Fixes file coordination issues that could occur while the application is backgrounded. (#13652)

  • Fixed

    Fixes an issue where a signed document may show a warning if inspected with a PDF lint tool. (#13719)

  • Fixed

    Fixes an issue where PSPDFFile could in some cases return stale data for a file. (#13614)

  • Fixed

    Fixes an issue where the opacity was not applied to the callout of a PSPDFFreeTextAnnotation. (#13576)

  • Fixed

    Fixes an issue where some annotation widgets’ appearance streams were not updated properly when the underlying form field’s value changed. (#13344)

  • Fixed

    Fixes highlight markups on some specficic documents (#13768)

Instant

  • Removed

    Deprecates -[PSPDFInstantClient initWithServerURL:] which crashes when data cannot be read from or written to disk. This is a breaking change if you use Swift. (#13365)

  • Added

    Adds -[PSPDFInstantClient initWithServerURL:error:] as the designated initializer. This allows failing gracefully when data cannot be read from/written to disk. (#13365)

  • Added

    Adds PSPDFInstantDocumentState describing the possible states that a PSPDFInstantDocumentDescriptor can be in. Notifications are posted for relevant state transitions, providing significantly better feedback about a document’s sync cycle. (#11324)

  • Added

    Adds API to stop a running sync cycle and improves discoverability and accuracy of documentation. (#13247)

  • Fixed

    Fixes an issue where some annotations created with default properties were not synced. (#13348)

  • Fixed

    Fixes a memory leak related to sync requests. (#13540)

  • Fixed

    Fixes a dangling pointer issue when parsing invalid server responses. (#13557)

7.2.1 - 14 Dec 2017

PSPDFKit now requires and is built with Xcode 9.2 (9C40b).

PSPDFKitUI

  • Changed

    Update the sound annotation playback toolbar view while scrolling is active. (#13274)

  • Changed

    Improves positioning of form elements during editing. (#13208)

  • Fixed

    Fixes a problem where some text in form fields may be cut off. (#13242)

  • Fixed

    Fixes an issue where draw and selection views where not recreated when changing the page or the page transition. (#12907)

  • Fixed

    Fixes an issue where the scrubber bar didn’t lay out correctly when switching documents. (#13215)

  • Fixed

    Fixes an issue where an assert could be triggered while zooming. (#13403)

  • Fixed

    Fixes a potential crash during scroll view observing. (Z#7695)

  • Fixed

    Fixes a memory leak in the signature view controller. (#13463)

  • Fixed

    Fixes ink, shape, and line annotations not being rendered correctly if they were selected while the view changes size. (#13520)

  • Fixed

    Fixes an issue where an assert could be triggered while setting an empty viewport to a document view layout. (Z#7763)

PSPDFKit

  • Changed

    Improves performance when fetching document level JavaScript objects. (#13281)

  • Fixed

    Fixes an issue where an ink annotation’s background (fill color) was incorrectly ignored. (#13216)

  • Fixed

    Fixes an issue where documents with links may not point to the correct destination after being exported. (#13341)

  • Fixed

    Fixes missed search terms which span over a newline without a hyphen. (#11862)

  • Fixed

    Fixes an issue with stamp annotations not being rendered when using XFDF. (#13330)

  • Fixed

    Fixes an issue with sound annotations losing sound data when using XFDF. (#13324)

  • Fixed

    Fixes incorrect glyph frames being returned from PSPDFTextParser for documents with vertical or rotated text. (#13423)

  • Fixed

    Fixes some crashes when undoing and redoing operations. (#12358)

  • Fixed

    Fixes a crash in PSPDFFileAnnotationProvider when the document has not been initialized properly. (#12358)

  • Fixed

    Fixes some crashes in PDFResourceProvider caused by a race condition. (#13413)

  • Fixed

    Fixes potential crashes when some classes are deallocating. (#13421)

Instant

  • Added

    Adds a PSPDFKit Catalog example that uses Instant to load documents from our public preview server and demonstrates real-time annotation synchronization. (#11968)

  • Fixed

    Fixes annotation positioning when created on a page with a transform. (#12492)

7.2.0 - 23 Nov 2017

PSPDFKitUI

  • Changed

    Improves page grabber user experience when scrolling documents with various sized pages. (#11642)

  • Changed

    No longer shows status HUD while opening a document in another app since this is usually fast. (#13209)

  • Fixed

    Fixes an issue where the page grabber was not able to scroll all the way to the top or the bottom of a document in some view configurations. (#11642)

  • Fixed

    Fixes an issue that could lead to a crash when switching between documents with different page numbers in a tabbed bar view controller. (#12513)

  • Fixed

    Fixes a crash when snapshotting a page view in a page curl layout before the view was rendered for the first time. (V#1282)

  • Fixed

    Fixes a crash when scrolling and zooming to a page when already zoomed in. (#13225)

PSPDFKit

  • Removed

    Deprecates PSPDFJSONSerializing in favor of Instant JSON (See PSPDFAnnotation+Instant.h). (#10516)

  • Added

    Adds Instant JSON support to PSPDFDocument and PSPDFAnnotation. (#10516)

  • Fixed

    Fixes a rare text extraction issue where some space characters are not correctly extracted. (#6273)

  • Fixed

    Fixes an issue where stamp annotations get blurry. (#12981)

Instant

Important: This release requires PSPDFKit Server 2017.8 for syncing. If you try to connect to an older version of the server, syncing will fail. For further information, please refer to the migration guide.

  • Added

    Adds identifierForAnnotation:error: and annotationWithIdentifier:forDocument:error to PSPDFInstantDocumentDescriptor. These APIs provide a stable, unique identifier for annotations managed by Instant. The identifiers are well suited to, for example, associate arbitrary data from external sources with an annotation. (#11682)

7.1.0 - 17 Nov 2017

See the announcement post.

PSPDFKitUI

  • API

    Replaces PSPDFAnnotationIgnoreNoteIndicatorIconKey in favor of PSPDFAnnotation.shouldDrawNoteIconIfNeeded. (#12687)

  • API

    Adopts NS_ERROR_ENUM for error codes. This is source compatible for Objective-C but might require small adjustments in Swift code. (#13023)

  • API

    The delegate of the scroll views returned in documentViewController:configureScrollView: and documentViewController:configureZoomView:forSpreadAtIndex: can now be set. (#13013)

  • API

    Adds an NSError parameter to the completion handler of -[PSPDFPageCellImageLoading requestImageForPageAtIndex:availableSize:completionHandler:]. (#11499)

  • Added

    Adds UI controls and model level APIs for copy and paste operations on the document editor. (#11972)

  • Added

    Adds PSPDFKit Catalog example illustrating how to switch between double and single page mode without reloading. (#12880)

  • Added

    Adds PSPDFDrawCreateModeAutomatic as the new default drawCreateMode used by PSPDFDrawView. This intelligently splits drawing into multiple ink annotations. This is especially beneficial when using Apple Pencil. (#9222)

  • Added

    Adds value PSPDFSignatureInputMethodMouse to PSPDFSignatureInputMethod enum which is used when the digital signature was created with a mouse. (#12865)

  • Added

    Adds PSPDFKit Catalog example illustrating how to programmatically add transparent stamp annotations. (#13075)

  • Added

    Adds finer grained scrolling API, applicable for continuous scrolling mode. See -[PSPDFDocumentViewController scrollToSpreadAtIndex:scrollPosition:animated:] for details. (#12586)

  • Added

    Adds labelFormatter property to PSPDFPageLabelView to customize page label. (#13003)

  • Added

    Adds useDiskCache to PSPDFDataProviding and PSPDFDocument to configure using the disk cache on a per-document level. (#11815)

  • Added

    Adds PSPDFKit Catalog examples illustrating how to add vector stamp annotations. (#13075, #13076, #13080)

  • Changed

    Improves performance of drawing ink annotations, which is especially noticeable when using Apple Pencil. (#9222)

  • Changed

    Improves handling of rendering errors in the thumbnails view. (#11499)

  • Changed

    Improves displaying of the icon for annotations that have a note attached. (#12555)

  • Changed

    Improves content insets and prevents the user from zooming into the areas outside a spread. (#12268)

  • Changed

    Improves scroll indicator insets on iPhone X. (#12755)

  • Changed

    Improves document layout on iPhone X. (#12753)

  • Changed

    Improves system edge gestures handling with visible annotation toolbar. (#12837)

  • Changed

    Improves usage of quantity strings (plurals). (#13039)

  • Changed

    Improves scroll behavior in continuous scroll mode when zoomed in. (#13084)

  • Changed

    Improves initial positioning in vertical continuous mode. (#12777)

  • Changed

    Improves content offset behavior during user interface fadein in vertical continuous mode. (#12777)

  • Changed

    Improves default color presets, so they better fill the space on iPhone X and 12.9” iPad. (#13117)

  • Changed

    Newly added pages via the Document Editor will be added at the end of the document. (#12533)

  • Changed

    Setting scrollEnabled, alwaysBounce, or showsScrollIndicator on PSPDFDocumentViewController doesn’t reload the view hierarchy anymore. (#13089)

  • Changed

    Link highlights are no longer shown for full page annotations. (#13163)

  • Fixed

    Fixes issue with the invisible filters in document editor on iOS 11. (#12730)

  • Fixed

    Fixes issue with annotation toolbar not being able to attach to the top in nested navigation controllers setup. (#12821)

  • Fixed

    Fixes the thumbnails view not updating on annotation changes when a filter is applied. (#11637)

  • Fixed

    Fixes issues where the content insets for document views were not properly calculated. (#12808)

  • Fixed

    Fixes issue where text in form fields are always black. (#12449)

  • Fixed

    Fixes a crash when rotating from double page spreads in landscape to single page spreads in portrait. (#12983)

  • Fixed

    Fixes a crash when using additionalScrollViewFrameInsets in continuous scrolling layouts. (#13079)

  • Fixed

    Fixes a regression that caused pages to be slightly zoomed in after rotation. (#12825)

  • Fixed

    Fixes issue where the navigation bar did not fade out with the user interface on iOS 10. (#12912)

  • Fixed

    Fixes it not being possible to scroll to the bottom of the color presets in some view sizes such as on a 4” iPhone in landscape. (#13096)

  • Fixed

    Fixes an issue where scrolling when zoomed in continuous scroll mode would be jumpy. (#12454)

  • Fixed

    Fixes an issue where spreads larger than the viewport size would start in the center. (#12852)

  • Fixed

    Fixes an issue where scrolling with the page grabber could cause the page to shift when zoomed in. (#12985)

  • Fixed

    Fixes actions not being executed for full page annotations. (#13163)

  • Fixed

    Fixes an issue where the annotation toolbar could show only a subset of buttons after inserting a signature on iPhone. (#13106)

  • Fixed

    Fixes an issue where the status bar was incorrectly shown or hidden on iPhone, when a PDF controller was re-shown in a different orientation. (#13077)

  • Fixed

    Fixes an issue where a spread view could not be found when restoring view states which led to an assertion. (V#1261)

  • Fixed

    Fixes a rare crash that could occur during rotation in page curl mode. (#12877)

  • Fixed

    Fixes an issue when applying additional scroll view frame insets to a scroll per spread layout. (#12734)

PSPDFKit

  • Removed

    Deprecates PSPDFAnnotationTriggerEventLooseFocus in favor of PSPDFAnnotationTriggerEventLoseFocus. (#13078)

  • Changed

    Improves detection of RichMedia elements and always prefers to show controls for audio-only tracks. (#12986)

  • Changed

    Improves the performance of document outline parsing when the document is very big. (#11854)

  • Fixed

    Fixes the positioning of the underline on text when no ascending characters are present on the line. (#11489)

  • Fixed

    Fixes a problem where some PDF documents may not show every form field element. (#12998)

  • Fixed

    Fixes an rare crash in PSPDFLibraryFileSystemDataSource due to mutation of a set while enumerating it. (#12987)

  • Fixed

    Fixes a potential issue when trying to interact with a form whilst a PSPDFProcessor is in progress. (#12973)

  • Fixed

    Fixes an issue where some highlight annotations were rendered incorrectly in specific PDFs. (#12937)

  • Fixed

    Fixes missing document link action when destination is not defined. (#12917)

  • Fixed

    Fixes a potential issue when trying to interact with a form whilst a PSPDFProcessor is in progress (#12973)

Instant

Important: This is the last release of Instant compatible with PSPDFKit Server 2017.7 and earlier. The next release will require 2017.8. This release adds showing an alert informing users that they need to update your app if the server version is too new. You should update your app with this version of Instant as soon as possible so once you update the server to 2017.8 users are informed of why document downloading and syncing does not work and how to fix it. For further information, please refer to the migration guide.

  • Added

    Adds showing the user an alert if the Instant framework version is too old to connect to the server. This can be disabled with the new shouldShowCriticalErrors property on PSPDFInstantViewController. (#12870)

  • Added

    Adds error codes for the cases where the client and server have incompatible versions: PSPDFInstantErrorOldClient and PSPDFInstantErrorOldServer. (#12720)

  • Fixed

    Fixes PSPDFInstantSyncingLocalChangesDisabled symbol not being exported. (Z#7443)

  • Fixed

    Fixes an issue that could lead to a failed assertion when adding annotations while there were unsynced changes. (#13122, Z#7442)

7.0.3 - 26 Oct 2017

  • Added

    Adds CocoaPods dSYM support for all frameworks to improve crash report symbolication. (#11666)

PSPDFKitUI

  • Changed

    Improves note view controller insets on iPhone X. (#12816)

  • Changed

    Improves thumbnail sizing in the document editor on iPhone X. (#12815)

  • Changed

    Improves the search controller layout on iPhone X. (Z#7121)

  • Fixed

    Fixes issues with the fullscreen gallery layout on iPhone X. (#12731)

  • Fixed

    Fixes a regression that prevented searching for fonts in PSPDFFontPickerViewController. (#12831)

  • Fixed

    Fixes an issue with the annotation toolbar not respecting the safe area in the top position. (#12833)

  • Fixed

    Fixes the sound annotation player layout if a bottom toolbar is shown. (Z#7266)

  • Fixed

    Fixes an issue where modally presented PSPDFTabbedViewController wasn’t displaying the close button. (#12811)

  • Fixed

    Fixes a crash that could occur in continuous mode, if scrolling was still ongoing while the PDF controller was being dismissed. (V#1250)

  • Fixed

    Fixes an issue that scrolled to the wrong offset when calling setContinuousSpreadIndex: on a zoomed in document with layout that has spreadBasedZooming disabled. (#12788, V#1253)

  • Fixed

    Fixes it not being possible to create some annotation types after changing pages while the tool is being used, typically while using Apple Pencil. (#12744)

  • Fixed

    Fixes ‘Open In’ not correctly working on iOS 10 and 9. (#12829)

  • Fixed

    Fixes the color picker layout on iPhone X. (#12854)

  • Fixed

    Fixes zooming to a search result making it fill the entire screen. (#12441)

  • Fixed

    Fixes PSPDFConfiguration.searchResultZoomScale not being respected. Changes default to specify automatic zoom scale. (#12675)

  • Fixed

    Fixes the thumbnails view sometimes not scrolling or not showing some pages if the document’s first page has a different aspect ratio to other pages. (V#1219)

  • Fixed

    Fixes blurry text fields when zoomed into a form. (#12661)

  • Fixed

    Fixes an issue when PSPDFKit is used in projects that do not use ARC. (#12892)

PSPDFKit

  • Added

    Adds support for transferring document level JavaScript when processing a document (#12769)

  • Fixed

    Fixes an issue with file size when flattening annotations. (#12749)

  • Fixed

    Fixes an issue in the bookkeeping of spread views which resulted in an assertion when looking for a specific page view. (#12654)

  • Fixed

    Fixes an issue where PSPDFProcessor didn’t export some annotations in particular documents. (#11795)

  • Fixed

    Fixes an issue when saving a document that has been restored from a checkpoint. (#12890)

  • Fixed

    Fixes an issue with incorrect tab order in forms. (#12902)

  • Fixed

    Fixes an issue where some flattened documents may not show correctly in third party readers. (#12901)

  • Fixed

    Fixes an issue where actions weren’t properly persisted. (#12884)

  • Fixed

    Fixes an issue when exporting XFDF with non-ascii characters. (#12892)

  • Fixed

    Fixes an issue when the appearance stream of form elements was not correctly reset when applying XFDF values. (#12892)

7.0.2 - 20 Oct 2017

PSPDFKitUI

  • Removed

    Deprecates externalScreensDisableScreenDimming of PSPDFScreenController, in favor of PSPDFBrightnessManager.idleTimerManagement. (#12601)

  • Added

    Adds the ability to override the file name when using PSPDFOpenInCoordinator. See CustomSharingFileNamesExample for details. (#12289)

  • Added

    Adds -[PSPDFViewController documentViewControllerDidLoad] as a hook to customize the appearance of a PSPDFDocumentViewController. (#12645)

  • Added

    Adds options for smart management of the idle timer to PSPDFBrightnessManager. (#12601)

  • Added

    Adds additionalScrollViewFrameInsets and additionalContentInsets to PSPDFConfiguration to easily adjust what used to be margin and padding in v6. (#12736)

  • Changed

    Moves PSPDFBrightnessManager to the PSPDFKit singleton. (#12601)

  • Changed

    The PSPDFScreenController is now more flexible and offers an additional delegate call to configure the mirroring view controller. Also see the new ScreenMirroringExample in PSPDFKit Catalog. (#12778)

  • Changed

    Improves the page grabber design. (#11079)

  • Changed

    Improves the thumbnail bar layout on iPhone X. (#12702, #12703)

  • Changed

    Improves the flexible toolbar (annotation and document editor toolbar) layout on iPhone X. (#12727)

  • Changed

    Improves screen mirroring when inner scroll view offset is changed. (#12791)

  • Changed

    Improves the page grabber layout on iPhone X. (#12729)

  • Changed

    Improves the thumbnail view layout on iPhone X. (#12728)

  • Changed

    Improves content and scroll indicator inset behavior in vertical continuous mode. (#12575, #12739)

  • Changed

    Improves the layout of the note annotation view controller on iPhone X. (#12789)

  • Changed

    Improves support for modifying PSPDFViewController.view’s frame. (#12743)

  • Changed

    Form button touch down events no longer require a minimum tap time. (#12709)

  • Fixed

    Fixes a regression on iOS 11 where the inline search mode didn’t accept touches. (#12671)

  • Fixed

    Fixes an issue where the page view was black for a split second when dismissing a modal view controller in front of it. (#12345)

  • Fixed

    Fixes an issue where a keychain warning was logged in invalid cases. (#12658)

  • Fixed

    Fixes an issue where the next page did not become visible in PSPDFScrollPerSpreadLayout based view hierarchies while bouncing a zoomed in spread. (#12269)

  • Fixed

    Fixes a crash when clearing widget annotations in PSPDFAnnotationTableViewController. (#12797)

  • Fixed

    Fixes content not being centered when zooming out. (#12365)

  • Fixed

    Fixes an issue where the view state was not restored properly on rotation. (#12673)

  • Fixed

    Fixes an issue where the frame of annotations and selected text was not updated correctly when zooming on a page. (#12514)

  • Fixed

    Fixes an issue where scrolling to a page via the scrubber bar didn’t work in some cases. (#12473)

  • Fixed

    Fixes an issue when restoring the state with an invalid document in place. (V#1238)

  • Fixed

    Fixes an issue when restoring state when zoomed into a document. (V#1243)

  • Fixed

    Fixes an issue where PSPDFTextFieldCell used a too narrow inset on iOS 11. (#12737)

  • Fixed

    Fixes an issue where annotation inspector couldn’t be presented in vertical scrolling mode. (#12718)

  • Fixed

    Fixes an issue with content insets when the keyboard showed up. (#12652)

  • Fixed

    Fixes layout of table view cells including a slider. (#12754)

  • Fixed

    Fixes the flexible toolbar not supporting the top position on iPhone X. (#12784)

PSPDFKit

  • Added

    Adds support for proper removal of PSPDFFormElements when calling removeAnnotations:. (#12797)

  • Changed

    Improves correctness for JavaScript util.printf call. (#12759)

  • Changed

    Improves reliability when saving documents with broken cross-reference tables. (#12212)

  • Fixed

    Fixes issues with font selection for non latin languages. (#12297, #11639)

  • Fixed

    Fixes issues when restoring from checkpoints. (#12669)

  • Fixed

    Fixes an issue where text in some form fields may be cut. (#12494 and #11287)

  • Fixed

    Fixes an issue rendering text while zoomed in specific documents. (#12392)

  • Fixed

    Fixes an issue where underline annotations and text extraction may not work correctly for some documents. (#12070)

Instant

  • Added

    Adds +[PSPDFInstantClient dataDirectory] to access the path where Instant stores documents and annotations, which may be used to set a custom data protection class for Instant. (#12710)

  • Fixed

    Fixes lock inversions that could cause live- or deadlocks when syncing finished while the document was still being parsed. (#11739)

7.0.1 - 12 Oct 2017

PSPDFKitUI

  • Added

    Adds PSPDFDragAndDropConfiguration to customize how and where Drag and Drop should work. (#12538)

  • Changed

    Before storing images, PSPDFKit now checks for NSPhotoLibraryAddUsageDescription and warns if not set. (#12528)

  • Changed

    Improves the bottom sound annotation player layout on iPhone X. (#12536)

  • Changed

    Improves behavior when tapping the edge of the page to scroll. (#12445)

  • Fixed

    Fixes an issue where the content offset was wrong when opening single page documents when a PSPDFContinuousScrollingLayout was used. (#12500)

  • Fixed

    Fixes an issue where toolbar icons could be displayed smaller than they should if the toolbar was updated too early in some cases. (#12472)

  • Fixed

    Fixes the last double page spread in the thumbnails view being shown separated. (#12506)

  • Fixed

    Fixes several issues related to the continuous spread index by making the continuous spread index being derived from the center. (#12366, #12416, #12264, #12502, #12483)

  • Fixed

    Fixes an issue with the document label overlapping the status bar in case no navigation bar is shown. (#12401)

  • Fixed

    Fixes an image resource which was referenced invalid in the free text annotation accessory keyboard toolbar. (#12511)

  • Fixed

    Fixes an issue where the image editor couldn’t be dismissed. (#12530)

  • Fixed

    Fixes an issue where class overrides originating from PSPDFPageView were not used. (#12540)

  • Fixed

    Fixes an issue with the sound annotation player not hiding when deleting the corresponding sound annotation. (#12529)

  • Fixed

    Fixes an issue where spread views removed from view hierarchy could be kept as visible which could cause assertion failures. (V#1213)

  • Fixed

    Fixes an issue with annotation changes not being saved before digitally signing a document. (#12195)

  • Fixed

    Fixes an issue where under certain view configurations, creating a new signature on an iPhone could fail. (#12570)

  • Fixed

    Fixes an issue where user interactions were ignored during showing and hiding of the user interface. (#12414)

  • Fixed

    Fixes an issue where rotating from portrait single-page mode to landscape double-page mode would cause the viewport to be zoomed in on the first page. (#12474)

  • Fixed

    Fixes an issue where the annotation list would become unresponsive when a large number of annotations were updated at a time. (#11539)

PSPDFKit

  • Fixed

    Fixes an issue where the leading zero was not displayed when formatting a number. (#12565)

  • Fixed

    Fixes an issue where some annotations may not be shown even when they are present in a document. (#12295)

Instant

  • Changed

    Updates the example app to Swift 4. (#12504)

  • Fixed

    Fixes creating an annotation also creating an additional empty annotation that was only stored locally. (#12542)

7.0.0 - 4 Oct 2017

See the announcement post.

PSPDFKit 7 is a major new release. PSPDFKit has been split into two frameworks: PSPDFKit.framework for model and parser classes, and PSPDFKitUI.framework for UI functionality including view controllers.

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, which will also help with the framework split.

  • API

    Removes all deprecated API. For a full list with suggested migration paths, see the migration guide. (#11669)

PSPDFKitUI

  • API

    Overhauls the view hierarchy for displaying documents. This involves many API changes. See the View Hierarchy section in the migration guide for much more detail. (#9773)

  • API

    Replaces various API around signature saving with a more versatile PSPDFSignatureSavingStrategy used by PSPDFSignatureViewController and PSPDFConfiguration for managing saving signatures. See the Signatures section in the migration guide for a full list of changes. (#9471)

  • API

    Changes the stored ink signature type of PSPDFSignatureStore from PSPDFInkAnnotation to PSPDFSignatureContainer. PSPDFInkAnnotation objects will be migrated automatically to the new PSPDFSignatureContainer. (#11841)

  • API

    Renames PSPDFUnsignedFormElementViewController to PSPDFCertificatePickerViewController including the related delegate and methods. (#11841)

  • API

    Removes the document signing logic of PSPDFCertificatePickerViewController and removes unsignedFormElementViewController:signedDocument:error:. This is now handled via PSPDFDigitalSignatureCoordinator. (#11841)

  • API

    Removes ink annotation selection from PSPDFCertificatePickerViewController. This is now handled via PSPDFDigitalSignatureCoordinator. (#11841)

  • API

    Renames PSPDFHUDView to PSPDFUserInterfaceView with corresponding changes to related API. See the migration guide for a full list. (#9462)

  • API

    Renames PSPDFAnnotationViewProtocol to PSPDFAnnotationPresenting and PSPDFStatefulViewControllerProtocol to PSPDFStatefulViewControlling. (#11237)

  • API

    Renames -[PSPDFTextSelectionView selectionRect] to innerRect. (#11870)

  • API

    Renames updatepageIndex:animated: to reloadPageAtIndex:animated: on PSPDFViewController. (#11764)

  • API

    Renames PSPDFLinkActionInlineBrowserLegacy to PSPDFLinkActionInlineWebViewController. (#12424)

  • API

    Replaces document info option strings on PSPDFDocumentInfoCoordinator with an extensible enum. (#11735)

  • API

    Replaces -[PSPDFToolbarButton setImage:] with a similarly named property PSPDFToolbarButton.image. (#11975)

  • Added

    Adds support for changing the page mode when in a vertical scroll direction and in continuous page transition. (#12304)

  • Added

    Adds PSPDFDigitalSignatureCoordinator, used for customizing the path for storing a digital signed document and document presentation. (#11841)

  • Added

    Adds support for selecting a digital signature certificate from the ink signature creation dialog. (#11841)

  • Added

    Adds support for digitally signing a document without an existing signature form element, by letting the user draw a new signature form element before signing. (#12083)

  • Added

    Adds support for adding biometric data to digital signatures created via the UI. (#980)

  • Added

    Adds a new sound annotation player that is shown on the bottom. Configurable via soundAnnotationPlayerStyle. (#11464)

  • Added

    Adds PSPDFDocumentInfoController protocol implemented by controllers used in PSPDFDocumentInfoCoordinator, to improve removal of invalid controllers. (#11458)

  • Added

    Adds -[PSPDFSelectionView panGestureRecognizer] and converts PSPDFSelectionView to be purely gesture recognizer based. (#12310)

  • Added

    Adds new vector based icons. (#11975)

  • Changed

    Improves the signature experience on Plus-sized iPhones. (#8857)

  • Changed

    Improves haptic feedback when moving the flexible toolbar. (#9093)

  • Changed

    Improves translations for various languages (#12191)

  • Changed

    Improves support for smaller images on the compact landscape phone bars. (#11975)

  • Changed

    Improves navigation bar animations and layout guide handling during user interface visibility transitions. (#12229)

  • Changed

    Improves default size calculation logic for various view controllers. (#12375)

  • Changed

    Uses a dark keyboard and keyboard accessory appearance when in night mode. (#11510)

  • Changed

    Introduces a new catalog example theme. (#12384)

  • Changed

    Works around an issue with iOS 11 Smart Punctuation that inserts a null character after a triple dash-tap. (rdar://34651564, #12280)

  • Fixed

    Fixes the long press to reset color preset feature on the annotation style inspector. (Z#6873)

  • Fixed

    Fixes a memory leak in continuous scroll mode. (#11971, #11134)

  • Fixed

    Fixes the default overlayViewController’s view jumping down after appearing. (#11645)

  • Fixed

    Fixes a rare assertion when animating draw view bounds changes. (#12209)

  • Fixed

    Fixes annotation toolbar layout issues on iOS 11. (#11975)

  • Fixed

    Fixes animation issues occurring during the thumbnail view transition. (#12267)

  • Fixed

    Fixes scrubber bar flicker during the user interface fadein animation. (#12324)

PSPDFKit

  • API

    Removes most PSPDFDocument initializers and all class factory methods, in favor of just the flexible initWithDataProviders: and the convenient initWithURL:. A full list of migration strategies for each method can be found in the migration guide. (#12087)

  • API

    Removes the baseURL and files properties from PSPDFDocument. (#12087)

  • API

    Adds an options parameter to the PSPDFDocument save methods, which means the alwaysRewriteOnSave property has been replaced by PSPDFDocumentSaveOptionForceRewrite. See the Document Save Options section in the migration guide for more details. (#8297)

  • API

    Renames PSPDFProcessorSaveOptions to PSPDFDocumentSecurityOptions and renames related API. See the Document Save Options section in the migration guide for a full list of API changes. (#8297)

  • API

    Removes disk cache strategy and page index parameters from PSPDFCache caching methods. (#11669)

  • API

    Renames the PSPDFDataProvider protocol to PSPDFDataProviding and adds more specialized protocols for file-backed data providers. Custom data providers can cooperate with PSPDFKit to support file coordination. (#11199)

  • API

    The parameters of the PSPDFFileCoordinationDelegate methods now conform to PSPDFCoordinatedFileDataProviding instead of NSFilePresenter. (#11199)

  • API

    PSPDFXFDFParser and PSPDFXFDFWriter now use PSPDFDataProviding and PSPDFDataSink instead of a NSInputStream and NSOutputStream. (#11693)

  • API

    Prefix changes: Renames isAnnotationsEnabled to areAnnotationsEnabled, isBookmarksEnabled to areBookmarksEnabled, isPageLabelsEnabled to arePageLabelsEnabled and isFormsEnabled to areFormsEnabled on PSPDFDocument. (#9742)

  • API

    Renames PSPDFUndoProtocol to PSPDFUndoSupport. (#11237)

  • API

    Renames -[PSPDFDocument documentByAppendingObjects:] to documentByAppendingDataProviders: and this array can no longer contain instances of NSString, NSURL, or NSData. (#12087)

  • API

    Renames the dataProviderArray property on PSPDFDocument to dataProviders. (#12087)

  • API

    Removes the contentSignatures property from PSPDFDocument and adds a signature property to the PSPDFDataProviding protocol. (#12087)

  • API

    PSPDFRenderTask can now fail. There is a new delegate method renderTask:didFailWithError:, and the completionHandler is now passed either an image or an error. (#11500)

  • API

    Renames the class PSPDFAbstractTextOverlayAnnotations to PSPDFMarkupAnnotation. (#10182)

  • API

    Removes -[PSPDFAnnotation isFixedSize]. (#12007)

  • API

    Renames PSPDFileCoordinationDelegate to PSPDFFileCoordinationDelegate. (#11765)

  • API

    Removes -[PSPDFSignatureFormElement drawArrowWithText:andColor:inContext:] subclassing hook. (#12083)

  • API

    Removes document unrelated callback methods from PSPDFDocumentDelegate: pdfDocument:didRenderPageAtIndex:inContext:withSize:clippedToRect:annotations:options:, pdfDocument:provider:shouldSaveAnnotations:, pdfDocument:didSaveAnnotations:, pdfDocument:failedToSaveAnnotations:error:, pdfDocument:underlyingFileDidChange:. (#12178)

  • API

    Replaces -[PSPDFLibrary updateIndex] with -[PSPDFLibrary updateIndexWithCompletionHandler:]. (#11509)

  • API

    Removes metadata handling from PSPDFLibrary. (#12261)

  • API

    Replaces annotationsByDetectingLinkTypes:forPagesInRange:options:progress:error: with annotationsByDetectingLinkTypes:forPagesAtIndexes:options:progress:error:. (#11502)

  • Added

    Adds Document Checkpointing to recover changes to documents that may not have been saved. (#8471)

  • Added

    Adds new PSPDFSignatureAppearance class, which allows you to configure the appearance of digital signatures in a document. (#980)

  • Added

    Adds a PSPDFSignatureBiometricProperties class, which allows you to store and recover encrypted biometric information about a handwritten digital signature. (#980)

  • Added

    Adds signFormElement:withCertificate:writeToDataSink:withAppearance:completionBlock: to PSPDFSigner to allow signing documents to a generic PSPDFDataSink. (#8879 and #11267)

  • Added

    Adds creation methods for PSPDFFormField subclasses allowing you to create new form fields. (#12056)

  • Added

    Adds removeFormElements:error: and removeFormFields:error: to PSPDFFormParser. This allows removing of either form elements or form fields. (#11928)

  • Added

    Adds support for changing many PSPDFFormField properties that were read-only before. (#12157)

  • Added

    Adds support for setting any PDF as an appearance stream on an annotation using the PSPDFAppearanceStreamGenerator protocol. (#11428)

  • Added

    Adds PSPDFAnnotationProviderDelegate for callback methods related to annotation saving. (#12178)

  • Added

    Adds outline property to PSPDFDocument, used for getting the documents’ outline. (#11801)

  • Added

    Adds support for AES encryption when saving or processing a document. (#4420)

  • Changed

    Improves how PSPDFLibrary deals with long running indexing tasks. See PSPDFLibrary.automaticallyPauseLongRunningTasks. (#12158)

  • Changed

    Improves progress handling by automatically canceling active document progress when all data provider progresses are canceled. (V#916)

  • Changed

    Improves library updates by making them completely asynchronous. (#11509)

  • Changed

    Improves exact phrase matching in PSPDFLibrary. (#12261)

  • Changed

    Improves XFDF performance and compliance. (#11693)

  • Changed

    Changes -[PSPDFDocument addAnnotations:options:] and -[PSPDFDocument removeAnnotations:options:] to accept options dictionaries with keys of type NSString. (#12008)

  • Changed

    Implements setMaxLength: for PSPDFFormElement. (#11834)

  • Changed

    The minimumSize property of PSPDFAnnotation has been changed from 32 to 16. (#11871)

  • Fixed

    Fixes an issue saving an original document after signing it. (#11911)

  • Fixed

    Fixes potential file coordinator races. (#11938, #11206)

  • Fixed

    Fixes an issue when rendering decomposed UTF-8 strings (#11985)

  • Fixed

    Fixes an issue in our KVO helper that could cause a recursive locking abort. This only was discovered with custom code and doesn’t affect default usage. (rdar://34307466, #11990)

  • Fixed

    Fixes an issue that prevented modifications to compareOptions for manual text searching (#12047).

  • Fixed

    Fixes an issue where a digital signature field could not be properly deleted (#12082).

  • Fixed

    Fixes an issue where indexing wasn’t stopped when the application gets terminated. (#12215)

  • Fixed

    Fixes a cosmetic issue where an ink signature field may show as unsigned (#12127).

  • Fixed

    Fixes an issue where flattening a document may generate warnings when it is open in third party readers. (#12066)

Instant

  • API

    Renames the PSPDFInstantDocumentDescriptor methods startListeningForServerUpdates and stopListeningForServerUpdates to startListeningForServerChanges and stopListeningForServerChanges, and the PSPDFInstantViewController property shouldListenForChangesWhenVisible to shouldListenForServerChangesWhenVisible. (#12393)

  • Added

    Adds support for showing download progress using PSPDFKit. PSPDFDocuments can now be obtained from document descriptors before the document has been downloaded. The document may be obtained immediately and set on a PSPDFInstantViewController which will show a download progress bar. (#11199)

  • Added

    Adds an autoSyncDelay property to PSPDFInstantDocumentDescriptor which can be used to disable automatic syncing, giving you full control over when Instant syncs with the server. (#11681)

  • Fixed

    Fixes an issue where an incorrect values could be persisted as PDF object IDs. (#11689)

6.9.3 - 1 Sep 2017

This will be one of the last releases in the PSPDFKit for iOS version 6 branch, while we’re busy working on version 7. It includes a fix for using it with Xcode 9, however we still recommend Xcode 8 for compiling and testing.

PSPDFKit 7 for iOS will require Xcode 9 and keep compatibility for iOS 9 until the end of the year to ease the transition. Read more about our version support here: https://pspdfkit.com/guides/ios/announcements/version-support/

  • Changed

    Improves performance for hit-testing ink annotations. (#11858)

  • Changed

    Improves apperance stream generation to not have extra space after non-latin characters in form fields. (#11874)

  • Changed

    Works around a crash in the bookmark view controller due to UIKit bug. (rdar://32485481, #11850)

  • Fixed

    Fixes a NaN calculation issue when linking with Xcode 9/Base SDK 11. (#11886)

  • Fixed

    Fixes an issue with recreating AVPlayer and AVPlayerItem when it was in an error state. (#11864)

  • Fixed

    Fixes an issue with view state restoration in PSPDFMultiDocumentViewController. (#11856)

  • Fixed

    Fixes memory leaks in PSPDFDocument and PSPDFViewController. (#11883)

  • Fixed

    Fixes an infinite recursion when describing certain NSValueTransformer instances. (#11881)

  • Fixed

    Fixes an issue where the keyboard was dismissed when typing a custom form value on iPad. (#11892)

  • Fixed

    Fixes a rare crash when saving. (#11861)

Instant

  • Added

    Adds support for note annotations. (#11704)

  • Fixed

    Fixes two lock-inversions that could cause live-lock or dead-lock when a document received changes while initially reading its annotations. (#11586)

  • Fixed

    Fixes a crash that could occur when a document was deleted while pages were still being rendered. (#11586)

6.9.2 - 16 Aug 2017

  • Changed

    Improves performance for loading and interacting with complex forms. (#11389)

  • Changed

    Improves the eraser radius calculations. (#11803)

  • Fixed

    Fixes a stamp annotation quality degradation issue for images after moving/resizing. (#11625)

  • Fixed

    Fixes a font selection issue with documents using the Courier font. (#11228)

  • Fixed

    Fixes an issue where the selected property of annotation views was not set correctly. (#11687)

  • Fixed

    Fixes a layout issue when moving knobs of callout annotation that could happen in rare cases. (#9750)

  • Fixed

    Fixes an issue where link annotations marked as readonly were not tap-able. (#11715)

  • Fixed

    Fixes an issue where documents could sometimes end up locked after saving when an owner-password is set. (V#1121)

  • Fixed

    Fixes an issue where the document cache was not properly invalidated when saving manually via PSPDFDocumentEditor. (#11767)

  • Fixed

    Fixes PSPDFMediaPlayerController not behaving correctly in some cases when a subclass exists. (#11671)

  • Fixed

    Fixes an issue in the sample catalog that made the subclassing category not show up. (#11707)

  • Fixed

    Fixes note annotation text not being editable after showing the icon and color options on iPhone on iOS 11 when building with the iOS 11 SDK. (#11789)

  • Fixed

    Fixes the icon and color buttons not being tappable when editing a note annotation on iOS 11 when building with the iOS 11 SDK. (#11789)

Instant

  • Fixed

    Fixes an issue where the Instant document descriptor was released too soon. (#11721)

  • Fixed

    Fixes a failed assertion due to an improper format string in an error condition. (#11747)

6.9.1 - 3 Aug 2017

  • API

    Changes the object of PSPDFMediaPlayerControllerPlayback* notifications from PSPDFGalleryVideoItem to PSPDFMediaPlayerController. (#11549)

  • Added

    Adds support for external named destinations in PSPDFRemoteGoToAction. (#11320)

  • Changed

    Allows backwards selection of text when creating markup annotations. (#11583)

  • Changed

    Improves handling of galleries and videos during screen mirroring. (#11549)

  • Changed

    Improves drawing and the erasure tool when using the Apple Pencil. (#11527)

  • Changed

    Improves the rendering of polygon annotations. (#11620)

  • Changed

    Improves form text rendering with non-latin characters. (#10996)

  • Fixed

    Fixes an issue where videos were shown fullscreen when screen mirroring was enabled. (#11549)

  • Fixed

    Fixes a color management issue for file annotations. (#11488)

  • Fixed

    Fixes an issue where annotation assets might have gotten overwritten in some cases. (#11581)

  • Fixed

    Fixes incorrect default resizing behavior for freetext and callout annotations. (#11630)

  • Fixed

    Fixes a leaking color space when encoding images. (#11512)

  • Fixed

    Fixes an issue where an image annotation with a note could lose the image data. (#11652)

Instant

  • API

    Renames PSPDFInstantClient’s signOut to removeLocalStorage, which makes more sense because there is no explicit signing in. (#11619)

  • Added

    Adds automatically recovering from connection errors when automatic sync is active. (#11506)

  • Added

    Adds the annotation selection tool to the default annotation toolbar. (#11565)

  • Added

    Adds error codes for cases that were previously reported as “unknown”. (#11522)

  • Fixed

    Fixes continuing to listen for updates if the app keeps running in the background. Listening now resumes when the app comes back to the foreground. (#11542)

  • Fixed

    Fixes incorrect handling/reporting of an authentication error during sync. (#11386)

  • Fixed

    Fixes an incorrect log message format that could lead to a failed assertion. (#11634)

  • Fixed

    Fixes deletion of multiple annotations at once. (#11651)

6.9.0 - 20 Jul 2017

See the announcement post.

  • Added

    Adds Instant: an easy-to-integrate solution to connect your app to your PSPDFKit Server to download documents and synchronize annotations between users. Everything’s synced in an instant!

  • API

    Adds option to configure flattening or embedding of form elements to PSPDFProcessorConfiguration. (#11096)

  • API

    Introduces failable annotationsByDetectingLinkTypes:forPagesInRange:options:progress:error: instead of annotationsFromDetectingLinkTypes:pagesInRange:options:progress:error:. (#11125)

  • API

    Changes isFixedSize and fixedSize to be instance properties on PSPDFAnnotation. (#10931)

  • API

    Moves allowedImageQualities to PSPDFImagePickerController from PSPDFAnnotationStateManager. (#11172)

  • API

    Audit and update several nullability declarations for correctness. (#11183)

  • API

    The method extractImageFromAppearanceStreamWithTransform:error: on PSPDFAnnotation has been removed. Use the equivalent loadImageWithTransform:error: method on PSPDFStampAnnotation. The call was not useful for other annotation types. (#11185)

  • API

    PSPDFDocument’s undoController is now declared as nullable and set to nil when undoEnabled is disabled shortly after document initialization. (#11476)

  • API

    Adds pdfViewController:didDeselectAnnotations:onPageView: as a new PSPDFViewControllerDelegate callback. (#11485)

  • Added

    Adds improved markup annotation behavior to select blocks of text. This makes certain selections easier to create. (#10482, #9768)

  • Added

    Adds support for flattening signature annotations. (#11096)

  • Added

    Adds language-based filtering options to the PSPDFKit Catalog example. (#5436)

  • Added

    Adds Adobe root CA by default when using PSPDFSignatureManager, so that documents can be more easily verified the same way as on desktop readers. (#11240)

  • Added

    Adds support for Instant.framework to strip-framework.sh. (#11362)

  • Changed

    Works around a content inset layout issue of the search bar in the outline and annotation list, when the navigation bar has a background image set. (#10878, rdar://32980288)

  • Changed

    The global SQLite message logger now filters out irrelevant common known logs from iOS like cfurl_cache_response. (#10890)

  • Changed

    PSPDFBookmarkViewController now automatically scrolls to inserted bookmarks. (#11029)

  • Changed

    Improves certificate validation for digital signatures. (#11128)

  • Changed

    Improves support for more types of certificates in digital signatures. (#11083)

  • Changed

    Improves RTL language support in forms. (#11013)

  • Changed

    Improves automatic layout during callout annotation knob dragging. (#9750)

  • Changed

    Improves memory management when rendering forms. (#11176)

  • Changed

    Improves support for file presenter based document deletion notifications in multi data provider documents. (#10362)

  • Changed

    Improves interaction while drawing annotations by introducing a draw gesture recognizer on PSPDFDrawView. (#7655)

  • Fixed

    Fixes a crash related to bookmarks when viewing multiple documents. (#11020)

  • Fixed

    Fixes very rare issue on saving files repeatedly. (#9477)

  • Fixed

    Fixes an access to the view’s bounds on a background thread when laying out the thumbnails view. (#11084)

  • Fixed

    Fixes an issue where in some configurations a scroll view, that was out of our control, was modified. (#10981)

  • Fixed

    Fixes an issue where selecting an annotation in the outline view would not navigate to the correct page in multi-provider documents. (#11136)

  • Fixed

    Fixes a problem while importing some kind of certificates for digital signatures. (#11120)

  • Fixed

    Fixes an issue where UI code was called on a background thread. (#11408)

  • Fixed

    Fixes an issue where disabling screen mirroring didn’t work in some cases. (#11171)

  • Fixed

    Fixes an issue where one PSPDFSignerError had an invalid error code. (#11186)

  • Fixed

    Fixes an issue occurring after searching in PSPDFOutlineViewController. (#11268)

  • Fixed

    Fixes issues with language selection in the Catalog example on iOS 11. (#11342)

  • Fixed

    Fixes some crashes when signing a particular type of PDF documents. (#11285)

  • Fixed

    Fixes an issue where the close buttons in the tabbed bar were not correctly shown when using PSPDFTabbedViewControllerCloseModeSizeDependent in some cases. (V#590)

  • Fixed

    Fixes an issue where signatures could show the certificate issuer name instead of the certificate subject name. (#11368)

  • Fixed

    Fixes a rare race condition in the render queue that could occur when using any kind of drawing based annotation with the eraser tool while a page rendering completes. (#11326)

  • Fixed

    Fixes an issue where some digital signatures couldn’t be open in Adobe Acrobat. (#11390)

  • Fixed

    Fixes a retain cycle in the document info UI. (11260)

  • Fixed

    Fixes a layout issue when a document with partially broken pages is loaded. (#11481)

  • Fixed

    Fixes an issue where no annotations were shown in PSPDFAnnotationTableViewController, when editableAnnotationTypes was empty. (#11391)

  • Fixed

    Fixes an issue with encoding preloaded monochrom images. (#10985)

  • Fixed

    Fixes a rare deadlock related to undo operations. (#11479)

  • Fixed

    Fixes a data race in PSPDFRenderQueue. (#11494)

  • Removed

    Deprecates annotationsFromDetectingLinkTypes:pagesInRange:options:progress:error:. (#11125)

  • Removed

    Deprecates allowedImageQualities on PSPDFAnnotationStateManager. (#11172)

  • Removed

    Deprecates isHighlightAnnotationState: in favor of isMarkupAnnotationState:. (#10482, #9768)

  • Removed

    Deprecates fixed size class methods on PSPDFAnnotation in favor of instance properties. (#10931)

  • Removed

    Deprecates allowedTouchTypes on PSPDFDrawView and introduces it on PSPDFDrawGestureRecognizer. (#7655)

  • Removed

    Deprecates the undoEnabled property on PSPDFUndoController. (#11476)

6.8.0 - 22 Jun 2017

See the announcement post.

This release removes the embedded OpenSSL. This results in a smaller binary and faster link times.

  • Added

    Adds new digital signature implementation that no longer relies on OpenSSL. (#10864)

  • Added

    Adds support for filtering watermarks (enabled by default). See PSPDFDocument.isWatermarkFilterEnabled (#8144, #10874)

  • Added

    Adds support for opening the Settings app from the privacy access denied controller. (#10526)

  • Changed

    Uses the app name instead of “This app” in the privacy access denied controller. (#10528)

  • Changed

    Makes the disclosure button of PSPDFOutlineCell tintable. (#10818)

  • Changed

    Works around an issue where UISearchController would load its view during dealloc. (#10936)

  • Changed

    Various refinements around nullability that have been discovered with Xcode 9’s Undefined Behavior Sanitizer. (#10876)

  • Changed

    Preserves the previous state of the expanded value for outline elements after searching in PSPDFOutlineViewController. (#10862)

  • Changed

    Improves action resolving in multi-provider documents. (#10782)

  • Changed

    Improves the popover sizing of the choice form editor view controller. (#10621)

  • Changed

    Improves style manager support for color presets and fixes various smaller issues. (#10930)

  • Changed

    Improves rotation on iPads when using automatic page transition, i.e. rotating from landscape to portrait shows the last interacted page. (#11033)

  • Changed

    Improves support for form filling via JavaScript. (#10979)

  • Changed

    Improves documentation of the digital signatures feature. (#11027)

  • Fixed

    Fixes an issue when tapping a search result in some documents. (#10844)

  • Fixed

    Fixes issue while saving PDF files. (#10849)

  • Fixed

    Fixes a leak when rendering a bitmap. (#10847)

  • Fixed

    Fixes an issue where the “Open In” activity was not shown for non-URL backed documents. (#10854)

  • Fixed

    Fixes an issue where documents with incorrectly created annotations could cause infinite loops. (#10640)

  • Fixed

    Fixes rare file coordination related crashes and deadlocks. (#10935)

  • Fixed

    Fixes an issue where the bookmark migration could deadlock in some configurations. (#10857)

  • Fixed

    Fixes an issue where the page grabber could cause a crash on 32bit devices when switching from a multi page document to a single page document in a visible view controller instance. (V#929)

  • Fixed

    Fixes an issue with digital signatures where a name and date was required. (#7892)

  • Fixed

    Fixes an issue where the page wasn’t preserved in automatic page mode when rotating from portrait to landscape and back to portrait. (#10988)

  • Fixed

    Fixes an issue where embedded files with very long names might fail to be extracted correctly. (#11028)

  • Fixed

    Fixes an issue with digital signatures where some valid signatures are not recognized by Adobe Reader. (#9565)

  • Fixed

    Fixes an issue where the cache is not properly invalidated if saving a document fails. (#11022)

6.7.2 - 31 May 2017

  • Changed

    Update OpenSSL to 1.0.2l. (#10820)

  • API

    Adds option to configure background indexing queue priority in PSPDFLibrary. (#10619)

  • Added

    Adds file coordination support to PSPDFDocumentEditor. (#10595)

  • Changed

    Moves Bookmarks in front of Annotations in the document info view controller tab order. (#10666)

  • Changed

    PSPDFAnnotationTableViewController now has smarter defaults when neither visible- nor editableAnnotationTypes are set. (#10788)

  • Changed

    Improves PSPDFDocument and PSPDFFileDataProvider documentation, clarifying the expected behavior with symlinks and alias files. (#10750)

  • Changed

    Improves error handling for saves that fall back to external file saving due to an unwritable document. (#10805)

  • Fixed

    Fixes an issue where editing a bookmark could result in a crash. (#10607, #10723)

  • Fixed

    Fixes an issue with document render options when mirroring the screen. (#10676)

  • Fixed

    Fixes an issue where annotations were drawn in the wrong size if fitToWidth was set to PSPDFAdaptiveConditionalAdaptive and the adaptive style would have been mapped to a disabled fit to width behavior. (#9754)

  • Fixed

    Fixes an issue where bookmarks lost their custom sort order when migrating from PSPDFKit 5 for iOS. (#10705)

  • Fixed

    Fixes issue with free text annotations ending editing mode on rotation in continuous page transition mode. (#10671)

  • Fixed

    Fixes an issue where the outline controller was shown when there was no outline in a document. (#6902)

  • Fixed

    Fixes an issue where custom bookmark providers did not receive a save call if the annotation save mode was set to PSPDFAnnotationSaveModeExternalFile or PSPDFAnnotationSaveModeDisabled. (#10665)

  • Fixed

    Fixes PSPDFDocumentPickerController not persisting the FTS index. (#10704)

  • Fixed

    Fixes smaller document editor glitches caused by file presenter updates. (#10595)

  • Fixed

    Fixes an issue with saving files that did not conform completely to the PDF format. (#10712)

  • Fixed

    Fixes an issue with Digital Signatures. (#10762)

  • Fixed

    Fixes an issue where the text selection loupe magnification could break after moving it to a different page. (#10589)

  • Fixed

    Fixes an issue with saving link annotations. (#10355)

  • Fixed

    Fixes a potential deadlock that could occur when performing synchronous saves of encrypted documents on the main thread. (#10789)

  • Fixed

    Fixes an issue where saving an unwritable document using PSPDFAnnotationSaveModeEmbeddedWithExternalFileAsFallback would fail. (#10805)

  • Fixed

    Fixes a leak when rendering a bitmap. (#10777)

6.7.1 - 22 May 2017

  • API

    Adds a new global configuration option that allows you to opt out of PSPDFDocument file coordination if needed. By setting PSPDFFileCoordinationEnabledKey to @NO, PSPDFDocument no longer implicitly creates PSPDFCoordinatedFileDataProvider instances when initialized with a URL. Instead the non-coordinated PSPDFFileDataProvider is used. (#10608)

  • API

    Adds annotation indexing capabilities to PSPDFLibrary. (#9235)

  • API

    Adds PSPDFRenderManagerRenderResultDidChangeNotification which is posted when a document’s data changes so that a rendering of its pages would look different. (#10489)

  • API

    Adds PSPDFRenderOptionTextRenderingUseCoreGraphicsKey and PSPDFRenderOptionTextRenderingClearTypeEnabledKey as advanced rendering options. (#10231)

  • Added

    Adds support for mirroring a PSPDFViewController via PSPDFScreenController to an external screen. (#2527)

  • Changed

    Using setRenderOptions:type: with type PSPDFRenderTypeAll now works as expected. (#10231)

  • Changed

    The FTS indexer scans faster and is limited to one thread with a low priority. (#10618)

  • Changed

    Improves file data provider behavior during progress indication by blocking file access while the file might not yet be completely written. (V#880)

  • Changed

    Improves the customization options for the page grabber. (#10538)

  • Changed

    Improves saving behavior around encrypted files. (V#879, #9088)

  • Changed

    Improves performance around reading PDF files. (V#879, #10554)

  • Changed

    Improves performance when reading page labels (V#879, #10575)

  • Changed

    Improves reliability of Spotlight indexed PSPDFLibrary documents being found. (#10658)

  • Changed

    Improves PSPDFLibrary’s handling of queued documents when updateIndex is called, ensuring no stale data is indexed. (#10662)

  • Fixed

    Fixes an issue that could prevent PSPDFDocument deserialization using initWithCoder:. (V#880)

  • Fixed

    Fixes handling of annotations with the NoView and Print flags set, and now renders them in documents generated for printing. (#9725, #10459)

  • Fixed

    Fixes an issue when migrating from old bookmark data. (#10560)

  • Fixed

    Fixes an issue with the empty state of the outline controller. (Z#6161)

  • Fixed

    Fixes an issue with the page range selection not showing up for some sharing options. (Z#6155)

  • Fixed

    Fixes an issue where the page grabber might not be visible when the document starts in its loading state and then becomes available. (#10604)

  • Fixed

    Fixes a crash related to embedded files when the asset name is invalid. (10601)

  • Fixed

    Fixes a crash when parsing invalid metadata. (#10611)

  • Fixed

    Fixes a very rare crash when using the page grabber. (V#929)

  • Fixed

    Fixes an issue where coordinated file access could end up in a deadlock. (#10622)

  • Fixed

    Fixes an issue where radio buttons were rendered incorrectly (#10631)

  • Fixed

    Fixes PSPDFLibrary indexing completed notifications not including the PSPDFLibraryNotificationSuccessKey in the userInfo. (#10662)

  • Fixed

    Fixes an issue with the outline popover sizing on some devices. (#10594)

  • Removed

    Deprecates pdfViewController:didRenderPageView: and replaces it with more accurate delegate calls. (#9577)

  • Removed

    Deprecates a few properties in PSPDFSignaturePropBuildEntry. (#10448)

6.7.0 - 10 May 2017

See the announcement post.

  • API

    Adds PSPDFDefaultScale() which returns the main screen scale on iOS and 1.0 on macOS. (#10438)

  • API

    All fileURL based PSPDFDocuments are now backed by PSPDFCoordinatedFileDataProvider instances. The initialization flow for file data providers and the behavior of some fileURL related methods on PSPDFDocument have slightly changed to accommodate file coordination. (#1859)

  • API

    Simplified API of PSPDFModel, removes several methods which should not be required to be called or subclassed. (#10221)

  • API

    PSPDFBookmark is now fully immutable. If you want to change a bookmark, create a mutable copy, change it, and add it to the bookmark manager again. (#9308)

  • API

    Add notifications for gallery video playback state changes to PSPDFMediaPlayerController. (#9758)

  • API

    PSPDFStatefulTableViewController conforms to the newly added PSPDFStatefulViewControllerProtocol protocol. (V#775)

  • API

    Rename enum PSPDFStatefulTableViewState to PSPDFStatefulViewState. (V#775)

  • API

    PSPDFNoteAnnotationViewController now declares that it implements UITextViewDelegate. (#10407)

  • API

    Renames -[PSPDFRenderQueue cancelAllJobs] to cancelAllTasks. (#10417)

  • Added

    Adds the option to specify the image scale in a PSPDFRenderRequest. (#10413)

  • Added

    Adds support for coordinated file operations to PSPDFDocument and implements the NSFilePresenter protocol. (#1859)

  • Added

    Adds PSPDFPageGrabberController and PSPDFPageGrabber to provide UI to quickly scroll through a document. (#76)

  • Added

    Adds support for PSPDFDocument progress indication via the PSPDFFileProvider API. Check out DocumentProgressExample.swift for more information. (#10410)

  • Added

    Adds an error handling delegate method to PSPDFTextSearchDelegate to better notify of errors during text search. (#10276)

  • Added

    Adds support for PSPDFAnnotationTriggerEventLooseFocus JavaScript events. (#10295)

  • Added

    Adds support for the NeedAppearances form flag. (#10288)

  • Added

    Adds support for automatically closing deleted documents to PSPDFViewController and PSPDFTabbedViewController. (V#790)

  • Added

    Adds support for respecting minimumSize of PSPDFAnnotation during creation as well. (#10435)

  • Added

    Adds a contentsLocked property to PSPDFAnnotation that checks the PSPDFAnnotationFlagLockedContents flag. We now do not allowing editing contents for annotations with this flag. (#9552)

  • Added

    Adds support for searching choice form options. (#10306)

  • Added

    Adds the form navigation bar to the top of choice form options when in half modal presentation. (#10307)

  • Changed

    Improves naming for the ink annotation fill color inspector option. (#10088)

  • Changed

    Improves PSPDFTextSearch handling of invalid or locked documents. (#10276)

  • Changed

    Improves support for custom bookmark provider. (#9649)

  • Changed

    Improves the user experience when the user denied access to the camera or the photo library. (#9752)

  • Changed

    Improves performance around complex PDF documents. (#10290, #10295)

  • Changed

    Improves cache invalidation when files change while the document is not opened or the app is not running. (#10212)

  • Changed

    Improves NSCoding support for PSPDFFileDataProvider, by ensuring its URL is preserved in application path independent way. (V#817)

  • Changed

    Improves sqlite3 linking. (#10089)

  • Changed

    Improves reliability of reading from data providers. (#10382)

  • Changed

    Improves documentation of PSPDFX509’s memory model for the encapsulated OPENSSL_X509 object. (#10225)

  • Changed

    Improves documentation of some annotation flags which were incorrectly said to have been ignored. (#9552)

  • Changed

    Choice form options now are automatically scrolling to the selected index when shown. (#10295)

  • Changed

    PSPDFTabbedViewController no longer automatically emits taptic feedback when selecting tabs. (#10371)

  • Fixed

    Fixes an issue where the cachePolicy of a render request could be ignored in some cases. (#10428)

  • Fixed

    Fixes highlight annotations rendering incorrectly in documents created by PowerPoint and some other PDF creators. (#9677)

  • Fixed

    Fixes PSPDFFontSizeName not being public despite being referenced in the documentation. (#10223)

  • Fixed

    Fixes an issue when setting pageIndex before PSPDFViewController was shown. (#10079)

  • Fixed

    Fixes an issue where bookmarks were not being saved for viewer only licenses. (#10025)

  • Fixed

    Fixes the Clear Field button not being enabled at the correct times when editing form fields. (#10254)

  • Fixed

    Fixes a retain cycle in PSPDFOutlineElement. (#10287)

  • Fixed

    Fixes an issue with scrolling in the outline list. (#10251)

  • Fixed

    Fixes rendering issues with Arial Narrow. (#10244)

  • Fixed

    Fixes an issue where annotations were rendered in an outdated state when modifying annotations while rendering was in progress. (#9991)

  • Fixed

    Fixes an issue with collapsing outline elements when searching (#10409)

  • Fixed

    Fixes a locking issue related to UID generation. (#10453)

  • Fixed

    Fixes an issue where the document editor cell layout could remain out of date after a collection view bounds size change. (#9511)

  • Fixed

    Fixes an issue that could result in a very long running loop when rendering PDF documents with broken dashed lines. (#9764)

  • Removed

    Deprecates -[PSPDFRenderQueue concurrentRunningRenderRequests]. (#10417)

6.6.1 - 13 Apr 2017

  • API

    Adds soundAnnotationRecordingOptions to PSPDFConfiguration to configure recording parameters when creating a new sound annotation. (#10120)

  • API

    PSPDFDocumentPickerCell now uses custom image view and labels to improve the layout. (#10108)

  • Changed

    Improves the view state restoration logic when a view controller is presented with/without the toolbar. (V#723)

  • Changed

    Improves stability in low memory situations. (#10086)

  • Changed

    Improves error reporting in PSPDFPKCS12 when unlocking fails. Also fix premature unloading of OpenSSL digests/algorithms from memory. (#10021, #10022)

  • Changed

    Improves support for adaptive user interfaces in PSCCustomToolbarExample. (#9578)

  • Changed

    Improves some warning log messages for better clarification. (#10168)

  • Changed

    Freshens up the visual design of PSPDFDocumentPickerController. (#10108)

  • Changed

    Moves error codes reported by PSPDFPKCS12 into the PSPDFErrorCode enum to be more consistent with the rest of the framework. (#10022)

  • Changed

    Default sample rate for sound annotation recordings has been lowered to 22,050 samples per second to comply with the PDF specification and to decrease the file size. (#10120)

  • Fixed

    Fixes an issue when using the image picker on form elements in double page mode. (#10069)

  • Fixed

    Fixes an issue with loading XFDF annotations. (#10096)

  • Fixed

    Fixes text color in form fields not rendering correctly and not being compatible with other PDF readers. (#10090)

  • Fixed

    Fixes the processor call to setFormMappingNameMappings:. (#10102)

  • Fixed

    Fixes an issue with invisible form fields if their bounding box wasn’t normalized. (#10035)

  • Fixed

    Fixes an issue with flattening form fields appearing upside down. (#10036)

  • Fixed

    Fixes status bar related HUD issues. (#9975)

  • Fixed

    Fixes an issue where the freetext annotation intent conversion option was shown in the annotation inspector during annotation creation. (#9109)

  • Fixed

    Fixes an issue where certain bar button items would remain selectable when disabled. (#9130)

  • Fixed

    Fixes annotation toolbar drag & drop for certain container view controller arrangements. (#9746)

  • Fixed

    Fixes a layout issue in PSPDFDocumentPickerController (#9743)

  • Fixed

    Fixes an issue with displaying the empty state of the outline list. (#10151)

  • Fixed

    Fixes an issue where wrong values were rendered in forms. (#10007)

  • Fixed

    Fixes an issue while saving with a PSPDFXFDFAnnotationProvider. (#10187)

  • Fixed

    Fixes an issue that could cause very low priority render tasks to never be executed. (#10166)

  • Fixed

    Fixes an issue with infinite loop galleries when presented modally. (#9941)

  • Fixed

    Fixes an issue with using -[PSPDFDocument setPageBinding:]. (#10186)

  • Removed

    Deprecates cache pausing and resuming as this is no longer necessary with the improved render engine. (#10166)

6.6.0 - 6 Apr 2017

See the announcement post.

PSPDFKit now requires and is built with Xcode 8.3 (8E162).

  • API

    Various methods have been converted to properties where appropriate. This is source compatible for Objective-C but might require small adjustments in Swift code. (#9854)

  • API

    Adds PSPDFDocumentPDFMetadata. This class allows you to retrieve and set metadata in a PDF. This deprecates -[PSPDFDocument metadata].

  • API

    Adds PSPDFDocumentXMPMetadata. This class allows you to retrieve and modify data in the XMP stream inside a PDF document.

  • API

    Adds clearRegisteredSigners to PSPDFSignatureManager to remove all registered signers. (#9908)

  • API

    PSPDFOutlineCell now uses a custom nameLabel property instead of UITableViewCells textLabel for displaying the outline name. (#9930)

  • API

    Adds formFieldNameMappings and formMappingNameMappings to PSPDFProcessorConfiguration for changing the name of form fields. (#9868)

  • API

    Adds shouldShowImageEditor to PSPDFImagePickerController, which configures showing the image editor. (#10058)

  • Added

    Adds support for right to left page bindings and automatically changes the page order for the main page view, the scrubber bar, the thumbnail bar and the thumbnail view mode. (#1973)

  • Added

    Adds more callbacks to PSPDFImagePickerControllerDelegate to get the selected and edited images from the image picker. (#9510)

  • Added

    Adds the ability to keep the outline hiearchy intact and to collapse and expand elements while searching. (#9930)

  • Changed

    Changes the line thickness slider in the inspector (PSPDFAnnotationStyleViewController) to be more precise for smaller values and reduces the minimum thickness from 1 to 0.5 points. (#9464)

  • Changed

    Changes the inspector’s opacity and line thickness value labels to use monospaced numbers so they change more smoothly when using the slider. (#9891)

  • Changed

    Improves support for “buttonImportIcon” JS functionality in forms to be more in line with Adobe. (#9730).

  • Changed

    Improves creation and rendering of small cloud annotations. (#9830)

  • Changed

    Improves form loading performance for some documents. (#9382)

  • Changed

    Improves PSPDFLibrary search when using FTS5. (#10018)

  • Changed

    Improves support for RTL text selection. (#9688)

  • Changed

    Improves JavaScript calculation support. (#10024)

  • Changed

    Improves status bar management reliability. (#9975)

  • Changed

    Improves memory usage. (#10082)

  • Fixed

    Fixes an issue where line and arrow annotations were always previewed as a dashed line. (#9024)

  • Fixed

    Fixes an issue where the user could select a cloudy line style for arrow annotations. Cloudy line styles are not available for arrow annotations. (#9024)

  • Fixed

    Fixes an issue where circle annotations that have a cloudy border style pass NaN values to CoreGraphics in some cases. (#9834)

  • Fixed

    Fixes the JavaScript Form API by providing setItems, clearItems, deleteItemAt and insertItemAt again. (#9868)

  • Fixed

    Fixes symbol characters being used for rendering text in certain situations. (#9878)

  • Fixed

    Fixes an issue where JavaScript wasn’t executed when a choice form element was selected. (#9894)

  • Fixed

    Fixes the half modal view controller close button animation timing during dragging. (#9895)

  • Fixed

    Fixes a race condition crash in PSPDFCoreFormProvider. (#9744)

  • Fixed

    Fixes an issue where the presented SFSafariViewController was blank while a popover was visible. (#9149)

  • Fixed

    Fixes an issue with flattening annotations using custom PSPDFFileAnnotationProvider subclasses. (#9914)

  • Fixed

    Fixes the JavaScript action triggers MouseUp and MouseDown and the JavaScript display property. (#9932)

  • Fixed

    Fixes an issue with unselectable form checkboxes in certain documents. (#9960)

  • Fixed

    Fixes full text search results returning incorrect results when an unmatched quote character is included in the search string. (#9831)

  • Fixed

    Fixes YouTube cover image parsing. (#10003)

  • Fixed

    Fixes text field form rendering when text properties are changed. (#9956)

  • Fixed

    Fixes an issue with exporting choice form elements to JSON. (#9420)

  • Fixed

    Fixes an issue where the export value instead of the label was rendered in a PSPDFChoiceFormElement. (#9953)

  • Fixed

    Fixes an issue where some video preview thumbnails may be upside down. (#9992)

  • Fixed

    Fixes an issue with a missing red border around required form fields. (#9983)

  • Fixed

    Fixes a view state restoration issue in continuous scroll mode that could trigger an internal assertion. (#9936)

  • Fixed

    Fixes an issue with sharing PSPDFDocument including multiple files. (Z#5864)

  • Fixed

    Fixes an issue with making form elements non-editable. (#10009)

  • Fixed

    Fixes an issue where the document editor may show page thumbnails with an incorrect orientation. (#9974)

  • Fixed

    Fixes an issue with selecting a entry in a PSPDFChoiceFormElement. (#10056)

  • Fixed

    Fixes free text annotation colors not being compatible with Adobe Acrobat and other PDF readers, and not being read properly in some situations. (#8941)

  • Fixed

    Fixes a layout issue in the outline list. (#9516)

  • Fixed

    Fixes an issue that prevented the document editor cells from loading the correct thumbnail image. (#10083)

  • Removed

    Deprecates +[PSPDFOutlineCell heightForCellWithOutlineElement:documentProvider:constrainedToSize:outlineIntentLeftOffset:outlineIntentMultiplier:showPageLabel] in favor of a self-sizing table view cell. (#9930)

6.5.1 - 15 Mar 2017

  • API

    Introduces -[PSPDFDocumentProvider fileId] and -[PSPDFDocument documentId]. A permanent identifier (if available) based on the contents of the file at the time it was originally created. (V#602)

  • API

    Adds PSPDFApplePencilDetectedChangedNotification. Use this instead of PSPDFApplePencilDetectedNotification to avoid unnecessary work when there is no change in detection state. (#9766)

  • API

    Adds shouldExpandCollapseOnRowSelection subclassing hook to modify the expand/collapse behavior in PSPDFOutlineViewController. (#9691)

  • Changed

    PSPDFApplePencilDetectedNotification is no longer posted when detected is set to NO to better clarify its purpose. (#9766)

  • Changed

    Improves the bookmark view controller reload behavior by implementing incremental updates. (#9580)

  • Changed

    Calling description on the document no longer tries to parse the document. (#9556)

  • Changed

    Polygon annotations now correctly require at least 3 points before it is possible to commit them. (#9800)

  • Changed

    Improves the drawing order of watermarks and annotations. (#9258)

  • Changed

    Improves formatting of text related annotations in the annotation list view. (#9740)

  • Changed

    Improves creation of dashed and cloudy annotations. (#9738)

  • Fixed

    Fixes a condition where bold font would be incorrectly used for text that is not to be highlighted in PSPDFSearchViewController. (#608)

  • Fixed

    Fixes a crash on iOS 9.0.x. (#9789)

  • Fixed

    Fixes ghost images when selecting form elements. (#9482)

  • Fixed

    Fixes an issue on incrementally saving using a data provider. (#9410)

  • Fixed

    Fixes a crash that could occur when drawing polygon annotations with the cloudy line style. (#9800)

6.5.0 - 9 Mar 2017

See the announcement post.

  • API

    Stylus support has been modified to better support Apple Pencil. If you integrated a third-party stylus SDK with PSPDFKit as demonstrated in PSCStylusSupportExample, you’ll need to revise this. We recommend adding PSPDFApplePencilDriver in availableDriverClasses, and annotationToolbar.additionalButtons = @[annotationStateManager.stylusStatusButton] must be replaced with annotationToolbar.showingStylusButton = YES. The stylus support guide and PSCStylusSupportExample have been updated to reflect this. (#6525)

  • API

    Changes fitToWidthEnabled type to PSPDFAdaptiveConditional and adjusts its behavior. (V#527)

  • API

    Makes PSPDFAnnotationString* and some constants for stylus drivers nicer to use from Swift. (#9543, #9672)

  • API

    Introduces -[PSPDFRenderQueue scheduleTasks:] to schedule multiple tasks at once. (#9416)

  • API

    Introduces -[PSPDFRenderTask groupTasks:completionHandler:] to group multiple render tasks together and get a single completion handler call once all of them complete. (#9416)

  • API

    A new sharing option has been introduced to improve document export for print. PSPDFDocumentSharingOptionFlattenAnnotationsForPrint should be used instead of PSPDFDocumentSharingOptionFlattenAnnotations when printing. This is set by default in PSPDFConfiguration.printSharingOptions. (#9295)

  • API

    Introduces PSPDFPrintConfiguration to customize the print flow or set a default printer. (#9650)

  • Added

    Adds first-class Apple Pencil support. Users can now annotate documents with the Pencil while scrolling and tapping with a finger. This is built into PSPDFStylusManager, PSPDFAnnotationStateManager and PSPDFAnnotationToolbar and enabled by default. It is also possible to set the Apple Pencil to always create a particular annotation type, such as ink or highlight, without showing any UI. Learn more in the new Apple Pencil guide. (#6525)

  • Added

    Adds 3D Touch preview support in PSPDFThumbnailViewController, PSPDFAnnotationTableViewController, PSPDFOutlineViewController and PSPDFBookmarkViewController. (#9195)

  • Added

    Adds support for non-printable annotations via the new PSPDFDocumentSharingOptionFlattenAnnotationsForPrint option. (#9295)

  • Added

    Adds an option to close all tabs except one. Accessible by selecting Close All Other Tabs after long pressing a close button in PSPDFTabbedViewController. (#9393)

  • Added

    Adds an option to set cloudy borders on geometric annotations in the annotation inspector. (#9675)

  • Changed

    Improves settings controller by preventing user from selecting unsupported configurations. (#8321)

  • Changed

    Improves the annotation view controller reload behavior by implementing incremental updates. (#9520)

  • Changed

    Improves the animation in the kiosk grid example. (#9225)

  • Changed

    Improves text to speech language detection for some documents. (#9371)

  • Changed

    Improves haptic feedback when scrubbing to first and last page. (#9193)

  • Changed

    Improves the transition to and from the fullscreen gallery view mode. (#9460, #9467)

  • Changed

    Improves compatibility with embedded videos to allow playing even more format variations. (#9484)

  • Changed

    Improves JavaScript support for formatting dates in form fields. (#9481)

  • Changed

    Improves disk usage and reuses temporary paths for asset annotations. (#9396)

  • Changed

    Improves page navigation with keyboard shortcuts. (#9234)

  • Changed

    Improves font size while editing a text form element. (#9419, #9436)

  • Changed

    Improves support for certain types of link annotations. (#9201)

  • Changed

    Updates OpenSSL to 1.0.2k. (#9364)

  • Changed

    Changing the tab in PSPDFTabbedViewController now creates haptic feedback. (#9415)

  • Changed

    The example stylus drivers have now been tested with the Adonit SDK 3.3 and Wacom SDK 2.1.0. (#9672)

  • Changed

    The annotation state manger’s state is no longer set to nil when changing selected annotations, saving a document, or changing PSPDFViewController’s document. This was necessary to create a great experience with Apple Pencil. (#6525)

  • Changed

    Status HUD notifications are no longer shown when the connected stylus changes. These can be turned back on with PSPDFStylusManager’s new showsStatusHUDForConnectionStatusChanges property. (#6525)

  • Fixed

    Fixes an issue where checking for a cached image falsely resulted in a cache miss when checking for smaller images in some size constellations. (#9440)

  • Fixed

    Fixes an issue with the thumbnail view mode layout. (#9456)

  • Fixed

    Fixes an issue with generating a document from a local file. (Z#5470)

  • Fixed

    Fixes an issue with half modal view controller avoidance. (#9314)

  • Fixed

    Fixes an issue with -[PSPDFLibraryFileSystemDataSource indexItemDescriptorForDocumentWithUID:] returning nil before PSPDFLibrary.updateIndex is called. (#9392)

  • Fixed

    Fixes an issue where pages were disappearing when laying out PSPDFViewController multiple times in a very short time frame. (#9402)

  • Fixed

    Fixes positioning of free text annotations when pasting text. (#9299)

  • Fixed

    Fixes a rare deadlock encountered with background saving. (#8689)

  • Fixed

    Fixes relative path for documents stored in an iCloud container. (V#599)

  • Fixed

    Fixes an issue where exporting a document with forms didn’t always automatically invoke save. (#9457)

  • Fixed

    Fixes hard to read text in small choice form elements. (#9450)

  • Fixed

    Fixes an issue where search may not return every match for some documents. (#9173)

  • Fixed

    Fixes an issue that cancelled ongoing animations when the HUD was animating in or out. (#8410)

  • Fixed

    Fixes the PSPDFAnnotationStyleViewController (inspector) shown from the annotation toolbar not showing the annotation preview on iPhone in landscape. (#9512)

  • Fixed

    Fixes an issue with layout invalidation when in thumbnail view mode and rotating the device while the app is in the background. (#9523)

  • Fixed

    Fixes PSPDFLibrary’s usage of background tasks when indexing. (#9674)

  • Fixed

    Fixes an issue in the renderer that produced an endless loop with invalid values in certain locations of a PDF. (#9595)

  • Fixed

    Fixes an issue where some annotations with dashed border was incorrectly rendered. (#9435)

  • Fixed

    Fixes a text layout issue in PSPDFOutlineViewController. (#9516)

  • Removed

    Removes PSPDFStylusDriverDelegateKey which was not used. (#9672)

6.4.0 - 31 Jan 2017

See the announcement post.

  • API

    Adjusts PSPDFDocument initializers for better Swift support. initWithContent:signatures: is now marked as the designated initializer for this class. (#9143)

  • API

    New helper searchableItemAttributeSetWithThumbnail: on PSPDFDocument for easier Handoff/NSUserActivity/Spotlight integration. (#9218)

  • API

    The doublePageModeOnFirstPage property in PSPDFConfiguration has been renamed to firstPageAlwaysSingle. (#9277)

  • API

    Makes PSPDFMetadata* keys nicer to use from Swift. (#9218)

  • API

    Adds -[PSPDFLibraryFileSystemDataSource indexItemDescriptorForDocumentWithUID:] to retrieve document metadata without having to read the document from disk. (#9317)

  • API

    Adds PSPDFLibraryFileSystemDataSource.documentProvider to allow for custom-prepared (encrypted) documents to be used. (#9307)

  • API

    Adds pdfViewController:didExecuteAction: method to PSPDFViewControllerDelegate which is called after an action has been executed. (#9297)

  • Added

    Adds support for FTS5 (full-text search) to PSPDFLibrary, when available. This updates the internal format and will require a re-indexing. See https://sqlite.org/fts5.html for more details on FTS5. (#9026)

  • Added

    Adds support for right-to-left user interface. (#5635)

  • Added

    Adds translations for Arabic.

  • Added

    Adds a photo editor to crop, rotate and zoom images, when adding a new page or an image annotation. (#969)

  • Added

    Adds a search UI to the annotations table view controller. (#8906)

  • Added

    Adds a placeholderImage to <PSPDFPageCellImageRequestToken> for smoother transitions to the thumbnail view mode. (#9197)

  • Changed

    Improves performance when zooming and scrolling in certain cases. (#9288)

  • Changed

    Improves behavior of close-all-tabs option in PSPDFTabbedBarController. (#9050)

  • Changed

    Improves power consumption in low power mode. (#5595)

  • Changed

    Improves external keyboard support when navigating through form fields. (#8503)

  • Changed

    Improves the highlight icon for the annotation toolbar. (#9187)

  • Changed

    Improves automatic page mode threshold to use double page mode more often. (#9161)

  • Changed

    Improves performance of library indexing and preview snippet generation. (#9131)

  • Changed

    Improves behavior of annotations in night mode. (#9207)

  • Changed

    Improves PSPDFLibraryFileSystemDataSource’s checking of its source documents URL to ensure it is a directory. (#9216)

  • Changed

    Improves display of indexed documents in Spotlight. (#9219)

  • Changed

    Improves localizations in Norwegian and renames Save To Camera Roll to Save to Photo Library. (#9353)

  • Changed

    Improves the padding around responders that are scrolled to become visible when the keyboard is shown. (#9316)

  • Changed

    Improves the layout of the empty state in thumbnail view mode when filtered for annotations or bookmarks. (#9315)

  • Changed

    Changes default number of search results and preview snippets in library queries to 500. Can be modified via options dictionary. (#9131)

  • Changed

    Form annotations now honor the hidden flag just like other annotation types. (#9200)

  • Fixed

    Fixes an issue where the Current Page option was presented in pages range picker even when there’re no visible page indexes set. (#9350)

  • Fixed

    Fixes a crash that could happen while rotating in some scenarios. (V#530, V#532)

  • Fixed

    Fixes a rare crash in PSPDFTabbedBarController. (V#539)

  • Fixed

    Fixes issues with selected annotations on rotated pages. (#9083)

  • Fixed

    Fixes a layout issue when switching to thumbnail mode in some cases. (#9128)

  • Fixed

    Fixes an issue with entering edit mode of free text annotations when long pressing. (#9148)

  • Fixed

    Fixes an issue with free text annotations in night mode. (Z#5365)

  • Fixed

    Fixes an issue where the document editor could get into an invalid state while interactive movement of pages. (#9198)

  • Fixed

    Fixes an issue where annotations were not rendered in night mode color while annotation mode was enabled. (#9168)

  • Fixed

    Fixes an issue where the scrubber bar sometimes requested the wrong image size. (#8998)

  • Fixed

    Fixes selecting items in the annotation toolbar not working properly in some configurations with restricted editableAnnotationTypes. (#9226)

  • Fixed

    Fixes an issue where borders weren’t dashed properly. (#9260)

  • Fixed

    Fixes an issue where menu controller stayed visible after deselecting an image annotation. (#9286)

  • Fixed

    Fixes an issue where the annotation user name controller could dismiss its parent controller as well. (#9296)

  • Fixed

    Fixes an issue where the annotation’s search results don’t select the annotation when tapped. (#9313)

  • Fixed

    Fixes a rare issue where inline image objects were not released properly. (#9241)

6.3.1 - 9 Jan 2017

  • API

    Removes unused onlyReturnIfVisible parameter from PSPDFChildViewControllerForClass. (#9072)

  • Changed

    Improves haptic feedback from annotation toolbar and thumbnail scrubber. (#9065)

  • Fixed

    Fixes the shadow position for sound annotation appearance streams. (#9037)

  • Fixed

    Fixes PSPDFLibraryFileSystemDataSource becoming inconsistent with the document library. (#9043)

  • Fixed

    Fixes PSPDFLibraryFileSystemDataSource ignoring encrypted but not locked documents. (#9047)

  • Fixed

    Fixes height of the search view controller when the search results are cleared. (#9028)

  • Fixed

    Fixes the author name view never being shown if the annotation button is tapped while a popover is visible. (#9058)

  • Fixed

    Fixes the half modal presentations such as the annotation inspector not being dismissed if the user cancels an interactive pop gesture then attempts to go back a second time. (#9058)

  • Fixed

    Fixes the annotation toolbar not being hidden when popping the PSPDFViewController from a navigation stack while there is a half modal presentation. (#9058)

  • Fixed

    Fixes it being possible to show the annotation toolbar underneath a half modal presentation. (#9058)

6.3.0 - 21 Dec 2016

See the announcement post.

PSPDFKit now requires and is built with Xcode 8.2.1 (8C1002).

  • API

    Adds -[PSPDFLibrary indexedDocumentWithUID:] method to easily retrieve documents from FTS search results. (#8884)

  • API

    Adds an “explicit mode” to PSPDFLibraryFileSystemDataSource, to improve handling of cases where the documents directory’s contents would change rapidly. (#8894)

  • Added

    Adds option to close all tabs by long pressing a close button in PSPDFTabbedViewController. (#8662)

  • Added

    Adds Norwegian and Slovak language and improves the translations overall. (#8975)

  • Changed

    Improves updating of cells in PSPDFDocumentPickerController when a document title changed. (#8874)

  • Changed

    Improves the flexible toolbar drag & drop handle. (#8883)

  • Changed

    Improves website conversion support in PSPDFProcessor. The changes make it less likely for pages to be converted in a partially rendered state. (#8830)

  • Changed

    Improves the cache eviction algorithm. (#8876)

  • Changed

    Improves the eraser for natural drawing ink annotations. (#7532)

  • Changed

    Improves button selection across different annotation toolbar configurations by prioritizing recently picked tools on all toolbar configurations. (#8610)

  • Changed

    Improves automatic reloading of PSPDFAnnotationTableViewController when changing properties. (#8966)

  • Changed

    Improves settings UI with new icons representing scrolling directions. (#8590)

  • Changed

    Improves callout annotation resizing and auto sizing behaviors. (#8692)

  • Changed

    Key classes are now better protected against misuse to show potential bugs early. (#8892)

  • Fixed

    Fixes an issue where PSPDFLibrary would send duplicate notifications when spotlight indexing is disabled. (#8833)

  • Fixed

    Fixes loss of selection when the app is backgrounded. (#8458)

  • Fixed

    Fixes an issue where XFDF fields are incorrectly filled. (#8925)

  • Fixed

    Fixes an issue where the scrubber bar could take a lot of CPU time to layout. (#8876)

  • Fixed

    Fixes an issue with loading invalid annotations. (#8869)

  • Fixed

    Fixes an issue with view state restoration when using specific scroll and transition modes. (#8801)

  • Fixed

    Fixes an issue while garbage collecting PDF objects on saving non-incrementally. (#8901)

  • Fixed

    Fixes documentation of -[PSPDFLibrary updateIndex] which incorrectly stated that the method would return immediately and was asynchronous. (#8893)

  • Fixed

    Fixes an issue with parsing invalid sound annotations. (#8814)

  • Fixed

    Fixes an issue where search result cells showed the wrong search result when tapping it in some cases. (#8931)

  • Fixed

    Fixes an issue where the frame of note annotations was incorrectly displayed on the page. (#8865)

  • Fixed

    Fixes a crash when trying to save a photo and NSPhotoLibraryUsageDescription is not set in your Info.plist. The menu item is no longer shown unless a usage description is found. You should add a usage description to your Info.plist to re-enable this feature. (#8992)

  • Fixed

    Fixes a crash when using custom versions of SQLite 3.11 or higher. (#8967)

6.2.1 - 30 Nov 2016

  • API

    Adds indexedUIDCount and indexedUIDs properties to PSPDFLibrary. (#8757)

  • Changed

    Enables integration with PSPDFKit Instant.

  • Changed

    Improves the UI when asking for an author name the first time the user wants to add an annotation. (#6160)

  • Added

    Adds key commands to allow up/down arrow keys on a physical keyboard to change pages. (#8395)

  • Fixed

    Fixes a missing deprecation statement on -[PSPDFDocument diskCacheStrategy]. Disk cache strategy is deprecated since PSPDFKit 6.1. (#8783)

6.2.0 - 28 Nov 2016

See the announcement post.

  • API

    Changes PSPDFDocumentSharingCoordinatorDelegate selector from documentSharingCoordinator:didFailWithError: to documentSharingCoordinator:didFinishWithError. New call is more general and is called on success and on failure. (#8568)

  • API

    Changes -[PSPDFDocumentSharingViewController initWithDocument:] (and for subclasses) to -[PSPDFDocumentSharingViewController initWithDocuments:]. Update property document to documents in PSPDFDocumentActionExecutor. (#8595)

  • API

    Adds new options to customize the appearance of PSPDFSearchViewController. (#8679)

  • API

    Adds closeMode property to PSPDFTabbedViewController, which may be used to show the close button in all tabs, or in all tabs but only in regular width size classes. The Boolean allowsClosingDocuments is deprecated. If you previously set this property to NO, use PSPDFTabbedViewControllerCloseModeDisabled instead. The default behavior has not changed. (#8595)

  • Added

    Adds support for rendering annotations in their corresponding color in (color correct) night mode. (#8582)

  • Added

    Adds support for annotation flags PSPDFAnnotationFlagReadOnly and PSPDFAnnotationFlagLocked. (#1182)

  • Changed

    The default allowed disk cache size has been decreased and the set allowed cache size is now treated as a hint. The actual maximum cache size might be smaller depending on several conditions. (#8648)

  • Changed

    Improvements to the render engine for performance and correctness. (#8310)

  • Changed

    Improves memory handling in low-memory situations and with many open documents. (#8352, #8447)

  • Changed

    Improves document sharing by adding support for handling multiple documents. (#8715)

  • Changed

    Improves user experience when adding a new page via the Document Editor. (#8450)

  • Changed

    Improves performance of decoding JPEG images. (#8712, #8673)

  • Changed

    Improves disk cache. It is now smarter which leads to smaller cache size in many cases. (#8648)

  • Changed

    Improves compatibility with Swift. (#7990, Z#5063)

  • Changed

    Improves software dimming so it no longer affects the navigation bar style. (#8663)

  • Changed

    Improves handling of camera access being denied when using UIImagePickerController. (#8546)

  • Changed

    Improves bookmark handling in Processor and DocumentEditor. (#8091)

  • Changed

    Improves scrubber thumbnail shadow rendering in double page mode. (#8669)

  • Changed

    Improves text when no search results are found. (#8769)

  • Changed

    Improves translations. (#8698)

  • Changed

    Improves PSPDFLibrary’s handling of documents that are to be removed from the index.

  • Changed

    Works around a UIKit issue that disables user interaction on custom bar button items in some scenarios. (V#407, rdar://problem/18906964)

  • Fixed

    Fixes an issue where pdfViewController:didShowController:options:animated: could pass nil as the controller parameter in rare cases. (#8641)

  • Fixed

    Fixes an issue where form elements where partly parsed if they were not part of the license. (#8567)

  • Fixed

    Fixes memory issues in the document sharing controllers. (#8568)

  • Fixed

    Fixes an issue where PSPDFLibraryFileSystemDataSource incorrectly handled removal of a document from the search index (#8642).

  • Fixed

    Fixes an issue where the PDF file was modified even if PSPDFAnnotationSaveModeExternalFile was specified. (#8667)

  • Fixed

    Fixes an issue with flattened form annotations. (#8151)

  • Fixed

    Fixes an issue where the “Open In” option didn’t export a document if it wasn’t file based. (#8683)

  • Fixed

    Fixes an issue where annotations could be printed when the “Print without annotations” option was selected. (#8650)

  • Fixed

    Fixes an issue where text selection was broken after the app came back from background. (#8660)

  • Fixed

    Fixes the tabbed bar not scrolling to show all of the selected tab if the tapped tab is already selected. (#8687)

  • Fixed

    Fixes an issue that caused annotations to flicker when deselecting while a render view was present. (#8661)

  • Fixed

    Fixes an issue requesting text from glyphs on certain documents. (#8657)

  • Fixed

    Fixes an issue where the text selection is lost when switching apps. Tapping the selection brings back the menu now. (#8458)

  • Fixed

    Fixes an issue where text was rendered incorrectly. (#8102)

  • Fixed

    Fixes an issue where the pdfDocumentDidSave: delegate callback was invoked despite the document not being modified by the save operation. (#8722)

  • Fixed

    Fixes a crash that could occur when the device was rotated while the content offset was animated in continuous scroll mode. (#8710)

  • Fixed

    Fixes an issue where arrow annotation default style changes were leaking over to line annotations. (#8691)

  • Fixed

    Fixes an issue where scrubber thumbnail shadow was applied multiple times. (#8669)

6.1.0 - 15 Nov 2016

See the announcement post.

PSPDFKit now requires and is built with Xcode 8.1 (8B62).

  • API

    Adds new Analytics API. (#8224)

  • API

    Adds document saving callbacks to PSPDFDocumentDelegate. (#8234)

  • Added

    Adds CoreSpotlight indexing to PSPDFLibrary which adds entire PDFs (with full text) to native search. (#6966, #8421)

  • Added

    Adds PSPDFMemoryCache and PSPDFDiskCache to give more control over the behavior of the cache. (#7964)

  • Added

    Adds translations for user-facing strings in the settings for the languages da, el, fi, id, it, ko, ms, nl, pl, pt-BR, pt-PT, sv, th, and tr. (#8413)

  • Added

    Adds translations for using-facing strings in all supported languages (#8613)

  • Added

    Adds option to add a new page in the Document Editor using an image. (#8219)

  • Added

    Adds support for custom CIFilter when rendering. (#8332)

  • Changed

    Improves visibility of disabled toolbar buttons. (#8319)

  • Changed

    Improves page index restoration when rotating from double page mode to single page mode. (#8272)

  • Changed

    Improves view state restoration when scrolling between pages. (#8373)

  • Changed

    Improves memory usage handling of PSPDFProcessor. (#8352)

  • Changed

    Improves digital signature permissions. (#8391)

  • Changed

    Improves handling of bookmarks for nonexistent pages. (#8466)

  • Changed

    Improves document editor page rendering by showing annotations. (#8467)

  • Changed

    Improves layout in thumbnail mode in some edge cases. (#8466)

  • Changed

    Improves memory cache efficiency when using the scrubber bar in large documents. (#8470)

  • Changed

    Improves the default value for the page range when exporting a document. (#8532)

  • Changed

    Improves document caching behavior when using the document editor. (#8537)

  • Changed

    Improves view state restoration when returning from background. (#8307)

  • Changed

    Improves the look of the search results. (#8490)

  • Fixed

    Fixes a race condition where PSPDFDocumentUnderlyingFileChangedNotification and pdfDocument:underlyingFileDidChange: were triggered even though the save originated from the document itself. (#8525)

  • Fixed

    Fixes a race condition in the Document Editor. (#8370)

  • Fixed

    Fixes a few rare crashes that we discovered in the SDK after shipping PDF Viewer. (#8367)

  • Fixed

    Fixes an issue where annotations didn’t update when dragging resizing knobs unless their bounding box changed. (#8354)

  • Fixed

    Fixes an issue that could occur during app termination under rare conditions. (#8366)

  • Fixed

    Fixes an issue due key-value observing of title in specific situations. (#8376)

  • Fixed

    Fixes an issue where images from the camera weren’t compressed according to PSPDFDefaultImageCompressionKey. (#8154)

  • Fixed

    Fixes an issue in the Document Editor when selecting all pages could cause collection view crash. (#8402)

  • Fixed

    Fixes an issue on adding annotations to a document with a DocMDP signature. (#8391)

  • Fixed

    Fixes an issue that made the close button reappear after setting it to nil. (#8383)

  • Fixed

    Fixes an issue with sound annotations being distorted or rendered incorrectly. (#8386, #8429)

  • Fixed

    Fixes an issue that leads to excessive CPU usage when opening invalid documents. (#8427)

  • Fixed

    Fixes an issue where the caret in a note’s text view was missing when editing. (#8381)

  • Fixed

    Fixes an issue where adding a custom stamp did not always exit the stamp mode automatically. (#8462)

  • Fixed

    Fixes an issue where line annotations were saved in a wrong format. (#8396)

  • Fixed

    Fixes an issue where some annotations flickered when selecting them. (#8469)

  • Fixed

    Fixes an issue where background updates via document JavaScript might cause property changes on the wrong thread. (#8468)

  • Fixed

    Fixes an issue where annotations could be rendered with a wrong image. (#8493)

  • Fixed

    Fixes an issue where the border of a page in the thumbnail view wasn’t rendered correctly in rare cases. (#8380)

  • Fixed

    Fixes an issue where text annotation was always scrolled to the top of the keyboard when continuous scrolling was used. (#8355)

  • Fixed

    Fixes an issue where tabbedPDFController:shouldChangeVisibleDocument: and tabbedPDFController:didChangeVisibleDocument: could be called without the document actually changing. (#8530, #8525)

  • Fixed

    Fixes an issue where language auto-detection for text-to-speech could fail in rare cases. (#8593)

  • Fixed

    Fixes an issue with opening a PDF with bookmarks in Preview.app. (#8591)

  • Fixed

    Fixes an issue where stamp annotations could disappear. (#8597)

  • Fixed

    Fixes an issue where modifying the document page count using the document editor could trigger an assertion in continuous scroll mode. (#8604)

  • Fixed

    Fixes incorrect declaration of PSPDFLogLevelMask. It’s now correctly marked as an NS_OPTIONS bitmask. (#8628)

  • Fixed

    Fixes an issue where the first page could not be selected in the scrubber bar in some cases. (#8623)

  • Fixed

    Fixes an issue with the document editor’s page sizes when adding new pages. (V#381)

6.0.3 - 24 Oct 2016

  • Changed

    Improves customization of close button by making -[PSPDFNavigationItem closeBarButtonItem] nullable. (#8206)

  • Changed

    Improves updating bar button items that are not currently added to PSPDFViewController’s navigation item. (#8086)

  • Changed

    Improves large memory usage handling of PSPDFProcessor. (#8291)

  • Changed

    Improves render performance in cases where a large image is already available in the cache. (#8334)

  • Changed

    Update notes font to match current iOS look and feel. (#8267)

  • Added

    Adds translations for user-facing strings in the settings for the languages de, en, es, fr, ja, ru, zh-Hans and zh-Hant. (#8286)

  • Added

    Adds option alwaysRewriteOnSave to PSPDFDocument to allow rewriting the whole document on demand. (#8290)

  • Fixed

    Fixes an issue that produced a large number of cache misses in the disk cache. (#8334)

  • Fixed

    Fixes an issue where annotations could be added even though annotations were disabled. (#8123)

  • Fixed

    Fixes an issue where the action executor could assert when no document was set. (#8232)

  • Fixed

    Fixes an issue where in very rare cases, vertical numbers could be reversed. (#5203)

  • Fixed

    Fixes issues when saving to the current file in the document editor. (#8259, #8233)

  • Fixed

    Fixes an issue where the default tint color was not applied for knob views. (#7940)

  • Fixed

    Fixes an issue where stamps with a missing subject caused rendering issues. (#8296)

  • Fixed

    Fixes an unlikely crash in annotation parsing. (#8295)

  • Fixed

    Fixes an issue with embedding new sound annotations. (#8207)

  • Fixed

    Fixes an issue where the menu controller was unexpectedly hidden. (#8169)

6.0.2 - 10 Oct 2016

  • Changed

    PSPDFViewController, PSPDFMultiDocumentViewController and PSPDFTabbedViewController now update the UI when document titles change. (#8120)

  • Changed

    Performance and stability improvements to the PDF render engine. (#7890)

  • Changed

    Improves flattening logic for PDFs with extensive use of ExtGStates dictionaries. (#7484)

  • Changed

    Improves image caching for annotations. (#8114)

  • Changed

    Relaxes licensing logic to be more forgiving when the license key is set at a later stage. (#7984)

  • Changed

    If document.canSaveAnnotations is false, the annotation view is configured to not be editable by default. (#8116)

  • Fixed

    Fixes an issue where the annotation menu was not updated correctly for certain edge cases. (#8036)

  • Fixed

    Fixes an issue where disabling annotations caused the document to render incorrectly. (#7992)

  • Fixed

    Fixes an issue where moved files were not detected correctly. (FS#50)

  • Fixed

    Fixes an issue where swiping through a large PDF could cause a crash. (#8141)

  • Fixed

    Fixes issues with flattening annotations on certain documents. (#7484, #7486)

  • Fixed

    Fixes an issue where the menu controller was not correctly hidden when some annotation types were deselected. (#7986)

6.0.1 - 3 Oct 2016

  • Changed

    Updates OpenSSL to 1.0.2j. (#7989)

  • API

    Make setRotation:forPageAtIndex: on PSPDFDocumentProvider public again. (Z#4618)

  • Changed

    The PSPDFBookmarkViewController no longer calls save: automatically when dismissed. (#8033)

  • Changed

    Improves thumbnail rendering related to the night mode settings. (#7913)

  • Changed

    Improves memory usage when searching in a large document. (#7958)

  • Changed

    Improves annotation handling in environments that do not allow saving annotations. (#7595)

  • Changed

    Improves delegate behavior for pdfViewController:didRenderPageView: which is now also called in case of a cache hit. (#8020)

  • Changed

    Improves handling search results for deleted or changed annotations. (#8030)

  • Fixed

    Fixes an issue where images in a too low resolution could be cached. (#8057)

  • Fixed

    Fixes an issue with night mode and the tabbed view controller. (#7913)

  • Fixed

    Fixes an issue where PSPDFViewController wrongly displayed a close button in certain scenarios. (#7993)

  • Fixed

    Fixes an issue where annotations could be edited but not saved. (#8002)

  • Fixed

    Fixes an issue where annotations were not positioned correctly if the page was rotated and cropped. (#7922)

  • Fixed

    Fixes an issue where an annotation could disappear when other annotation was selected. (#8035)

  • Fixed

    Fixes an issue where circle annotation’s border was not rendered. (#7982)

6.0.0 - 23 Sep 2016

See the announcement post.

PSPDFKit 6 is a major new release. It’s fully optimized for Xcode 8 and iOS 10, comes with improved API for Swift 3, faster rendering, various fixes and a visual refresh. These updates make it our best release so far. As usual, our versioning scheme supports the current and the previous iOS version. We fully support iOS 9, while also focusing on many new features that iOS 10 offers.

  • API

    Many getters/setters named page or pageNumber have been renamed to pageIndex. (#7451)

  • API

    The combineInk property on PSPDFDrawView has been renamed to drawCreateMode and exposed to PSPDFConfiguration. (#7344)

  • API

    PSPDFPlugin has been removed. Use PSPDFStylusManager.availableDriverClasses to configure drivers. (#7266)

  • API

    Initialization methods of PSPDFProcessorSaveOptions has been changed to be cleaner and convenience initialization has been deprecated. (#7422)

  • API

    settingsOptions configuration property is set to All by default, but settingsButtonItem has to be explicitly added to navigation item. (#7310)

  • API

    Removes the legacy PSPDFLinkAnnotationView.overscan property. (#7521)

  • API

    Replaces NSSet<NSNumber *> with NSIndexSet in the document editor classes. (#7676)

  • Changed

    Updates OpenSSL to 1.0.2i. (#7944)

  • Added

    Adds an option to set the line width of the eraser tool using PSPDFAnnotationStyleManager. (#7748)

  • Added

    Adds a page mode control to PSPDFSettingsViewController. (#7708)

  • Added

    Adds a configurable bookmark indicator button to each page of the PDF. (#7224)

  • Added

    Adds haptic feedback on the iPhone 7 and 7 Plus using the UIFeedbackGenerator API. (#7906)

  • Added

    Adds new keyboard shortcuts for iPad hardware keyboards. (#7707)

  • Changed

    The link annotation borders are now hidden by default. (#7521)

  • Changed

    The useParentNavigationBar configuration option now forwards the prompt, backBarButtonItem and hidesBackButton properties to the parent’s navigation item. (#7577)

  • Changed

    The page labels are now automatically dimmed in night mode. (#7562)

  • Changed

    The PSPDFNavigationItem now has API to manage the close button in case the view controller is presented in a modal context. (#7509)

  • Changed

    Makes PSPDFDefaultFileManager use background tasks when performing coordinated file access. (#7603)

  • Changed

    Make zoom out behaviour consistent – double tapping when zoomed in now always zooms out. (#7394)

  • Changed

    Makes all annotation line endings solid, irrespective of the line’s style. (#7715)

  • Changed

    Calling reloadData on PSPDFViewController now automatically preserves the current view state. (#7418)

  • Changed

    Logging now uses the constants from os_log. (#7493)

  • Changed

    Improves the performance and memory situation of the thumbnail view mode and the document view mode. (#7915)

  • Changed

    Improves the API for rendering and caching document. (#6881, #7645)

  • Changed

    Improves toolbar drag gesture by prioritizing it over the interactive pop gesture. (#7369)

  • Changed

    Improves audio annotation UI. (#7404)

  • Changed

    Improves text selection UI in several edge case scenarios. (#7399, #7400)

  • Changed

    Improves how the tabbed view controller handles files and saves. (V#83, V#92)

  • Changed

    Improves PSPDFDefaultFileManager to use background tasks when performing coordinated file access. (#7603)

  • Changed

    Improves stamp annotation inspector, which now opens with the last recently selected tab. (#7446)

  • Changed

    Improves annotation button handling when annotation saving is disabled. (#7590)

  • Changed

    Improves resource usage when indexing a large amount of documents. (#7397)

  • Changed

    Improves notification based APIs with Swift friendly NSNotificationName type. (#7825)

  • Changed

    Improves performance of loading annotations in certain situations dramatically. (#7873)

  • Removed

    Removes workaround for keeping status bar view controller unchanged on iOS 9 when using the half modal presentation style. This has been fixed in iOS 10. (#7544)

  • Fixed

    Fixes an issue where batch updates where not posted when interactively picking a color. (#6900)

  • Fixed

    Fixes an issue where ink annotations were not rendered with the proper line thickness in some cases. (#7437)

  • Fixed

    Fixes an issue where ink annotations were not unarchived properly from old NSKeyedArchiver files. (#7629)

  • Fixed

    Fixes an issue that caused two different versions of the same document kept in memory when using the tabbed view controller in some situations. (V#80)

  • Fixed

    Fixes changing the documents of the tabbed view controller before the view was loaded resulting in loading the view and possibly crashing. (#7563)

  • Fixed

    Fixes the tabbed view controller not scrolling to show newly inserted documents. (#7561)

  • Fixed

    Fixes navigation item updates not being animated in some cases. (#7577)

  • Fixed

    Fixes an issue where the text selection offsets were wrong in certain documents. (#7271)

  • Fixed

    Fixes an issue where the tabbed bar could be incorrectly positioned after interface rotation. (#7179)

  • Fixed

    Fixes an issue where shared document might not have recent changes. (#7717)

5.5.5 - 22 Sep 2016

  • Changed

    Rename a method called finished: in PSPDFKit to work around a bug in Apple’s App Store review process. (rdar://28252227)

5.5.4 - 20 Sep 2016

  • Changed

    Improves handling of document titles with specific characters. (#7787)

  • Fixed

    Fixes an issue where the menu controller blur background was larger than the actual popover by working around an UIKit bug. (rdar://28275291, #6162)

  • Changed

    Renames some methods to work around a radar. (rdar://28252227)

5.5.3 - 12 Sep 2016

PSPDFKit 5.5.3 has been tested with the latest stable Xcode 7.3.1 and iOS 10 GM.

PSPDFKit 6 for iOS, which is compatible with Xcode 8 and works with iOS 9 and 10, is coming later this month. See our article about version support for more details.

  • Changed

    Changes some internal API to prevent triggering of Apple’s private API checks. (#7751)

  • Fixed

    Fixes an issue where the page index was not shown in certain cases in thumbnail mode. (#7740)

  • Fixed

    Fixes an issue with changing the appearance mode in PSPDFTabbedViewController. (#7658)

  • Changed

    Improvements to the rendering engine and speed enhancements. (#7760)

5.5.2 - 5 Sep 2016

  • Added

    Adds option to change the color for the thumbnail button in page label. (#7696)

  • Fixed

    Fixes an issue where auto page mode with curl transition could cause the document to be presented in single page mode instead of double page mode. (#7586)

  • Fixed

    Fixes the eraser overlay when using an Adonit stylus. (#7535)

  • Fixed

    Fixes an issue where a highlight annotation was rendered with a border. (#7618)

  • Fixed

    Fixes issues where clearing of text field form elements was not working correctly. (#7623)

  • Fixed

    Fixes an issue where some documents couldn’t be exported or printed. (#7585)

  • Changed

    The page label is now displayed instead of the page index in the thumbnail view, when available. (#7671)

5.5.1 - 23 Aug 2016

  • API

    PSPDFActivityViewController is now public. (#7529)

  • Changed

    Checks for the NSMicrophoneUsageDescription, NSCameraUsageDescription and NSPhotoLibraryUsageDescription keys in the app Info.plist. Will warn if missing and stop the functionality on iOS 10 if linked with SDK 10. Learn more at https://pspdfkit.com/guides/ios/getting-started/permissions/ (#7407)

  • Changed

    Checks the linked SDK with the expected value and warns if there is a mismatch. (#7407)

  • Changed

    Improves the view state restoration logic when a view controller is presented/dismissed above the PSPDFViewController. (#7450)

  • Fixed

    Fixes an issue where the playback duration of a sound annotation was wrong in some cases. (#7401)

  • Fixed

    Fixes an issue where files were no longer monitored for file changes after they have been saved once. (#7319)

  • Fixed

    Fixes an issue where file handlers where not properly closed in some cases. (#7319)

  • Fixed

    Fixes an issue where invoking a cached PSPDFSearchViewController without changing search terms could lead to missing highlights. (#7445)

  • Fixed

    Fixes an issue where thumbnail generation could crash if the size of the first page couldn’t be read. (#7443)

  • Fixed

    Fixes an issue where a popover might be incorrectly re-positioned after keyboard presentation. (#7456)

  • Fixed

    Fixes an issue where PSPDFLibrary.saveReversedPageText couldn’t be disabled. (#7519)

  • Fixed

    Fixes an issue where frequent rendering passes could cause a crash. (#7570)

5.5.0 - 28 Jul 2016

  • Added

    Adds new helpers methods to get and set the default annotation username. (#7265)

  • Changed

    Renders appearance stream for Square and Circle annotations if one is set. (#7327)

  • Changed

    Improves performance around rendering JPEG 2000 and annotation parsing.

  • Changed

    Improves content search within annotations to no longer search generated text like “Ink Annotation”. (#7270)

  • Changed

    Improves compatibility when flattening documents with non-standard headers. (#7212)

  • Changed

    Improves annotation change updates. (#6196)

  • Changed

    Improves search popover placement logic when the toolbar is not at the top of the screen. (#7233)

  • Changed

    Improves logic around copying forms via the processor when the source document has invalid form entries. (#7273)

  • Changed

    Improves scrolling performance of the thumbnail view. (#6503)

  • Changed

    Improves alert presentation in popovers. (#7277)

  • Changed

    Improves JPEG2000 decoding performance. (#7307)

  • Changed

    Improves Wikipedia language resolving and popover presentation. (#7322)

  • Fixed

    Fixes an issue while processing documents with unsaved annotations. (#7135)

  • Fixed

    Fixes possible logging about unsatisfiable constraints when the view is not full screen. (Z#3346)

  • Fixed

    Fixes the placeholder for when there is no document sometimes being displayed too low when the view is not full screen. (#7239)

  • Fixed

    Fixes an issue with custom thumbnail layouts that are not based on PSPDFThumbnailFlowLayout. (#7249)

  • Fixed

    Fixes an issue where plugin ordering was reversed. Make sure to check if plugins are still called after this update. (#7268)

  • Fixed

    Fixes an issue where Swift-based plugin subclasses were not always automatically detected if they were based on an existing plugin class. (#7268)

  • Fixed

    Fixes an issue where incorrect annotation search results could be returned. (#7343)

5.4.1 - 8 Jul 2016

  • API

    activityViewControllerWithSender: on PSPDFViewController now enables getting a preconfigured activity view controller instance. (#7147)

  • API

    Exposes application on the PSPDFKit singleton to customize URL opening behavior. (e.g. you can now override canOpenURL:)

  • Changed

    Improves exporting of images that are mirrored in the PDF document. (#7089)

  • Changed

    Improves color generation for knobs. (#6852)

  • Changed

    Improves annotation cell layout in edit mode. (#4158)

  • Fixed

    Fixes a regression in iOS 10 where UIActivityController would crash on presentation. (rdar://27261367, #7181)

  • Fixed

    Fixes an issue while processing documents with unsaved annotations. (#7135)

  • Fixed

    Fixes an issue with extracting embedded files. (#7154)

  • Fixed

    Fixes an issue with propagating isEncrypted properly. (#7153)

5.4.0 - 1 Jul 2016

See the announcement post.

  • API

    renderOptions now has an associated type. The property has been deprecated in favor of setRenderOptions:type: and getRenderOptionsForType:context: where context depends on the type. This also removes the previous subclassing hook renderOptionsForPage:. Subclass getRenderOptionsForType:context: directly instead if you need this kind of advanced behavior.

  • Changed

    Improves document parsing to be both faster and cover more edge cases with non-standard-compliant documents. (#6820)

  • Removed

    Removes workaround for rdar://23285766 (Swift over-optimization) as this has been fixed in Swift 2.2. (#6880)

  • Added

    Adds sqlite3 compile option checks for THREADSAFE, ENABLE_FTS3, ENABLE_FTS3_PARENTHESIS. (#6950)

  • Added

    Adds support for creating a temporary data provider to PSPDFFileManager. This enables the PSPDFProcessor to use a secure temporary file, if wanted. (#7056)

  • Changed

    Improves UIAppearance support on PSPDFLabelView and PSPDFBackForwardButton and freshens up the default design. (#7073)

  • Changed

    Improves annotation editing behavior for protected documents. (#6885)

  • Changed

    Improves the layout of segmented controls when space is limited. (#6889)

  • Changed

    Improves loading of asset annotations. (#6879)

  • Changed

    Improves handling of outline view. (#6902)

  • Changed

    Improves PSPDFProcessor API to allow processing into a id<PSPDFDataSink>. (#7042)

  • Changed

    Improves rendering performance in certain situations. (#6944)

  • Changed

    Improves accessibility around cells with sliders. (#7046)

  • Changed

    Improves handling of corrupt cross reference tables in PDFs. (#6838)

  • Changed

    Improves precision when writing highlight annotations, leading to better highlightedString results. (#6652)

  • Changed

    Improves height calculation logic for the page range selection view controller. (#7104)

  • Changed

    Improves containsAnnotations no longer counts already (soft) deleted annotations. (#6956)

  • Changed

    Improves reliability of aspect-locked resizing with PSPDFGuideSnapAllowanceAlways. (#7088)

  • Changed

    Improves rotation animations in continuous scrolling mode. (#7077)

  • Changed

    Improves text markup annotations rendering for rotated page. (#6477)

  • Changed

    Improves zoom behavior when searching for annotations. (#6890)

  • Changed

    Silences a missing license feature warning when toggling the HUD. (#7018)

  • Fixed

    Fixes subclassing of text overlay annotations. (#6954)

  • Fixed

    Fixes a visual glitch during PSPDFBackForwardButton fadeout animation. (#7103)

  • Fixed

    Fixes an issue where statically linked sqlicipher library conflicted with OS version dynamically linked in PSPDFKit.framework. (#6929)

  • Fixed

    Fixes an issue where a document couldn’t be unlocked due to a overflowing integer in the document. (#6919)

  • Fixed

    Fixes an issue with sqlite3_errstr not being available before iOS 8.2. (#6970)

  • Fixed

    Fixes an issue where setting PSPDFDocumentSharingOptionPageRange could trigger an assertion while printing. (#6953)

  • Fixed

    Fixes an issue where schemes where interpreted case sensitive when creating URL actions on iOS 9. (#6960)

  • Fixed

    Fixes an issue where the add bookmark button was not presented in the bookmarks popover. (#7011)

  • Fixed

    Fixes an issue where incorrect bookmark name was displayed on the list right after adding new bookmark. (#7026)

  • Fixed

    Fixes an issue where a free text annotation couldn’t be embedded in a document that contains invisible text. (#7008)

  • Fixed

    Fixes an issue where a page couldn’t be properly rotated to 0. (#7044)

  • Fixed

    Fixes an issue where setting the document on controller during presentation transition could result in broken page navigation. (#7054)

  • Fixed

    Fixes an issue where NSData backed files with dots in their title where not exported correctly when sharing. (#6904)

  • Fixed

    Fixes an issue on trying to strip empty pages. (#7015)

5.3.8 - 6 Jun 2016

  • Added

    Adds PSPDFRenderInteractiveFormFillColorKey as a render option to make the form element color override customizable. (#6529)

  • Added

    Adds a better log message if a document is encrypted and annotations can’t be embedded. (#6765)

  • Added

    Adds cropBox and mediaBox to PSPDFPageInfo. (#6745)

  • API

    The vertices property of PSPDFImageInfo is now boxed instead of a raw pointer array. (#6831)

  • API

    The public constructor for PSPDFImageInfo has been removed - this class should never be manually constructed. Instead, get it from PSPDFTextParser. (#6831)

  • Changed

    Improves rendering performance for some complex documents. (#6686)

  • Changed

    Improves the position of the filter UI element in the thumbnail view mode. (#6651)

  • Changed

    Improves security in various critical areas of the framework via a code audit. (#6774)

  • Fixed

    Fixes a regression that raised an exception when changing the font or resizing a free text annotation. (#6709)

  • Fixed

    Fixes an issue where UI was clipped in a scrollable thumbnail bar in rare cases. (#6695)

  • Fixed

    Fixes an issue where multiple embedded files would not be correctly displayed. (#6784)

  • Fixed

    Fixes an issue related to JavaScript and forms that could lead to a type mismatch for the contents property. (#6781)

  • Fixed

    Fixes an issue where bar button items would not always correctly update when using PSPDFTabbedViewController. (#6789)

  • Fixed

    Fixes an issue where content would be inset to account for the tabbed bar even when the tabbed bar was hidden. (#6787)

  • Fixed

    Fixes an issue where during annotation resize the wrong coordinates where used in rare conditions. Replaces -[PSPDFResizableView centerPointForOuterKnob:] with -[PSPDFResizableView centerPointForOuterKnob:inFrame:]. (#6828)

  • Fixed

    Fixes an issue where some Free Text Annotations disappeared while editing. (#6826)

5.3.7 - 27 May 2016

  • Added

    Adds API to customize the color pickers. (#4502)

  • Added

    Adds API titleForDocumentAtIndex: as subclassing hook on PSPDFMultiDocumentViewController. This can be used to customize tab bar titles. (#6693)

  • Added

    Adds support for scaling a page in PSPDFProcessor.

  • Added

    Adds support for changing the CropBox or MediaBox in PSPDFProcessor.

  • Changed

    Improves the PSPDFKit shared instance to no longer automatically load, which can slightly improve startup performance. (#6682)

  • Fixed

    Fixes a regression that could prevent the ‘more’ menu from appearing in the document editor. (#6619)

  • Fixed

    Fixes an issue where note annotations rendered as a black icon when embedded into a document. (#6411)

  • Fixed

    Fixes an issue where saved values in the text fields being hidden in other PDF readers. (#6589, #6593)

  • Fixed

    Fixes an issue where text form fields (rotated) were using a huge font size for the content. (#6595)

5.3.6 - 18 May 2016

  • Changed

    Updates OpenSSL to 1.0.2h.

  • Added

    Adds a delegate method (documentSharingViewController:willShareFiles:) that enables access to files/file names before they are shared. (#6597)

  • Added

    Adds a pageMargins setter on PSPDFNewPageConfigurationBuilder. (#6566)

  • Changed

    Improves the PSPDFProcessorConfiguration initializer for creating a completely new document. (#6566)

  • Changed

    Improves the handling of annotations when the delegate does not return them via pdfViewController:shouldSelectAnnotations:onPageView:. (#6143)

  • Changed

    Improves touch handling logic for forms that are readonly. (#6143)

  • Changed

    Improves link handling inside an web or text view within sheet presentation of modal view controllers by working around an UIKit bug. (rdar://26295020, #6580)

  • Changed

    Improves performance, placement and aspect ratio handling of annotations during resizing. (#6556)

  • Changed

    Improves keyboard handling for form elements. (#6551)

  • Fixed

    Fixes a regression that could cause issues with searching via PSPDFSearchViewController. (#6605)

  • Fixed

    Fixes an issue where resizing multiple annotations could lead to an assertion. (#6528)

  • Fixed

    Fixes an issue where page layout could be offset too much after rotating in continuous scroll mode. (#6563)

  • Fixed

    Fixes an issue where flattened annotations were misplaced/rotated in a particular non-compliant document. (#6510, #6600)

5.3.5 - 13 May 2016

  • API

    PSPDFProcessorConfiguration is now a failable initializer if the document is not valid. Previously this did throw an exception. (#6557)

  • API

    The render manager has been streamlined and the renderer accessor has been made readonly and deprecated. (#6498)

  • Added

    Adds the option to share images of the current page via PSPDFDocumentSharingOptionImage. (#2793)

  • Added

    Adds an option to choose the last line alignment of thumbnail layouts. (#6502)

  • Added

    Adds configurable PSPDFSettingsViewController that can be used to change some UX aspects of PSPDFViewController. (#6082)

  • Added

    Adds PSPDFBrightnessManager that controls screen brightness. (#6082)

  • Changed

    Improves the way how speech synthesis detects the voice it uses. (#6481)

  • Changed

    Improves gesture detection in the color picker. (#5669)

  • Fixed

    Fixes an issue where the text to speech voice sounded very robotic (#6481)

  • Fixed

    Fixes an issue where selecting an annotation which had no color set could lead to an assertion. (#6496)

  • Fixed

    Fixes an issue where the processor didn’t rotate the document correctly. (#6493)

  • Fixed

    Fixes an issue where flattened annotations were misplaced. (#6510)

  • Fixed

    Fixes an issue where the document provider rotation wasn’t taken into account on exporting with the processor. (#6516)

  • Fixed

    Fixes an issue where the rotation animation did not look right. (#6131)

  • Fixed

    Fixes an issue that could lead to presented view controllers being mistakenly dismissed. (#6512)

  • Fixed

    Fixes an issue that could lead to crashes when calling description on some model objects. (#6524)

  • Fixed

    Fixes an issue with “light” weight font was selected in font substitution process instead of the missing “regular” weight font. (#6487)

  • Removed

    Deprecates configuration methods on PSPDFBrightnessViewController. Use PSPDFBrightnessManager instead. (#6082)

5.3.4 - 4 May 2016

This version has been compiled with Xcode 7.3.1.

  • Added

    Adds a convenient way to enforce aspect ratio preserving annotation resizing. See AspectRatioConservingResizingExample.swift and the new PSPDFGuideSnapAllowanceAlways constant. (#6373)

  • Added

    Adds logic to automatically stop recording sound annotations. The default is 5 minutes. This can be changed through -[PSPDFConfiguration soundAnnotationTimeLimit]. (#4920)

  • Added

    Adds a file watcher: PSPDFDocument now notifies the delegate when underlying files are updated by another source. (#6399)

  • Changed

    Set correct class visibility for PSPDFNewPageConfigurationBuilder.

  • Changed

    Improves the way search results are displayed. (#6231, #6011)

  • Changed

    Improve performance when opening the Thumbnail view. (#5874, #6148)

  • Changed

    Improves error handling for digital signatures verification. (#6253)

  • Changed

    Improves the PSPDFProcessor API and clarifies the save options. (#6463)

  • Fixed

    Fixes an issue that caused a crash during search. (#6425)

  • Fixed

    Fixes an issue that caused extensive CPU usage when no document was set on a PSPDFViewController. (#6418)

  • Fixed

    Fixes an issue where the annotation browser was rendering text annotations without whitespaces in some cases. (#6273)

  • Fixed

    Fixes an issue where the page label could incorrectly capture certain touches. (#6360)

  • Fixed

    Fixes an issue where the minimum annotation size would not be correctly enforced after interface rotation (#6382).

  • Fixed

    Fixes an issue where note annotations weren’t correctly embedded while processing. (#6411)

  • Fixed

    Fixes an issue where the duration could be displayed as indeterminate in rare cases for m3u8 playlists. (#6450)

5.3.3 - 22 Apr 2016

  • Changed

    The document editor API now supports new document creation. (#6262)

  • Changed

    PSPDFViewController now honors the initial page setting, even for password protected documents. (#6146)

  • Changed

    Improves page movement UI in the document editor. (#6159)

  • Changed

    Localization updates and fixes.

  • Changed

    Improves margin handling in certain view modes and adds a new example - DynamicMarginsExample. (#6294)

  • Fixed

    Fixes an issue where annotations were not always copied correctly in the document editor when the page already exists. (#6216)

  • Fixed

    Fixes an issue where screen brightness slider had wrong initial value. (#6245)

  • Fixed

    Fixes an issue where sound and video gallery items did not stop playing when changing view modes. (#5997)

  • Fixed

    Fixes an issue where umlauts where stripped after saving a choice annotations. (#6285, #6323)

  • Fixed

    Fixes an issue where the wrong value was saved when selecting an option from a choice annotation. (#6285)

  • Fixed

    Fixes an issue where a presented JavaScript alert could be automatically dismissed after presentation. (#5996)

  • Fixed

    Fixes an issue in certain documents where text selection contained more text that was actually selected. (#6213)

  • Fixed

    Fixes an issue with watermarking multiple (50+) pages using the PSPDFProcessor. (#6031)

  • Fixed

    Fixes an issue where a gallery displayed in a popover would not switch into fullscreen on double-tap. (#6296)

  • Fixed

    Fixes an issue that stopped audio playback from other apps during framework initialization. (#6330)

  • Fixed

    Fixes an issue where landscape pages didn’t rotate correctly. (#6265)

  • Fixed

    Fixes an issue where a deprecated syntax variant of the JavaScript mailDoc function was handled incorrectly. (#6331)

  • Fixed

    Fixes an issue where flattening and removing annotations at the same time caused problems. (#6344)

5.3.2 - 14 Apr 2016

  • Added

    Adds an API to customize the controller state UI added in 5.3.0. (#6106)

  • API

    The undo methods in PSPDFAnnotationStateManager are now deprecated, use PSPDFUndoController on PSPDFDocument instead. (#6177)

  • Changed

    If annotations are changed programmatically, they are now correctly updated even if they have just been created via the annotation toolbar. (#6195)

  • Changed

    Annotation preset properties for disabled properties are no longer applied. (e.g. disabling fill color will no longer set fill color when choosing a preset) (#6233)

  • Changed

    The processor now supports copying forms from source and any external document to the generated document. (#5975)

  • Fixed

    Fixes incorrect assertions on some document editor controllers on iOS 8. (#6188)

  • Fixed

    Fixes an issue where delayed document setting could result in missing updates on the scrubber bar. (#6210)

  • Fixed

    Fixes an issue that resulted in a crash in the page range selection on iOS 8. (Z#3370)

  • Fixed

    Fixes an issue when checking for a default password upon annotation saving.

  • Fixed

    Fixes an issue that prevented PSPDFUndoControllerRemovedUndoActionNotification from being sent out. (#6177)

  • Fixed

    Fixes an issue where thumbnail cells had a wrong image position. (#6174)

  • Fixed

    Fixes selection and menu placement for non-editable note annotations. (#6215)

  • Fixed

    Fixes an issue where software dimming view wasn’t correctly positioned. (#6203)

5.3.1 - 8 Apr 2016

  • API

    The variant that returns NSData on PSPDFProcessor.generatePDFFromConfiguration now correctly maps into Swift with a throws. (#6051)

  • Changed

    PSPDFDocument has a new helper containsAnnotations which scans the document if it contains any relevant annotations (excluding links and widgets/forms). (#6099)

  • Changed

    Pages are now positioned between fixed bars in page curl mode, ensuring no scrolling is needed if HUD elements or system bars do not auto-hide. (#6040)

  • Changed

    The Document Editor now preserves as much as possible from an existing outline. (#5993)

  • Added

    Adds new document editing examples to PSPDFKit Catalog. (#6075, #6055)

  • Changed

    Improves various status HUD symbols. They are now more in line with the modern iOS design and even subtly animate when being displayed. (#5829)

  • Changed

    Improves toolbar button spacing and layout in compact sizes. (#5862)

  • Changed

    Changes the unit for line thickness to pt. (#4694)

  • Changed

    Filtering empty pages no longer filters the last white page preventing the creation of an invalid document. (Z#3384)

  • Changed

    Various smaller performance improvements to the rendering engine.

  • Fixed

    Fixes an issue where -[PSPDFDocument saveAnnotationsWithCompletionBlock:] called the completion handler on an internal background queue when saving annotations. (#6033)

  • Fixed

    Fixes an issue where the new page range feature would not work correctly with a license that did not include the document editor feature. (Z#3354)

  • Fixed

    Fixes an issue where in rare cases page rendering was incorrect after rotating the screen. (#5527)

  • Fixed

    Fixes an issue that resulted in auto layout complaining about unsatisfiable constraints. (Z#3346)

  • Fixed

    Fixes an issue that resulted in the creation of page views even though the document was nil. (#6008)

  • Fixed

    Fixes an issue related to floating point calculations in the color picker when choosing a fill color on ARMv7 devices. (#6054)

  • Fixed

    Fixes an issue that could prevent the appearance mode from being completely restored when switching back from night mode. (#6080)

  • Fixed

    Fixes an issue resulting in bar button items missing or appearing late in rare cases. (#6072)

  • Fixed

    Fixes an issue that could make pages look blurry when using search under high memory pressure. (#6092)

  • Fixed

    Fixes an issue when trying to save annotations into a document that only has a owner password set. (#6090)

  • Fixed

    Fixes an issue when using a JavaScript action that invoked this.pageNum. (#6077)

  • Fixed

    Fixes an issue where the rotation set on the PSPDFDocumentProvider wasn’t honored in the PSPDFProcessor. (#6115)

  • Fixed

    Fixes an issue where the flexible toolbar shadow does not animate together with the toolbar. (#6120)

  • Fixed

    Fixes an issue where text selection stopped working in certain situations. (#6118)

  • Fixed

    Fixes an issue where the share sheet did not respect annotation options. (#6125)

  • Fixed

    Fixes an issue where the annotation toolbar button count could in some cases be incorrectly determined when first displaying the annotation toolbar. (#6130)

5.3.0 - 31 Mar 2016

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

  • Changed

    Compiled with and requires Xcode 7.3.

  • API

    PSPDFProcessor is now more powerful, but has breaking changes. See PSPDFProcessorConfiguration for details. (#5742)

  • Added

    Adds a complete new UI in case that the PSPDFViewController is unable to load a document or is empty. (#5510)

  • Changed

    Improves the look of the password entry screen for locked PDF files. (#5510)

  • Changed

    Bar button items can now be configured on a custom navigationItem. PSPDFViewController’s leftBarButtonItems and rightBarButtonItems properties have been deprecated. When moving from the old API, the order of the right bar button items will need to be reversed to match the UIKit convention. (#5830)

  • Changed

    When tapping on a search result we now zoom to show the result in the document. This can be adjusted via -[PSPDFConfiguration searchResultZoomScale]. (#5758)

  • Changed

    Replaces the smartZoomEnabled property of PSPDFConfiguration with a doubleTapAction property to be more flexible. (#4998)

  • Changed

    The logic that finds custom search buttons is now smarter and will correctly anchor the search popover in more cases. (Z#3154)

  • Changed

    The user can now select a range of pages to be exported when PSPDFDocumentSharingOptionPageRange is an allowed option. (#4573)

  • Changed

    The user can now choose to only export annotated pages when PSPDFDocumentSharingOptionAnnotatedPages is an allowed option. (#4397)

  • Changed

    The current search popover is now cached for faster access and to maintain the scroll position. (#5734)

  • Changed

    Increase memory limit for images to allow rendering more complex documents. (#5677)

  • Changed

    Uses the Photos framework instead of the Assets Library framework.

  • Changed

    PSPDFDocument now implements UIActivityItemSource in a way that is compatible with Facebook, Twitter, Sina Weibo and Tencent Weibo. (#2739)

  • Added

    Adds a new PSPDFLinkActionInlineBrowserLegacy that forces the use of PSPDFWebViewController even on iOS 9 where the new Safari View Controller is available. This might be desirable in environments that need custom hooks on URLs which as of iOS 9 is not possible in SFSafariViewController. (#5744)

  • Changed

    Better error handling when switching tokenizers in PSPDFLibrary. (#5771)

  • Changed

    Searching now works better across new lines. (#5751)

  • Changed

    The loupe now resets initial magnification after the line loupe mode has been used. (#5789)

  • Changed

    Optimizes the size of thumbnails in the scrubber bar for very wide page layouts. (#4180)

  • Changed

    Form choice fields with long labels are now fully displayed and switch to multi-line cells automatically. (#5796)

  • Changed

    Improves interface performance when selecting annotations that are backed by complex appearance streams. (#5912, #5913)

  • Changed

    Annotation hit testing extension area has been decreased to allow more precise input. (#5846)

  • Changed

    Improves annotation toolbar autosizing. (#5854)

  • Fixed

    Fixes an issue where the “Dictionary” popover could be incorrectly placed in landscape. (Z#3167)

  • Fixed

    Fixes an issue where we would try to open Safari View Controller for file URLs, which are not supported. (#5837)

  • Fixed

    Fixes an issue where sound annotations would play without making any sound if the Ring/Silent switch is set to silent. (#5672)

  • Fixed

    Fixes an assertion that could be triggered when displaying a document at a size that would only allow for a single thumbnail to be displayed in the scrubber bar. When this condition is met, we now log a warning instead. (#5686)

  • Fixed

    Fixes an issue where a PSPDFStatusHUDView progress could start flickering in rare cases. (#5703)

  • Fixed

    Fixes layout issues with the search bar in the Kiosk example while rotating. (#2350)

  • Fixed

    Fixes an issue where the wrong page could be restored when switching the page mode with page curl transition while margins are set. (#5717)

  • Fixed

    Fixes an issue with a wrong zooming behavior in certain special cases around search results. (#5699)

  • Fixed

    Fixes an issue related to page labels and Korean localization. (Z#3176)

  • Fixed

    Fixes an issue where the outline view did not refresh its size properly. (#5737)

  • Fixed

    Fixes a regression where applying a PSPDFViewState in viewWillAppear: fails to restore the viewport in page–scroll–mode. (Z#3202)

  • Fixed

    Fixes a regression where manually overriding the rotation of the PSPDFPageInfo object via setRotation:forPage: did not work in all cases. (#5659)

  • Fixed

    Fixes an issue where under certain rare cases around updating configuration while rotation is active we didn’t show link borders when they should be visible. (#5818)

  • Changed

    Works around an issue in Xcode 7.3 that broke the Visual Debugger. (rdar://25311044)

  • Changed

    Works around a bug in GLKView on iOS 9 that could cause a crash under certain rare setups. (Z#3251)

  • Removed

    Deprecates the viewState property and setViewState:animated: method on PSPDFViewController in favor of two new instance methods: captureCurrentViewState and applyViewState:animateIfPossible:, which are more explicit about how to use them and what to expect when doing so.

5.2.1 - 26 Feb 2016

  • Changed

    PSPDFLibrary now allows setting a custom tokenizer. (#5443)

  • Changed

    Improved search results for PSPDFLibraryMatchExactPhrasesOnlyKey and PSPDFLibraryMatchExactWordsOnlyKey. (#5443)

  • Changed

    Images that are too large for menu items are now automatically resized to fit. (#5586)

  • Changed

    Scrolling to a search result now tries to center the result on the page, instead of just making it visible. (#5542)

  • Changed

    Be more selective about what annotation manager states we need to commit before a save event. (Z#3006)

  • Changed

    Sound annotation control buttons now have a larger hit target. (Z#2984)

  • Changed

    The new property originalFile on PSPDFDocument allows you to specify a source file if the PDF is the result of a conversion, so for actions such as Open In or Send via Email the original file can be selected. (#5531)

  • Changed

    Empty input is now accepted on form fields with number formatting. (#4934)

  • Added

    Adds support for animated GIFs that have a variable frame rate. (#893)

  • Fixed

    Fixes an issue where zooming to a rect misses the target when the view controller is set to continuous vertical scrolling. (#5509)

  • Fixed

    Fixes an issue where plugin classes were not correctly detected, if they inherited from a PSPDFPlugin adopting class. (#5592)

  • Fixed

    Fixes an issue where setting the page could fail when set within viewDidAppear: for page curl mode on landscape. (#5535)

5.2.0 - 15 Feb 2016

See the announcement post.

  • Changed

    The SDK is now only requires app-extension-safe API and automatically detects if in extension mode. (#2954)

  • Changed

    Text and annotation selection now use tintColor, enabling easier theming by inheriting color from superviews. Selection color can be customized individually by setting tintColor on PSPDFTextSelectionView, PSPDFSelectionView and PSPDFResizableView.

  • Changed

    The annotation selection knobs have been redesigned so they are more easily visible on various backgrounds. (#5139)

  • Changed

    The framework now shows guides while drawing ovals and rectangles, making it easier to draw circles and squares. (#5376)

  • Changed

    Color presets can now be reset back to their default value by long pressing on the preset button. (#2891)

  • Changed

    PSPDFProcessor now ignores annotations that aren’t in the specified page ranges. (Z#2873)

  • Changed

    Simply reselecting an annotation will no longer generate a change notification for the bounding box. (#5444)

  • Changed

    Improves object selection prioritization to objects that are not yet saved. This improves the experience when creating new annotations. (#5305)

  • Changed

    Improves settings controller bridge of the Adonit Stylus SDK. (Z#2960)

  • Changed

    Improves shape stability during drawing on certain modern devices. (#5429)

  • Changed

    Improves logic when saving is invoked while a undo change notification is processed. (#5451)

  • Changed

    Improves the snap to aspect ratio behavior during resizing. (#5161)

  • Fixed

    Fixes an issue where executing JavaScript could result in retaining parts of the model longer than necessary. (#5470)

  • Fixed

    Fixes an issue where the inline search incorrectly highlighted search terms on rotated documents. (#5402)

  • Fixed

    Fixes minor color selection inconsistency on the color picker. (#5268)

  • Fixed

    Fixes minor inconsistencies regarding the sequence of PSPDFAnnotationStyleViewControllerDelegate calls. (#5380)

  • Fixed

    Fixes memory issues on the annotation inspector. (#5399)

  • Fixed

    Fixes an issue related to PSPDFThumbnailBarModeScrubberBar and a particular unusual use of the tabbed controller. (#2873)

  • Fixed

    Fixes an issue related to zooming while night-mode is enabled. (#5410)

  • Fixed

    Fixes an iOS 8 code signing issue in strip-framework.sh. (Z#2903)

  • Fixed

    Fixes an issue when a document that is not part of the tab bar is removed from the tab bar programmatically. (#5452)

5.1.5 - 1 Feb 2016

  • Changed

    The color name part of the menu identifier item is no longer localized. (Z#2916)

  • Fixed

    Fixes an issue where a signature couldn’t be validated if no PSPDFSigner was configured. (Z#2911)

  • Fixed

    Fixes an issue where a subscription license would stop working once expired. (#5327)

5.1.4 - 28 Jan 2016

  • Changed

    Smaller binary size. See https://pspdfkit.com/guides/ios/faq/framework-size/ and the bitcode section for more details. (#5225)

  • Changed

    Improves performance and reliability of full-text search previews. (#5172, #5211)

  • Changed

    Pasting annotations will now set a new UUID on the name field. (Z#2854)

  • Changed

    The text parser now filters text outside of page bounds.

  • Changed

    Sepia and night mode can now be properly disabled. (#5263)

  • Changed

    Better handling of extremely large images that exceed the device capabilities to decompress. (#5243)

  • Fixed

    Fixes a few rendering edge cases. (#5227)

5.1.3 - 22 Jan 2016

  • Changed

    Various internal optimizations to improve performance and decrease binary file size. (#5157)

  • Changed

    Improves note annotation positioning in certain cases. (#3685)

  • Changed

    Improves memory usage on using external TTC fonts in a PDF. (#5197)

  • Changed

    Searching a document with annotations now works more reliably and correct, especially in regards to special characters like .. (#5143)

  • Changed

    The ink eraser now sends out change notifications when existing ink annotations are modified (PSPDFAnnotationChangedNotification). (#5170)

  • Changed

    JavaScript format actions are now triggered when a signature is created on a form signature element. (#5184)

  • Changed

    A long-press no longer calls pdfViewController:didTapOnAnnotation:... - only a regular tap does. (Z#2844)

  • Changed

    After saving an annotation, the controller now automatically scrolls to the bottom. (#643)

  • Changed

    When using PSPDFPageTransitionScrollContinuous, the view states that can be obtained from PSPDFViewController will now contain a viewport even when fully zoomed out. This preserves the scrolling position during rotation and makes it easier for you to capture and subsequently restore the exact reader’s location in a document. (#5052)

  • Fixed

    Fixes a potential race condition when rendering pages and calling methods from PSPDFProcessor at the same time while using a data provider. (Z#2768)

  • Fixed

    Fixes an rare issue when invalid points are sent via touchesMoved: to our draw view. (Z#2780)

  • Fixed

    Fixes an issue where the text alignment was not correctly preserved when serializing to JSON. (#5138)

5.1.2 - 15 Jan 2016

  • Changed

    We improved page layout and HUD handling in various configuration modes and fixed a number of subtle issues that were found in some less common combinations. (#3689, #3229, #5043, #5063)

  • Changed

    strip-framework.sh now also copies debug symbols. This works around an issue with the COPY_PHASE_STRIP build setting set to YES and using a “Copy Files” build phase to copy debug symbols. See step 3) of Integrating PSPDFKit - Dynamic Framework for updated integration instructions.

  • Changed

    Improved reliability of PSPDFProcessorStripEmptyPagesKey and eliminated need for PSPDFWhitespaceTrimmerPerformRenderComparison option.

  • Fixed

    Fixes an issue where the view state restoration page boundary check was insufficient in certain cases. (#5018)

  • Changed

    Various PDF rendering correctness and performance updates. (#5024)

  • Removed

    Remove deprecated method PSPDFSetLicenseKey for setting the license key. Use +[PSPDFKit setLicenseKey:] instead.

  • Changed

    Images from stamp annotations are now included in JSON via a base64-encoded PNG. (#5060)

  • Changed

    Improved performance of the PDF renderer and further improves compatibility with non-standard documents. (#5025)

  • Changed

    The PSPDFKit singleton now offers a hook to register your own logging handler - see the logHandler property.(#5093)

  • Changed

    The ExtraVerbose logging level is now Verbose and Verbose is now Debug. (#5093)

  • Changed

    The pdfViewController:didEndPageDragging:willDecelerate:withVelocity:targetContentOffset: delegate now also reports changes to pagedScrollView in paged mode. (#4924)

  • Changed

    The pdfViewController:shouldScrollToPage: delegate is no longer called during reloadData. This was unexpected and could cause issues if NO was returned in this specific case. (#4923)

  • Changed

    Reduces memory pressure for the disk cache when using the SDK in combination with Appcelerator Titanium. (#5133)

  • Fixed

    Fixes for highlight annotation selecting too much text at the end of a paragraph. (#5053)

  • Fixed

    Fixes an issue when using the PSPDFLibrary with an empty search string. (#5058)

  • Fixed

    Fixes an issue where importing annotation JSON could restore actions to a different type. (#5060)

  • Fixed

    Fixes an issue where white lines appeared in a document. (#5095, #5026)

  • Fixed

    Fixes an issue when parsing certain documents with embedded forms that contain JavaScript. (#5077)

  • Fixed

    Fixes an issue about returning the wrong UID in the results of the PSPDFLibrary. (#5082)

  • Fixed

    Fixes an issue where importing annotation JSON could restore actions to a different type. (5060)

  • Fixed

    Fixes an issue with flattening annotations and the text not showing up. (#5109)

  • Fixed

    Fixes an issue where a change notification for an annotation could be sent before it was added to the document. (#5098)

  • Fixed

    Fixes view controller setup and adaptivity issues with the split screen example. (#4766)

  • Fixed

    Fixes an issue where a change notification for an annotation could be sent before it was added to the document. This didn’t cause any bugs but might affected 3rd-party annotation provider implementations. (#5098)

  • Fixed

    Fixes an issue where the color picker might show an incorrect color when first being presented. (#5142)

5.1.1 - 21 Dec 2015

  • Changed

    Various blocks have been declared with @noescape for even better Swift compatibility. (#4996)

  • API

    Hide properties for visibility of document and page label on PSPDFHUDView, as they need to be controlled in PSPDFConfiguration. (#4989)

  • API

    The shouldAutomaticallyAdjustScrollViewInsets configuration option has been extended with an additional mode and renamed to scrollViewInsetAdjustment. (#4461)

  • Changed

    Improved rendering quality for small pages (thumbnails). (#4478)

  • Changed

    Improved support for longer messages in PSPDFStatusHUD. (#4990)

  • Changed

    Works around a compatibility problem with RubyMotion.

  • Fixed

    Fixes an issue where the pageLabelEnabled configuration could be ignored in some cases. (#4989)

  • Fixed

    Fixes an issue where the image stamp content could disappear after moving or resizing the annotation. (#4984)

  • Fixed

    Fixes a potential crash when extracting file streams from file annotations. (#4978)

  • Fixed

    Fixes an issue where subclasses of PSPDFBookmark were not used in all cases.

  • Fixed

    Fixes a small issue where scrollToPage:document:animated in the thumbnail controller advertised document as nullable but was declared as nonnull.

  • Fixed

    Fixes potential page layout issues in vertical paged mode with fit to width enabled. (#4765)

  • Fixed

    Fixes an issue where a certain font could be mapped to a different one on device, causing slightly offset rendering. (#4968)

5.1.0 - 16 Dec 2015

See the announcement post.

PSPDFKit 5.1 focusses on improving the drawing experience, easier integration, better iOS 9 adaptivity and features a greatly improved night mode.

  • Changed

    PSPDFKit is now compiled and requires Xcode 7.2.

  • Changed

    We streamlined our manual integration process - take a look at our new integration guide for details. We also provide a v5.0 to v5.1 integration steps migration guide.

    • Changed

      PSPDFKit.framework now includes its app symbols. This enables you to receive symbolicated crash logs from Apple after uploading your app to the App Store.

    • Changed

      We now also ship SDK symbols to allow better crash identification. (Only available for license holders, see PSPDFKit.framework.dSYM).

  • Changed

    We added pressure sensitivity to drawing and erasing. Natural lines can use pressure data from the Apple Pencil, 3D touch displays and some other supported styluses. The ink eraser radius can be adjusted based on the finger surface area or Apple Pencil altitude angle. (#4070, #1797)

    • Changed

      Note: We now use a custom data structure to represent annotation points for certain annotation types. If you are accessing pointArray, pointSequences, lines or similar annotation properties, be sure to update your code to use PSPDFDrawingPoint from now on.

  • Changed

    PSPDFKit now comes with a few built in appearance modes, that include an extended night mode. The modes can be set and customized via PSPDFAppearanceModeManager. PSPDFBrightnessViewController has also been extended with additional UI for this feature. (#3000, #4794)

  • API

    Various smaller updates around toggling view controllers in PSPDFAnnotationStateManager. (#4642)

  • API

    editableAnnotationTypes has been moved from PSPDFDocument to PSPDFConfiguration and is now a simple NSSet. (#4642)

  • API

    Creating text overlay annotations requires pageRotation instead of rotationTransform now. (#4748)

  • Changed

    Bookmarks are now sorted based on page order. This can be controlled via the new bookmarkSortOrder property in PSPDFConfiguration. (#4503)

  • Changed

    The annotation toolbar now has a new “Arrow” tool which is a variation of line with a predefined arrow head. (#4479)

  • Changed

    Manually rotating pages is now possible again. See PSCRotatePageExample. (#4715)

  • Changed

    The document view is now adaptive, even in situations where the keyboard is visible from another app in a multi-tasking environment. (#4714)

  • Changed

    The document view now correctly adapts to keyboard frame size changes, mostly from 3rd-party keyboards. (#4714)

  • Changed

    We added new items to the free text annotation inputAssistantItem, enabling you to toggle the free text accessory view visibility and adjust the font size even while the free text accessory view is hidden. (#4025)

  • Changed

    The undo and redo buttons now get compacted into one button when the annotation toolbar space is limited. (#3994)

  • Changed

    Various classes that should not be subclasses now declare this explicitly to prevent usage mistakes. (#4781)

  • Changed

    Styluses without touch classification, e.g. Adonit styluses, are now using the eraser correctly. (#4658)

  • Changed

    PSPDFKit Catalog samples have been reorganized and a few new ones have been added. See PSCConfirmDeletionExample. (#4786)

  • Changed

    The font picker now uses a custom sorting and moves the most commonly used fonts on top. See highlightedFontFamilyDescriptors. (#1100)

  • Changed

    The stylus selection popover now resizes itself automatically. (#4729)

  • Changed

    Improves popover resizing for the font picker. (#4554)

  • Changed

    Improves error reporting in case email is not configured on the device. (#4555)

  • Changed

    Improves undo registration when using the free text tool. (#4686)

  • Changed

    Improvements to text-selection and text-extraction on rotated documents. (#4748)

  • Changed

    The modal search view controller now automatically focusses the search bar to ensure the keyboard is visible.

  • Changed

    PDF parsing/rendering improvements for older, non-compliant versions. (#4903)

  • Changed

    Form buttons that are neither choice nor radio button styles are no longer highlighted to match Adobe Acrobat behavior. (#4929)

  • Changed

    Improves hit testing for small geometric annotations (Square, Circle) (#4937)

  • Changed

    Reduced memory usage and better low memory handling (#4911)

  • Changed

    Works around a regression in iOS 9 where section backgrounds on table views could be incorrectly styled. (rdar://23904182, #1100)

  • Changed

    The annotation toolbar now correctly avoids the tabbed bar during layout. (#4448)

  • Fixed

    Fixes nullability warnings created by certain stylus drivers. (#4670)

  • Fixed

    Fixes an issue with glyph positioning for documents with a non-null origin. (#4657)

  • Fixed

    Fixes an issue where the link annotation editor would not create a correct link annotation under some situations. (#4750)

  • Fixed

    Fixes an issue where certain unicode (emoji) characters in the PDF could be converted into invalid UTF-8. (#4946)

  • Fixed

    Fixes an issue where the annotation inspector could be presented at a slightly smaller size and than jump to the correct size (#4965).

  • Fixed

    Fixes an issue where certain unicode (e.g. emoji) characters in the PDF could be converted into invalid UTF-8. (#4946)

  • Fixed

    Fixes an issue where copy/pasting free text annotations could lead to an issue with rendering until the copy was modified. (#4973)

  • Added

    Adds Croatian localization. (#4956)

5.0.3 - 20 Nov 2015

  • API

    PSPDFSearchViewController has a new property to control restoring the last search result: restoreLastSearchResult. (Z#2411)

  • Changed

    Improve text extraction for certain documents which produces too many newlines. (#4409)

  • Changed

    Adjusted gallery Vimeo video playback for Vimeo API changes. (#4530)

  • Changed

    Improved performance and accuracy when exporting PDF documents with embed annotations. (#4536)

  • Changed

    Improves document metadata conversion: The creation and modification date are automatically translated to an NSDate object. (#4617)

  • Changed

    Stylus buttons can now be mapped to different and even custom actions. (#4588)

  • Changed

    Hex3 JaJa stylus driver is no longer available. (#4616)

  • Fixed

    Fixes an issue where the appearance stream of digital signatures could have a wrong object number. (#4462)

  • Fixed

    Fixes an issue in iOS 9 where sound annotation views didn’t correctly clean up their OpenGL session. (#4602)

  • Fixed

    Fixes an issue with rendering incorrect or empty PDF with contents in Chinese. (#4482)

  • Fixed

    Fixes an issue where the ink annotation bounding box could be slightly off when copying the annotation or re-reading it from the PDF. (#4609, #4613)

  • Fixed

    Fixes an issue where link and highlight annotations were at the wrong location (#4630)

  • Fixed

    Fixes an issue where the PSPDFRenderDrawBlockKey key in renderOptions was not always evaluated. (#4601)

5.0.2 - 10 Nov 2015

PSPDFKit is now compiled with Xcode 7.1.1. (7B1005)

  • API

    The propertiesForAnnotations setting from PSPDFAnnotationStyleViewController has been moved to PSPDFConfiguration and it now also affects the free-text accessory view. (#4466)

  • API

    Remove isAESCryptoDataProvider: helper. Use [dataProvider isKindOfClass:PSPDFAESCryptoDataProvider.class] instead to check. (Z#2323)

  • Changed

    Improves a condition where an ink annotation has a fill color set which overlapped the foreground color. (#3842)

  • Changed

    The outline property of PSPDFOutlineParser is now writable to allow setting a custom outline. (#4467)

  • Changed

    Ensures the HUD is visible when certain HUD actions are invoked. (#4272)

  • Changed

    Works around a UIKit issue that decreases the scroll view precision, which could have lead to incorrectly centered content. (#3864, rdar://23255528)

  • Changed

    JavaScript execution can now be disabled on a document-level via the javaScriptEnabled property. (#4491)

  • Changed

    Improves form navigation using keyboard and also with prev/next UI buttons. (#4398, #4427)

  • Changed

    didChangeAnnotation:keyPaths:options: is now called during drawing to allow more fine-grained updates. (Z#2315)

  • Changed

    Various improvements for the upcoming iPad Pro, including an annotation toolbar configuration set that better utilizes the additional space. (#4519)

  • Changed

    Updates our stylus drivers to the latest version. (only available for license holders, #4515, #4516)

  • Changed

    Sharing features that require annotation features are no longer displayed for licenses that don’t include annotation features. (Z#2319, #4524)

  • Fixed

    Fixes an issue where line endings were not correctly exported in XFDF if they are set to none. (#3715)

  • Fixed

    Fixes an issue when documents with invalid or missing files are initialized. (#4455)

  • Fixed

    Fixes an issue where a document with > 1000 individual files could use too much memory. (#4455)

  • Fixed

    Fixes an issue where some presented views were missing a close button on iOS 8.2 and earlier. (#4492)

  • Fixed

    Fixes a crash when processing a document with a certain set of JavaScript. (#4483)

  • Fixed

    Fixes an issue where UIKit handled popovers + alert controllers in a way that could cut off the buttons. (#4537)

  • Fixed

    Fixes an issue where the document view was not always correctly reloaded when the PSPDFViewController was displayed within a popover. (#4538)

  • Fixed

    Fixes a potential assert on iOS 8 when using the text loupe with text glyphs that have a height of zero. (#4458)

  • Fixed

    Fixes an issue where glyph frames could be incorrectly calculated for documents with a non-null origin and rotation. (#4504, #4047)

  • Fixed

    Fixes an issue with fullscreen media playback. (#4429)

  • Changed

    Slightly reduced framework size.

5.0.1 - 28 Oct 2015

  • Changed

    Due to a recent change in the iTunes Submission Process we’ve slightly altered our version scheme. (from ios-5.x.x to just 5.x.x)

  • Changed

    The content opacity render option (PSPDFRenderContentOpacityKey) has been removed. This option is no longer supported. (#4337)

  • Changed

    Freehand drawing performance improvements and fixes for devices supporting touch prediction. (#4404)

  • Changed

    In case two page labels are active on a double-paged page, both are now correctly displayed. (#4342)

  • Changed

    Improves behavior when parsing partly corrupt documents. (Z#2199)

  • Changed

    The selection knobs now animate when running iOS 9 to better match system behavior.

  • Added

    Add workaround for a Swift compiler issue when using PSPDFAESCryptoDataProvider with a string-based data provider. (Z#2223, rdar://23285766)

  • Fixed

    Fixes an issue with editable annotation types on the annotation toolbar. (#4407)

  • Changed

    Improves layout of the thumbnail overview controller.

  • Changed

    Improves text selection and highlight annotation creation.

  • Changed

    Improves font picker search bar appearance. (#4100)

  • Changed

    Various updates to the new render engine.

5.0.0 - 23 Oct 2015

See the announcement post.

PSPDFKit 5 is a major new version, introducing our own renderer and focusing on improving performance. It requires Xcode 7.1 and is compatible with iOS 8.0 - 9.1. This release is a huge usability improvement with Swift but also Objective-C, as we annotated all headers with generics. This release now shares our new core with our Android SDK to further improve quality and performance.

  • Changed

    PSPDFKit now uses its own PDF renderer and no longer uses Apple’s Core Graphics renderer, which means better performance, stability and quality. (#3737)

  • Changed

    Undo and redo now remember individual lines drawn instead of the previous behavior where undo removed the whole annotation, once committed. (#2825)

  • Changed

    The tabbed bar has been completely redesigned and now supports animations and reordering, not to mention it being much prettier. (#665)

  • Changed

    View controllers are now presented using UIPresentationController and are much easier to handle and dismiss. (#3519)

    • Changed

      We removed the popoverController and halfModalController properties, as these are now custom presentation styles.

  • Changed

    Popovers are no longer dismissed on rotation. (#3519)

  • Changed

    iOS 8 adaptivity is fully supported: view controllers swap between being popovers, half modal or full screen depending on context. (#3743)

    • Changed

      A new presentation option has been added to prevent view controllers from adapting their presentation style: PSPDFPresentationNonAdaptiveKey.

  • Changed

    The default presentation style has changed for presentViewController:options:animated:sender:completion: from PSPDFViewController and PSPDFPresentationActions. The default is now to use the presented view controller’s modalPresentationStyle, similar to the old PSPDFPresentationStyleForceModal style, which has been removed.

    • Changed

      To restore the equivalent of PSPDFKit’s previous default behavior (using either a popover or full screen, depending on the space available), set the presented view controller’s modalPresentationStyle to UIModalPresentationPopover.

  • Changed

    The annotation toolbar now automatically adapts its items depending on the available screen real estate. This change comes with a new API that allows setting multiple toolbar configurations amongst which the toolbar picks the optimal layout. (#3950)

  • Changed

    The free text input accessory view has been updated to show popover pickers whenever possible, with a fallback to the half modal inspector, if vertical space is tight. (#3987)

    • Changed

      Note: We noticed some input accessory view resizing issues on iPad Air 2 Simulator. We could not reproduce the same problems on actual devices.

  • Changed

    We’re using UIAlertController and UISearchController everywhere, replacing the older deprecated API for further view controller unification. (#3381)

  • Changed

    Automatic double page mode is smarter, comparing the aspect ratios of the view and the document and only showing two pages if they fit without too much shrinking. Automatic mode is now the default on iPhone too, but since two pages are only shown in large views the behavior will be similar.

  • Changed

    By default, page thumbnails are now sized adaptively to comfortably fill the available space.

  • Changed

    Instead of CGPDFDataProvider we now have a new PSPDFDataProvider protocol, which finally allows writing as well. (#3690)

    • Changed

      PSPDFAESCryptoDataProvider has been updated to allow writing annotations back into the secure storage.

  • Changed

    Safari view controller is used instead of PSPDFWebViewController on iOS 9.

  • Changed

    PSPDFScrobbleBar has been renamed to PSPDFScrubberBar to better express its purpose.

  • Changed

    Querying for the annotation author name has been moved to before the annotation toolbar is displayed. (#3544)

  • Changed

    Annotation creation can now be prevented on select PDF pages by adding a boolean key to the page dictionary (see allowAnnotationCreation on PSPDFPageInfo). (#4308)

  • Changed

    PSPDFAnnotationStateManager now supports multiple delegates and the delegate protocol gained some new methods. (#3607)

  • Changed

    The color menu is now represented visually, and uses the style manager color presets. (#2802, #2890)

  • Changed

    Switching between regular and callout styles for text annotations now produces better results and has been made easier with a redesigned UI. (#3664 and #3859)

  • Changed

    The annotation stream now gets properly reset when an annotation is modified, preventing stale content from being rendered on screen. (#3817)

  • Changed

    PSPDFDocumentActionExecutor’s presentationController has been renamed to sourceViewController to better describe its purpose and avoid confusion with UIPresentationController.

  • Changed

    The prefersStatusBarHidden property in the PSPDFStyleable protocol has been renamed to forcesStatusBarHidden to be distinct from the closely related UIViewController method of the same name.

  • Changed

    It is now possible to show color presents on PSPDFAnnotationStyleViewController, even if color and opacity settings are disabled. Color presets can still be hidden by adjusting typesShowingColorPresets. (#4108)

  • Changed

    Accessibility and voice over support has been improved on some of our key UI elements. (#3834)

  • Changed

    The author username is now requested earlier and managed via the new PSPDFUsernameHelper class.

  • Changed

    The border radius of PSPDFSearchHighlightView is now dynamically calculated based on the current zoom level and can be configured via cornerRadiusProportion.

  • Changed

    PSPDFImageInfo is now much more reliable and detects more image formats.

  • Changed

    PSPDFActions nextAction is now an array to correctly reflect the PDF spec, and the whole tree is iterated as required upon execution.

  • Changed

    PSPDFRenditionAction now also exposes optional attached javascripts.

  • Changed

    The hooks for markedContentStack and shouldParseCharacter: in the PSPDFTextParser have been removed since they were very rarely used but caused a noticeable slowdown for all text extraction. If there’s demand, we’ll look into ways to reintroduce a similar feature with less performance impact.

  • Changed

    prefersStatusBarHidden in PSPDFStyleable has been renamed to forcesStatusBarHidden to not confuse this with properties that UIKit recently introduced.

  • Changed

    Several annotation classes have new parent types to unify certain features, such as PSPDFAssetAnnotation and PSPDFAbstractShapeAnnotation.

  • Changed

    Small UI updates across the board. (For example, dark colors are easier to see in menus.)

  • Changed

    Various lesser-used API has been redesigned or removed for better clarity.

4.4.18 - 28 Oct 2015

  • Changed

    Due to a recent change in the iTunes Submission Process we’ve slightly altered our version scheme. (from ios-4.x.x to just 4.x.x)

4.4.17 - 15 Oct 2015

  • Fixed

    Fixes an issue where the first thumbnail in scrollable thumbnail mode could be skipped under iOS 9. (#4270)

  • Removed

    Removes our LZ4 dependency since Apple sometimes wrongly flagged that as private API. (Z#2097) If you’re using PSPDFLibrary with glyph position saving, make sure to delete the cache files before updating.

4.4.16 - 6 Oct 2015

  • Fixed

    Fixes an issue where some documents couldn’t be parsed correctly to write annotations back in. (#4182)

  • Fixed

    Fixes an issue where document content was cut off with the toolbar enabled. (#4152)

  • Changed

    Improves symbol visibility in new dynamic framework. (Z#1966)

4.4.15 - 25 Sep 2015

  • Fixed

    Fixes an issue where the PSPDFDocumentPickerController wasn’t correctly updated when a document was deleted. (Z#1882)

  • Changed

    Prevents an exception from getting thrown while writing ink annotations into XFDF. (Z#1889)

  • Fixed

    Fixes an issue where executed JavaScript from forms could trigger an assertion. (#3872)

4.4.14 - 11 Sep 2015

This release will be one of our last v4 releases, while v5 for iOS 9/8 is steadily nearing completion with a huge list of updates/improvements. We backported the new bezier path calculation code, so ink annotations are quite a bit faster now. There’s a lot more coming soon!

  • Changed

    When invoking search, we now prioritize the current visible pages before searching the rest. Search results will show up significantly faster on complex documents. (Z#1829)

  • Fixed

    Fixes an issue where resetting choice form elements didn’t always reset all properties. (Z#1813)

  • Fixed

    Fixes an issue when applying a PSPDFRenderFiltersKey on rotated documents. (#3892)

  • Fixed

    Fixes a rare floating point precision issue that could cause pages to show up distorted. (#3882)

  • Fixed

    Fixes an issue where rotation caused ill–positioned pages when switching from single–page to two–page layout. (#3878)

4.4.13 - 28 Aug 2015

  • Changed

    Improves rendering during annotation selection, decreasing the possibility of stale content. (#3488)

  • Changed

    Improves behavior for the go to page dialog when invalid numbers are entered. (#3662)

  • Changed

    Performance improvements for complex bezier path calculation, speeding up ink annotations. (#3778)

  • Fixed

    Fixes a rare exception when the page curl controller is used in unusual view controller configurations. (#3624)

  • Fixed

    Fixes a regression that was affecting performance in continuous scroll mode. (Z#1748)

  • Fixed

    Fixes a potential issue with rendering the color picker. (#3729)

  • Fixed

    Fixes an issue where PSPDFViewState could end up being nil for certain points between two pages. (#3782)

  • Changed

    -[PSPDFViewController setViewState:animated:] supports animation for continuous scrolling and per–page scrolling again. Page curl mode has limited support: regardless of animation restoring the viewport is unsupported. (#3777)

4.4.12 - 10 Aug 2015

  • Added

    Adds Slovenian translation.

  • Changed

    Improves compatibility exporting file attachment in XFDF with certain less standard compliant readers. (Z#1610)

  • Fixed

    Fixes an issue when exporting XFDF polyline annotations with border style set to cloudy. (#3608)

  • Fixed

    Fixes a regression related to StrikeOut annotations. (Z#1642)

  • Fixed

    Fixes a crash when a file attachment annotation references a missing file which then is exported via XFDF. (#3620)

4.4.11 - 31 Jul 2015

  • Added

    Adds Czech, Greek and Finnish translations and updates various other localization details.

  • API

    The rotationLock has been removed. Subclass PSPDFViewController and override the rotation methods and/or implement supportedInterfaceOrientationsForWindow: to lock rotation. Since PSPDFKit doesn’t own the application, yet this requires hooks to your app delegate, the previous implementation was flawed and subsequently removed.

  • Changed

    Allow rendering the page to larger sizes when aspect ratio is preserved. (#3528)

  • Fixed

    Fixes an issue where links that also have QuadPoints defined might be offset. (#3331)

  • Fixed

    Fixes an issue related to bundle path resolution on relative linked files. (#3539)

  • Fixed

    Fixes an issue where PSPDFCryptor would report an error for files with a size that is dividable by 4096. (#3547)

  • Fixed

    Fixes a compatibility issue with the XFDF API version. (Z#1610)

  • Fixed

    Fixes an issue where the annotation toolbar’s position couldn’t always be set before it was initialized. (#3575)

  • Fixed

    Fixes an issue where the continuous scroll mode could result in a NaN exception under high load in split screen mode. (#3577)

  • Fixed

    Fixes a tiny memory leak when exporting XFDF files.

4.4.10 - 24 Jul 2015

  • Changed

    Improves document parsing for certain documents that are invalid according to the PDF 1.7 specification, yet work with Adobe Acrobat. (Z#1534)

  • Changed

    Improves text placing logic for callout free text annotations. (#3476)

  • Changed

    Improves compression for embedded images in stamps if they don’t contain alpha data. (#3494)

  • Fixed

    Fixes an issue where the keyboard would not hide in all cases after dismissing the modal search controller. (#3449)

  • Fixed

    Fixes a race condition that could lead to a deadlock when forms are parsed and JavaScript processed concurrently. (Z#1546)

  • Fixed

    Fixes a rare assertion when the scrobble bar bins pages in landscape. (#3504)

4.4.9 - 17 Jul 2015

  • Changed

    Update OpenSSL to 1.0.2d.

  • API

    Expose PSPDFPageScrollViewController and PSPDFPagingScrollView. (Z#1489)

  • Changed

    Feature: Text selection is smarter on selecting words and better filters out commas or quotation marks. (#1954)

  • Changed

    Performance: Greatly improved document parsing speed with a large set of annotations that need named destination resolving. (>10.000) (Z#1339)

  • Changed

    Performance: Improvements for parsing forms on complex documents with more than 1000 pages. (Z#1422)

  • Changed

    Improves parsing accuracy when page arrays contain invalid entries. (Z#1477)

  • Changed

    Improves the UI/inspector flow when inserting free text annotations. (#3335)

  • Changed

    Ensures that the inspector updates in all cases on alpha updates. (#3336)

  • Changed

    Improves the HUD layout logic when changes are happening while the PSPDFViewController is off-screen. (#3361)

  • Changed

    Improves calculation of the selection border for non-editable note annotations when zoomed in. (#3155)

  • Fixed

    Fixes issues with page centering while zooming. (#3340, #3419)

  • Fixed

    Fixes an issue with XFDF serialization of forms with parent/child relationships. (#3138)

4.4.8 - 6 Jul 2015

  • Changed

    Now using and requires Xcode 6.4 to build. Xcode 6.3.2 is unsupported but still works fine - however this might change in future updates. It’s always a good idea to use the latest available tools.

  • Changed

    Various performance improvements when parsing documents with a large amount of complex, nested form elements. (Z#1339)

  • Changed

    Improves the thumbnail transition when multiple transitions are being executed concurrently. (#3248)

  • Changed

    PSPDFModel can be serialized via NSCoder again. (Z#1394)

  • Changed

    Ensures that highlight annotations don’t have a border by default. (#3277)

  • Changed

    Improves text field formatting to be more consistent with the way Acrobat handles formatting. (#2548)

  • Changed

    Improves the combination of long press & PSPDFLinkActionAlertView. (#3289)

  • Changed

    Improves PSPDFHUDViewAnimationSlide under iOS 8. (#2951)

  • Changed

    Improves automatic thumbnail size calculation for certain edge cases in iOS 8. (#3045)

  • Changed

    Decreases memory usage when trying to parse corrupted documents to ensure we are below certain memory limitations. (#3314)

  • Fixed

    Fixes an issue where customizable choice form elements sometimes didn’t retain the correct selection. (#2919)

  • Fixed

    Fixes an issue where certain font styles in annotations could be lost when converting documents via PSPDFProcessor. (#3147)

  • Fixed

    Fixes an issue where invoking the image picker via javascript immediately dismissed the picker. (#3274)

  • Fixed

    Fixes a potential crash when autodetectLinkTypes is enabled and a phone number that is overlaid with custom annotations is detected. (Z#1402)

  • Fixed

    Fixes a potential crash related to a change in NSDictionary on iOS 9.0b2.

  • Fixed

    Fixes an issue where the email sheet sometimes is not presented if options are preselected. (#3137)

4.4.7 - 24 Jun 2015

WWDC week! We’re hard at work to make sure PSPDFKit is a good citizen on iOS 9 and also grilled the UIKit engineers in San Francisco. This release features various first updates for the iOS 9.0b1 and Xcode 7. As usual, our strategy is to keep a stable PSPDFKit 4.4.x that works with SDK 8 (Xcode 6.3.2), supporting iOS 7, 8 and 9 (with some exceptions, like multitasking) - while at the same time we are also working on PSPDFKit 5, made for Xcode 7 and iOS 8+9. Expect PSPDFKit 5 some time in September before the iOS 9 GM.

  • Changed

    Updates OpenSSL to 1.0.2c. (None of the security updates affects PSPDFKit, but it’s a good habit to keep things up-to-date)

  • API

    pathShadowForView: now returns an UIBezierPath object instead of a CGPathRef object.

  • API

    showsScrollIndicators has been split into showsHorizontalScrollIndicator and showsVerticalScrollIndicator for a more fine-grained control. (#3191)

  • Changed

    Improve custom font attribute support for outline. (#3111)

  • Changed

    Exporting XFDF now writes the ‘f’ file tag. (Z#1335)

  • Changed

    Serializing documents via NSKeyedArchiver now stores relative paths, so that objects can be properly restored even after app updates on iOS 8/9. (#2651)

  • Fixed

    Fixes issues with certain passwords with non-ascii characters and PDF 1.7 files. (#3166)

  • Changed

    If annotation rendering is disabled, we hide these options from the share menu. (print/mail/open in) (#3202)

  • Changed

    Text handling for zoomed in pages is now a lot better, thanks to an unnamed UIKit engineer in the labs. (#2763)

  • Changed

    Ensures that popup annotations don’t get a default border. (#3214)

  • Changed

    Improves search performance and layout related to UI updating when using the popover/modal view. (#3190, #3212)

  • Changed

    Improves animation for gesture-based view controller dismissal and the HUD. (#3109)

  • Changed

    Various performance improvements related to multiple gallery items when zooming/mirroring. (Z#938)

  • Changed

    Improves child view controller usage detection and contentInset calculation for certain edge cases. (#2998)

  • Changed

    Hiding the annotation toolbar no longer automatically dismisses any visible popover. (Z#1366)

  • Changed

    Resizing annotation as a set (multiselect) now better handles free text annotations. (#1982)

  • Changed

    Improves the logic that positions signatures and better deals with edge cases like incorrect PDF coordinates. (#3113)

  • Changed

    Ensures that upon PSPDFViewController dismissal, the HUD is always visible. (#3227)

  • Changed

    Works around an UIKit bug that causes the backdrop blur to produce incorrect results under certain conditions. (#3162)

  • Changed

    Works around an UIKit issue related to nested scroll views that could make text view scrolling flaky when zoomed in. (rdar://21180283, #2830)

  • Fixed

    Fixes an issue where cut/copy was enabled for readonly text fields. (#3156)

  • Fixed

    Fixes issues related to printing and popover management. (#3186, #3187)

  • Fixed

    Fixes a few edge cases found with Xcode 7 related to nullability.

  • Fixed

    Fixes a potential null pointer dereference when a document with a corrupt page array is being parsed. (#3235)

  • Changed

    Various updates to improve compatibility with iOS 9.0b1.

4.4.6 - 5 Jun 2015

  • Changed

    Improves performance with re-building the scrobble bar; noticeable when the frame is changed with animation. (#3007)

  • Added

    Adds a workaround for an UIKit issue where viewWillLayoutSubviews would not always be sent when the PSPDFViewController is set as the rootViewController under iOS 8. (#3031)

  • Changed

    Improves the way we position the document label to cover more corner cases. (#3049)

  • Changed

    Improves annotation toolbar placement in certain edge cases. (#3044)

  • Changed

    Improves free text placement when resizing via anchoring to the bottom left. (#2177)

  • Changed

    If a document contains multiple files, a RemoteGoTo action will be rewritten to a regular GoTo action if the target file is part of the multi-file-document. (Z#1018)

  • Changed

    Improves the flow when changing the free-text annotation results in a different bounding box. (#2246)

  • Changed

    Improves thumbnail rendering logic to ensure newly created annotations are always rendered. (#3054)

  • Changed

    UIModalPresentationPageSheet is now used instead of the FormSheet presentations style to work around an issue with the mail controller. (Z#1176, Z#1270)

  • Changed

    Improves half modal view logic to automatically dismiss a visible controller before a new one is presented. (Z#1271)

  • Fixed

    Fixes an encoding issue with certain chinese characters. (#3100)

  • Changed

    Improves the HUD/page placement logic for certain edge cases (#3103, Z#1254)

  • Fixed

    Fixes an issue where UIKit could send tap events in the wrong order, resulting in a timer not being invalidated on font size changes. (#3009)

  • Fixed

    Fixes a rare race condition that could result in pages not being rendered in full resolution when a note annotation is selected programmatically. (#2621)

  • Fixed

    Fixes an issue where widget annotation actions could be parsed incorrectly in multi-document setups. (#2803)

  • Fixed

    Fixes a rare mutation issue when selecting a free text annotations while another one is selected in continuous scrolling mode on an iPhone. (Z#1214)

  • Added

    Adds a workaround for an issue in Xamarin iOS 8.10 (https://bugzilla.xamarin.com/show_bug.cgi?id=30766)

4.4.5 - 31 May 2015

  • Changed

    Improves annotation border support. Add support for the legacy /Border definition, improves dash array writing and more. (#2953, #2964, #2982, #2987)

  • Changed

    Improves menu positioning for line annotations, reduce likelihood of menu covering the resize knobs. (#2732)

  • Changed

    Improves back animation when the thumbnail filter view is visible while the view controller is popped, working around an issue with UIKit’s topLayoutGuide. (#2948)

  • Changed

    Resizing of free text annotations with saved appearance streams now triggers a re-render. (#2895)

  • Changed

    Better handles situations where the PSPDFViewController has an empty frame. (#2986)

  • Changed

    Works around an iOS 7 UIKit issue where the contentInset was not always correctly set in the outline view controller. (#2717)

  • Changed

    Improves error handling around image extraction. (Z#1215)

  • Changed

    Update simple font picker example and ensures the designated initializer for PSPDFFontPickerViewController is always called. (Z#1201)

  • Changed

    Using PSPDFProcessor with the same input and output URL is documented as an unsupported operation. PSPDFKit will now detect this and return an error instead of potentially corrupting the output file. (#2985)

  • Changed

    Workaround for an UIKit issue where UIPrintInteractionController could call into an released object. (rdar://20963891)

  • Changed

    Files with multiple data sources can now also use the fallback annotation store. (#2804)

  • Fixed

    Fixes a rare crash when using the color picker from the half modal controller. (Z#1220)

  • Fixed

    Fixes an issue where the UIActivityViewController would not close automatically under iOS 7. (#2999)

  • Fixed

    Fixes an issue where font styles were not always correctly saved when changed via the popover inspector. (#3004)

  • Fixed

    Fixes an issue where certain line endings were not rendered correctly. (Z#1192)

  • Fixed

    Fixes an issue where re-creating documents via PSPDFProcessor with embedded annotations that contain appearance streams could result in incomplete AP streams. (#2985)

4.4.4 - 26 May 2015

We’re now using Xcode 6.3.2 to build PSPDFKit.

  • Changed

    Greatly improves view state handling and view port stability, especially when rotating the device. (#2808, #2871, #2873)

  • Changed

    Improves search bar handling for the outline view controller. (Z#1075)

  • Changed

    Improves form tab order parsing and better deals with broken PDFs that have cyclic references. (#2903, #2817)

  • Added

    Adds a workaround for a tabbar gap issue on the half modal controller. (#2883, rdar://21036145 and rdar://21036226)

  • Changed

    Improves color preset handling for highlight ink drawings by saving additional metadata into the PDF. (#2726)

  • Changed

    The HUD no longer hides when page is programmatically changed with pageCurl transition mode. (#2898)

  • Changed

    The HUD can now be hidden, even when the annotation toolbar is visible. (#2789)

  • Changed

    UIModalPresentationPageSheet is now used instead of the FormSheet presentations style to work around an issue with the mail controller. (Z#1176)

  • Changed

    Improves color preset detection for annotations that are saved/loaded from the PDF directly. (#2915)

  • Changed

    No longer creates highlight annotations with empty rects when using the highlight annotation tool without selecting text. (Z#1178)

  • Changed

    Improves font size calculation in multi-line text fields. (#2921)

  • Changed

    The pdfViewController:didSelectAnnotations:onPageView: delegate is now called after the annotationSelectionView has been configured. (Z#1166)

  • Changed

    The Catalog contains new examples how to lock specific annotations (PSCLockedAnnotationsExample.m) and how to add new pages (PSCAddBlankPageExample.m)

  • Changed

    Preserves custom protocol strings when unlocking a document with a password and improves documentation around this case. (#2652)

  • Fixed

    Fixes an issue with granting recording rights for sound annotations. (Z#1190)

  • Fixed

    Fixes a race condition when multiple PSPDFDocument objects saved to the same external data file. (#2904)

  • Fixed

    Fixes an issue where documents that mix relative and absolute file paths render incomplete on devices. (Z#1177)

  • Fixed

    Fixes an issue where radio button form elements were not always correctly highlighted. (#2833)

  • Fixed

    Fixes an issue with the bottom content inset when the search view controller is displayed modally. (#868)

  • Fixed

    Fixes an issue when the thumbnail animation is cancelled externally. (#2893)

4.4.3 - 15 May 2015

We’re now using Xcode 6.3.2(gm seed) to build PSPDFKit.

  • API

    PSPDFTextSearch has a new cancelOperations: parameter to control if previous operations should be cancelled. Since the previous behavior might be unexpected for some, we choose to not have a deprecated call.

  • API

    Some refinements on calls in PSPDFAnnotationStateManager, removing a redundant “From:” from various methods.

  • Changed

    Improve compatibility when the PSPDFViewController is embedded inside an UITabBarController with transparent bottom bar. (#2794)

  • Changed

    Make sure using setAnnotations: doesn’t trigger registering undo actions. (Z#1092)

  • Changed

    Ensures the HUD stays visible when pages are changed via HUD controls in page curl mode. (Z#1077)

  • Changed

    Declares fieldName nullable since some PDFs incorrectly don’t declare this name. (Z#1097)

  • Changed

    Improves text view management for free text annotations and forms when zoomed into a page (#2763)

  • Changed

    Improves integration of the print controller. (Z#1102)

  • Changed

    Implements writing of PDF actions of type PSPDFActionTypeGoTo. (#2682)

  • Added

    Adds a workaround for an issue where UIPrintInteractionController could access a deallocated object. (rdar://20963891, #2828)

  • Changed

    Improves status description text when search is finished. (#2826)

  • Changed

    Improves keyboard navigation and handling for forms. (#2818, #2819)

  • Changed

    Further improvements to zoom/scroll behavior for zoomed in text fields. (#2758)

  • Fixed

    Fixes an issue where shouldAutomaticallyAdjustScrollViewInsets in PSPDFConfiguration might change to NO for certain configurations. (#2800)

  • Fixed

    Fixes an issue where creating annotations on the right side in double page mode could end up inserting them on the left side instead. (Z#1076)

  • Fixed

    Fixes an issue where annotation background could turn black instead of transparent when the inspector is used. (#2813)

4.4.2 - 7 May 2015

  • Changed

    Improves default placement of annotation toolbar icons for the iPhone 6 Plus. (#1653)

  • Changed

    Ensures all dangling “special” popovers (like UIInteractionViewController) are dismissed before the PSPDFViewController is dismissed. (Z#1022)

  • Changed

    Improves status bar handling when the annotation toolbar is visible. (#2745)

  • Changed

    Improves performance in the text parser for certain deep cyclic XObject references. (#2786)

  • Changed

    Reduces memory usage when parsing deep PDF XObject hierarchies. (#2786)

  • Changed

    Improves logic that updates the “Clear” button for form fields. (#2815)

  • Changed

    Various localization updates and corrections.

  • Fixed

    Fixes an issue where a pan gesture recognizer on a split view controller could end up staying disabled. (#2683)

  • Fixed

    Fixes a rounding error on the iPhone 6 Plus that resulted in a non-exact sized HUD overlay. (#2788)

  • Fixed

    Fixes an issue where the HUD could end up in a state that requires two taps to show, if configured in a particular, non-standard way. (#2765)

  • Fixed

    Fixes an regression that resulted in no action when using PSPDFPKCS12SignerViewController. (#2774)

  • Fixed

    Fixes an issue where “Bundle” path resolution would resolve to the dynamic framework. (#2767)

  • Fixed

    Fixes an issue with the Open In… feature on iPhone under iOS 8 when options are displayed prior. (Z#1022)

  • Fixed

    Fixes an issue with popovers displaying as form sheets on the iPhone 6 Plus since iOS 8.3.

4.4.1 - 1 May 2015

  • API

    logLevel is now a property on the PSPDFKit shared object.

  • Changed

    Showing the inspector on iPhone now hides optional HUD components for a clearer editing focus.

  • Changed

    Improves scrolling behavior for text field forms when zoom position is larger than the element itself. (#2677)

  • Fixed

    Fixes a regression that would modify the scroll view port imperfectly when using the inspector on iPhone.

  • Fixed

    Fixes an issue with the embedded version information being blank.

4.4.0 - 29 Apr 2015

See the announcement post.

PSPDFKit is now fully compatible with iOS 8.3 and requires Xcode 6.3. We’ve annotated all public headers with the new nullability declarations, which is especially convenient if you use PSPDFKit with Swift. We also now ship a dynamic framework for iOS 8. This is the better choice if you’ve already dropped iOS 7.

  • API

    PSPDFDocumentPickerController’s numberOfSearchPreviewLines has been renamed to maximumNumberOfSearchPreviewLines to better indicate what it does - we also improved cell height calculation and layout.

  • API

    We did a large header audit and removed various headers that should not be required. If you have any issues, contact us at https://pspdfkit.com/support/request.

  • Changed

    The PSPDFScrobbleBar now supports vertical modes. (see scrobbleBarType = PSPDFScrobbleBarTypeVerticalRight) (#2613)

  • Changed

    Introduces UI for line dash styles and enables customization options for these presets. (#2612)

  • Changed

    Color preset support for additional annotation types. (see typesShowingColorPresets) (#2604)

  • Changed

    Matches the flexible toolbar landscape height to the system bar height on iPhone 6+. (#2629)

  • Changed

    Color picker: Improves color checkmark display for clear colors. (#2628)

  • Changed

    Improves cleanup code for PSPDFDrawView to make it easier to use as standalone class. (Z#747)

  • Changed

    Ensures no PDF rect box is larger than the media box. (Z#792)

  • Changed

    When using the tabbed view controller, the back/forward stack is cleared when switching documents. (#2615)

  • Changed

    Using hide actions to trigger annotation visibility no longer marks the annotation as dirty. (#2637)

  • Added

    Adds a new addBookmark: method to add a custom named bookmark object next to addBookmarkForPage:. (#2577)

  • Changed

    Works around a potential 3rd-party compatibility issue with the AirWatch SDK. (Z#872)

  • Added

    Adds support for transparent line end fills (#2690)

  • Changed

    Improves the activity title for the bookmark action. (#2718)

  • Changed

    Various accessibility improvements around the annotation inspector. (#2668)

  • Changed

    Improves thumbnail <-> page view animation when triggered while the animation is already running. (#2699)

  • Changed

    The page/document label views and the back/forward buttons now have a blurEffectStyle property to customize this via UIAppearance. (#2707)

  • Changed

    Ensures that, while using the inline search bar, the text field keeps focus when selecting form elements. (#2734)

  • Changed

    Exposes a PSPDFCollectionReusableFilterViewCenterPriority to make it easier to customize the segmented control filter via AutoLayout. (#2714)

  • Changed

    Undo/Redo is now enabled by default on iPad 2. (Z#957)

  • Fixed

    Fixes an issue where a view controller was not dismissed correctly on iPhone when a UISearchController was displayed on top. (#2729)

  • Fixed

    Fixes a potential race condition in combination with custom annotation providers. (#2708)

  • Fixed

    Fixes an issue where computed form fields could stop working after a save. (#2676)

  • Fixed

    Fixes an issue where sometimes lines could disappear while drawing really fast due to issues with touch handling on iOS. (#2703)

  • Fixed

    Fixes an issue when showing the outline controller via a document activity (#2700)

  • Fixed

    Fixes an issue when pressing undo while editing free text annotations. (#2660)

  • Fixed

    Fixes an issue where after manually invoked saving the undo button state wasn’t always correctly updated. (#2644)

  • Fixed

    Fixes an issue when the PSPDFThumbnailBar was used in a certain configuration without a document set. (#2638)

  • Fixed

    Fixes an issue where lines created programmatically with lineWidth = 1.f didn’t always trigger bounding box calculation. (#2620)

  • Fixed

    Fixes an issue when a JavaScript action is invoked on a field which has an invalid/missing fileName. (Z#970)

  • Fixed

    Fixes a configuration issue where a popover would not be anchored to a bar button item in some cases on iOS 8. (#2611)

  • Fixed

    Fixes a potential crash when flattening documents in low-memory situations. (Z#784)

4.3.5 - 28 Mar 2015

  • Changed

    Update nullability declarations to more classes and changed syntax to be compatible with Xcode 6.3 Beta 4.

  • Changed

    Improves status bar handling in iOS 8 when search is invoked in landscape mode on iPhone. (#2531)

  • Changed

    Link preview popovers are now correctly placed in double-page-mode. (Z#742)

  • Changed

    Hide actions now reset invisible and noview flags to match Adobe Acrobat’s behavior, next to toggling the hide flag. (#2588)

  • Added

    Adds various safeguards for class overriding to detect API usage issues early. (#2553)

  • Added

    Adds a workaround for a memory retainment regression based on rdar://20272376. (Z#722)

  • Added

    Adds a workaround for an issue where rotation sometimes stopped working on iPhone under iOS 7 when using activities. (#2578)

  • Changed

    Improves handling of erasing annotations that are manually set to overlay = YES. (#2582)

  • Changed

    Improves picker placement when a picture is added via iPad on iOS 8. (Z#775)

  • Fixed

    Fixes an issue where under certain conditions using bookmarks would not switch the page on iPhone. (#2589)

  • Fixed

    Fixes an issue when an outline entry doesn’t define any action element and then is tapped. (Z#776)

4.3.4 - 23 Mar 2015

  • Changed

    Update to OpenSSL 1.0.2a.

  • Added

    Adds a second invert color mode that creates color correct images. (#2128)

  • Changed

    The document sharing view controller has a new delegate method for custom status reporting. (Z#684)

  • Changed

    When using search and highlighting, we automatically scroll to the page area where the result is highlighted. (#2209)

  • Changed

    Further classes gained nullability declarations.

  • Changed

    Improvements for Russian localization. (#2550)

  • Changed

    Improves rendering for annotations when they are in selected state.

  • Changed

    Improves hit testing for ink annotations when minDiameter is set. (#2570)

  • Changed

    Works around an issue where custom stamps sometime would not serialize the image because of a NSCoding-related bug in UIKit. (rdar://20256585, #2539)

  • Fixed

    Fixes an issue where setPage: would jump to an incorrect page in certain rare configuration combinations. (#2547)

  • Fixed

    Fixes a rare crash where UIKit was expecting accessibility categories on a proxy object. (Z#689)

  • Fixed

    Fixes an issue where using additional actions in annotations didn’t always execute such action.

  • Fixed

    Fixes an issue where the outline view controller was not in all cases overridable.

  • Fixed

    Fixes a regression where the scrollable thumbnail bar was not always correctly hidden when switching to the thumbnail controller. (#707)

4.3.3 - 15 Mar 2015

  • Changed

    Various performance improvements, especially for cases where multiple PSPDFViewController instances are on screen at the same time. (#2527)

  • Changed

    Hit testing for line annotations is now purely path-based, which makes working with lines a lot simpler. (#2481)

  • Changed

    The default username alert now disables the save button when there is no text entered.

  • Fixed

    Fixes an issue where editing checkboxes could set other checkboxes from the group disabled in 3rd-party readers. (#2514)

  • Fixed

    Fixes an regression where modal presentation would not always invoke save. (#2523)

4.3.2 - 12 Mar 2015

  • Changed

    Security: allowCopying on PSPDFDocument is now readonly.

  • Changed

    Adjusts selection to whole words only if needed. (#2505)

  • Changed

    Dashed lines now correctly render the dash line pattern while they are being selected. (#2480)

  • Changed

    Ensures that annotations saved to an external file are also marked as saved in the isDirty flag. (#2408)

  • Fixed

    Fixes a regression that could prevent documents from being set if the PSPDFViewControllerDelegate method isn’t implemented.

  • Fixed

    Fixes a race condition on old iOS devices related to image resizing in the cache. This also removes allowImageResize in PSPDFCache. (Z#625)

4.3.1 - 10 Mar 2015

  • Changed

    Updated for Xcode 6.2 and iOS 8.2.

  • Changed

    Annotate further class headers for nullability.

  • Fixed

    Fixes an issue that could cause an invalid memory access on certain malformed PDF documents (Z#608)

  • Fixed

    Fixes an issue where custom UIActivity subclasses couldn’t be set in PSPDFConfiguration. (Z#562)

  • Fixed

    Fixed an out of bounds exception in cases where the entire annotation group is filtered out due to editable annotation types. (#2485)

4.3.0 - 6 Mar 2015

See the announcement post.

In PSPDFKit 4.3 we focussed on improving our headers with additional documentation and nullability declarations and added many detail improvements touching all parts of the framework. On the feature side, we added a new global back/forward list that greatly improves navigation, especially for large documents. It is a highly recommended update.

  • Changed

    We’ve started to annotate classes with Xcode 6.3’s new nullable attributes, for better interoperability with Swift and more compile-time warnings in ObjC. This is still a work-in-progress and the API might change, as Xcode 6.3 is still in beta, however we also see it as a great improvement to documentation.

  • Changed

    With PSPDFBackForwardActionList there is now a view controller-global back/forward list that allows a more efficient navigation in PDFs. (#744)

  • Changed

    Examples: We added a separate Swift example for Swift 1.2 which is included in Xcode 6.3b2.

  • Changed

    PSPDFGalleryConfiguration now includes a allowPlayingMultipleInstances property to control playback of multiple audio/video files at once. (#2386)

  • Changed

    The play button in the gallery PSPDFMediaPlayerCoverView can now be customized via UIAppearance. (#2411)

  • Changed

    The gallery now uses appearance stream images from Screen/RichMedia annotations if set. (#2400)

  • Changed

    The coverImage parameter for multimedia elements now resolves URLs with custom blocks. (#2409)

  • Changed

    When a video is presented on an external screen, fullscreen is disabled for the gallery item. (#2390)

  • Changed

    Automatically set background to clear for certain gallery types. #(2381)

  • Changed

    Improves the way the gallery handles looping; disables looping for <= 2 items. (#939, #2319)

  • Changed

    Improvements to PSPDFViewState to allow a more accurate state restoration (#101).

  • Changed

    Documents with an invalid internal structure that can’t be correctly rendered no longer throw an exception. (#2294)

  • Changed

    Custom stamp annotations no longer enforce the all-caps rule. (Z#453)

  • Changed

    While the inline search bar is visible, the HUD visibility can no longer be changed. (#2341)

  • Changed

    File names can now be customized via subclassing PSPDFMailCoordinator. See PSPDFKit Catalog for an example. (#2416)

  • Changed

    If Widget is not in editableAnnotationTypes, don’t make a form editable. (#2431)

  • Changed

    Using the autodetectTextLinkTypes data detectors is now much faster for most documents.

  • Changed

    Action objects in many cases now offer an improved description. (#2465)

  • Added

    Adds support for right/center-aligned text field form elements. (#2473)

  • Changed

    The PSPDFAnnotationTableViewController now changes pages via an implicit created PSPDFGoToAction so it’s easy interceptable. (#2463)

  • Changed

    PSPDFWebViewController now lazily creates the bar button items, so they can be accessed before the view is loaded. (#2467)

  • Changed

    Improved the render status indicator to act like a table header, staying visible during zooming. (#2334)

  • Changed

    Improves scrolling in continuous scroll so that a single page doesn’t scroll out of the centered area when manually calling setPage:. (#2295)

  • Changed

    Improves logic where to place the HUD, to make sure it doesn’t overlap with the document. (#2353)

  • Changed

    Improves HUD handling for edge cases where the navigation bar doesn’t match up with the status bar. (#2455)

  • Changed

    Improves keyboard handling for PSPDFNoteAnnotationViewController when using delete and for rotation events. (#2365)

  • Changed

    Improves text extraction engine to deal with more cases of unusual XObject placement. (#2254)

  • Changed

    Improves view controller animations when page curl mode is enabled. (#2336)

  • Changed

    Improves the signing process and compatibility with Adobe Acrobat when a document is signed multiple times. (#2055)

  • Changed

    Improves Form JavaScript validation error message handling. (#2442)

  • Changed

    Improves text parsing speed, especially for documents with deep XObject hierarchies. (#2399)

  • Changed

    Works around an UIKit regression in iOS 8 where rotation callbacks could be send twice when embedded in a split view controller. (rdar://problem/19810773)

  • API

    We moved several class methods/initializers that should not be called by users into private headers to simplify the exposed API.

  • Fixed

    Fixes an issue where checkboxes end up not editable after saving. (#2451)

  • Fixed

    Fixes an issue where the PSPDFBookmarkActivity did not always correctly update the bookmark status. (#2327)

  • Fixed

    Fixes a potential assertion while building the page info cache if pageRange was modified right after triggering caching. (#2424)

  • Fixed

    Fixes an issue where the scrobble bar sometimes didn’t correctly re-bin. (#2425)

  • Fixed

    Fixes an issue where the applicationActivities setting was ignored. (#2401)

  • Fixed

    Fixes a regression related to printing. (#2404)

  • Fixed

    Fixes a regression where changing points in a line annotation would not properly capture state when performing undo. (#2378)

  • Fixed

    Fixes an issue where pushing PSPDFViewController onto navigation stack could show the ‘X’ button instead of the native back one. #(2367)

  • Fixed

    Fixes an issue where the scrollable thumbnail bar would sometimes not re-appear after hiding the HUD. (#2361)

  • Fixed

    Fixes an issue where non-committed annotations don’t get resized/moved correctly when frame changes. (#2068)

  • Fixed

    Fixes a regression in iOS 8 that could cause the render-thread to freeze for certain documents. (Z#452, rdar://problem/19865091)

  • Fixed

    Fixes an issue where setting showColorAndIconOptions late in PSPDFNoteAnnotationViewController could be ignored under iOS 7.

  • Fixed

    Fixes an issue where a checkbox did not toggle like a radio button when configured that way. (#2227)

  • Fixed

    Fixes an issue where the item toolbar button is not correctly positioned in landscape. (#2322)

  • Fixed

    Fixes a potential nullpointer dereference when using the gallery and multiple PSPDFViewController instances. (Z#261)

4.2.2 - 11 Feb 2015

  • Changed

    Improves binning behavior in the scrobble bar for large documents.

  • Fixed

    Fixes an issue where the PSPDFViewController could be leaked when view controller containment was called with an incomplete call order.

  • Fixed

    Fixes a timing-related issue where searching via selected text could leave search results not highlighted initially.

  • Fixed

    Fixes an issue where embedded files were not always correctly previewed.

  • Fixed

    Fixes an issue related to document sharing.

4.2.1 - 10 Feb 2015

  • Changed

    Improves the way we store search text in PSPDFDocumentPickerController.

  • Changed

    Improves tiling for the continuous scrolling mode.

  • Changed

    Improves writing custom appearance streams for form fields when the value is encoded as UTF-16BE.

  • Changed

    Improves the animation when adding/removing highlight annotations.

  • Changed

    Improves audio session management; the code is now smarter when switching sessions is required to minimize background music stops.

  • Changed

    Improves HUD showing/hiding logic when scrollMode is set to page curl.

  • Changed

    Improves selection behavior for callout free text annotations.

  • API

    Changes the options settings in PSPDFDocumentInfoCoordinator to strings to make them simpler to customize.

  • Fixed

    Fixes an issue that could cause some thumbnails to not load in the scrobble bar until the view was rotated under certain rare conditions.

  • Fixed

    Fixes an issue with missing symbols in the OpenSSL-free build.

  • Fixed

    Fixes an issue where some URL actions would not open the inline browser.

  • Fixed

    Fixes an issue where the UIMenuController would ignore taps when the menu was displayed and then reloadData called manually.

  • Changed

    Works around an issue where the framework could trigger objc_trap() in rare occasions. (rdar://problem/19029811)

4.2.0 - 5 Feb 2015

See the announcement post.

We’re proud to release PSPDFKit 4.2, which is the result of more than 2 months of hard work. Highlights are the new text editing toolbars, support for secure libraries via SQLCipher and a resizable inspector on iPhone. The gallery learned how to deal with web content and we now use the modern WKWebView internally whenever possible and is a lot faster for pages with many multimedia views.

  • Changed

    Greatly improved handling for free text annotations with a new editing toolbar for both iPhone and iPad.

  • Changed

    The half modal inspector on iPhone is now resizable and automatically adapts to the required content size.

  • Added

    Adds support for SQLCipher to have optionally encrypted search indexes with PSPDFLibrary.

  • Changed

    The gallery can now deal with web content, replacing the PSPDFWebAnnotationView.

  • Changed

    The gallery subsystem is now a lot more efficient, especially noticeable in cases where pages have > 10 different video/audio views (minor API changes due to the performance improvements)

  • Changed

    PSPDFWebViewController now uses WKWebView by default, increasing browsing performance and scrolling speed.

  • Changed

    The completion block for popover dismissal is now invoked after the popover is completely dismissed when animated is set to YES.

  • Changed

    Security: Password protected documents now automatically disable the disk cache.

  • Changed

    Natural drawings can now be exported/imported via XFDF.

  • Changed

    Various improvements to annotation resizing.

  • Changed

    Text field form elements that are configured as multi-line elements with auto-sized font are now better handled.

  • Changed

    The Edit/Clear All buttons in the PSPDFAnnotationTableViewController are now hidden if there are no types set in `editableAnnotationTypes.

  • Changed

    Sound annotations are now paused when the page is changed.

  • Changed

    Sound annotations are now rendered into the thumbnail view.

  • Changed

    The animation to toggle between thumbnails and the full page view now smoothly fades content and no longer blocks the UI while animating.

  • Changed

    Performance improvements for documents with complex or deep form annotation trees.

  • Changed

    Improves search preview to deal with content that has many newlines.

  • Changed

    The editor for choice form fields no longer shows the form element title.

  • Changed

    The PSPDFOutlineViewController now better deals with long page labels and will correctly calculate the height to show them completely.

  • Added

    Adds XFDF serialization/deserialization support for PSPDFEmbeddedGoToAction.

  • Changed

    Updates the JotTouchSDK driver to 2.6.4 and fixes an issue with flipped touch points.

  • Changed

    Ignore annotation types in the long tap menu that are set in createAnnotationMenuGroups but are not set in editableAnnotationTypes.

  • Changed

    Various improvements and enhanced support for JavaScript actions and events.

  • Changed

    Improves “Sign” arrow rendering for very small form elements.

  • Changed

    Improves scrobble bar touch handling for certain cases when in double page mode.

  • Changed

    Various cleanups and modernization for the PSPDFCache subsystem.

  • Changed

    Rotating while drawing now correctly animates unsaved shapes as well.

  • Changed

    Improved behavior of the “sticky header” thumbnail layout mode and greatly improves performance for large documents.

  • Changed

    Closing a tab in PSPDFTabbedViewController now autosaves the document. (if the autosave configuration is enabled)

  • Changed

    Exposes a new updateAnnotationSelectionView subclassing hook in PSPDFPageView to customize the innerEdgeInsets of the annotation selection view.

  • Changed

    Various improvements in how the HUD handles the showing/hiding animation of the UINavigationBar.

  • Changed

    Images embedded in PDFs now have a slightly higher default JPG compression to reduce file size.

  • Changed

    Selecting stamp annotations now requires less memory and is more performant, especially on high zoom scales.

  • API

    All PSPDFBarButtonItem classes have been replaced by plain bar buttons. There is a new PSPDFDocumentActionExecutor and various coordinators (e.g. PSPDFMailCoordinator) which better replace this functionality + allow you to call such actions without a PSPDFViewController around. Settings (applicationActivities, printSharingOptions, …) have been moved to PSPDFConfiguration.

  • API

    Removed PSPDFMinimumSearchLength. The default is now always one character to provide instant feedback and better support CJK languages.

  • API

    PSPDFHUDView now exposes new insets for child views: pageLabelInsets, documentLabelInsets, thumbnailBarInsets and scrobbleBarInsets. This supersedes and replaces the more inflexible pageLabelDistance and documentLabelDistance.

  • API

    Renamed PSPDFSecurityAuditor to PSPDFApplicationPolicy.

  • API

    Moves centerRenderStatusView from PSPDFPageView to renderStatusViewPosition in PSPDFConfiguration.

  • API

    PSPDFFormSubmissionDelegate now returns the PSPDFFormSubmissionController as first parameter instead of the PSPDFViewController.

  • API

    PSPDFThumbnailViewFilter has been changed from an enum to strings, to make it both simpler to configure and easier to extend with custom filters.

  • API

    PSPDFThumbnailViewController has been modernized; properties have been moved to either PSPDFConfiguration or simply edit the layout directly.

  • API

    Exposes various new subclassing hooks.

  • Changed

    Works around an UIKit issue where accessing popoverPresentationController could lead to a retain cycle. (rdar://problem/19167124)

  • Changed

    Works around an UIKit regression in iOS 8 related to the status bar and presenting UIImagePickerController in a popover. (rdar://problem/19079532)

  • Changed

    Works around an UIKit regression in iOS 8 where preferredInterfaceOrientationForPresentation was not honored under certain conditions. (rdar://problem/19096083)

  • Changed

    Works around an UIKit regression in iOS 8 where the autocorrect selection didn’t properly update when scrolling (rdar://problem/19564341)

  • Changed

    Works around an UIKit regression in iOS 8 where a particular combination of popovers and table view cells could lead to a layout loop (rdar://problem/19556505)

  • Changed

    Works around an UIKit regression in iOS 8 where setting preferredContentSize doesn’t always correctly update the size if navigationBarHidden changes. (rdar://problem/19175472)

  • Changed

    Works around an UIKit regression in iOS 8 where rotation settings are not always recognized with multiple windows. (rdar://problem/19592583)

  • Changed

    Works around an UIKit issue related to non-integral contentInset that led to gesture recognizer failures on the iPhone 6+.

  • Fixed

    Fixes a potential race condition when creating annotations that could lead to an object over-release in custom annotation providers.

  • Fixed

    Fixes an issue where inline search would find text within a note and open the popover, but not close it when jumping to the next result.

  • Fixed

    Fixes an issue where search highlights sometimes did not animate correctly in iOS 8.

  • Fixed

    Fixes an issue where the (annotation) menu was not displayed when a popover was visible in iOS 8.

  • Fixed

    Fixes an issue where calling search with a nil string would cause an exception.

  • Fixed

    Fixes an issue related to overriding firstObject via a category and our detection/repair attempt. This now works when symbols are stripped as well.

  • Fixed

    Fixes an issue where a malformed PDF date string could cause an assertion while parsing.

  • Fixed

    Fixes an issue where shadowOpacity in PSPDFConfiguration could be ignored in some cases.

  • Fixed

    Fixes an issue where parsing extended text style attributes didn’t work with font names with spaces.

  • Fixed

    Fixes an issue that prevented entering Japanese or using the auto correct feature within the free text annotation text view.

  • Fixed

    Fixes a rare issue that could save sound annotations in a way not compatible with Adobe Acrobat.

  • Fixed

    Fixes an issue where choosing erase mode, then switching pages could result in a different draw color than what was selected.

  • Fixed

    Fixes an issue where the first digital signature was rendered invalid by Adobe Acrobat when the document was signed a second time.

4.1.2 - 23 Nov 2014

  • Changed

    Improves performance for documents with a large number of annotations by moving more work to background threads.

  • Changed

    Introduces a new textSelectionMode and an optional textSelectionShouldSnapToWords to better customize the text selection behavior.

  • Changed

    Improves various edge cases on type image preview in the annotation view controller.

  • Changed

    Exposes the stylus manager in the PSPDFKit shared object.

  • Changed

    Hook up all significant places that access network for the new PSPDFNetworkActivityIndicatorManager.

  • Changed

    Improves drawing view transform handling for certain edge cases.

  • Changed

    Improves zooming performance when annotations are selected.

  • Changed

    Various improvements to the natural drawing path generation and bounding box algorithm.

  • Changed

    Improves the animation when the view controller is popped but the annotation toolbar is still visible.

  • Changed

    Improves tab bar placement in PSPDFTabbedViewController when the navigation bar has a custom image set via UIAppearance.

  • Changed

    Works around a runtime issue when using weakly referenced objects during dealloc. (rdar://problem/19029811)

  • Changed

    Works around an UIKit issue with presenting an UIAlertController while a popover is dismissed. (rdar://problem/19045528)

  • Changed

    Works around an UIKit regression where automaticallyAdjustsScrollViewInsets doesn’t always work on iOS 8. (rdar://problem/19053416)

  • Changed

    Works around an UIKit regression where dismissing a popover with a double-tap could also dismiss the modal parent on iOS 8. (rdar://problem/19067761)

  • Fixed

    Fixes an edge case where the gallery could display wrong content during paging.

  • Fixed

    Fixes an issue with changing choice form elements values on iPhone.

  • Fixed

    Fixes an issue where indexing single-page documents could have reported an invalid status.

  • Fixed

    Fixes an issue where changing the filter on the thumbnails with sticky header enabled would not reset the view port on iOS 8.

  • Fixed

    Fixes an issue where a selected annotation could end up slightly blurry when zoomed in due to an incorrectly set contentScale.

  • Fixed

    Fixes an issue where annotations loaded from XFDF could trigger an assertion.

4.1.1 - 11 Nov 2014

  • API

    Removes PSPDFAlertView and PSPDFActionSheet. If you used them, get a local copy here: https://github.com/steipete/PSAlertView We’re now using a new wrapper to unify these and UIAlertController, and also made it open source! https://github.com/steipete/PSTAlertController

  • API

    Various smaller updates and refinements, including a new network activity manager.

  • Changed

    Improves ink signature handling and saving, especially when natural drawing is enabled or pages are rotated.

  • Changed

    Improves bundle image loading code to better deal with situations where the bundle is in unusual places; improves compatibility with Extensions.

  • Changed

    The loop setting in the gallery is now also propagated if the gallery is already loaded.

  • Changed

    Annotations and Form Elements can now be found and read using UIAccessibility.

  • Changed

    Better detection for invalid 3rd-party code that overrides Apple methods with different behavior.

  • Changed

    Improves aspect ratio correct resizing when an additional margin for annotations is configured.

  • Changed

    Slightly updates the note icons to better match with the rest of the annotation icon set.

  • Changed

    Signatures in the keychain store now are strongly validated and empty signatures are thrown away on load.

  • Changed

    Works around an UIKit regression in iOS 8.1 where a new window incorrectly rotated. This affected the fullscreen view of the gallery. (rdar://problem/18906964)

  • Changed

    Works around an UIKit bug where an action sheet would not show up in iOS 8, instead showing constraint errors. (rdar://problem/18921595)

  • Changed

    Works around a problem where the Swift compiler can’t parse headers with strongly retained dispatch objects. (radar pending)

  • Fixed

    Fixes an issue where Open In… could take very long or completely get stuck when form elements were saved.

  • Fixed

    Fixes an assertion (UID nil) when the last tab in the tabbed controller was removed.

  • Fixed

    Fixes a potential crash when using accessibility to read the contents of the PDF.

4.1.0 - 5 Nov 2014

See the announcement post.

PSPDFKit now requires Xcode 6.1 with SDK 8.1. (iOS 7.0 is still supported)

If you use HockeyApp, Crashlytics or a similar crash reporting tool, we would love to hear from you. We’re working hard to further reduce our already very low issue rate and appreciate your feedback. (support+crashreports@pspdfkit.com)

PSPDFKit will now assert if you change annotation properties on threads other than the main thread. This behavior was unsupported before and was a cause for issues that were very hard to track down. Read more about the annotation object model at https://github.com/PSPDFKit/PSPDFKit-Demo/wiki/The-annotation-object-model.

  • Changed

    Natural Drawing! You’ll love this new default. Your drawings will look much more realistic, and are still fully backwards compatible to 3rd-party apps.

  • Changed

    Various optimizations and improvements for iOS 8.1

  • API

    PSPDFSpeechSynthesizer has been renamed to PSPDFSpeechController.

  • API

    PSPDFActivityBarButtonItem now forwards the iOS 8-style completionHandler.

  • API

    wantsSelectionBorder is now an instance method to customize this per object.

  • API

    The PSPDFPresentationStylePopover has been removed in favor of the iOS 8 variant UIModalPresentationPopover.

  • API

    The interface around PSPDFStream and PSPDFStampAnnotation has been modernized.

  • API

    The PSPDFSignatureStore is now a protocol with a default implementation that can be changed via configuring PSPDFConfiguration.

  • API

    Various annotation classes have gained a convenience initializer.

  • API

    The gallery is now configurable via PSPDFGalleryConfiguration in PSPDFConfiguration.

  • API

    Various annotation enum values now have appropriate transformer objects for better JSON export. (PSPDFBorderStyleTransformerName, PSPDFBorderEffectTransformerName, PSPDFFreeTextAnnotationIntentTransformerName)

  • API

    Many singletons have been moved to the global PSPDFKit object and various smaller class refinements.

  • Changed

    Writing documents now uses NSFileCoordinator for better compatibility with iCloud Drive and Extensions.

  • Changed

    If the size class on iOS 8 is UIUserInterfaceSizeClassCompact, the status bar will now be hidden.

  • Changed

    The inline search manager now automatically focuses the first search result.

  • Changed

    The inline search manager now shows the current search status with a slight delay to be more visually pleasing.

  • Changed

    Absolute paths, while discouraged, are now properly detected in the gallery on iOS 8.

  • Changed

    The gallery now automatically resolves URL endpoints that have no pre-set type. (video/image/etc)

  • Changed

    Makes sure the PSPDFViewController always correctly reloads, even when the document is changed while the controller is off-screen.

  • Changed

    Various stylus drivers have been updated to be compatible with their API changes.

  • Changed

    Search previews generated via PSPDFLibrary now also support text containing diacritics.

  • Added

    Adds support for bended arrows created in Yosemite’s Preview.app.

  • Changed

    Public C functions are now wrapped so they don’t get name mangled if ObjC++ is used.

  • Changed

    The annotation user name is now requested as soon as a annotation style mode is entered, not when the annotation is committed.

  • Changed

    The interactive pop gesture is now disabled when the HUD is hidden to not accidentally invoke it during scrolling.

  • Changed

    Improves robustness when PSPDFLibrary is called from multiple threads.

  • Changed

    Improves reliability of sound annotations, especially on iOS 8 and 64 bit.

  • Changed

    Improves code paths around setting a default line width when a border is set.

  • Changed

    Improves compatibility with a certain set of annotations with appearance streams that uses custom transforms.

  • Changed

    Improves reported frame when calling the shouldShowMenuItems: delegate in annotation sub-menus. (e.g. Highlight->Color)

  • Changed

    Improves menu placement for annotations that can’t be resized or moved.

  • Changed

    Improves gallery error handling while the manifest is loaded.

  • Changed

    Various improvements and better error detection/logging for the digital signing process.

  • Changed

    Reduces memory pressure for older devices such as the iPad 2, the iPhone 4S and older iPod Touch devices.

  • Changed

    The creationDate is now set for new user-created annotations and lastModified is updated on every change.

  • Changed

    The text editing for bookmark names is now committed before a cell reorder is started, to ensure the changed text gets saved to the correct item.

  • Changed

    When the device switches to single/double page mode due to rotation, we now will restore the last page instead of the left page from the double page mode.

  • Changed

    Ensures all popover dismissal code paths go through the workaround for rdar://problem/18500786 on iOS 8.

  • Changed

    Complex ink annotations are now processed much faster.

  • Changed

    The move button no longer overlaps the signature display in the PSPDFSignatureSelectorViewController.

  • Changed

    Ensures the signature creation buttons in PSPDFSignatureViewController are pixel-aligned.

  • Changed

    Various improvements to digital signature handling. PSPDFPKCS12Signer now exposes signFormElement for non-interactive signing.

  • Changed

    Various functional and performance improvements when parsing forms with JavaScript.

  • Changed

    PSPDFKit now uses various iOS 8 QoS classes where appropriate to better deal with important/background related tasks.

  • Changed

    Updates OpenSSL to 1.0.1j and SQLite to 3.8.7.1 (optional)

  • Changed

    Works around a potential deadlock in the Apple PDF renderer when called during the application did load event. (rdar://problem/18778790)

  • Changed

    Works around an issue where UIDocumentInteractionController sometimes would print extremely long log statements (rdar://problem/18568591)

  • Fixed

    Fixes an issue with certain missing headers in the OpenSSL-free build.

  • Fixed

    Fixes an issue where drawings created during one operation in multiple pages could be collected to a single page on commit.

  • Fixed

    Fixes a small UI issue where on iOS 8 the current page of the color inspector could be wrong.

  • Fixed

    Fixes a set of crashes that could happen on more complex views when they were laid out with a CGRectNull.

  • Fixed

    Fixes an issue when the activeFilter of the PSPDFThumbnailViewController` is set manually.

  • Fixed

    Fixes a potential deadlock when PSPDFPerformBlockWithoutUndo was used manually in a large-scale way.

  • Fixed

    Fixes an issue related to the pageRange feature and HUD scrollable thumbnail updating.

  • Fixed

    Fixes a potential stack overflow if extremely complex PDF forms were saved using NSCoder.

  • Fixed

    Fixes an issue where tapping the annotation button quickly could result in an incorrect selection.

  • Changed

    Many of the more obscure bugs and crashes have been squashed.

  • Changed

    Various localization updates and improvements. PSPDFKit now uses the stringsdict file format to define language plural rules.

4.0.3 - 3 Oct 2014

  • Added

    Add API on PSPDFViewController to check if a search is running isSearchActive and to cancel a running search cancelSearchAnimated:.

  • Changed

    Improves various animation effects under iOS 8.

  • Changed

    Updates the optional SQLite library to 3.8.6.

  • Changed

    Reduced the default speak rate in PSPDFSpeechSynthesizer from fast to normal.

  • Changed

    Enables many new warnings to improve code quality and keeps our headers warning free in -Weverything environments.

  • Added

    Adds support for loading the PSPDFKit.bundle from unusual locations which improves compatibility with dynamic frameworks.

  • Changed

    Improves annotation moving/resizing logic to be more pixel accurate.

  • Changed

    The PSPDFInlineSearchManager instance is now exposed inside the PSPDFViewController, when used.

  • Changed

    The PSPDFViewController now shows page labels if set for search results cells.

  • Changed

    The play button in the gallery component will no longer zoom in but always stay at the optimal size.

  • Changed

    PSPDFKit now emits a log warning if UIViewControllerBasedStatusBarAppearance is set to NO.

  • Changed

    PSPDFKit will now assert if the license is set on a background thread. This is a very fast operation and needs to be done on the main thread.

  • Changed

    PSPDFEraseOverlayLayer has been refactored to PSPDFEraseOverlay to allow property customization via UIAppearance.

  • Changed

    The navigation bar will no longer be modified if PSPDFKit is embedded via child view controller containment and useParentNavigationBar is set to NO.

  • Changed

    Free text annotations are now always rendered aspect ratio correct.

  • Changed

    Various improvements to the undo/redo feature.

  • Changed

    Trying to show the print or open in sheet now no longer throws a popover exception if the PSPDFViewController is not visible.

  • Changed

    Works around a regression in iOS 8.1b1 related to UIAppearance with (rdar://problem/18501844)

  • Changed

    Works around a regression in iOS 8 where dismissing a popover controller could result in accessing a deallocated object on iOS 8. (rdar://problem/18500786)

  • Changed

    Works around a regression in iOS 8 where dismissing a popover could dismiss the parent modal controller. (rdar://problem/18512973)

  • Changed

    Works around an issue where UIKit throws an unexpected exception when accessing the image in the general pasteboard. (rdar://problem/18537933)

  • Changed

    Works around an issue where UIKit forwards _UIPhysicalButton objects when we expect UITouch objects. (rdar://problem/18537814)

  • Fixed

    Fixes an issue with a non-standard-conforming PDF not defining “Subtype” in the font dictionary.

  • Fixed

    Fixes an issue where the PSPDFPopoverController could be presented rotated on landscape under iOS 8.

  • Fixed

    Fixes an issue that would indicate “No page text” on the whole document after a search if the last document page contained no text.

  • Fixed

    Fixes an issue where in some cases RichMedia/Screen annotation video content was cached but not re-fetched if the cache was deleted by the system.

4.0.2 - 26 Sep 2014

  • Changed

    The UID generation in PSPDFDocument now works better with new app container locations in iOS 8. (See https://developer.apple.com/library/ios/technotes/tn2406/_index.html)

  • Changed

    Improves video scrubbing behavior and the animation when the gallery is displayed in fullscreen.

  • Changed

    FreeText Callout annotations now support dashed borders and better deal with different border/text colors.

  • Changed

    Various smaller improvements related to the HUD visibility and thumbnail grid on the iPhone 6 Plus.

  • Changed

    License is now validated later to allow setting the PSPDFViewController via Storyboards.

  • Changed

    Improvements to the search animation in PSPDFOutlineViewController.

  • Changed

    Digital Signatures now support up to 10k of payload data.

  • Changed

    Works around an issue with extremely large image tiling on 64-bit devices.

  • API

    Rename searchStyle to searchMode to keep it consistent with the enum name.

  • API

    searchForString:options:animated: in PSPDFViewController now has an additional sender parameter to control popover placement.

  • Fixed

    Fixes an issue where fitToWidth didn’t work as expected.

  • Fixed

    Fixes an issue where the software brightness dimming would not fill the whole screen on iOS 8 in landscape.

  • Fixed

    Fixes an issue where the stylus selection controller would hide other stylus options after one stylus has been chosen.

  • Fixed

    Fixes a small issue with calculating the content scroll view offset.

  • Fixed

    Fixes an issue where reordering apps in the “Open In” menu did not work. (iOS 8 only)

  • Fixed

    Fixes an issue where the actions in the moreBarButtonItem sometimes wouldn’t invoke under iOS 8 because they were committed while the action sheet was still dismissing.

  • Fixed

    Fixes an array overflow issue when a certain (corrupt) PDF was parsed.

4.0.1 - 23 Sep 2014

  • Changed

    Various improvements to the PSPDFKit Catalog examples.

  • Changed

    The PSPDFSearchViewController now always remembers the last used search string.

  • Fixed

    Fixes a minor rendering artifact on the iPhone 6 Plus.

  • Fixed

    Fixes an issue in the gallery image tiler that is specific to the iPhone 6.

  • Fixed

    Fixes an issue with detecting gallery URLs that are scaled (@2x, @3x)

  • Fixed

    Fixes an issue with link annotation options that contain a URL parsed from an XFDF.

4.0.0 - 22 Sep 2014

See the announcement post.

PSPDFKit 4 is a major new release. Please study the migration guide: https://github.com/PSPDFKit/PSPDFKit-Demo/wiki/PSPDFKit-4.0-Migration-Guide

Important: For your own security, invalid licenses now abort the app immediately, instead of silently showing a watermark. PSPDFKit now requires a demo license for evaluation in your own app. Download it from the website and we’ll automatically deliver the demo key via email.

Core Viewer:

  • Changed

    PSPDFKit 4 is now fully compatible with iOS 8 and requires Xcode 6 with SDK 8.

  • Changed

    Resources and loading support for @3x resources required for the iPhone 6 Plus have been added and various image resources have been refreshed for iOS 8.

  • Changed

    The binary ships with armv7, arm64, i386 and x86_64. Following Apple’s new defaults, we removed the slice for armv7s (which brought little benefits anyway).

  • Changed

    All headers have been updated to use Modules for faster compile times.

  • Changed

    Several properties that were no longer in line with iOS 7 have been removed: tintColor, shouldTintPopovers and minLeft/RightToolbarWidth. Use UIAppearance to customize colors and tint throughout PSPDFKit instead.

  • Added

    Adds a new shouldHideStatusBar property to globally control the status bar setting from the PSPDFViewController.

  • Changed

    We no longer support the legacy UIViewControllerBasedStatusBarAppearance setting. Use view controller based status bar appearance.

  • Changed

    The PSPDFViewController is now configured via an immutable PSPDFConfiguration object. See the migration guide for details.

  • Changed

    Clear the web view state between PSPDFWebAnnotationView reuse.

  • Changed

    Many classes, including PSPDFTabBarButton and PSPDFScrobbleBar have been enabled for UIAppearance.

  • Changed

    Greatly improved and faster JavaScript Form support, using JavaScriptCore instead of UIWebView.

  • Changed

    The embedded PSPDFWebViewController now uses the faster WKWebView when available on iOS 8.

  • Changed

    Various improvements to the caching and rendering infrastructure. The limitation for super long/wide PDFs has been removed. PSPDFKit can now render documents no matter how long they are - we tested documents up to 5000px long/500px wide.

  • Changed

    The thumbnail bar and the thumbnail controller now support a new layout that will group pages together for double-page layouts. (see thumbnailGrouping)

  • Changed

    Many improvements to the multimedia gallery (PSPDFGallery), including better fullscreen-support and error handling.

  • Changed

    PSPDFAESDecryptor now checks the HMAC for additional security.

  • Changed

    The PSPDFAESCryptoDataProvider now returns an autoreleased object when accessing dataProvider.

  • Changed

    Open/Close page triggers are now supported (see PSPDFPageInfo).

  • Changed

    The new PSPDFMessageBarButtonItem allows sharing content via iMessage/SMS.

  • Changed

    Various UI widgets now better deal with keyboards that change the frame after being displayed (especially relevant for iOS 8)

  • Changed

    Annotation action URL parsing is now smarter and will trim the string and replaces inline spaces with %20, instead of just filtering them all.

  • Added

    Adds various view optimizations that lead to faster page display and less internal reloads.

  • Changed

    Color/Text attributes for outlines are now supported and parsed in PSPDFOutline and properly displayed in PSPDFOutlineViewController.

  • Changed

    Form text is now always auto-sized to match Adobe Acrobat’s behavior.

  • Changed

    Thew new, faster UIVisualEffectsView is used for blur whenever available on iOS 8.

  • Changed

    OpenSSL has been updated to OpenSSL 1.0.1i.

  • API

    Various keys for PSPDFObjects* have been renamed and are now better organized.

  • API

    Pushing view controllers via presentModalOrInPopover:embeddedInNavigationController:withCloseButton:animated:sender:options: has been improved and renamed. The new method is called presentViewController:options:animated:sender:completion:.

  • API

    PSPDFImageInfo is now immutable and works correctly when the PSPDFDocument contains multiple PSPDFDocumentProvider objects.

  • API

    PSPDFAction now resolves named destinations and page labels via localizedDescriptionWithDocumentProvider:.

  • API

    PSPDFLabelParser interface has been simplified and this object can now be created with a predefined set of labels.

  • Fixed

    Fixes an issue where the modal search controller could place itself above the status bar on iPhone.

Indexed Full-Text-Search:

  • Changed

    PSPDFLibrary can now preview text based on the FTS index.

  • Fixed

    Fixes a potential threading issue when indexes were added/removed quickly from the PSPDFLibrary.

Annotations and Digital Signatures:

  • Changed

    Annotation hit testing now works on paths directly, which allows better selection in cases where multiple annotations are overlaid.

  • Changed

    The first time an annotation is created by the user, we now ask for the user name and also offer a sensible default based on the device name.

  • Changed

    The drawing eraser has been completely redesigned. Erasing and drawing is now a lot faster and features such as the eraser top of the FiftyThree Pencil are fully supported without exiting draw mode.

  • Changed

    The old PSPDFAnnotationToolbar has been fully replaced by the PSPDFFlexibleAnnotationToolbar introduced in 3.6, and thus renamed back to PSPDFAnnotationToolbar.

  • Changed

    Cloud annotation borders are now fully supported.

  • Changed

    Callout FreeText annotations can be parsed and edited.

  • Changed

    Rich Media and Screen annotations are now lazily evaluated, improving general parsing speed.

  • Added

    Add support for various Rich Media Activation Context settings. (autostart)

  • Changed

    PSPDFURLConnection has been replaced in favor of vanilla NSURLSession objects, which the additional benefit that remote content supporting SPDY will now load faster on iOS 8.

  • Changed

    When fetching annotations via the document object finder, we now optionally support annotation grouping via the PSPDFObjectsAnnotationIncludedGroupedKey key.

  • Changed

    Improved the signing architecture to allow signing using PKI hardware and remove signatures.

  • Changed

    Annotation selection handling has been greatly improved and now uses a customizable margin for easier handling.

  • Changed

    Annotations now have a common fontAttributes property that allows any key/value pair that NSAttributedString understands - so free text and forms can be customized even further. (Note: Not all values can be exported)

  • Changed

    Free Text annotation handling now understands more PDF-based properties and will render more accurate.

  • Changed

    Many improvements to stylus management and driver handling, especially for FiftyThree’s Pencil.

  • Changed

    PSPDFKit’s model objects now mostly comply to NSSecureCoding.

  • Changed

    The inspector has been modernized and offers a better display for poly/line and free text annotations.

  • Changed

    Appearance stream parsing support has been improved.

  • Changed

    The password view has been completely redesigned to fit into iOS 7 and 8.

  • Changed

    The PSPDFSignatureViewController has been completely redesigned and now supports color selection during signing.

  • Changed

    PSPDFViewController now fully respects isAutosaveEnabled and will no longer save the document on view did appear when this is set to NO.

  • Changed

    PSPDFFontDescriptor has been removed in favor of the new UIFontDescriptor introduced in iOS 7.

  • Changed

    Various code is now faster thanks to the toll-free-bridging of UIFont and CTFontRef.

  • Changed

    Support for the old, legacy PSPDFKit 2 annotation save format has been removed.

  • Changed

    Image annotations now have better support for EXIF rotations when clipped via the internal editor.

  • Fixed

    Fixes an issue where the inspector could re-use the wrong cells and mixing up sliders or other control items.

  • Fixed

    Fixes an issue that would sometimes not allow to draw at the very borders of the screen on iPhone.

  • Fixed

    Fixes an issue where the annotation menu would not show up after scrolling the page.

  • Fixed

    Fixes an issue with very large animated gifs.

  • Changed

    Includes all bug fixes and improvements made in the PSPDFKit 3.7.x branch.

  • Fixed

    Fixes an issue related to search highlighting and annotation moving. The highlights are now cleared before objects can be moved.

  • Fixed

    Fixes an issue where the popover wasn’t correctly moved when a new PSPDFNoteAnnotation is created via the PSPDFNoteAnnotationViewController.

3.7.14 - 16 Sep 2014

PSPDFKit 4.0 will be released on Monday, September 22, 2014 with full support for Xcode 6 with iOS 8 while also supporting iOS 7. The PSPDFKit 3.7.x branch will remain compatible with Xcode 5.1.1 and iOS 6+.

  • Fixed

    Fixes an issue where the Camera/Image Picker UI sometimes wouldn’t show up on iPad/iOS 8.

3.7.13 - 11 Sep 2014

  • Changed

    Works around a rare PDF rendering crash in iOS 8.

  • Changed

    Using fillColor on PSPDFButtonFormElement now respects the alpha property.

  • Fixed

    Fixes an issue in the text extraction logic when converting the contents of glyphs from unknown/not loadable fonts.

  • Fixed

    Fixes an issue where entering erase mode could hide the annotation toolbar.

  • Fixed

    Fixes an issue where the progress HUD would sometimes not correctly reposition when the keyboard appears in landscape.

  • Fixed

    Fixes an issue where the note annotation popover could become visible when deleting multiple annotations (including a note) at the same time.

  • Fixed

    Fixes an issue where the signature view controller failed to display on iPhone/iOS 8.

3.7.12 - 1 Sep 2014

  • Changed

    The predefined stamps now use the system locale instead of en_US.

  • Fixed

    Fixes an issue where the scrollable thumbnail bar could get into a state where it is not correctly displayed.

  • Fixed

    Fixes an issue with creating custom stamp annotations on iPad.

  • Fixed

    Fixes an issue with writing annotations into files that have unusual and non-standard compliant object headers.

  • Fixed

    Fixes a caching issue with extremely long file names.

3.7.11 - 20 Aug 2014

  • Changed

    Improves user name guessing for the annotation creation user.

  • Fixed

    Fixes an issue where saving notes multiple times within the same session could cause a duplication.

  • Fixed

    Fixes an issue with handling umlauts during a save in certain text field form elements.

  • Fixed

    Fixes a minor logging issue where in rare cases NSScanner could complain about nil string arguments.

3.7.10 - 17 Aug 2014

  • Changed

    Rendering the audio annotation preview no longer pauses background music.

  • Changed

    Makes sure the signature image in the signature view controller is the same regardless of the device orientation.

  • Fixed

    Fixes an issue with rendering right-aligned free text annotations in too small bounding boxes.

  • Fixed

    Fixes a few minor issues when exporting/importing from/to XFDF for stamp and ink annotations.

  • Fixed

    Fixes an issue where alert view actions could be executed twice under iOS 8.

3.7.9 - 6 Aug 2014

  • Fixed

    Fixes handling of nested form check boxes that are used as radio boxes.

  • Fixed

    Fixes an issue that could truncate text from a choice form element.

  • Fixed

    Fixes a rare UI issue with duplicated ink elements during erasing.

  • Fixed

    Fixes an issue where in landscape the keyboard could appear unexpectedly when using radio button form elements.

  • Fixed

    Fixes an issue where the page indicator in the scrobble bar sometimes was not correctly updated.

  • Fixed

    Fixes an issue on iOS 6 when showing the signature selector view controller.

3.7.8 - 1 Aug 2014

  • Changed

    Popup annotations, when written, now by default have the same bounding box as the parent annotation.

  • Changed

    Improves handling of link annotations with an empty URL.

  • Changed

    Continuous scroll mode now chooses the current pages based on the largest visible page, not the first visible page.

  • Changed

    Path resolving now also resolves “Caches” instead of just “Cache”.

  • Changed

    Improves protection against manually calling commonInitWithDocument:.

  • Changed

    Improves placement of free text annotations that are close to the right page border.

  • API

    The interface for the PSPDFXFDFAnnotationProvider changed to reflect the possibility of stream recreation. Instead of setting the inputStream and outputStream directly, use createInputStreamBlock and createOutputStreamBlock.

  • Fixed

    Fixes a UI issue where the separators for the signature chooser could end up not visible on iOS 7.

  • Fixed

    Fixes an issue where cropping images could end up in black bars on parts of the image.

  • Fixed

    Fixes an issue where the text selection knobs could be slightly offset after a device rotation.

  • Fixed

    Fixes an issue with the fullscreen gallery transition on an iPhone.

  • Fixed

    Fixes a rare condition where a selected annotation would not hide the un-selected one, leaving two copies on the screen until the page changed.

  • Fixed

    Fixes a race condition that could result in rendering issues for form objects with auto-resizing text.

  • Fixed

    Fixes an issue where PSPDFKit would print a warning for KVO’ing weak properties that was not actually declared as weak.

  • Fixed

    Fixes an issue where the scrobble bar would not properly update itself after a rotation change.

3.7.7 - 21 Jul 2014

  • Changed

    Videos in the gallery are now reset if they are played till the end and the page changes.

  • Changed

    The ‘hidden’ flag for annotation objects is now also honored for the gallery. (including audio)

  • Fixed

    Fixes an issue when the device is being rotated while in erase mode.

  • Fixed

    Fixes an issue where the pen tool can’t draw up to the edge for certain configurations on an iPhone.

  • Fixed

    Fixes an issue where quickly destroying/recreating libraries for indexed search could result in partial indexes.

  • Fixed

    Fixes an issue in PSPDFResizableView related to unusual view controller configurations where the view could overlap the parent view and subsequently no longer correctly responding to touch events.

  • Fixed

    Fixes an issue related to rotation when the gallery is moved to fullscreen from within a popover.

  • Fixed

    Fixes an issue where missing fields in the digital signature validation code could result in a (null) output.

  • Fixed

    Fixes an issue related to multiple saving via the same XFDF annotation provider.

  • Fixed

    Fixes an issue related to early-reloading of the thumbnail bar that could result in missing bar button items for special configurations.

  • Fixed

    Fixes an issue where the navigation bar could disappear after the annotation toolbar has been moved to a different position.

3.7.6 - 4 Jul 2014

  • Changed

    Simplifies usage of PSPDFMediaPlayerCoverModeClear in the gallery.

  • Changed

    Updates the Vimeo integration to use the new API endpoint.

  • Changed

    Improves efficiency and memory usage for parsing large outlines with invalid named destination tables.

  • Changed

    When using the text selection tool, we want to make sure no annotation is selected anymore.

  • Changed

    The state of the PSPDFWebAnnotationView is now cleared upon reuse to prevent flashes of previous used content.

  • Fixed

    Fixes an issue related to the scrobble bar and PSPDFThumbnailBarModeScrollable on iOS 6.

  • Fixed

    Fixes a potential issue where the HUD layout code could loop.

  • Fixed

    Fixes a potential crash related to the Wacom stylus driver.

3.7.5 - 16 Jun 2014

  • Added

    New Localizations: Indonesian, Malaysian, Polish, Chinese Traditional, Thai, Turkish and Ukrainian.

  • Changed

    Updates the WACOM stylus driver to no longer eagerly initialize, which could present a bluetooth disabled alert view.

  • Changed

    Annotations added to a PSPDFDocument programmatically now always get the isDirty flag set to ensure that they are being saved.

  • Changed

    PSPDFResizableView now correctly deals with UIAppearance and makes it easier to customize individual knobs. See PSCCustomSelectionKnobsExample for details.

  • Added

    Adds resilience / asserts form missing views in unusual (child view controller) configurations for the annotation toolbar.

  • Changed

    Improved JavaScript-calculation-support, adds AFMakeNumber to the list of supported JS functions and improves hide action annotation resolving.

  • Changed

    Improves compatibility to parse image stamps from 3rd-party software.

  • Changed

    Outlines where the page reference is missing are now displayed to be consistent with Adobe Acrobat.

  • Changed

    PSPDFLibrary learned exact sentence matching via the PSPDFLibraryMatchExactPhrasesOnlyKey option.

  • Changed

    Improves support for named hide actions that are bound to form elements.

  • Changed

    Allow to hook into PSPDFMenuItem action for analytics.

  • Changed

    Scrolling or zooming will no longer re-show the note popover. Moving the annotation while the popover being open will still re-show the popover. This behavior change does not effect other annotations that use a UIMenuController or note on iPhone.

  • Changed

    The annotation toolbar will now be hidden automatically if the last tab on the tabbed view controller is closed.

  • Changed

    The font picker blacklist now uses regular expressions for matching, to allow more special cases like blocking “Courier” but still allowing “Courier New”. The old behavior was a simple prefix check.

  • Changed

    The tables in PSPDFLibrary is now lazily created on first use, improving speed and delaying the unicode61 tokenizer check until the library is actually used.

  • API

    Removes the thumbnailSize property on PSPDFCache. This should be set in the PSPDFViewController instead.

  • API

    Hide thumbnailCellClass in PSPDFThumbnailBar. Use the standard class override mechanism instead.

  • API

    Removes the skipMenuForNoteAnnotationsOnIPad property on PSPDFViewController. Use the new shouldInvokeAutomatically on PSPDFMenuItem instead. (See PSCOpenNoteOnPhoneWithSingleTapExample)

  • Fixed

    Fixes an issue related to copying sound annotations.

  • Fixed

    Fixes an issue where UIImagePickerController would sometimes not cancel correctly on iOS 7.0.

  • Fixed

    Fixes an crash related to accessibility support and page reading.

  • Fixed

    Fixes an issue where a picked image was added after pressing “Cancel” on the size popover.

  • Fixed

    Fixes an issue where the thumbnail bar wouldn’t update correctly the first time it is displayed when it was hidden initially.

  • Fixed

    Fixes an issue related to annotation fetching when the pageRange feature is enabled.

  • Fixed

    Fixes a potential issue related to cancelling index requests in PSPDFLibrary.

  • Fixed

    Fixes a potential issue in the vector separation code of the ink eraser.

  • Fixed

    Fixes an incompatibility with the NewRelic framework.

3.7.4 - 26 May 2014

Note: With WWDC imminent and the upcoming release of iOS 8, we plan to finally drop support for iOS 6. Let us know your thoughts about this change: support@pspdfkit.com.

  • Changed

    Clip drawings to bounds. Improves experience when drawing in double page mode.

  • Changed

    The metadata dictionary of PSPDFDocument now also contains PDF Portfolio data, if detected.

  • Added

    Add new option to the PSPDFAnnotationTableViewController to show/hide the clear all button. showDeleteAllOption.

  • Changed

    Allow initialization of sound annotations from custom URL.

  • Changed

    Don’t allow to copy the contents of text markup annotations if the document disallows copying.

  • Changed

    Document parser: Add support for direct AcroForm dictionaries.

  • Changed

    Improves compatibility with certain rich text formats for free text annotations in 3rd-party XFDF files.

  • Changed

    Extremely complex ink annotations will now render much faster with only minimal reduced quality.

  • Changed

    We no longer manually draw a border if the free text annotation is backed by an AP stream.

  • Added

    Adds support for the mailDoc and launchURL JS functions to invoke the email/browser controller via JavaScript.

  • Changed

    PSPDFProcessor: PSPDFProcessorStripEmptyPages now also works for regular document rendering and performs a more sophisticated page analysis.

  • API

    The PSPDFPageRenderer can now be replaced at runtime, there’s a new setSharedPageRenderer: instead of the class setter.

  • Changed

    Various localization improvements.

  • Fixed

    Fixes an issue where certain JavaScript calculations could end up as NaN’s.

  • Fixed

    Fixes an issue where the “Reset Form” feature would sometimes not clear all form elements.

  • Fixed

    Fixes an issue where the pageRange property could be calculated incorrectly for password protected files.

  • Fixed

    Fixes an issue where adding/removing the same overlay annotations within the same runloop could lead to an incorrect view representation.

  • Fixed

    Fixes an issue where the bookmark indicator was not always correctly displayed when pages are filtered using the pageRange feature.

  • Fixed

    Fixes an issue where persisting choice form elements that were split in child/parent relationships could sometimes result in only the initial index value being set.

3.7.3 - 12 May 2014

  • Changed

    The search preview text is now stripped of control characters like carriage return or newlines, which improves preview for various documents.

  • Changed

    Improves error handling for inline PDF videos that can’t be played. (most likely because they are in .flv flash video format)

  • Changed

    The cover image capture time for the video now defaults to second 2 instead of 0 to give a more meaningful default, and is also configurable via JSON.

  • Changed

    PSPDFStampViewController: Adds dateStampsEnabled property to control if date stamps are added or not.

  • Changed

    Improves handling around flexible toolbar dragging and the half modal sheet on the iPhone.

  • Changed

    Improves compatibility when the ‘Spark Inspector’ framework is linked with PSPDFKit.

  • Added

    Add selectedOptions to PSPDFDocumentSharingViewController to allow easier changing of the defaults.

  • Changed

    Changes the selected default for the print sheet to print with annotations if this is allowed.

  • Added

    Add new option to PSPDFAnnotationStateManager to allow setting the allowed image qualities allowedImageQualities for image annotations. Fixes #989.

  • API

    Make PSPDFOutlineElement immutable. Use the initializer to create.

  • Changed

    Various localization improvements.

  • Fixed

    Fixes a potential issue with manually creating PSPDFLineAnnotation objects without properly initializing the points array.

  • Fixed

    Fixes a potential formatting issue when writing sound annotations into the PDF.

3.7.2 - 6 May 2014

  • Added

    Add support for actions that are invoked on entering/exiting annotation focus.

  • Added

    Add support for GoToE embedded actions. This allows linking to PDFs that are saved inside the PDF.

  • Added

    Add support for relatively linked files without file handler. Will open QuickLook for such files.

  • Changed

    PSPDFDocument now automatically detects and converts PDF-Date-Strings (D:…) to NSDate objects when accessing the metadata property.

  • Changed

    Note annotations will now always get the correct style applied. (which includes alpha, if set)

  • Changed

    The method updatePage:animated: now also discards any current selection to make sure everything is updated.

  • Changed

    PSPDFWebViewController: add new property shouldUpdateTitleFromWebContent to control if the title should be updated dynamically.

  • Changed

    Improved security handling based on Veracode static analyzer feedback.

  • Changed

    An embedded file with the ‘pdf’ filetype will now be previewed using a new PSPDFViewController instead of the generic QuickLook. QuickLook will still be used for all other file types.

  • Changed

    Various improvements to Form-JavaScript validation, actions and handling.

  • Changed

    Various smaller improvements to the flexible annotation toolbar related to tintColor handling.

  • Changed

    A new render option named PSPDFRenderDrawBlockKey now provides a global drawing handler above the page renderer.

  • Changed

    Improves performance of the internal download manager with moving some Apple-API that is potentially slow to a background thread.

  • Changed

    The allowBackgroundSaving property of the PSPDFViewController now defaults to YES. Make sure you can deal with async saving or revert this to NO.

  • Changed

    Single-page documents no longer allow bouncing, unless alwaysBouncePages is enabled.

  • API

    The watermark drawing block has been changed and now includes more types. See PSPDFRenderDrawBlock for the new type.

  • API

    The X-Callback-URL registration is now handled by the PSPDFKit global configuration object.

  • API

    Removes the mailComposeViewControllerCustomizationBlock. Use the pdfViewController:shouldShowController:embeddedInController:options: delegate.

  • API

    executePDFAction:inTargetRect:forPage:actionContainer now has an additional animated: property.

  • API

    Some logic from PSPDFSoundAnnotation has been extracted into PSPDFSoundAnnotationController.

  • Fixed

    Fixes a regression when adding images via the annotation toolbar on an iPad.

  • Fixed

    Fixes a regression that could reduce ink annotation width to 1.

  • Fixed

    Fixes an issue where PSPDFStatusHUD would not always correctly update when a new title was set while it was already visible.

  • Fixed

    Fixes an issue where sound annotation data was sometimes not correctly loaded and wasn’t properly exported as JSON.

  • Fixed

    Fixes a very rare potential for a deadlock when the JavaScript runtime is being initialized from a background thread.

3.7.1 - 25 Apr 2014

  • Added

    Adds Dutch translation.

  • Changed

    The PSPDFGallery now supports parsing and embedding Vimeo URLs, next to YouTube.

  • Changed

    Improvements for the flexible annotation toolbar on the iPhone.

  • Changed

    Calling undo/redo will now scroll to the page where the annotation is being changed.

  • Changed

    Small visual tweaks for the ink preview icon in the flexible annotation toolbar.

  • Changed

    Allow to subclass PSPDFFreeTextAccessoryView, PSPDFFormInputAccessoryView and expose the bar button items.

  • Changed

    Additional improvements and checks to better guard against low-memory situations and to improve the Veracode score.

  • Changed

    Performance improvements when a large amount of updates are being processed for undo/redo.

  • Changed

    The document label is no longer displayed on iPhone when the document doesn’t has a label.

  • Changed

    The PSPDFDrawView is now reused when possible and state aware. (improves drawing polylines/polygons)

  • Changed

    The XFDF parser now correctly parses the lastModified property of annotations.

  • Changed

    Improve palm detection when using a stylus.

  • Fixed

    Fixes an issue when converting line annotations to JSON.

  • Fixed

    Fixes various issues when using updateAnnotations:animated: from the PSPDFAnnotationManager.

  • Fixed

    Fixes an issue related to search in the font picker controller.

  • Fixed

    Fixes an issue when using the streaming encryption/decryption with empty XFDF files.

3.7.0 - 19 Apr 2014

See the announcement post.

PSPDFKit now requires Xcode 5.1.1 or higher to compile if you’re using the source code variant. (we still support all iOS versions down to 6.0)

  • Changed

    Stylus support for ink annotation drawing with drivers for Adonit, Pogo, HEX3 and Wacom. The framework is designed in a way where new drivers can be added easily. To enable this, see the “Stylus” example in the PSPDFKit Catalog. (The SDKs need to be downloaded separately. Drivers are currently only available for customers with a license.)

  • Changed

    The annotation toolbar now has a second drawing style (thick, yellow, transparent) and improved color defaults for the other tools.

  • Changed

    Search now detects if the document has no content and shows a different “no page text” message.

  • Changed

    We now have a command line tool that works on Mac, Windows and Linux/Unix that can encrypt/decrypt files to be used with the PSPDFAESCryptoDataProvider (see Extras folder)

  • Changed

    PSPDFKit now has support for transparent reading/writing with encrypted streams in the PSPDFXFDFAnnotationProvider with the new PSPDFAESCryptoOutputStream and PSPDFAESCryptoInputStream. This allows secure storage of annotations.

  • Changed

    The gallery has improved handling for fullscreen transition and properly tears down when the PSPDFViewController is popped while it is in full screen mode.

  • Changed

    The gallery learned different cover modes, including a transparent one: https://github.com/PSPDFKit/PSPDFKit-Demo/wiki/adding-a-gallery-to-your-document

  • Changed

    Multimedia links can now be activated via button and the gallery can be displayed as popover or modally: https://github.com/PSPDFKit/PSPDFKit-Demo/wiki/adding-a-gallery-to-your-document

  • Changed

    The gallery will now correctly scale @2x images from remote servers.

  • Changed

    The gallery now automatically pauses other instances when play is pressed.

  • Changed

    The gallery now allows UIAppearance for blur and background colors.

  • Changed

    The blur algorithm used for the gallery are now over 4x faster and also support live fullscreen blur.

  • Changed

    The speech synthesizer (PSPDFSpeechSynthesizer) now auto-detects the best language by parsing the current document page.

  • Changed

    Greatly improved AcroForm JavaScript validation support.

  • Changed

    Improves support for custom controllers that don’t define a preferred content size when used with PSPDFContainerViewController.

  • Changed

    Empty ink signatures are no longer saved.

  • Added

    Add confirmation sheet for the “Clear All” button in the annotation table view controller.

  • Changed

    It’s now possible to correctly override PSPDFAnnotationCell from PSPDFAnnotationTableViewController.

  • Changed

    The PSPDFAnnotationTableViewController now automatically reloads the content if the visibleAnnotationTypes property has been changed.

  • Changed

    The PSPDFLibrary now optionally allows exact word matching with supplying the PSPDFLibraryMatchExactWordsOnlyKey parameter.

  • Changed

    The XSigner attribute is now parsed and displayed as the signer name if no other name is defined in the digital signature. (PSPDFKit Complete feature)

  • Added

    Adds support for orphaned form elements that are not referenced in the AcroForm dictionary.

  • Changed

    Reloading a document while the keyboard is up will no longer lead to the page animating back to center.

  • Added

    Add some additional safeguards/asserts and developer warnings that help to detect wrong use of certain methods.

  • Changed

    Improve support for custom PSPDFFlexibleAnnotationToolbar configuration or when used manually without an UINavigationController.

  • Changed

    PSPDFKit has been tested with Veracode (http://www.veracode.com/) and we’ve improved and hardened several code paths.

  • Added

    Add PSPDFThumbnailFilterSegmentedControl to enable UIAppearance rules on the thumbnail overview filter segment.

  • Added

    Add basic support for URL actions that are actually JavaScript actions.

  • Changed

    Support loading images from asset catalogs via the pspdfkit:// image loading system.

  • Changed

    The flexible annotation toolbar now better adapts to status bar changes on iOS 7.

  • Changed

    Allow to manually force-load all annotations from the PSPDFXFDFAnnotationProvider.

  • Added

    Add support for embedded CMap streams for the text parsing engine.

  • API

    The PSPDFAction objects and the PSPDFPageInfo objects are now immutable.

  • API

    The toolbar now longer auto-hides when invoked via the context menu. This also removes the hideAfterDrawingDidFinish property.

  • API

    Removed setTextViewCustomizationBlock: as it is inconsistent with what we do everywhere else in the framework. Use overrideClass:withClass: or the pdfViewController:shouldShowController:embeddedInController:options:animated delegate instead. To change the font, instead of textViewFont, simply change it in updateTextView.

  • API

    The bookmarkQueue is now exposed via a property and not via an ivar in PSPDFBookmarkParser.

  • API

    A few methods in the digital signature code have been renamed to be more clear about their intent.

  • API

    Adds a new pageTextFound parameter to didFinishSearch: and now shows “Document has no content” if a document without text content is being searched.

  • API

    setGlobalBorderColor on PSPDFLinkAnnotationView has been removed. The recommended API is to use UIAppearance on borderColor instead.

  • API

    Remove explicit close button management inside PSPDFContainerViewController as the PSPDFViewController (via PSPDFPresentationManager) already provides this feature.

  • Fixed

    Fixes an issue where certain pre-encoded URLs with non-ascii characters could end up being encoded twice.

  • Fixed

    Fixes a potential stability issue in the accessibility support for line-based page reading.

  • Fixed

    Fixes an issue that could add overlay-based annotations to the wrong page when a redo action is invoked with soft-deleted annotations.

  • Fixed

    Fixes an issue related to text extraction font caching with different widths.

  • Fixed

    Fixes various rare issues when analyzing the document or writing annotations with partial UTF16-LE encoding, invalid document IDs or missing object references.

  • Fixed

    Fixes a rare crash issue related to missing languages and the PSPDFSpeechSynthesizer.

3.6.5 - 31 Mar 2014

  • Changed

    Some internal improvements to prepare for the upcoming stylus support.

  • Changed

    Improves section styling of the annotation inspector under iOS 7.

3.6.4 - 30 Mar 2014

  • Changed

    The flexible annotation toolbar now automatically consolidates buttons if space becomes too short.

  • Changed

    The image/video gallery now loops content by default, unless it’s just a single item. (This is controllable by the new loopEnabled flag)

  • Changed

    Improve documentation around gallery-usage and proper removal from full-screen.

  • Changed

    The percent driven back animation of the inspector now animates the current selected cell out or restores it based on the animation progress.

  • Changed

    Changes the HMAC format for the PSPDFCryptor from SHA1 to SHA256 to be more consistent with the RNCryptor data format.

  • Changed

    The moreBarButtonItem action sheet is now dismissed when tapped on the button while it being open (instead of showing it again).

  • Changed

    Enables the addition of global processor options via a new delegate to PSPDFDocumentSharingViewController.

  • Changed

    PSPDFProcessor now has a new drawing hook (PSPDFProcessorDrawRectBlock) which can be used to watermark documents on exporting.

  • Fixed

    Fixes an issue that could prevent showing some search highlights if there are multiple on the same page.

  • Fixed

    Fixes a regression where sometimes the original view port wasn’t correctly restored when the keyboard is dismissed after free text editing.

3.6.3 - 26 Mar 2014

  • Changed

    Improves placement precision of draft ink annotations when the device is rotated while in drawing mode.

  • Changed

    Improves popover placement for the flexible annotation toolbar in vertical mode.

  • Changed

    Multiple performance and memory improvements, especially for searching and scrolling large documents, and for usage on an iPhone 4.

  • Changed

    Various cosmetic updates (improved thumbnail scroll bar, better support for iPhone 4 which doesn’t support live-blur)

  • Changed

    Improves search highlighting accuracy for certain document types.

  • Fixed

    Fixes an issue that could move the scroll view for keyboard events that were not inside the scroll view.

  • Changed

    Small localization updates.

3.6.2 - 21 Mar 2014

  • Changed

    Improves appearance customization options for the new PSPDFFlexibleAnnotationToolbar.

  • Changed

    The new PSPDFFlexibleAnnotationToolbar is easier to customize and also has an additionalButtons property to add custom actions.

  • Changed

    Makes sure the PSPDFFlexibleAnnotationToolbar is always removed from the view hierarchy as the PSPDFViewController disappears.

  • Changed

    The PSPDFGallery now better deals with custom quality properties for YouTube videos.

  • Changed

    Ensures that the status bar doesn’t change on iOS 7 with view controller based status bar appearance enabled when the PSPDFStatusHUD is displayed.

  • Changed

    Improves the XFDF writer/parser to deal with more action types (PSPDFRenditionAction, PSPDFRichMediaExecuteAction, PSPDFSubmitFormAction, PSPDFResetFormAction, PSPDFHideAction).

  • Changed

    Improves popover positioning logic, especially for the search popover.

  • Changed

    Improves stability when using the new container annotation provider class.

  • API

    Removes aspectRatioEqual and aspectRatioVariance from PSPDFDocument. Other performance improvements made this option no longer useful.

  • API

    Clarifies usage of the PSPDFGalleryViewController by renaming the allowFullscreen property to displayModeUserInteractionEnabled.

  • Fixed

    Fixes a potential issue with an over-release of NSError when printing a single page with PSPDFKit Viewer.

  • Fixed

    Fixes a stability issue when serializing annotations for certain PDF AcroForm buttons with icons in the appearance characteristics dictionary.

  • Fixed

    Fixes an issue where changing the page via the annotation table view controller could end up on a page that wasn’t correctly centered.

  • Fixed

    Fixes a small selection issue with handling multiple equal grouped annotations on the same page.

3.6.1 - 17 Mar 2014

  • Changed

    Before a document is saved, we now set the annotation state mode to nil, which commits any open annotations like inks.

  • Changed

    Reverted the use of @import with modules. Apple’s module feature seems to have issues with projects that also use C++.

  • Fixed

    Fixes an issue with saving annotations in certain PDFs with corrupted page IDs.

3.6.0 - 16 Mar 2014

See the announcement post.

We’re proud to ship the next milestone of PSPDFKit. Version 3.6 features a completely new annotation toolbar, search within annotation text, note annotations that show up in the thumbnails and countless other improvements. This release has been fully tested with Xcode 5.1 and iOS 7.1. We now require at least Xcode 5.0.2 and SDK 7 to compile and have dropped support for Xcode 4.6 (Apple no longer accepts apps built with SDK 6/Xcode 4.6) Applications built with PSPDFKit will still run and work great under iOS 6.

  • Changed

    Fully compatible and tested with iOS 7.1 and Xcode 5.1.

  • Changed

    God dag! We’ve added Swedish to the list of presupplied localization files.

  • Changed

    All-new flexible annotation toolbar (PSPDFFlexibleAnnotationToolbar) that can be dragged to be vertical or horizontal. See PSPDFAnnotationToolbarType in the PSPDFAnnotationBarButtonItem to optionally keep using the old annotation toolbar.

  • Changed

    PSPDFKit Complete can now create digital signatures. This feature is still in beta - we need more documents to test all possible conditions. If you’re having issues with this, please contact us so we can further increase the test coverage.

  • Changed

    Text selection now supports text-to-speech on iOS 7+. See PSPDFSpeechSynthesizer for details and options to customize the language.

  • Changed

    Forms on iPhone/iOS 7 now have an automatic zoom feature that makes it a lot easier to enter text.

  • Changed

    Search now also includes annotation and form element contents. This is especially useful for note annotations and forms. (PSPDFKit Basic/Complete)

  • Changed

    Search results are now hidden on page tap (unless that tap finds an action like selecting an annotation.)

  • Changed

    Note annotations are now always rendered at the same size and also visible in the thumbnails.

  • Changed

    PDF annotation writing will now be faster and produce a more compact trailer, reducing target file size.

  • Added

    Adds support for mailto: links with multiple email addresses (also for CC and BCC).

  • Changed

    Saving will now use the correct z-index for annotations and forms in the same ordering as they are added. Saving changed objects will no longer change the z-ordering.

  • Changed

    Simple JavaScript actions like printing, alert boxes or adding form values now work. If you have a use case for that, please contact us at support@pspdfkit.com.

  • Changed

    The XFDF parser now parses basic rich text strings as used in Acrobat and keeps color and font informations.

  • Changed

    Increases contrast for the selection color on form choice list-boxes.

  • Changed

    PSPDFTextSelectionView now allows UIAppearance to customize selectionColor and selectionAlpha.

  • Changed

    The PSPDFActivityViewController now checks if printing is allowed for the document before even showing the print option.

  • Changed

    No longer ends the text view edit mode when zooming on iOS 7 (flat mode) and above.

  • Changed

    File annotations are now evaluated lazily, which improves startup performance for documents with many such annotations.

  • Changed

    Note annotations now also create popup annotation on PDF saving. These are optional but increase compatibility with certain less standard-compliant 3rd-party software.

  • Changed

    The behavior of the pdfViewController:didTapOnPage:View:atPoint: has been updated when no PSPDFPageView was hit to return nil here, and coordinates relative to the current PSPDFViewController.

  • Changed

    The PSPDFThumbnailBar has a new parameter to optionally enable the page labels: showPageLabels (defaults to NO).

  • Changed

    Many improvements related to PDF AcroForm handling and input validation.

  • Changed

    Calls to didHidePageView: and didShowPageView: of views with the PSPDFAnnotationViewProtocol are now properly balanced.

  • Changed

    The text parser now has a more sophisticated text shadow/overlay detection, which improves search results by removing duplicated glyphs.

  • Changed

    The gallery has a new mode that enables live-blur behind the content (see blurEnabled on PSPDFGalleryViewController).

  • Fixed

    Fixes an issue where the popover might open at an unexpected location when using the inline multimedia system with the popover:true parameter.

  • Changed

    Font annotations are now rendered with their AP stream for greater document accuracy.

  • Changed

    Annotations now support the additional action mouse up event.

  • Changed

    Greatly improves speed for the XFDF image deserialization process.

  • API

    PSPDFKit now requires the Accelerate.framework. If you’re using the PSPDFKit.xcconfig file, you don’t need to change anything.

  • API

    Search related methods are now in the new searchHighlightViewManager property of PSPDFViewController.

  • API

    The HUD and related views have been reorganized. You might have to update some calls (some views are now within HUDView)

  • API

    PSPDFProgressHUD has been replaced with the all-new PSPDFStatusHUD, which features a modern iOS 7 design and an improved API.

  • API

    PSPDFDocument should be treated as an immutable object (apart from settings). Thus, the files and fileURL properties have been made readonly, and appendFile: has been removed. Create a new document with the new files/data objects instead. Use the new helper documentByAppendingObjects: to create a modified document with a new file or data objects.

  • API

    The PSPDFAnnotationManager now supports various protocol strings, thus the property protocolString has been renamed to protocolStrings and is now an NSArray that takes NSStrings. We’ve added embed:// as a second, neutral protocol format.

  • API

    The textSearch class has been moved from PSPDFDocument to PSPDFViewController.

  • API

    PSPDFNoteAnnotationViewFixedSize has been removed. Notes are now drawn with a fixed size, however you can define the bounding box to whatever you like. We recommend using 32px, but this value is being ignored by both PSPDFKit and Adobe Acrobat. Other, less capable renderers like Apple Preview.app might use the value, so 32px is a good value - but also depends how large or small your document is.

  • API

    The PSPDFSignatureViewController no longer dismisses itself. Dismiss the controller in the delegate callbacks.

  • API

    Code and subclassing hooks that could be used to change the PSPDFScrobbleBar frame have been moved to PSPDFHUDView.

  • API

    Removes various deprecated code.

  • Fixed

    Fixes an issue related to YouTube video parsing - now compatible with even more video subtypes.

  • Fixed

    Fixes a weird scrolling behavior for some form elements.

  • Fixed

    Fixes an issue where the free text tool wouldn’t work if highlighting was selected before that.

  • Fixed

    Fixes an issue where PDF form values could become corrupted because of insufficient escaping in some PDF files.

  • Fixed

    Fixes an issue where drawings could be created on multiple pages if the page is changed while in drawing mode.

  • Fixed

    Fixes multiple issues related to forms on rotated pages.

  • Fixed

    Fixes an issue related to annotation fetching and the pageRange feature of PSPDFDocument.

  • Fixed

    Fixes multiple issues related to the ink eraser.

3.5.2 - 21 Feb 2014

  • Changed

    PSPDFYouTubeAnnotationView has been removed in favor of the newer PSPDFGallery. Te gallery is a much better user experience for embedding YouTube videos.

  • Added

    Adds a workaround to prevent unwanted UIPopoverController animations that might appear under certain conditions on iOS 7.0.

  • Added

    New property highlightColor on PSPDFPageView to control the color used for link/form touch feedback.

  • Changed

    Improves reload behavior with an external animation block.

  • Changed

    The play button for the PSPDFGallery is now always white and configurable via UIAppearance.

  • Changed

    Improves fade animation of the page label under iOS 7, especially for the new blur-page label setting on iOS 7.

  • Changed

    The PSPDFDocumentPickerController now uses a dynamic size when displayed as a popover.

  • Changed

    Various smaller improvements related to the new sidebar example in PSPDFKit Catalog.

  • Changed

    defaultColorOptionsForAnnotationType now returns an NSArray of string, color tuples.

  • Added

    Adds UIAppearance support for the default search view highlight color.

  • Changed

    The note popover now will be dismissed on tap if the annotation state manager is used for highlight mode, just as it does when using the annotation toolbar.

  • Changed

    The allowsCopying property in PSPDFDocument no longer controls if the “Copy” option for annotations is displayed. This property only controls text.

  • Changed

    Makes sure that the ink width while drawing and rotating is always the correct one.

  • API

    padding of PSPDFViewController is now of type UIEdgeInsets and also works with PSPDFPageTransitionScrollContinuous.

  • Changed

    Stamps now more closely resemble the look of Adobe Acrobat.

  • Changed

    Improves content type detection in the gallery.

  • Changed

    Various localization improvements.

  • Changed

    The XFDF parser can now write images within appearance streams to Adobe Acrobat.

  • Fixed

    Fixes an issue where the text rect could be CGRectZero if the shouldSelectText: delegate was not set.

  • Fixed

    Fixes an positioning issue related to custom scopes in PSPDFSearchViewController.

  • Fixed

    Fixes an issue where the PSPDFMultiDocumentViewController would not work as expected if the delegate was not set.

  • Fixed

    Fixes an issue where the PSPDFMultiDocumentViewController would only show the thumbnails for the first document.

  • Fixed

    Fixes a stability issue related to the “Clear All” feature and the XFDF annotation provider.

3.5.1 - 15 Feb 2014

  • Added

    New property in the PSPDFStyleManager to control if changes to annotations should be saved as the new defaults: shouldUpdateDefaultsForAnnotationChanges.

  • Changed

    Expose cornerRadius in PSPDFResizableView to customize the border appearance.

  • Changed

    Behavior Change: Setting the annotationSaveMode to PSPDFAnnotationSaveModeDisabled will no longer disable annotation editing features. To disable annotation editing, set the editableAnnotationTypes property of the PSPDFDocument to nil instead.

  • Added

    Adds a new delegate “pdfDocument:provider:shouldSaveAnnotations:” to allow a more fine-grained control over the saving process.

  • Changed

    No longer removes unknown views from PSPDFPageView. Use prepareForReuse to manually clean up if you subclass PSPDFPageView.

  • Changed

    Improves compatibility with embedded PDF files.

  • Changed

    Ensures that document metadata is preserved after writing annotations or forms.

  • Changed

    Improves compatibility with annotation or form writing for certain less commonly used PDF subformats.

  • Changed

    Improves several UI details for iOS 7 legacy mode. (UIUseLegacyUI or compiled with SDK 6. This mode is not recommended, but will work.)

  • Changed

    The PSPDFGallery can now display YouTube videos. This will most likely replace PSPDFYouTubeAnnotationView in future versions.

  • Changed

    The XFDF parser can now load images within appearance streams from Adobe Acrobat.

  • Fixed

    Fixes an issue on iOS 6 where the gradient background for the page position label could be too small.

  • Fixed

    Fixes a stability issue on iOS 6 related to PSPDFBarButtonItem tint color updating.

  • Fixed

    Fixes an issue that prevented to hide the thumbnail bar in PSPDFThumbnailBarModeScrollable unless PSPDFHUDViewAnimationSlide was also set.

  • Fixed

    Fixes some tiny memory leaks on error situations.

  • Fixed

    Fixes an issue related to re-using PSPDFSearchViewController. Thus only happened in custom code, as PSPDFKit recreates this controller as needed.

  • Fixed

    Fixes an issue where subclasses of PSPDFFileAnnotationProvider could encounter immutable objects where mutable objects were expected.

  • Fixed

    Fixes a stability issue related to autodetecting link types.

  • Fixed

    Fixes an issue related to exporting appearance streams via XFDF.

  • Fixed

    Fixes an issue where image stamp annotations in rotated documents could have an incorrect transform applied when saved via PSPDFProcessor.

3.5.0 - 10 Feb 2014

See the announcement post.

  • API

    The PSPDFAnnotationToolbar has been modularized and all state related code is now in PSPDFAnnotationStateManager, which is a property of PSPDFViewController. You might have to update your subclasses to reflect these changes. PSPDFAnnotationStateManager should now be used instead of a headless PSPDFAnnotationToolbar if you have your own toolbar.

  • Added

    New unified setBoundingBox:transform: method on PSPDFAnnotation. Adds a helper that transforms the font size on resizing.

  • Changed

    The Inspector is now sticky and will update itself for the new annotation if one is tapped while the inspector is visible. This simplifies editing and saves some taps.

  • Changed

    Various smaller animation tweaks.

  • Changed

    The PSPDFGallery now shows the already fetched parts of a video in the progress bar.

  • Changed

    Bookmarks now use the pageLabel, if one exists, instead of the logical page number.

  • Changed

    Embedding YouTube objects now support parameters in the URLs.

  • Changed

    Better handling of exporting annotations into rotated PDF pages via PSPDFProcessor.

  • Changed

    Improves several cases where phone numbers were not correctly detected before. (PSPDFTextCheckingTypePhoneNumber)

  • Changed

    Correctly displays border for forms that define the border color in the MK dictionary.

  • Added

    Adds initial support for text field form validation. (Currently, AFNumber_Format is supported.)

  • Added

    Adds limited support for drawing rich (formatted) free text annotations on iOS 7. Editing will convert them into plain text annotations.

  • Changed

    Greatly improves XFDF support for complex PDF Forms, now better matches the output of Acrobat.

  • Fixed

    Fixes an issue that could reset the ink annotation width to 1.

  • Fixed

    Fixes a crash when processing certain sound annotations using PSPDFProcessor.

  • Fixed

    Fixes an issue where tapping into the page when the half modal controller on iPhone was visible could result in a different selected annotation than tapped.

  • Fixed

    Fixes an issue that didn’t correctly update the thumbnails when bookmarks were added/removed while displaying the grid.

  • Fixed

    Fixes an issue that could show the signature selector controller when adding the first signature on iPhone only.

  • Fixed

    Fixes an issue where the document label could be visible even though documentLabelEnabled was set to NO.

3.4.6 - 1 Feb 2014

This patch release includes various form related improvements, especially hardware keyboard support and performance tweaks for very complex forms.

  • Changed

    Tap-to-zoom now starts rendering the page instantly; this improves render performance quite a bit.

  • Changed

    Visual improvements for the form choice view controller.

  • Changed

    Multiline Form Text Fields are now vertically aligned to the top.

  • Changed

    Editable choice form elements now show touch down feedback and keep the keyboard for easier switching on iPad.

  • Changed

    Long-Pressing on form elements will no longer cancel the tap action.

  • Changed

    Form elements can now be navigated with a hardware keyboard via the arrow keys and escape/space/enter. (iOS 7 only)

  • Changed

    Form navigation with prev/next now includes choice form elements, and the value can be toggle with the space bar.

  • Changed

    Ensures that stamps never draw text outside their boundaries.

  • Changed

    Render/Update performance for pages with many annotations has been greatly improved.

  • Changed

    When using the PSPDFAnnotationTableViewController, form elements are not only selected but also brought into edit mode.

  • Changed

    Improves support for file:// links if linkAction is not set to PSPDFLinkActionInlineBrowser.

  • Changed

    Tweaks link type autodetection to work better on certain types of documents.

  • Changed

    Expose the completion handler for UIActivityViewController inside PSPDFActivityBarButtonItem.

  • API

    Remove long press support for bar button items. This was only used for the bookmark button and already defaulted to NO.

  • Changed

    PSPDFPageView now sends a PSPDFPageViewSelectedAnnotationsDidChangeNotification notification each time the selectedAnnotations property changes.

  • Changed

    Erasing is now faster with custom annotation providers, as change notifications are now queued and sent on touch end events only.

  • Fixed

    Fixes an issue that could hide the outline bar button in cases where annotations were in the document but no outline.

  • Fixed

    Fixes a potential use-after-free when a form with a editable choice field was edited on iPhone and then dismissed via the input accessory view on iOS 7.

  • Fixed

    Fixes an issue where certain form checkboxes were not checked if appearance streams were missing from the PDF.

  • Fixed

    Fixes an issue where form buttons with named actions sometimes failed to change the page.

  • Fixed

    Fixes an issue where saving certain form objects could hide these form objects in Acrobat.

  • Fixed

    Fixes an issue where manual bookmark reordering wasn’t saved in some situations.

  • Fixed

    Fixes a rare recursion issue on iOS 6 when using the old toggle-style for the viewMode bar button item.

  • Fixed

    Fixes an issue where the bookmark bar button not always reflected the actual bookmark state.

  • Fixed

    Fixes a potential over-release with certain rarely used CMaps definitions that include other CMaps.

3.4.5 - 24 Jan 2014

  • Changed

    Better handles resizing for rotated stamps.

  • Changed

    The Open In… activity is now displayed for NSData-based documents.

  • Changed

    Improve availability filtering for the PSPDFOutlineBarButtonItem, no longer presents an empty controller if no content is available.

  • Changed

    Small localization updates.

  • Changed

    Improve XFDF action writing for non-standard types like GoToR.

  • Changed

    Improvements to word/new line detection in the text parser for certain documents.

  • Changed

    Improves rendering performance, especially for more complex PDF forms.

  • Changed

    Form updates are now more snappy and no longer animate.

  • Changed

    Various smaller improvements for the inline web view. (PSPDFWebAnnotationView)

  • Fixed

    Fixes an issue where annotations could end up at a different location when rotated documents were re-saved using PSPDFProcessor.

  • Fixed

    Fixes an issue where viewControllers of the PSPDFContainerViewController could return nil.

  • Fixed

    Fixes an issue where annotations saved via PSPDFProcessor could end up on a different page.

  • Fixed

    Fixes an issue where the target page of a document/page action sometimes wasn’t correctly saved when using the XFDF format.

3.4.4 - 22 Jan 2014

  • Added
  • Changed

    The PSPDFGallery now shows an AirPlay button if AirPlay sources are available.

  • Changed

    Stamp annotations no longer have distorted text.

  • Changed

    Update OpenSSL to OpenSSL 1.0.1f.

  • Changed

    Forms: Checkboxes with the same name and parent form a mutually exclusive group.

  • Changed

    zoomToRect:page:animated: now honors the animated option and compensates for the x/y origin depending on the scroll direction for PSPDFPageTransitionScrollContinuous.

  • Fixed

    Fixes an regression in the annotation toolbar related to tap handling.

  • Fixed

    Fixes an issue where the PSPDFOutlineViewController could display stale data if the outline is complex and documents are switched before the outline parsing operation was done. This basically only happened if the controller was displayed as a side-bar, not when in a popover or modal.

3.4.3 - 21 Jan 2014

  • Changed

    Code updated to be warning-free with iOS 7.1b4 and Xcode 5.1b4.

  • Changed

    Extracted all possible PSPDFMenuItem identifiers to PSPDFPageView.

  • Changed

    PSPDFProcessor’s generatePDFFromURL: and generatePDFFromHTMLString: methods now support embedding annotations if set via the options dictionary.

  • Changed

    PSPDFMultiDocumentViewController no longer tries to persist NSData- or CGDataProviderRef-based documents. Only file-based documents are persisted between sessions.

  • Changed

    Improves search animation for the PSPDFOutlineViewController.

  • Changed

    Various small localization updates.

  • API

    PSPDFProcessor’s generatePDFFromHTMLString: methods have gained a new error parameter.

  • API

    PSPDFAESDecryptor’s init methods have gained a new error parameter.

  • Fixed

    Fixes a regression where two-finger-scrolling in highlight mode no longer worked.

  • Fixed

    Fixes a rare timing issue where a mutation error could be thrown if reloadData is called within page loading delegate methods.

  • Fixed

    Fixes an issue where exported annotation via the share sheet could end up on different pages if a document with multiple provider sources is used.

3.4.2 - 19 Jan 2014

  • Changed

    Improved defaults for the status bar and the activity controller.

  • Changed

    The document and page label now use blur on iOS 7.

  • Changed

    Full-page-ads with links now no longer highlight the whole page.

  • Changed

    The bookmark activity now shows the current bookmarked state.

  • Changed

    The thumbnail cells use the active tintColor on iOS 7 as their selection border color.

  • Added

    New property to control if the HUD should be visible on viewWillAppear. (shouldShowHUDOnViewWillAppear:)

  • Changed

    Slightly darker default background for the PSPDFViewController on iOS 7.

  • Fixed

    Fixes an regression with the loupe view and UIInterfaceOrientationLandscapeLeft.

  • Fixed

    Fixes an issue where annotations could be missing when exporting single pages that are backed by XFDF via email.

  • Fixed

    Fixes an issue where the internal web browser wasn’t correctly dismissed when an App Store link was detected.

  • Fixed

    Fixes an issue where the contentInset could become too large when using the PSPDFStampViewController.

3.4.1 - 18 Jan 2014

  • Fixed

    Fixes an issue with UIActivityViewController on iOS 7.1b3.

3.4.0 - 18 Jan 2014

See the announcement post.

  • Changed

    The PSPDFVideoAnnotationView has been completely removed as the new PSPDFGallery takes over all of this functionality. PSPDFKit finally supports playback of multiple videos and/or audio tracks at the same time. (The total number of concurrent video streams is hardware dependent and is usually 4)

  • Changed

    Ink annotations can now be merged via the multiselect tool. This will discard all different styles and use the style of the first object if used.

  • Changed

    Various annotation changes and page updates are now animated (most visible when using undo/redo).

  • Changed

    Various improvements and fixes for PDF Forms.

  • Changed

    Improves the activity bar button item, actions will forward to the bar button items if possible.

  • Changed

    The annotation toolbar will now attempt to merge highlights if they overlay each other and have the same color.

  • Changed

    Improves hit testing for smaller annotation types like note annotations.

  • Changed

    The PSPDFPrintBarButtonItem now uses the PSPDFDocumentSharingViewController to make it consistent with the Email and Open In action and thus has also new option parameters. (API-Change). This now allows printing the annotation summary.

  • Changed

    The annotation summary now generates an attributed string when printing or sending via email.

  • Added

    Add PSPDFAnnotationIgnoreNoteIndicatorIconKey to optionally disable the note indicator rendering.

  • Changed

    Improves support for links to different documents via URI action type.

  • Changed

    Adding a signature will now make it smaller and more appropriate for large documents.

  • Changed

    The PSPDFSignatureSelectorViewController is now stateful, has a minimum size and will show “No Signatures” if the last signature was deleted while being open.

  • Changed

    The use of the outline in the search preview is now configurable via useOutlineForPageNames in the PSPDFSearchViewController. It defaults to YES.

  • Added

    New iPhone popover controller that better fits into iOS 7.

  • Changed

    The annotation type image in the annotation table view is now colored in the same color as the annotation itself.

  • Added

    Adds a workaround for an issue where iOS would change the status bar when showing an UIAlertView without setting it back to the previous setting.

  • Changed

    Exposes filteredPagesForType: to customize what the thumbnail controller displays, and increases the touch target of the thumbnail filter.

  • Fixed

    Fixes an issue when certain annotation types were manually overridden to be displayed as overlay, they could be initially visible until moved on page load.

  • Fixed

    Fixes an UI regression where the PSPDFProgressHUD would be rotated wrongly on device rotation.

  • Fixed

    Fixes an issue where YouTube videos were no longer being paused automatically in iOS 7 when in thumbnail mode.

  • Fixed

    Fixes a timing issue when multiple galleries were loaded at a page on the same time.

  • Fixed

    Fixes an issue in PSPDFTabbedViewController that could move pages off center when using iOS 7 when the HUD fades out.

  • Fixed

    Fixes an issue with embedding forms into documents with a invalid trailer ID.

  • Fixed

    Fixes an issue where dismissing the half-modal form choice picker could dismiss the current view controller on the iPhone.

  • Fixed

    Fixes an issue with extracting font glyph rect data, especially for CJK documents that use ‘usecmap’ to link to other CMaps.

  • Fixed

    Fixes a potential assertion in the text parser with certain malformed PDF documents that have invalid font descriptors. PSPDFKit will now try to extract as much as possible and not assert, even if the document is partly broken or contains invalid descriptors or font references.

3.3.5 - 9 Jan 2014

  • Changed

    The gallery now supports more options like autostart, cover views or control customizations.

  • Changed

    Improved the highlightedString feature by narrowing down the target rect. Reduces the chance to extract text above/below the marked text.

  • Changed

    The render activity view now has a slight delay and animates in and out, making it less disruptive.

  • Changed

    Extends support for iOS 7 dynamic type to more controls and cells.

  • Changed

    Localization has been streamlined and requires less entries. If you rely in a specific identifier for PSPDFMenuItem checks, remove the “…” from the strings.

  • Changed

    The option view in PSPDFNoteAnnotationViewController now uses blur on iOS 7 instead of plain transparency.

  • Added

    Adds further workarounds for issues in UITextView on iOS 7 which improves caret scrolling and visibility when using external keyboards.

  • Changed

    The “Clear All” action on PSPDFAnnotationTableViewController is now a single undo step instead of one per annotation.

  • Fixed

    Fixes an issue where the redo action of the PSPDFAnnotationToolbar would always prefer drawing redos, potentially preferring the wrong actions first.

  • Fixed

    Fixes an issue that blocked moving annotations if they are above a form field.

  • Fixed

    Fixes an issue that could select the wrong annotations when sending a single extracted page from a document via email.

3.3.4 - 7 Jan 2014

  • Changed

    The annotation table view has been redesigned and also shows the creation user and the last modification date, if available.

  • Added

    New property: skipMenuForNoteAnnotationsOnIPad to control how the note controller is displayed.

  • Changed

    Update selection style for the saved annotation cells to better match the iOS 7 design.

  • Changed

    Improves logic for popover resizing of the container controller.

  • Changed

    Various tweaks to the stamp controller and the text stamp controller. Now adds default date stamps, automatically shows keyboard once the PSPDFTextStampViewController appears and more.

  • Changed

    Various localization updates, including localization for stamps.

  • Changed

    The localizedDescription for PDF Form Fields is now smarter and won’t create strings like Button: Button.

  • Changed

    The PSPDFAnnotationToolbar has a new backButtonItem hook to replace the default “Done” back button.

  • Changed

    Some more icon tweaks: delete now better fits into the iOS 7 UIMenuController and sound now is a microphone instead of a note.

  • Fixed

    Fixes an issue with saving custom pspdfkit:// prefixed links via the XFDF provider.

3.3.3 - 6 Jan 2014

  • Changed

    Re-enables the Clear button in the new PSPDFFreeTextAccessoryView after text has been changed.

  • Changed

    Don’t show the “.pdf” file ending in the PSPDFDocumentPickerController.

  • Changed

    The inspector now repositions itself if the annotation changes the boundingBox.

  • Changed

    Saving annotations into the PDF has been optimized and creates a smaller PDF.

  • Changed

    Form objects no longer are deletable when using the PSPDFAnnotationTableViewController but will be cleared instead.

  • API

    Removed PSPDFInitialAnnotationLoadDelay. This is no longer a performance problem and has thus been removed and optimized.

  • Changed

    Improves styling in PSPDFWebViewController for iOS 6 when the navigation bar style is dark.

  • Changed

    The activity button in PSPDFWebViewController is now always enabled, not only after the page finished loading.

  • Changed

    PSPDFWebViewController now offers to load the page in Google Chrome, if installed.

  • Fixed

    Fixes an UI issue where the document title label could be offset under iOS 7/iPhone if the HUD was hidden when a modal VC is invoked.

  • Fixed

    Fixes an issue that prevented forms from saving correctly when saved via the Send via Email/Open In feature from a readonly source.

  • Fixed

    Fixes multiple issues with building/preserving the appearance string for certain PDF form elements.

3.3.2 - 4 Jan 2014

  • Added

    Adds new accessory view for free text annotations to quickly access the inspector.

  • Changed

    The font size in PSPDFNoteAnnotationViewController now adapts to iOS 7 content size.

  • Changed

    The gradient calculation used in PSPDFNoteAnnotationViewController now simply returns a default yellow if the base is white.

  • Changed

    The delete note icon in PSPDFNoteAnnotationViewController is now dynamically enabled/disabled depending if there’s text in the UITextView.

  • Changed

    Improves the animation and various design details in PSPDFSearchViewController, especially on iOS 7.

  • Changed

    Improves the annotation summary to now repeat type and description if that’s the same. (Ink, Ink)

  • Changed

    Various smaller design updates for the annotation inspector.

  • Changed

    API Update: generatePDFFromDocument: now accepts pageRanges as NSArray, which enables easy re-ordering of document pages (compared to a single NSIndexSet)

  • Fixed

    Fixes an UI issue where the text view wouldn’t properly adapt in PSPDFNoteAnnotationViewController on iPhone.

  • Fixed

    Fixes an UI issue where the “No Bookmarks” label could be not exactly centered on first load.

  • Fixed

    Fixes an issue where the annotation bar button item would be disabled with PSPDFAnnotationSaveModeExternalFile.

  • Fixed

    Fixes an issue where the document sharing controller would sometimes not extract pages out of the PDF if only a subset of the pages are selected.

  • Fixed

    Fixes an issue where wrong options could end up being used if PSPDFDocumentSharingViewController was preconfigured so it is invoked without showing the UI.

3.3.1 - 2 Jan 2014

  • Changed

    PSPDFKit now displays note indicators for annotations with note content.

  • Changed

    Annotations that can’t be erased are no longer hidden while in erase mode.

  • Changed

    The view controller order in PSPDFOutlineBarButtonItem and in PSPDFThumbnailViewController has been changed - bookmark is now the last entry.

  • Changed

    PSPDFSearchViewController now has support for custom scopes with a new optional delegate method.

  • Changed

    On iOS 7 we now support shouldAutomaticallyAdjustScrollViewInsets with PSPDFPageTransitionScrollContinuous & PSPDFScrollDirectionVertical.

  • Changed

    The scroll-to-top feature when the status bar is tapped no longer breaks when showing/hiding the thumbnail controller.

  • Fixed

    Fixes an issue with glyph position calculation for certain rotated documents that had a non-nil origin.

  • Fixed

    Fixes an issue that prevented linking the precompiled PSPDFKit.framework with Xcode 4.6.

  • Fixed

    Fixes a timing issue where the annotation menu wasn’t always displayed wen selecting an annotation via the PSPDFAnnotationTableViewController on iPhone.

  • Fixed

    Fixes a small issue where the PSPDFNoteAnnotationViewController could fail to show the keyboard when presented manually with a certain timing.

  • Fixed

    Fixes an issue that could have kept a total 1-2 instances of PSPDFPageView around, even when the PSPDFViewController was deallocated.

  • Fixed

    Fixes a potential retain cycle in the PSPDFDocumentSharingViewController on iOS 7.

3.3.0 - 29 Dec 2013

See the announcement post.

Happy holidays!

PSPDFKit now requires iOS 6+ and Xcode 5. Keep using PSPDFKit 3.2.x if you’re still building with Xcode 4.6 or need to support iOS 5. Apple will enforce usage of Xcode 5 starting February 1st. (https://developer.apple.com/news/index.php?id=12172013a) Removing iOS 5 resulted in deleting almost 10.000 lines of code - which will give you a smaller, faster and more efficient binary.

The binary is now again fully universal including armv7, armv7s, arm64, i386 and x86_64. The separate iOS 7 only (64 bit) library variant has been removed.

PSPDFKit Complete now supports PDF form signature validation and thus links with OpenSSL. There is an optional build without OpenSSL that disables these cryptographic signature checks.

  • Changed

    Localization! PSPDFKit now ships with English, Chinese, Korean, Japanese, French, Spanish, Russian, Italian, Danish, German, Portuguese and Brazilian Portuguese.

  • Added

    Adds preliminary compatibility with Xcode 5.1 and iOS 7.1b2.

  • Changed

    Refreshed visuals for both iOS 6 and iOS 7. The icons are now much more polished and can be better customized. The remaining icons that were drawn in code are now all inside the PSPDFKit.bundle.

  • Changed

    PSPDFKit Complete/Enterprise can now validate cryptographic signatures (unless you use the build without OpenSSL)

  • Changed

    PSPDFAESCryptoDataProvider now supports the popular RNCryptor data format: https://github.com/rnapier/RNCryptor/wiki/Data-Format (It autodetects the legacy format and supports that as well)

  • Changed

    Finally fully supports the new UIViewControllerBasedStatusBarAppearance. (we now support both modes in iOS 7)

  • Changed

    The PSPDFAnnotationToolbar now displays the style picker for text markup annotations (highlights).

  • Changed

    The PSPDFGalleryViewController now supports local/remote video and audio files next to images.

  • Changed

    The internal PSPDFWebViewController now shows a progress bar, much like Safari on iOS 7.

  • Changed

    Improves automatic font resizing for single line text field form entries.

  • Changed

    Improved support for additionalActions and nextAction to add actions to all annotation types.

  • Changed

    API Change: PSPDFTextSelectionMenuActionWikipediaAsFallback has been renamed to PSPDFTextSelectionMenuActionWikipedia. Since checking for a word in UIReferenceLibraryViewController can be unpredictably slow as of iOS 7.0.3, we had to remove this feature. Define will now always be displayed and you can optionally enable Wikipedia as well. The new default will omit Wikipedia by default.

  • Changed

    Don’t show the PSPDFWebViewController bottom toolbar on iPhone if there are no availableActions defined.

  • Changed

    Allow detection for a PSPDFKit signature and blocks the “Copy” feature if detected. Will also be saved into the PDF as proprietary extension.

  • Changed

    If there’s no signature saved and customer signature is disabled, we’ll show the new signature controller instantly.

  • Added

    Adds a new property: shouldCacheThumbnails to suppress thumbnail cache generation.

  • Added

    Adds a new property: shouldHideHUDOnPageChange to fine-tine when the HUD is hidden.

  • Changed

    Highlight etc is no longer offered on text selection if the document can’t be saved.

  • Changed

    Improves Form Element description in the annotation table view.

  • Changed

    Allow “Clear Field” for Choice Form Elements with editable text.

  • Changed

    Improve support for hidden form elements or choices that are neither editable nor have options.

  • Added

    Add hitTestRectForPoint: on PSPDFPageView to allow customization of the rect that is used for tap hit testing to select annotations.

  • Changed

    Make document parsing more robust to allow dealing with files that have incorrect XRef tables.

  • Changed

    The text selection handles now have the proper hit test size when zoomed in - improves your ability to interact with other content.

  • Changed

    YouTube: Add support for http://youtu.be short-form URLs for embedding.

  • Changed

    The note icon name is now properly serialized when using the XFDF annotation provider.

  • Changed

    The XFDF provider now only saves if an annotation is changed. Deserialized annotations are set to be not dirty by default now.

  • Changed

    Annotation and outline classes have been optimized to require less memory and reuse more objects internally.

  • Changed

    Lots of code cleaning, improved documentation and some reorganization. The binary is now smaller and compiles faster.

  • Changed

    Moves document parsing to a background thread, improves initial startup time for complex, large documents.

  • Changed

    GoToR actions with target named destinations are now supported.

  • Changed

    FreeText annotations are now correctly rendered and displayed even when their bounding box is too small for the text.

  • Changed

    Audio recordings can now be time limited and the default encoding/bitrate can be customized in PSPDFAudioHelper.

  • Changed

    The default set of stamps is now localizable and localized by default.

  • Changed

    The Edit button in the annotation table view controller and the bookmark controller is now only enabled if there is content, and edit mode is automatically disabled when there’s no more content.

  • Changed

    Improved touch handling when resizing/moving annotations.

  • Fixed

    Fixes an UX issue that wouldn’t deselect the current toolbar state if a saved signature is added via the annotation toolbar while customerSignatureFeatureEnabled is disabled in the signature store.

  • Changed

    Page scroll animations are reduced to allow faster navigation.

  • Changed

    Annotation overlay views are now loaded and added to the view hierarchy as soon as the page is set up, removing the previous delay that was especially noticeable with note annotations.

  • Changed

    No longer shows the bounding box when selecting/resizing line annotations.

  • Changed

    The undo/redo stack is now consolidated - no more difference or disabled undo while in drawing mode.

  • Changed

    Properly coordinate print controller popover to close when other popovers are activated.

  • Changed

    Use blurry background for UIPopoverController in the stamp section.

  • Changed

    The annotation creation menu now only shows the most important annotation types; customize via createAnnotationMenuTypes in the PSPDFViewController.

  • Removed

    Removes the IDNSDK to get a smaller binary.

  • Changed

    When saving text form elements, the AP stream is now included in the PDF. This fixes issues with Acrobat where the content would only be visible when the text field is active.

  • Fixed

    Fixes a rare crash in (poly)line point calculation if the points are on top of each other.

  • Fixed

    Fixes an edge case where the text field would loose focus after the note annotation controller has been dismissed because of tapping into another text field.

  • Fixed

    Fixes a regression where the selected annotation for multiple potentials was reversed.

  • Fixed

    Fixes an issue where annotations with appearance stream could be rendered at the wrong position and/or size.

  • Fixed

    Fixes an issue where annotations could be returned from the last page when forms are in the document, even if a different page was requested.

  • Fixed

    Fixes an issue with the label parser when encountering offset pages.

  • Fixed

    Fixes an issue where when trying to copy a webpage link in the internal web browser, the system could throw a NSInvalidArgumentException if the link was nil.

3.2.3 - 28 Nov 2013

  • Changed

    Improves custom text stamp creation layout and fixes an issue where the text wasn’t always displayed within the table view.

  • Changed

    Form text fields are now no longer clipped when the zoom scale is very low.

  • Changed

    Border on a form is now only rendered when defined so in the dictionary for widget/form annotations.

  • Changed

    Signatures now use PSPDFAnnotationStringSignature as style key, instead of the PSPDFAnnotationStringInk that was used before.

  • Changed

    Improves support with Microsoft Outlook by making sure we always send the .pdf file ending when sharing via email.

  • Changed

    Any open menus will now be dismissed before PSPDFKit is presenting a popover. This fixes a behavior change in iOS 7 where UIMenuController sometimes stayed visible.

  • Changed

    Choice form elements now have a click-through-able popover and are highlighted when active.

  • Changed

    Next/Prev now works across multiple pages and also includes choice form elements.

  • Changed

    The form highlightColor is now a property on PSPDFFormElement and thus configurable.

  • Changed

    Works around a bug in iOS 7 where the UITextView wouldn’t properly scroll to a new line when entering text in a PDF Form.

  • Changed

    The PSPDFOutlineViewController now shows the empty state if the document has no outline set but the controller is still displayed.

  • Changed

    Improves compatibility with parsing invalid URLs in link actions - will correct more variants.

  • Fixed

    Fixes an issue where certain form choice elements with partial dictionaries could be incorrectly parsed/rendered.

  • Fixed

    Fixes an issue that could prevent form choice elements from being saved correctly back into the PDF.

  • Fixed

    Fixes a rare collection mutation regression when erase mode was active while annotation changes for visible inks were processed.

  • Fixed

    Fixes an issue where allAnnotationsOfType: sometimes could miss certain annotations when an internal save file was used.

  • Fixed

    Fixes an regression where hasDirtyAnnotations could report YES when we really don’t have any unsaved changes.

  • Fixed

    Fixes some localization issues with line endings in the Inspector.

3.2.2 - 24 Nov 2013

  • Changed

    The gallery now allows image zooming when in full screen and requires less memory when loading remote images.

  • Changed

    The gallery is now more customizable, allows custom background colors and recognizes @2x images when they are local.

  • Changed

    The PSPDFDocumentSharingViewController will now use a temporary directory to save annotations into the PDF if it’s in a non-writable location.

  • Changed

    The password view now automatically shows the keyboard.

  • Changed

    If annotations can’t be embedded, the new annotation menu will not be displayed anymore (to be consistent with the PSPDFAnnotationBarButtonItem)

  • Changed

    The runtime now better deals with multiple annotation subclasses that both change the behavior of a parent class. Use overrideClass:withClass: on PSPDFDocument to register such subclasses.

  • Changed

    Set the default ink line width to 3, unless a default is already set.

  • Changed

    Using undo/redo while in eraser mode will now also allow adding/removing of ink annotations.

  • Changed

    The undo system will now commit expired actions that are coalesced. This fixes an issue where certain actions would appear undo-able quite late (e.g. first erase action)

  • Changed

    If the named destination of a link can’t be resolved we will ignore the action and no longer scroll to page 0.

  • Changed

    Improve selection contrast in the PSPDFAnnotationToolbar.

  • Changed

    The PSPDFSearchResult class is now immutable and has a new initializer for creation.

  • Changed

    PSPDFSearchViewController now supports iOS 7 dynamic font size and allows a multi-line text preview. The new default are two lines instead of one.

  • Changed

    Various warning/error messages are now printed with the code location instead of a generic PSPDFError trace.

  • Changed

    Annotation management now uses equality checks instead of memory-based checks, this makes the code more robust when objects are recreated in the annotation providers.

  • Changed

    Text field form elements now resize as we are typing and better render multi-lined text.

  • Changed

    PDF Signature Form elements are now tappable and will offer to add a ink annotation as signature.

  • Changed

    API change: Renamed showNewSignatureMenuAtPoint:animated: with showNewSignatureMenuAtRect:animated:. Use a rect with size zero to get the previous behavior.

  • API

    Some subclassing hooks that have been declared but weren’t called have been properly removed.

  • Changed

    Undo/Redo is disabled by default on old devices to improve performance. (Notably, the iPad 1 with iOS 5.)

  • Changed

    Improves error handling for corrupt or missing PDFs.

  • Changed

    Using the HSV color picker while brightness is set all the way to 0% (black) will do the smart thing to switch to the pure color with 100% brightness.

  • Fixed

    Fixes an issue where ink annotations could change position for PDF documents with non-nil origin points.

  • Fixed

    Fixes an issue where some text in form elements could render incorrectly when the page was rotated.

  • Fixed

    Fixes a potential recursion when parsing malformed documents.

  • Fixed

    Fixes an issue where annotationsFromDetectingLinkTypes: could throw an exception if a page returns nil as body text. (e.g. corrupt or password protected files)

  • Fixed

    Fixes an issue where the gallery component could throw an UIViewControllerHierarchyInconsistency when used in combination with PSPDFPageTransitionCurl.

  • Fixed

    Fixes an issue where we incorrectly detected a regular password protection as custom encryption filter.

3.2.1 - 13 Nov 2013

  • Changed

    Improved a few cases where the PSPDFDocumentSharingViewController was displayed with practically no options to choose.

  • Changed

    Improves the thumbnail <-> page(s) animation so it even looks great when the thumbnail button is toggled really fast.

  • Changed

    The PSPDFNoteAnnotationViewController no longer shows the ‘copy’ button by default, the toolbar looked too cramped.

  • Fixed

    Fixes an issue with UID generation when the document isn’t inside the app bundle.

  • Fixed

    Fixes an issue where larger XFDF ink annotations could degrade when being parsed.

  • Fixed

    Fixes an issue where the initial call for annotationsForPage: in the PSPDFXFDFAnnotationProvider could return an empty array.

  • Fixed

    Fixes an issue with UIKit legacy mode and the PSPDFAnnoationToolbar in certain setups.

  • Fixed

    Fixes an issue where ‘Finish Recording’ on sound annotations wouldn’t work if the recording was still active but currently paused.

  • Fixed

    Fixes an rare issue with writing annotations if inline UTF-16 (the special Adobe flavor) is used within the /Pages root object.

  • Changed

    Titanium: Exposes printOptions, sendOptions and openInOptions from the corresponding PSPDF*BarButtonItems.

3.2.0 - 10 Nov 2013

  • Changed

    Lots of improvements around sound annotations! Serialization, better selection, context menus, customization.

  • Changed

    PSPDFAnnotationTableViewController: Dynamically calculate cell height and show multiple lines of description per cell.

  • Changed

    YouTube and Web views now automatically reload themselves when a reachability change is detected.

  • Changed

    Long-Pressing on text markup will now allow text selection and not select the markup (highlight) annotation. This enables sub-selection of text that is already selected in another way.

  • Changed

    Greatly improves handling of (rotated) FreeText annotations and rotated pages.

  • Changed

    The search bar is now attached to the top on iPhone, to better match iOS 7 style.

  • Changed

    Rendered images are now more more likely to be cached to disk, resulting in less work overall.

  • Changed

    Improves thumbnail scroll performance, especially on the iPad 1.

  • Changed

    Improvements to the text parser, now can parse another category of documents that use Font Programs to define their glyphs.

  • Changed

    Form Check Box Elements now render the AP stream by default and fall back to internal rendering if no stream was found.

  • Changed

    Form background colors are now dynamically parsed and displayed instead of the default light blue.

  • Changed

    Improves support for various Forms that define the form element across multiple objects.

  • Changed

    Improves the touch-down-highlight for form elements.

  • Changed

    Allows overriding of PSPDFTextSelectionView.

  • Changed

    Improves text extraction for highlight annotations when there are multiple overlapping rects.

  • Fixed

    Fixes an issue where the text selection wasn’t properly updated on rotation.

  • Fixed

    Fixes a potential deadlock when async saving was called manually while the view controller was popped from the screen which also invokes a save.

  • Fixed

    Fixes an issue where the tab controls of PSPDFTabbedViewController wouldn’t respect the minTabWidth property.

  • Fixed

    Fixes an issue with rendering annotations with overlapping fill-areas in UIKit legacy mode.

  • Fixed

    Fixes an issue where certain UIActionSheets on iOS 6 could be mis-placed.

  • Fixed

    Fixes an issue with getting images for iOS 6 when the PSPDFKit.bundle is in a non-standard location.

  • Fixed

    Fixes a potential exception when a PDF contained an annotation with a malformed bounding box.

  • Fixed

    Fixes a potential exception when a free text annotation of size zero was created and subsequently edited.

  • Fixed

    Fixes an issue with saving annotation in certain documents that previously produced warnings.

  • Fixed

    Fixes a potential crash when loading annotations from the disk store while a save filter is active.

  • Fixed

    Fixes an issue where under rare conditions flattened notes could be rendered mirrored.

  • Fixed

    Fixes a rare condition where the cache could get into a state where it no longer pre-renders document pages.

  • Changed

    Titanium: The plugin is now simply named com.pspdfkit (from com.pspdfkit.source)

  • Changed

    Titanium: editableAnnotationTypes can now be set in documentOptions.

3.1.4 - 3 Nov 2013

  • Changed

    Improves rendering of line endings in the selected state.

  • Changed

    Don’t show an “external application” dialog if our own app responds to the URL scheme in question.

  • Changed

    The PSPDFGallery can now better deal with a single image and will auto-generate the appropriate manifest if a PSPDFLinkAnnotation points to the image.

  • Changed

    Allows overriding of PSPDFColorSelectionViewController from within the inspector.

  • Changed

    Allows fine-tuning of the dictionary lookup via PSPDFTextSelectionView’s new dictionaryHasDefinitionForTerm: method.

  • Changed

    Enabling/Disabling the eraser feature no longer flickers the ink annotations.

  • Changed

    The eraser now respects alpha settings of the ink annotations.

  • Changed

    While erasing, Undo/Redo now work as expected.

  • Changed

    Special-cased clearColor for the fillColor annotation property when using PSPDFStyleManager. (fill can’t have alpha; so previously this would give you a black fill - now it’s transparent)

  • Changed

    Allow parsing for less common color definitions in appearance strings (k and g)

  • Changed

    Forms: Don’t draw background when we have an AP stream for form buttons.

  • Changed

    Forms: Buttons that define an AP-Stream no longer also have a blue background.

  • Changed

    Forms: Buttons(Check boxes, radio buttons) now show a touch-down state when tapping them.

  • Changed

    Forms: No longer flickers when the element is deselected.

  • Fixed

    Fixes a potential crash in the selection view when we select a free text annotation with zero width.

  • Fixed

    Fixes an infinite loop when searching certain characters.

3.1.3 - 24 Oct 2013

  • Changed

    PSPDFKit now requires the CoreTelephony.framework (this will be added automatically if you use the PSPDFKit.xcconfig file)

  • Changed

    The autodetectTextLinkTypes feature is now faster and will detect more types of phone numbers and URLs, including those that contain spaces/newlines between them.

  • Changed

    Pressing the delete icon in the note annotation controller will only clear the note, except for note annotations where it will delete the whole annotation.

  • Added

    Adds a versioning system for PSPDFKit.bundle. Make sure you always use the bundle we ship with PSPDFKit.

  • Added

    Adds a boxRect:forPage:error: method to PSPDFDocument to easily get a different box rect for the defined page.

  • Changed

    Gallery now supports animated GIFs and downloads images even when the app is in background.

  • Changed

    Improves default header color for the mail view controller.

  • Fixed

    Fixes an issue where the bounding box for FreeText annotation could be too long when they are edited while zoomed in on iOS 7.

  • Fixed

    Fixes an issue where “Inspector…” was displayed for non-editable annotation types.

  • Fixed

    Fixes an issue where “Clear All” deleted all annotations, even those not displayed in the annotation table view.

  • Fixed

    Fixes an issue where flattened note annotations would sometimes be drawn rotated on rotated documents.

  • Fixed

    Fixes an issue where Free Text annotations added from the toolbar could end up being rotated on rotated documents.

  • Fixed

    Fixes a very rare over-release of a PSPDFPageView object when lots of PSPDFViewControllers are rapidly created/destroyed. (you should always reuse this heavyweight object)

3.1.2 - 21 Oct 2013

  • Changed

    Faster scrolling, new default page rendering strategy: PSPDFPageRenderingModeThumbnailIfInMemoryThenFullPage

  • Changed

    Improves text selection drawing and text selection menu placing. The few cases where the menu could overlap the selection have been fixed.

  • Added

    Add more sophisticated warnings if the PSPDFKit.bundle is missing.

  • Changed

    PSPDFViewController will now auto-save annotations when the view is dismissed while contained in a child view controller.

  • Added

    Add verticalTextAlignment to PSPDFFreeTextAnnotation. This is not defined in the PDF spec; so it will be a code-only option for now. PSPDFKit will save this into the PDF as a proprietary extension.

  • Fixed

    Fixes an issue with single page documents, forced two-page-mode and pageCurl.

  • Fixed

    Fixes an issue where under certain conditions the navigationBar was not displayed initially.

3.1.1 - 19 Oct 2013

  • Changed

    Restores compatibility when compiling with Xcode 4.6.

  • Changed

    Various smaller improvements to the new image gallery.

  • Changed

    Various smaller performance improvements, moved some more work off the main thread.

  • Changed

    API cleanup for PSPDFDocumentProvider.

  • Changed

    No longer blocks the UI when annotations are still loading during a touchDown event.

  • Fixed

    Fixes an UX issue where dismissing the activity popover in the web view controller via a touch on the dimming view sometimes required a second touch on the action button to re-show.

  • Fixed

    Fixes an issue when adding annotation views for invalid rects.

3.1.0 - 18 Oct 2013

  • Changed

    Brand-new image gallery (define a region in the pdf to be covered by a smooth gallery). Allows configuration via inline-pdf or external JSON.

  • Changed

    Use menu-based annotation manipulation for text markup annotations.

  • Changed

    The way how the document UID is generated has been changed. Previously, for files it used the full app path. However since the app UID could change after an upgrade, we had to change this behavior. This is only important if you used bookmarks or allowed annotations saving into the internal storage - not for embedded annotation data. Set the global variable PSPDFUseLegacyUIDGenerationMethod to YES to continue using the old path. Those files are in Library/PrivateDocuments. You might want to write a custom migration step to rename the custom data paths from the old UID to the new UID system. The PSPDFUseLegacyUIDGenerationMethod can be changed at any time to switch between old and new UID (generate a new PSPDFDocument instance to force UID regeneration).

  • Changed

    The file-based annotation backing store by default no longer saves link annotations but instead merges the saved annotations and the links from the file. This improves performance for PDFs that have lots of internal links (our current way of saving starts to get slow once there are more than 10.000 objects). In most cases, you don’t need to care and your save file will be migrated automatically. If you rely on custom link annotations being saved/deleted, you need to set the new saveableTypes property of the fileAnnotationProvider back to the old default PSPDFAnnotationTypeAll.

  • Changed

    The undo/redo buttons are now updated immediately after adding annotations.

  • Changed

    The interactivePopGesture (new on iOS 7) is now disabled while we’re drawing to prevent accidental usage.

  • Changed

    The PSPDFViewController will now properly clean up state from the annotation creation when dropped from user code while the toolbar is in drawing mode.

  • Changed

    The outline controller now properly shows page destinations above page 10.000.

  • Changed

    Hides a harmless log warning when PSPDFKit tried to render an annotation with an empty width/height.

  • Changed

    When undo is disabled, the undo/redo buttons are now properly hidden when leaving the drawing mode.

  • Changed

    No longer draws the arrow when flattening choice form elements.

  • Changed

    Restores sound annotations that were added via the pspdfkit:// protocol.

  • Changed

    Improves compatibility with UIViewControllerBasedStatusBarAppearance. (ongoing project, still not recommended.)

  • Changed

    Greatly improves scrolling performance with large outline tables.

  • Fixed

    Fixes placement of the search bar in the outline controller.

  • Fixed

    Fixes a crash when pressing undo while adding free text annotations.

  • Fixed

    Fixes a call to a not implemented method in the file annotation provider when manually replacing annotations.

  • Fixed

    Fixes a crash in arm64 when parsing certain malformed PDF documents.

  • Fixed

    Fixes an issue where the password view wasn’t correctly updated when the document was changed while it was displayed.

  • Fixed

    Fixes an issue where one could get stuck in the eraser mode when choosing it from the toolbar when that one was displayed via the long-press annotation menu.

  • Fixed

    Fixes a timing issue where the text parsing could crash in rare cases.

  • Fixed

    Fixes an off-by-one error that could cut off long lists of ink points when parsing XFDF files.

3.0.11 - 10 Oct 2013

  • Fixed

    Fixes another issue related to UISearchDisplayController and iOS 6/7.

3.0.10 - 10 Oct 2013

  • Changed

    The search controller header is now sticky on iPhone (especially improves display on iOS 7)

  • Changed

    Greatly improves text selection performance when a large number of glyphs is selected.

  • Changed

    Improves eraser mode - faster, and no longer changes the view port when enabling/disabling.

  • Added

    Adds a new convenience method (sortedGlyphs:) when glyphs are manually selected in PSPDFTextSelectionView.

  • Changed

    Improve various details in the XFDF writer.

  • Changed

    Allow pspdfkit:// URLs within the PSPDFXFDFAnnotationProvider.

  • Removed

    Remove confusing search controller animation when it’s first presented on iOS 7.

  • Changed

    Improves outline searching on iOS 7 / iPhone.

  • Changed

    Various other smaller tweaks related to iOS 7.

  • Changed

    Don’t show the PSPDFDocumentSharingViewController if there are no options available.

  • Changed

    Ensure the annotation style picker closes when the annotation mode changes.

  • Changed

    Improves type detection when pspdfkit:// links are used within URLs that have query parameters.

  • Added

    Adds a workaround for documents with invalid /Pages structure which previously prevented annotation saving.

  • Added

    Add missing localization for “Choose Fill Color”.

  • Changed

    The text selection end handle is now prioritized, makes it easier to extend selection for small text.

  • Fixed

    Fixes an issue where changing the position of a note annotation could fail on the first try.

  • Fixed

    Fixes an issue with calling the didCreateDocumentProviderBlock for multiple files.

  • Fixed

    Fixes a 20-pixel offset in the annotation inspector on iPhone/iOS 7.

  • Fixed

    Fixes updating the thumbnail button state.

  • Fixed

    Fixes an issue when showing the annotation toolbar from the bottom.

  • Fixed

    Fixes an issue where popovers could have a width/height of 0 when presented from a bottom toolbar on iOS 7.

  • Fixed

    Fixes a crash on iOS 5 related to the font picker, rotation and early dismissal.

3.0.9 - 4 Oct 2013

  • Changed

    Greatly improves compatibility with text extraction/search, especially for Chinese/Japanese/Korean fonts.

  • Changed

    The autosave feature of the PSPDFViewController can now be controller via the ‘autosaveEnabled’ property. Defaults to YES.

  • Changed

    Improves the transition between stamps and saved annotations for iOS 7 legacy mode.

  • Changed

    Hide the downloadable fonts section if there are no fonts to download.

  • Changed

    Disables an unwanted implicit animation in the annotation style inspector for iOS 7 legacy mode.

  • Changed

    The “Paste” menu is now more clever and will check if creating the new annotations is allowed before it’s displayed instead of failing silently.

  • Changed

    Re-enables search for the outline controller on iOS 7.

  • Fixed

    Fixes an issue in the PSPDFMultiDocumentViewController when the array of documents was set to nil.

  • Fixed

    Fixes a potential crash when parsing invalid PDFs with AcroForm data.

3.0.8 - 2 Oct 2013

  • Changed

    Use a background task to save annotations when the application enters the background to make sure it finishes before the app gets killed.

  • Changed

    Thumbnail page label is now re-enabled by default. (Control this via subclassing PSPDFThumbnailGridViewCell and setting the pageLabelEnabled property.)

  • Changed

    Ensure the status bar is visible if it was originally visible when showing the note view controller on iPhone.

  • Changed

    Improves various details for the note controller, bookmark controller, annotation controller and outline controller related to iOS 7 tinting.

  • Fixed

    Fixes an issue where saved note annotations sometimes were not correctly removed from the page view until the page was changed.

  • Fixed

    Fixes an issue where ink annotations could end up on the wrong page when using multiple document providers.

  • Fixed

    Fixes an issue that could prevent the grouping menu from appear in the annotation toolbar.

  • Changed

    Updated some graphics in the PSPDFKit.bundle.

3.0.7 - 1 Oct 2013

  • Changed

    Improves compatibility with resolving named actions.

  • Changed

    Ensures that the PDF outline is hidden if no page action targets could be resolved.

  • Changed

    Reenable undo/redo by default.

  • Fixed

    Fixes a tiny memory leak.

3.0.6 - 1 Oct 2013

  • Changed

    Always updates bar button items on a document change. Fixes conditions where a button could be in an disabled state if not used in the main toolbar.

  • Changed

    The status bar state captured at viewWillAppear is now only restored when the PSPDFVC is popped from the stack, not on every disappear.

  • Changed

    Makes it easier to disable undo/redo. (new undoEnabled property on PSPDFDocument)

  • Changed

    Improves error return code when saving annotations.

  • Fixed

    Fixes an issue where unsaved annotations could be lost during an low memory event when using the tabbed view controller.

  • Fixed

    Fixes a potential non-main-thread call while preparing for saving.

  • Fixed

    Fixes an issue with saving certain documents.

3.0.5 - 30 Sep 2013

  • Changed

    Font picker now is searchable and shows downloadable fonts.

  • Changed

    The eraser UI properties can now be changed via UIAppearance proxies.

  • Changed

    The form text field update logic is now more clever and won’t change form objects if they are only tapped.

  • Changed

    Improves styling of the mail sharing view controller on iOS 7.

  • Changed

    Improves interoperability with Objective-C++.

  • Changed

    Improves support for a white global tintColor on iOS 7. (check boxes are no longer white)

  • Changed

    Improves spacing for the half-modal annotation style inspector on iPhone/iOS 7.

  • Changed

    The annotation manager now continues to look into other providers if the previous one returns nil.

  • Changed

    Prevent a case where the HUD could be hidden while we’re in the thumbnail transition.

  • Changed

    Changes ‘basePath’ to ‘baseURL’ to fix an API inconsistency in PSPDFDocument.

  • Changed

    Creating a large set of PSPDFDocument objects is now much faster (e.g. while using PSPDFDocumentPickerController)

  • Fixed

    Fixes an issue that could prevent saving annotations into certain documents.

  • Fixed

    Fixes an issue where rotating the signature controller would increase the line thickness.

  • Fixed

    Fixes an issue that prevented committing the rename action in the PSPDFBookmarkViewController.

  • Fixed

    Fixes a potential crash related to the annotation selection view.

3.0.4 - 25 Sep 2013

  • Changed

    Further tweaks and changes how tintColor is handled on iOS 7.

  • Changed

    Improve detection code for checked state of radio/checkboxes in the AcroForm parser.

  • Changed

    Improve search controller animation.

  • Changed

    Improve status bar face/slide animations for iOS 7.

  • Changed

    Better protect the undo controller against mis-use.

  • Added

    Add a new option to PSPDFProcessor: PSPDFProcessorStripEmptyPages. This will post-process the HTML-to-PDF result to remove any blank pages there might be.

  • Changed

    The ‘contentView’ of the PSPDFViewController is now always above the PDF content and below the HUD.

  • Fixed

    Fixes an issue where the scrollable thumbnail bar could sometimes disappear.

  • Fixed

    Fixes an issue where the changes of a open note annotation where not saved when tapping on the note again while the popover was already visible.

  • Fixed

    Fixes various smaller potential crashes for malformed PDF documents.

  • Removed

    Removes support for the optional alertViewTintColor (was iOS 5/6 only)

3.0.3 - 22 Sep 2013

  • Changed

    The default PSPDFKit binary is now again compatible with iOS 5. We added a new 64-bit enabled binary for apps that are already iOS 7 exclusive.

  • Changed

    Greatly improve tintColor handling on iOS 7.

  • Changed

    Support FDF, XFDF and PDF Form submission methods (next to the existing HTTP)

  • Changed

    Improves speed for the memory image cache internals.

  • Changed

    Increase the allowed handle size for the text selection knobs on iOS 7 to make it easier to change the selection.

  • Changed

    Improves the placement for the page label view on iPhone.

  • Changed

    Ensure toolbar is set for the PSPDFSavedAnnotationViewController when used standalone.

  • Added

    Adds missing localization in various places.

  • Changed

    Improve animation when a popover resizes on iOS 7.

  • Changed

    No longer draws the form field background when forms are flattened.

  • Changed

    Optimized handling of documents that take a huge amount of memory to render.

  • Changed

    Parsing performance for annotation saving is now up to 3x faster for certain complex documents.

  • Changed

    Improve localizedDescription for form elements.

  • Fixed

    Fixes an issue where the color picker in the half-modal controller on iOS 7 could be sized too small.

  • Fixed

    Fixes an issue where adding annotations could hide the page contents when annotations were added directly to the page dictionary.

  • Fixed

    Fixes an issue where partial label matching was too eager and sometimes picked non-optimal matches.

  • Fixed

    Fixes various rare crashes.

3.0.2 - 14 Sep 2013

  • Changed

    Exposes some additional helpers in PSPDFDocument.

  • Changed

    Improves the document sharing controller UI for legacy UIKit mode.

  • Changed

    Improves support for RichMedia extraction of PDF documents created with Adobe XI 11.0.04.

  • Fixed

    Fixes an issue with rotation when annotations are selected.

3.0.1 - 13 Sep 2013

  • Fixed

    Fixes an issue with the demo.

3.0.0 - 12 Sep 2013

PSPDFKit 3 is a major new milestone with several new features and countless improvements.

Some of the highlights are:

  • Changed

    Full support for iOS 7, Xcode 5 including new icons and default styles to fully match the new iOS 7 appearance, while also maintaining full backwards compatibility for iOS 5/6.

  • Changed

    The prebuilt binary is now ready for 64 bit and includes 5 architecture slices: armv7, armv7s, arm64, i386 and x86_64.

  • Changed

    Support for filling out Adobe AcroForm PDF forms. (PSPDFKit Complete/Enterprise only)

  • Changed

    Full-Text-Indexed-Search across all available PSPDFDocuments via PSPDFLibrary. (PSPDFKit Complete/Enterprise only)

  • Added

    New PSPDFDocumentPickerController for easy selection and search within your documents.

  • Changed

    Support of the XFDF (XML Forms Data Format) Adobe standard for saving/loading/sharing annotations and forms.

  • Changed

    Completely redesigned annotation toolbar that groups common annotation types together.

  • Added

    New annotation inspector for faster and more convenient annotation editing.

  • Changed

    Global Undo/Redo for annotation creation/editing.

  • Changed

    Drawing no longer locks the view, you can scroll and zoom with two fingers without any drawing delay.

  • Added

    New PSPDFDocumentSharingViewController to unify annotation flattening from email and open in feature and allow a better page selection.

  • Changed

    Record and play back sounds from sound annotations (fully compatible with Adobe Acrobat)

  • Changed

    FreeText annotations autoresize as you type.

  • Changed

    Squiggly text highlighting.

  • Changed

    Draw and edit Polygon/Polyline annotations.

  • Changed

    Stamp annotations are now added aspect ratio correct.

  • Changed

    Improved PDF generation support in PSPDFProcessor (website/office conversion)

  • Changed

    Improves handling for very small annotations.

  • Changed

    Support for non-default locations for PSPDFKit.bundle.

  • Changed

    The delays for adding/removing annotations has been removed.

  • Changed

    Link/Widget annotations can now be tapped instantly.

  • Changed

    The logic for the keyboard avoidance code has been greatly improved.

  • Changed

    Additional Actions and Action Chains are now properly supported.

  • Changed

    Supports various new touch actions like Hide, Submit Form, Reset Form and adds support for more Named Actions.

  • Changed

    Countless performance improvements and bug fixes across the whole framework.

Important! Currently PSPDFKit 3 requires that you set the key UIViewControllerBasedStatusBarAppearance to false in your project Info.plist file. We’re working on supporting view controller based status bar appearance in a future update.

Note: Several methods and constants have been updated and renamed to make the API cleaner. Read the PSPDFKit 3.0 Migration Guide if you’re updating from version 2.

Important: PSPDFKit 3 requires a serial number and will run in demo-mode by default. Visit https://my.pspdfkit.com to register your app bundle ID and get the serial. If you are a PSPDFKit 2 customer with a license that includes a free PSPDFKit 3 update, please contact support@pspdfkit.com with your PET* purchase number to get an invite.

PSPDFKit 3 still supports iOS5, however we plan to drop support for it later this year. We already see less than 5% usage and expect this number to drop further in the future.

With the release of PSPDFKit 3 we will focus development on this version and won’t be able to offer support for version 2 anymore. Most customers who bought PSPDFKit after January 14th are eligible for a free update, if your update window is still open (6 months for Binary/Viewer, 12 months for Source/Enterprise) Contact us with your PET* purchase number (or invoice ID) for details on your status.

2.14.22 - 1 Oct 2013

  • Fixed

    Fixes a crash when parsing certain documents with invalid font references.

2.14.21 - 12 Sep 2013

  • Added

    Adds a workaround for a bug where thumbnail icons could disappear in iOS 7 legacy mode.

  • Changed

    Ensures we always have a document UID set. Fixes an assert for conditions where this was missing.

  • Fixed

    Fixes a rare crash related to an over-release in certain high-load conditions.

  • Fixed

    Fixes the logic that checks and filters glyphs that are outside of the visible page area.

2.14.20 - 29 Aug 2013

Note: This will likely be the last update of PSPDFKit 2. We’re very close to release version 3: our next major version.

  • Fixed

    Fixes an issue where scroll to page doesn’t work for zoom levels < 1 in continuous scrolling mode.

  • Fixed

    Fixes an initializer issue in PSPDFOrderedDictionary.

  • Fixed

    Fixes a very rare crash on enqueuing render jobs.

2.14.19 - 6 Aug 2013

  • Changed

    Ensure didShowPageView is called on the initial display of the controller.

  • Changed

    Ensure we don’t create multiple PSPDFMoreBarButtonItems while creating the toolbar.

  • Changed

    Ensure ‘fileName’ only ever uses the last path component. Fixes an issue where the full path would be used in the email send feature.

  • Fixed

    Fixes an issue when using the bookmark filter in the thumbnail controller with a pageRange filter set.

2.14.18 - 28 Jul 2013

  • Fixed

    Fixes an issue with setting certain status bar styles.

  • Fixed

    Fixes a regression that could result in a crash “cannot form weak reference” on iOS5.

2.14.17 - 26 Jul 2013

  • Changed

    Improves memory handling and search performance for very large documents. (> 10.000 pages)

  • Changed

    Improve URL encoding handling for link annotations, fixing various encoding issues.

  • Fixed

    Fixes an issue where the scrollable thumbnail bar wouldn’t properly update when a new document was set.

  • Fixed

    Fixes an exception when the tabs of the container view controller change after being presented (e.g. outline parser detects that there’s no outline to show)

  • Fixed

    Fixes a rare crash in PSPDFHighlightAnnotation’s highlightedString.

2.14.16 - 19 Jul 2013

  • Changed

    Further improves text extraction performance (faster searching).

  • Changed

    Enables to subclass PSPDFAnnotationCell in the PSPDFAnnotationTableViewController.

  • Fixed

    Fixes an issue where logging the PSPDFDocumentProvider within dealloc could lead to resurrection.

  • Fixed

    Fixes an issue with managing certain PDF caches.

2.14.15 - 12 Jul 2013

  • Changed

    Allow PSPDFMoreBarButtonItem to be subclassable.

  • Changed

    Improve text parser compatibility with PDFs that have deeply nested XObject structures.

  • Fixed

    Fixes an issue where font metrics could be too small/too large within XObjects when the font key had the same name between global resources and XObject resources.

  • Fixed

    Fixes an issue where the word boundaries could be off-by-one due to manually inserted spaces at the wrong index.

  • Fixed

    Fixes an issue where annotation views were not properly cached when a different view was returned via the annotationView: delegate.

2.14.14 - 2 Jul 2013

  • Changed

    Improve compatibility of the PSPDFMenuItem image support on iOS7.

  • Fixed

    Fixes a compile issue when the Dropbox SDK is linked in combination with PSPDFKit.

  • Fixed

    Fixes an assert when a link action is long-pressed and no action is set.

  • Fixed

    Fixes an issue when the internal webview receives a NSURLErrorCancelled from an async operation.

  • Fixed

    Fixes an issue when annotation notifications are generated from threads other than main.

  • Fixed

    Fixes a crash in the Titanium proxy for certain link annotation actions.

2.14.13 - 27 Jun 2013

  • Fixed

    Fixes an issue where the tab bar views could be placed inside the navigation bar in PSPDFTabbedViewController when rotated without the HUD being visible.

  • Fixed

    Fixes an issue where the thumbnail bar could show stale information when the document changes.

  • Fixed

    Fixes an assertion when an empty action is evaluated through a long-press.

  • Fixed

    Fixes an issue where under certain conditions the note annotation controller could show redundant toolbar buttons.

  • Fixed

    Fixes a potential crash for documents with weird glyph indexes when moving the text selection handles.

  • Fixed

    Fixes a potential recursion crash while supportedInterfaceOrientations is evaluated.

  • Fixed

    Fixes a potential empty context log warning for iOS7.

2.14.12 - 24 Jun 2013

  • Changed

    Improves thumbnail animations on device rotation.

  • Changed

    Improves the efficiency of the memory cache.

  • Changed

    When adding an image and the size picker is dismissed on iPad, we now use high quality instead of throwing away the image.

  • Changed

    Be more conservative about memory when kPSPDFLowMemoryMode is enabled. (Enable this if you have complex PDFs and/or memory related issues)

  • Fixed

    Fixes a potential recursive call problem when editing link annotations.

  • Fixed

    Fixes an issue where certain glyph frames could be calculated too small if the PDF is encoded incorrectly.

  • Fixed

    Fixes an issue with generating JSON from stamp annotations.

  • Fixed

    Fixes an issue where images could be rendered upside down/incorrectly when they have certain EXIF rotation settings.

  • Fixed

    Fixes an UI issue when annotations couldn’t be fully restored from the Copy/Paste action and created an zero-sized object.

2.14.11 - 19 Jun 2013

  • Changed

    Allow subclassing of the UIImagePickerController used within PSPDFKit for special use (e.g. to block portrait display for landscape-only apps). Use overrideClass:withClass: for that.

  • Changed

    Ensure the outline page label frame is properly update in landscape mode.

  • Fixed

    Fixes an issue where the annotation table view controller didn’t check the editableAnnotationTypes array before offering a delete.

  • Fixed

    Fixes an issue where highlightedString on PSPDFHighlightAnnotation could return incorrect results.

  • Fixed

    Fixes an issue with text extraction.

2.14.10 - 13 Jun 2013

  • Fixed

    Fixes an issue where the outline controller could hang in the “Loading…” state on older devices.

  • Fixed

    Fixes an issue where in rare cases the stamp annotation text could be larger than the stamp itself.

  • Fixed

    Fixes an issue where search could throw an out of range exception for specific PDF encodings.

2.14.9 - 11 Jun 2013

  • Changed

    Various smaller fixes for iOS7. The source code now again compiles without any warnings.

  • API

    change delegate to annotationToolbarDelegate for the PSPDFAnnotationToolbar because UIKit now added a delegate property on the toolbar.

  • API

    The setDefaultStampAnnotations method in PSPDFStampViewController is now a class method.

  • Fixed

    Fixes an issue where the thumbnail controller could mis-place the filter header after a frame resize.

  • Fixed

    Fixes a potential crash when the search view controller was both scrolled and the search keyword changed at the same time.

2.14.8 - 3 Jun 2013

  • Changed

    Improves glyph word space detection.

  • Fixed

    Fixes a potential crash on a yet unreleased future version of iOS.

2.14.7 - 31 May 2013

  • Changed

    Improved memory management for older devices like iPad1 or when kPSPDFLowMemoryEnabled is set. This helps against possible memory exhaustion on very complex documents.

  • Fixed

    Fixes an issue where the play button of an embedded video sometimes would not change to its actual state (playing) when pressed.

  • Fixed

    Fixes an issue with draw mode restoration after showing a modal view controller while in draw mode when using pageCurl transition.

  • Changed

    Further tweaks to the text extraction engine.

2.14.6 - 29 May 2013

  • Changed

    It’s now easier than ever to change the link border color: [PSPDFLinkAnnotationView setGlobalBorderColor:[UIColor greenColor]].

  • Changed

    Thumbnail loading in the scrobble bar is now higher prioritized, loads faster.

  • Changed

    The bounding box calculation for line annotation now correctly calculates the size for line endings. Line ending size has also been increased to better match Adobe Acrobat. (Thanks Tony Tomc!)

  • Changed

    The PSPDFRenderStatusView is now a public class which can be used to customize the loading spinner displayed while rendering a PDF page.

  • Changed

    Annotation resizing when zoomed in deeply has been greatly improved.

  • Changed

    Further improves text parsing speed and word boundary detection.

  • Fixed

    Fixes an issue where in some cases annotation resizing could fail when changed via the menubar directly before the resize action.

  • Fixed

    Fixes a potential one-pixel rendering bug that could result in thumbnails for certain aspect ratio combinations having white lines at one end of the image.

  • Fixed

    Fixes an issue that would sometimes mark certain PDF links to localhost as “webview” when they in fact only are regular links.

2.14.5 - 27 May 2013

  • Changed

    PSPDFWebViewController will now use UIActivityViewController on iOS6 by default.

  • Changed

    Support new “loop” option for video annotations.

  • Changed

    Use images for the text alignment setting.

  • Changed

    Improve HSV color picker brightness style.

  • Changed

    Improve word detection for PDF types that already have spaces added and also improves word-break-behavior for ligatures.

  • Changed

    PSPDFKit will now attempt to render even unknown annotation as long as they define an appearance stream.

  • Changed

    Improve search and glyph extraction performance.

  • Fixed

    Fixes an issue that could result in the HUD being in a hidden state after adding line/ellipse annotations from the annotation menu while the annotation toolbar is visible.

  • Fixed

    Fixes a potential crash when the PSPDFDocument was deallocated early.

  • Fixed

    Fixes a rare crash with a malformed PDF in the text extractor.

2.14.4 - 23 May 2013

  • Changed

    The annotation resize control now shows guides for aspect ratio and square resizing.

  • Changed

    The outline controller now shows the target page and properly highlights the outline button.

  • Changed

    Improves rendering of rotated stamps/images on rotated pages.

  • Changed

    Allow class overriding for PSPDFSearchResultCell and PSPDFSearchStatusCell.

  • Changed

    The grid control now loads faster for huge documents on iOS5.

  • Added

    Adds some additional safeguards that will now warn if methods of UIViewController/PSPDFViewController are overridden without calling super.

  • Removed

    Removes legacy PSPDFResolvePathNamesEnableLegacyBehavior.

  • Fixed

    Fixes a small memory leak related to stamp annotations.

  • Fixed

    Fixes an issue where the search controller could get into an “empty” state without showing the search bar.

2.14.3 - 21 May 2013

  • Changed

    Allow to override PSPDFOutlineCell via overrideClass:withClass:.

  • Fixed

    Fixes a nasty issue with one-pixel white thumbnail borders on certain page aspect rations.

  • Fixed

    Fixes an edge case where the menu could appear while the PSPDFViewController is being popped from the navigation stack.

  • Fixed

    Fixes an issue with multiple calls to overrideClass:withClass:

  • Fixed

    Fixes a parsing bug with remote GoToR actions that have a page destination set. The page destination is now evaluated correctly.

2.14.2 - 19 May 2013

  • Changed

    PSPDFViewController now unloads its views when not visible on a memory warning even on iOS6. This saves memory especially when multiple stacks of viewControllers are used in a navigationController.

  • Changed

    Improves the thumbnail quality.

  • Changed

    Polyline/Polygon how shows boundingBox resize knobs + knobs for each line end point. Inner points are green.

  • Changed

    When no fillColor is defined, color will be used instead of black. This is not defined in the PDF Reference, but more closely matches Apple’s Preview.app and looks better.

  • Changed

    Glyph ligature breaks (e.g. ffi) now no longer are marked as WordBreaker.

  • Changed

    Improves default boundingBox calculation for new annotations on rotated PDF documents.

  • Changed

    PSPDFPageRenderer can now be subclassed/changed.

  • Changed

    Improves bounding box calculation for small FreeText annotations.

  • Changed

    Stamps are now properly rendered on rotated pages.

  • Changed

    If a stamp annotation is an appearance stream, PSPDFKit now tries to extract the image when using Copy/Paste.

  • Changed

    Font variant picker now shows font in title and filters name for better display, e.g. ‘Helvetivca-Bold’ becomes just ‘Bold’.

  • Changed

    Several improvements to the PSPDFMultiDocumentController.

  • Changed

    The thumbnail selection background now properly sizes itself based on the negative edgeInsets of the thumbnail cell (= looks better for non-portrait documents)

  • Changed

    Dashed border now factors in lineWidth.

  • Changed

    Improves parsing of certain GoToR Actions.

  • Changed

    Made the color preview in UITableViewCell pixel perfect.

  • Changed

    Improves title detection to filter out white space, now correctly handles cases where the title is missing but ’ ’ is set instead.

  • Changed

    PSPDFKit is now compiled with -O3 (instead of -Os) and and uses link-time optimization to further improve performance.

  • Fixed

    Fixes placement of the image and signature picker for rotated documents.

  • Fixed

    Fixes a rare issue where a annotation could stuck in an invisible state because of a bug in the trackedView when selecting + scrolling happened at the same time.

  • Fixed

    Fixes a regression where thumbnail images could become sized wrongly in their aspect ratio under certain conditions for non-uniformly sized documents.

  • Fixed

    Fixes an offset by one error when resolving named destinations for a specific outline action destination type when there are > 500 outline entries.

  • Fixed

    Fixes a potential crash related to the color picker.

  • Fixed

    Fixes a crash related to parsing invalid outline elements.

2.14.1 - 15 May 2013

  • Added

    Add write support for Polygon/Polyline annotations. (In the API, there’s no UI for creating yet, but editing the points works)

  • Added

    Add new PSPDFThumbnailBar to display scrollable thumbnails as an alternative to the scrobbleBar. The thumbnail bar is a preview and might change API/Featureset in the next releases. We have some big plans for this but couldn’t wait to get it out of the door!

  • Changed

    The PSPDFOutlineViewController now no longer shows a title on iPad if no modes are set. As a detail, its search bar now is named as “Search Outline” instead of just “Search”.

  • Changed

    FreeText annotation is now correctly rotated on rotated PDF pages and also respects the annotation rotation setting (0, 90, 180, 270).

  • Fixed

    Fix password view state positioning when the keyboard is up and the parent resizes itself.

  • Fixed

    Fixes a potential regression/assertion when the PSPDFViewController was used without a navigationController.

  • Fixed

    Fixes an regression where words with ligatures (like the ffi liagure glyph) would be split into two words with certain encodings.

  • Fixed

    Fixes a race condition that could lead to a warning named ‘ deallocated while still in use’.

  • Fixed

    Fixes a line annotation serialization issue where line endings would only be serialized if both are set.

  • Fixed

    Fixes an issue for Copy/Paste where preexisting annotations could disappear after they have been copied and edited.

  • Fixed

    Fixes an exception in the PDF parser if a PDF with a corrupt stream object is analyzed.

2.14.0 - 12 May 2013

  • Added

    Add support to Copy/Paste annotations. This creates a global UIPasteboard and will work for all apps that use the PSPDFKit framework with 2.14 and up. Alternatively a JSON object is created as well, so that other applications can add support to parse and support PSPDFKit-style-annotations as well.

  • Changed

    Paste also supports general pasteboard types like Text, URL or Image and will create the appropriate annotations (if this is allowed)

  • Added

    New global PSPDFStyleManager that saves various annotation properties and applies them to new annotations. For example, if you change the color of a highlight to red, all future annotations are created red until you change the color back. This already worked in the PSPDFAnnotationToolbar before but is now unified and applied globally (will also save properties like fillColor or fontName). You can disable this with nilling out the styleKeys property of PSPDFStyleManager.

  • Changed

    The PSPDFFreeTextAnnotationView is now always sharp, even when zoomed in. Because we have to work around the broken contentsScale property, the API has changed a bit. If you previously had textView overridden, you now need to subclass PSPDFFreeTextAnnotationView and change the textViewForEditing method to apply your custom textView.

  • Changed

    PSPDFStampViewController is now more flexible and will evaluate the new PSPDFStampAnnotationSuggestedSizeKey key for the default annotations. Images in default annotations are now supported as well and the checkmark and X annotation are now added with the correct aspect ratio size. With the new setDefaultStampAnnotations: a different set of default annotations can be set.

  • Changed

    Various smaller UX fixes inside the PSPDFNoteViewController.

  • Changed

    Improves memory usage with very large documents (1000 pages and up)

  • Changed

    Various smaller performance improvements in the cache.

  • Changed

    Tinting has been improved for various view controllers.

  • Changed

    The global “Text…” option has been renamed to “Note…” to make its function more clear.

  • Changed

    The global “Appearance…” has ben renamed to “Style…” because this is more concise and better fits the iPhone.

  • Fixed

    Fixes an issue where unless controls:YES was set the wrong default was used for web links in the internal browser.

  • Fixed

    Fixes an edge case where the PSPDFPasswordView would not adapt itself correctly if the keyboard was already up before the controller has been pushed.

  • Fixed

    Fixes an issue with opening external URLs via dialog where the preview of the URL could fail.

2.13.2 - 10 May 2013

  • Changed

    The text selection delegate pdfViewController:didSelectText:withGlyphs:atRect:onPageView: is now also called for deselection.

  • Fixed

    Fixes an issue where PSPDFProcessor would flatten AND add annotations if kPSPDFProcessorAnnotationAsDictionary was used.

  • Fixed

    Fixes an issue with annotation drawing on iPhone on iOS5 where views could be reloaded after a memory warning and then the current drawing was missing.

  • Fixed

    Fixes a small memory leak.

2.13.1 - 9 May 2013

  • Added

    Adds read support for Polygon/Polyline annotations, including support for all line ending types.

  • Changed

    The tinted UIPopoverController subclasses now look much better and now very closely resemble the original including gradients and alpha value.

  • Changed

    PSPDFTextParser now fully complies to NSCoding, so search results can be persisted and cached. (Thanks to ForeFlight!)

  • Fixed

    Fixes an unbalanced locking call when a page was requested that couldn’t be rendered.

2.13.0 - 7 May 2013

PSPDFKit now requires QuickLook.framework, AudioToolbox.framework and sqlite3. Please update your framework dependencies accordingly.

  • Changed

    Initial support for ‘Widget’ annotations, supports action and rendering. (not yet writable)

  • Changed

    Support for ‘File’ annotations. Will offer QuickLook support on touch.

  • Changed

    Basic read support for ‘Sound’ annotations.

  • Added

    Add support for ‘Rendition’ and ‘RichMediaExecute’ actions that can control Screen/RichMedia annotations. (video/audio. JavaScript is not supported.)

  • Changed

    Ink/Circle/Ellipse/Line now each save their last used color independently.

  • Changed

    FreeText and other annotation types inside the annotation toolbar now remember the last used color.

  • Added

    Add missing translation for “%d Annotations” and added special case for “%d Annotation” (singular).

  • Added

    Add missing “No Annotations” and “Loading…” state text for the PSPDFAnnotationTableViewController.

  • Changed

    For text selection, the text knob is now prioritized over near annotations.

  • API

    cacheDirectory in PSPDFDocument has been renamed to dataDirectory, so that won’t be confused with the cache directory setting of PSPDFCache.

  • Changed

    Improves text parser to properly detect word boundaries for documents that use invalid characters for word separation.

  • Changed

    For pspdfkit:// based videos controls are now enabled by default if the option is not set.

  • Changed

    PSPDFProgressHUD now checks if the keyWindow is visible before restoring, fixes an edge case with multiple windows that have rootViewControllers attached.

  • Changed

    PSPDFSearchViewController now has a protocol to communicate with PSPDFViewController instead of owning that object directly.

  • Changed

    PSPDFViewController no longer will change the viewMode to document when the view will disappear.

  • Fixed

    Fixes a rare crash when moving the text selection handle.

  • Fixed

    Fixes an issue with writing the page annotation object on malformed PDFs which could lead to annotations being written but not being displayed.

  • Fixed

    Fixes an issue with where sometimes fillColor was set on FreeText annotations even though there shouldn’t be one set.

2.12.12 - 4 May 2013

  • Changed

    The note view controller now will detect links.

  • Changed

    pdfViewController:shouldSelectAnnotation: is now also honored for long press actions.

  • Fixed

    Fixes an issue where annotations sometimes were not parsed correctly with password protected PDFs.

  • Fixed

    Fixes an issue related to checking the annotation cache receipt.

  • Fixed

    Fixes an encoding issue with annotation links that contained spaces.

  • Fixed

    Fixes a potential crash with an PSPDFActionURL with an nil URL.

2.12.11 - 30 Apr 2013

  • Added

    Add new styles for HUD showing/hiding: PSPDFHUDViewAnimationSlide (in addition to the default fade)

  • Changed

    Tapping in the previous/next range on first/last page will now toggle the HUD instead of force-showing it.

  • Fixed

    Fixes a UI issue where the document label view could be slightly offset under certain conditions on iPhone after a rotation from portrait to landscape with hidden HUD.

  • Fixed

    Fixes an issue with text extraction for certain PDF encodings.

2.12.10 - 30 Apr 2013

  • Changed

    Improves the Loading… state when there’s already content in PSPDFTableAnnotationViewController.

  • Fixed

    Fixes an issue with adding/removing bookmarks.

  • Fixed

    Fixes an issue where fixedVerticalPositionForFitToWidthEnabledMode could lead to off-centered pages.

  • Fixed

    Fixes an issue with search and certain PDF encodings that only happened on release builds.

  • Changed

    PSPDFKit Catalog: Fixes the map view example with a map:// annotation link.

2.12.9 - 28 Apr 2013

  • Fixed

    Fixes an issue with text selection handle dragging.

2.12.8 - 28 Apr 2013

  • Changed

    Huge performance and memory improvements for text extraction/search.

  • Changed

    Performance improvements at serializing annotations.

  • Changed

    Memory improvements, especially for large documents. (>5000 pages)

  • API

    useApplicationAudioSession in PSPDFVideoAnnotationView has been removed, since the underlying property is deprecated by Apple. Subclass and change this on the MPMoviePlayerController directly if you rely on the old behavior, but note that this might be gone as of iOS7.

  • Added

    New brightnessControllerCustomizationBlock in PSPDFBrightnessBarButtonItem.

  • Fixed

    Fixes an issue that could lead to a crash on deallocating certain objects when OS_OBJECT_USE_OBJC was enabled. (Sourcecode, iSO6 only ARC builds)

  • Fixed

    Fixes an issue where PSPDFKit was sometimes too slow freeing up memory with lots of background task running on low memory situations.

2.12.7 - 24 Apr 2013

  • Changed

    Major performance improvements on annotation parsing.

  • Changed

    Outline and annotation parsing has been moved to a thread, the controller has now a loading state until parsing is complete.

  • Changed

    The bookmark controller now supports the pageRange feature, hiding bookmarks that are not accessible.

  • Changed

    Bookmark cells now allow copy.

  • Changed

    Bookmark now also uses the PSPDFAction system to execute actions. (allows links, etc)

  • Changed

    Improves the text parser to better deal with malformed PDF font encodings.

  • Changed

    Improves accessibility localization in the thumbnail grid view cell. (thanks to Dropbox for providing this patch!)

  • Added

    Adds missing localization for text alignment property of free text annotations.

  • Fixed

    Fixes a regression where search table view updates with rapid cancellation could lead to an exception.

2.12.6 - 22 Apr 2013

  • Changed

    FreeText annotations now have a text alignment property (compatible with both Preview.app and Adobe Acrobat)

  • Changed

    Ink annotations now allow setting a fill color (this is an extension to the PDF spec but works fine because we emit an appearance stream)

  • Changed

    Allows subclassing of PSPDFStampViewController.

  • Changed

    Expose the drawView of the PSPDFSignatureController.

  • Changed

    FreeText annotations: Improve parsing of style strings.

  • Changed

    Don’t do expensive (xpc) dictionary lookups on older devices. (iPad1)

  • Fixed

    Fixes an issue where the outline controller could show menu items from the text selection view on iPad.

  • Fixed

    Fixes a crash with a missing selector (didReceiveMemoryWarning) on PSPDFDrawView.

  • Fixed

    Fixes a rare crash with parsing certain malformed PDF documents.

2.12.5 - 21 Apr 2013

  • Changed

    FreeText annotations now support fill color (Note: This is only partially implemented in Apple’s Preview.app but works fine in Adobe Acrobat)

  • Changed

    FillColor settings now includes transparent (useful for shapes, free text, lines)

  • Changed

    Improves color parsing for FreeText annotations.

  • Added

    Add basic support for Caret annotations.

  • Changed

    Improves rendering of rotated stamps.

2.12.4 - 19 Apr 2013

  • Changed

    Performance improvements for page scrolling.

  • Changed

    Improves support for UIAppearance (e.g. navigation bar images)

  • Changed

    Bookmark and annotation controller now fully respect the tintColor property.

  • API

    PSPDFDocument convenience constructors have been renamed from PDFDocumentWith… to simply documentWith….

  • Changed

    Improves compatibility with certain GoToR PDF actions that don’t define a target page.

  • Fixed

    Fixes an issue where pausing a video without controls could fail on iOS5.

  • Fixed

    Fixes an issue where showing multiple videos with autostart enabled could lead to a crash on iOS5.

  • Fixed

    Fixes a small memory leak when drawing stamp annotations.

2.12.3 - 19 Apr 2013

  • Changed

    The setDidCreateDocumentProviderBlock and the didCreateDocumentProvider method will now be called after the documentProviders are fully created, fixing recursion issues if methods are called that require the documentProvider from within that block.

  • Changed

    Setting a different annotationPath in the PSPDFFileAnnotationProvider will remove all current annotations and try to load new annotations from that path.

  • Fixed

    Fixes an issue where in PSPDFTextSearch didFinishSearch: was always called, even when the search was cancelled (instead of didCancelSearch:)

  • Fixed

    Fixes an issue where changing the note icon could result in restoring the previously set note text.

  • Changed

    Titanium: Fixes a bug where under certain conditions useParentNavigationBar would not work on the first push of the view controller.

  • Changed

    Titanium: Add setAllowedMenuActions (document setting)

2.12.2 - 18 Apr 2013

  • Changed

    PSPDFTabbedViewController learned openDocumentActionInNewTab, opens a document in a new tab if set to YES (new default)

  • Changed

    pdfViewController:documentForRelativePath: now gets the original path from the PDF action for resolvement.

  • Changed

    Respect alpha for fillColor for FreeText annotations.

  • Changed

    Disable iOS “Speak Selection” menu entries since this does not work. A DTS for this feature is ongoing.

  • Fixed

    Fixes rendering of textAlignment for FreeText annotations.

  • Fixed

    Fixes an issue when pageRange is set with multiple documents and retain documents are completely blocked through it.

  • Fixed

    Fixes PDF generation for different-sized PDFs.

  • Fixed

    Fixes missing update when “Clear All” is used.

  • Fixed

    Fixes a rare race condition on freeing document providers.

  • Fixed

    Fixes a rare issue that could lead to an empty view on loading a document.

2.12.1 - 12 Apr 2013

  • Changed

    Uses a sensible default for allowedMenuActions in PSPDFDocument.

  • Fixed

    Fixes an issue with Appcelerator.

2.12.0 - 11 Apr 2013

  • Added

    New class cluster: PSPDFAction. This unifies action between PSPDFOutlineElement, PSPDFBookmark and PSPDFLinkAnnotation. Now you can create outline elements and bookmark that have the same flexibility as links in PSPDFLinkAnnotation, supporting pspdfkit:// style URLs. The parsing code has been unified as well with the best of both worlds (e.g. the ‘Launch’ action is now supported universally). This improvement required deprecating certain methods - update your code if you used one of those classes directly)

  • Added

    Add support for GoBack/GoForward named annotations.

  • Added

    Add basic support for JavaScript actions that link to another page.

  • Changed

    PSPDFNoteAnnotationController now honors the allowEditing state also for the textView and blocks editing if set to NO.

  • Added

    New helper to better override classes: overrideClass:withClass: in both PSPDFViewController and PSPDFDocument.

  • Changed

    Annotation types in the annotation table view are now localized.

  • Added

    New delegates in PSPDFViewControllerDelegate to get notified on page dragging and zooming.

  • Changed

    PSPDFViewState no longer saves the HUD status (this should be handled separately and was confusing for the tabbed controller)

  • Removed

    Removed legacy coder support for data models that were serialized before 2.7.0.

  • Removed

    Removes deprecated API support in PSPDFTextSearch and PSPDFAnnotationParser.

  • Fixed

    Fixes an issue in the label parser where page label prefixes were defined without style.

  • Fixed

    Fixes an issue where hiding the progress HUD could make the wrong window keyWindow (if at that time there is more than one visible), thus leading to keyboard problems.

  • Fixed

    Fixes an issue in the document parser that could lead to a recursion for cyclic XRef references for certain PDF documents.

  • Fixed

    Fixes a situation where touch handling could become sluggish when a crazy amount of link annotation is on a page (>500!)

  • Fixed

    Fixes a annotation text encoding issue that could result in breaking serialization of certain character combinations like 小森.

  • Fixed

    Fixes a UI issue where invoking the draw action from the menu while at the same time having the annotation toolbar visible could lead to a hidden toolbar if that one is transparent.

  • Fixed

    Fixes an issue with the text extraction engine for certain PDF files.

  • Changed

    Appcelerator: Allow setting size properties like thumbnailSize: [300,300]

  • Changed

    Appcelerator: Add support to set outline controller filter options (outlineControllerFilterOptions = [“Outline”])

2.11.2 - 4 Apr 2013

  • Changed

    Drawing annotations is now always sharp, even when the document is zoomed in. (This required changes to the public API of PSPDFDrawView, check your code if you use that class directly)

  • Changed

    Annotation flattening now shows a circular progress indicator instead of the default spinning indicator.

  • Changed

    PSPDFProcessor now has a new progressBlock property that calls back on each processed page.

  • Added

    New delegates: pdfViewControllerWillDismiss: and pdfViewControllerDidDismiss: to detect controller dismissal.

  • Added

    Add allowedMenuActions property to PSPDFDocument to allow easy disabling of Wikipedia, Search, Define text selection menu entries.

  • Changed

    Internal locking of PSPDFDocument and PSPDFRenderQueue has been improved and is now faster in many situations.

  • Changed

    Getting all annotations of a document is now faster in some situations.

  • Changed

    Titanium: setEditableAnnotations: is now exposed (PSPDFKit Basic upwards)

  • Fixed

    Fixes an issue with line annotation selection where sometimes a selection knob was not visible.

2.11.1 - 3 Apr 2013

  • Added

    Add switch to globally enable/disable bookmarks (bookmarksEnabled in PSPDFDocument)

  • Changed

    annotationsEnabled in PSPDFDocument now also enabled/disables the annotation menus.

  • Changed

    The thumbnail view now listens for annotation changes/bookmark changes and updates accordingly.

  • Fixed

    Fixes an issue where the toolbar in the new PSPDFContainerViewController was sometimes not displayed initially.

  • Fixed

    Fixes an issue where the delegate didLoadPageView: was called multiple times with the pageCurl transition.

2.11.0 - 1 Apr 2013

  • Changed

    Enables creation of Rectangle, Ellipse and Line annotations.

  • Changed

    Line thickness can now be chosen from the drawing toolbar.

  • Changed

    Improvements to line annotation drawing.

  • Changed

    Line annotation endings can now be customized (Square, Circle, Diamond, Arrow, …)

  • Changed

    Drawing is now instantly smoothened.

  • Added

    New annotation list controller (PSPDFAnnotationListViewController) to quickly see all annotations, zoom onto them or delete them.

  • Changed

    Renamed Table of Contents to Outline.

  • Changed

    OutlineBarButton now can show both the new annotation list and the bookmarks. Both are enabled by default.

  • Changed

    The outline is now searchable.

  • Changed

    Several menu items have been reorganized to both fit better on iPad and iPhone.

  • Changed

    The long-press to show the bookmark view controller is now disabled by default.

  • Changed

    The PSPDFKit folder has been restructured.

  • Changed

    The pageRange feature if PSPDFDocument now works across multiple data sources. (This allows more flexibility for PSPDFProcessor and faster document creation)

  • Changed

    It’s now easier to disable the PDF page label feature with the new property pageLabelsEnabled in PSPDFDocument. (enabled by default, disable if you see ‘weird’ page labels)

  • API

    PSPDFAnnotationView has been deprecated and renamed into PSPDFAnnotationViewProtocol.

  • Fixed

    Fixes an issue where small text on free text annotations was not rendered at all when the boundingBox was too small for it.

  • Fixed

    Fixes a potential crash on iOS5.

2.10.2 - 27 Mar 2013

  • Changed

    PSPDFCache is even smarter and faster when using PDF documents that are very slow to render.

  • Changed

    PSPDFCache no longer deadlocks if you remove the delegate while the delegate is being called.

  • Changed

    If a new PSPDFViewController is created based on a PDF action that links to a new document modally, all important settings are copied over to the new controller.

  • Changed

    PSPDFKit will no longer create empty highlight annotations when using the annotation toolbar and tapping on a point without text.

  • Changed

    No longer retains the view controller while the document background cache is being build (less memory pressure)

  • Added

    Adds some more safeguards against abuse of certain methods.

  • Changed

    The render queue now retains the document while rendering. This fixes cases where image requests never returned because the document disappeared before.

  • Fixed

    Fixes a regression from 2.10 where through an event optimization sometimes the text of a note annotation was not properly saved. PSPDFDocument now sends out a PSPDFDocumentWillSaveNotification before a save will be made to give all open editors a chance to persist it’s last state in time.

  • Fixed

    Fixes an issue where the contentRect was calculated wrong for uncommon view embedding use cases.

  • Fixed

    Fixes an issue where the thumbnail filter values were hardcoded.

  • Fixed

    Fixes a potential timing-related crash on iOS5 when the search controller was shown too fast.

  • Changed

    Titanium: Add thumbnailFilterOptions property.

2.10.1 - 26 Mar 2013

  • Changed

    Shape annotations border and fill color can now be customized.

  • Changed

    Clearing the memory cache will now also clear any open document references.

  • Added

    Add white color to common color picker colors (except for highlights, replacing purple)

  • Changed

    PSPDFRenderQueue now has a cancelAllJobs to clear any running requests.

  • Changed

    The render queue now better prioritizes between cache requests and user requests (zooms) to allow even faster rendering.

  • Changed

    FreeText annotations can now no longer be created outside boundaries.

  • Added

    Add support for text alignment for FreeText annotations. (It seems that Adobe Acrobat has a bug here and ignores this property - other Applications are compliant to the PDF spec and do display this, e.g. Apple’s Preview.app)

  • Changed

    Edit mode now directly hides the HUDView.

  • Changed

    API change: The color picker now has a context: flag to allow state storage. Update your delegates if you use this class directly.

  • Fixed

    Fixes some minor issues with the new cache.

  • Fixed

    Fixes a UI weirdness where the scrollview had a slow scroll-back animation when text was edited at the very top.

  • Changed

    Titanium: Add new linkAnnotationHighlightColor property.

2.10.0 - 22 Mar 2013

PSPDFKit 2.10 is another major milestone. The cache has been rewritten from the ground up to be both faster and more reliable. Annotations are now cached, they are no longer an “afterthought” and will show up in the thumbnails and even the scrobble bar. The disk cache now limits itself to 500MB (this is customizable) and cleans up the least recently used files. The memory cache is now also smarter and better limits itself to a fixed number of pixels (~50MB of modern devices in the default setting). Loading images from the cache is now more logical and highly customizable with PSPDFCacheOptions. The two render code paths have been unified, PSPDFRenderQueue now does all rendering and can now render multiple requests at the same time and also prioritizes between low priority cache requests and high priority user zoom requests. In this process some very old code has been completely reworked (PSPDFGlobalLock) and is now much more solid. Several methods have been renamed, upgrading will require a little bit of effort to adapt to the new method names. It’s definitely worth it. If you find any regressions or missing features for your particular use case, contact me at peter@pspdfkit.com.

  • Changed

    Completely rewritten cache that now renders all screen sizes and shows annotations.

  • Changed

    PSPDFThumbnailViewController now has a new filter to only show annotated/bookmarked pages. See filterOptions for details. http://twitter.com/PSPDFKit/status/314333301664006144/photo/1

  • Changed

    PSPDFViewController has a new setting: showAnnotationMenuAfterCreation to automatically show the menu after an annotation has been created. (disabled by default)

  • Changed

    Text loupe no longer fades zoomed content. (looks better for text scope loupe)

  • Changed

    Prevent too fast tableView updates (and thus flickering) in PSPDFSearchViewController.

  • Changed

    Increases loupe magnification on iPhone to 1.6 and make kPSPDFLoupeDefaultMagnification customizable at runtime.

  • Changed

    A UISplitViewController in the hierarchy is automatically detected and the pan gesture will be blocked while the PSPDFViewController is in drawing mode (else this would interfere with drawing).

  • Changed

    The note annotation controller now no longer generates change events per typed key, but will wait for a viewWillDisappear/app background event to sync the changed text back into the annotation object.

  • Changed

    Expose availableLineWidths and availableFontSizes in PSPDFPageView to customize menu options.

  • Changed

    On iPhone, scrolling down the search results will now automatically hide the keyboard.

  • Changed

    Improves performance for overlay annotation rendering.

  • Changed

    Improves annotation selection, especially drawings are now pretty much pixel perfect.

  • Changed

    Disables the long press gesture (and the new annotation menu) when a toolbar annotation mode is active.

  • Changed

    Use PSPDFAnnotationBorderStyleNone instead of PSPDFAnnotationBorderStyleSolid when the border style is undefined (to match Adobe Acrobat)

  • Changed

    The annotation selection border is now independent of the zoomScale.

  • Changed

    FreeText annotations no longer “jitter” when resizing.

  • Changed

    The stamp controller now dismisses the keyboard when changing switches or pressing return on the keyboard.

  • Changed

    Allow note annotations outside the page area (to match Adobe Acrobat behavior).

  • Changed

    Allow overrideClassNames for PSPDFDocument when it’s created from within PSPDFViewController (e.g. when an external annotation link target is touched)

  • Added

    Add workaround against rdar://13446855 (UIMenuController doesn’t properly reset state for multi-page menu)

  • Changed

    The selectionBackgroundColor of PSPDFSearchHighlightView can be updated after it’s displayed now.

  • Changed

    PSPDFTabBarView of PSPDFTabbedViewController can now be overridden with the overrideClassNames dictionary.

  • Changed

    API change: The renderBackgroundColor, renderInvertEnabled, renderContentOpacity methods have been removed from PSPDFViewController. Please instead update the dictionary in PSPDFDocument to set these effects. (e.g. document.renderOptions = @{kPSPDFInvertRendering : @YES}).

  • Changed

    API change: PSPDFViewController’s renderAnnotationTypes has been deprecated and will update the renderOptions in PSPDFDocument instead.

  • Changed

    API change: renderPage: and renderImageForPage: will now automatically fetch annotations if the annotations array is nil. To render a page without annotations, supply an empty array as the annotations array (as soon as an array is set, auto-fetching will be disabled).

  • Changed

    API change: PSPDFCacheStrategy is now PSPDFDiskCacheStrategy, the enum options have been updated as well.

  • Fixed

    Fixes some minor problems and deprecation warnings when compiling PSPDFKit with iOS6 as minimum deployment target and autoretained GCD objects.

  • Fixed

    Fixes an issue where some annotations got set to overlay and were not properly restored.

  • Fixed

    Fixes an issue with centering after returning from thumbnails in continuous scrolling mode.

  • Fixed

    Fixes an issue where a thumbnail could be animated that was not visible.

  • Fixed

    Fixes an UIAccessibility mistake where Undo was labeled Redo in the drawing toolbar.

  • Fixed

    Fixes encoding issues with localization files.

  • Fixed

    Fixes some potential crashes when parsing certain PDF documents.

  • Fixed

    Fixes several non-critical log warnings when opening continuous scrolling with an invalid document.

  • Fixed

    Fixes various potential crashes around screen annotations and stream extraction.

2.9.0 - 9 Mar 2013

  • Changed

    The loupe has been improved, it’s now fast in every zoom level and now 100% matches UIKit’s look. Developers can now easily update the magnification level.

  • Changed

    Greatly improved UIAccessibility support. Reading mode is now line-based and reading column-based layouts works much better.

  • Added

    New feature: PSPDFScrobbleBar can control tap behavior outside the page area with allowTapsOutsidePageArea.

  • Changed

    Improved PDF rendering speed for pageCurl mode.

  • Changed

    RichMediaAnnotations (directly embedded video) now support autoplay set directly via Adobe Acrobat (Both page visibility modes will enable autoplay)

  • Removed

    Removes deprecated methods from PSPDFViewController and PSPDFPageView.

  • Changed

    NSNull entries are now properly filtered out from the PDF metadata.

  • Changed

    Greatly improves outline parsing speed. In some cases parsing of extremely complex outlines went down from 120 seconds to 2 seconds (in a ~5000 pages document)

  • Added

    Add progress while data is transferring when using the “Open In…” feature.

  • Changed

    PSPDFAnnotation model version is now at 1, boundingBox is now serialized as string and no longer as NSValue (fixes JSON serialization)

  • Changed

    Improves animation when adding/removing bookmarks while the popover controller is resizing at the same time.

  • Added

    Add support for long-press toolbar button detection when useBorderedToolbarStyle is enabled.

  • Changed

    useBorderedToolbarStyle is now also evaluated in PSPDFAnnotationToolbar.

  • Changed

    PSPDFOpenInBarButtonItem now has the option to directly add the ‘print’ action into the list of applications. Disabled by default. See ‘showPrintAction’.

  • Changed

    UIMenuController is now smarter and no longer places the menu above the toolbar when there’s space underneath as well.

  • Changed

    ‘allowTwoFingerScrollPanDuringLock’ in PSPDFAnnotationToolbar now defaults to NO, since this delays drawing.

  • Changed

    API change: Refactored the thumbnail view out of PSPDFViewController into it’s own controller: PSPDFThumbnailViewController. If your code relied on modifying the collection view delegates within PSPDFViewController, you must update your code to override PSPDFThumbnailViewController instead. PSPDFViewController’ gridView has been deprecated. Use thumbnailController.collectionView instead.

  • Changed

    API change: Removed iPhoneThumbnailSizeReductionFactor. item size is now set conditionally during initialization. The best way to set this is in PSPDFCache.sharedCache.thumbnailSize.

  • Changed

    API change: The delegate didRenderPage:didRenderPage:inContext:withSize:clippedToRect:withAnnotations:options: has been moved over to PSPDFDocumentDelegate.

  • Changed

    Drawing Ink annotations now closely matches the line width when zoomed in.

  • Fixed

    Fixes a possible scrolling “freezing” issue when pageCurl is enabled.

  • Fixed

    Fixes a potential crash with extracting the page title of the PDF.

  • Fixed

    Fixes a potential crash when the Open In… action was invoked multiple times too quickly. (Thanks to Evernote for this fix)

  • Fixed

    Fixes a bug that could change the cursor position in the note annotation controller.

  • Fixed

    Fixes various potential crashes when parsing invalid PDF data.

  • Fixed

    Fixes an issue where thumbnails could not properly be selected with VoiceOver enabled.

  • Fixed

    Fixes an issue with image selection on rotated documents.

  • Fixed

    Fixes an issue with annotationViewClassForAnnotation: and the call ordering of defaultAnnotationViewClassForAnnotation.

2.8.7 - 22 Feb 2013

  • Changed

    Improved scrollview centering. Now enables pan while bounce-zoomed out.

  • Changed

    PSPDFMultiDocumentController now can advance to next/prev document with tapping at the last page of the current one.

  • Changed

    Slightly increases the smart zoom border on iPad.

  • Added

    New helper in PSPDFNoteAnnotationController to allow easy customization: setTextViewCustomizationBlock.

  • Added

    New property in PSPDFViewController: scrollOnTapPageEndAnimationEnabled.

  • Added

    New property in PSPDFViewController: shouldRestoreNavigationBarStyle (via Dropbox request)

  • Fixed

    Fixes a rare scroll view locking issues that was triggered by an UIKit bug.

  • Fixed

    Fixes an off-by-one error in PSPDFOutlineParser’s resolveDestinationNameForOutlineElement.

2.8.6 - 20 Feb 2013

  • Changed

    PSPDFShapeAnnotation now creates appearance stream data. This is needed to work around a bug in Adobe Acrobat for iOS. This behavior can be disabled with setting kPSPDFGenerateAPForShape to @NO in renderingOptions of PSPDFDocument. As a side effect, this also improves display of transparent shapes with Apple’s Preview.app

  • Changed

    Improvements to smart zoom - text block choose method is now smarter.

  • Changed

    viewLock no longer locks the HUD (just the view state)

  • Changed

    Improves animation for the Table of Contents controller cells.

  • Changed

    Setting the pageRange now automatically invalidates the current document.

  • Changed

    PSPDFTabbedViewController has become more modular with the new superclass PSPDFMultiDocumentViewController.

  • Fixed

    Fixes a rare crash when using the drawing tool very quickly with only one resulting draw point.

  • Fixed

    Fixes a rendering issue with images added from the camera in pageCurl mode.

  • Fixed

    Fixes an issue where the scrobble bar could be displayed even though it’s disabled.

  • Fixed

    Fixes a regression in the appearance stream generator.

  • Fixed

    Fixes a regression with updating the bookmark bar button status when the toolbar is transparent.

  • Changed

    Titanium: Fixes toolbar detection for annotation toolbar.

2.8.5 - 16 Feb 2013

  • Fixed

    Fixes a text glyph frame calculation bug when a font contains both a unicode map and an encoding array.

  • Changed

    Improves glyph shadow detection to be more accurate, less false positives.

2.8.4 - 16 Feb 2013

  • Changed

    Improves text block detection speed.

  • Fixed

    Fixes certain crashes when parsing malformed PDFs.

  • Fixed

    Fixes an issue where outline elements linked to the same named destination would not all be correctly resolved.

2.8.3 - 15 Feb 2013

  • Changed

    Allow UIAppearance for PSPDFRoundedLabel.

  • Added

    Added a mailComposeViewControllerCustomizationBlock in PSPDFEmailBarButtonItem to easily change the default email body text.

  • Added

    New property: thumbnailMargin in PSPDFViewController.

  • Changed

    Thumbnail view now dynamically updates the sectionInset if the HUD is hidden during thumbnail view.

  • Changed

    API change: Renamed siteLabel to pageLabel in PSPDFThumbnailGridViewCell.

  • Changed

    Replaces PSPDFAddLocalizationFileForLocale with the more flexible PSPDFSetLocalizationBlock.

  • Added

    Add double-tap to fullscreen for YouTube views.

  • Added

    Add fallback to use associated objects for annotation views that don’t comply to PSPDFAnnotationView. (Fixes duplicate view adding)

  • Changed

    Disables the yellow block highlighting on a double-tap zoom.

  • Changed

    The Save To Camera Roll is now faster and no longer blocks the main thread during JPG compression.

  • Changed

    Certain smaller tweaks/improvements for the HUD.

  • Fixed

    Fixes a regression where on a long press the annotation menu would reappear then disappear for highlight annotations.

  • Fixed

    Fixes a regression that broke re-positioning of search highlights on a frame change.

  • Fixed

    Fixes an issue where the pdfController could be dismissed when using the “send via email” feature.

  • Fixed

    Fixes a rare condition in which the progressView (PSPDFProgressHUD) could get stuck.

  • Fixed

    Fixes an issue where videos that were set to autostart=NO could still autostart on iOS5.

  • Fixed

    Fixes an issue where CMYK encoded JPGs would be extracted inverted upon saving.

  • Fixed

    Fixes an issue where ink annotations could be added in the wrong size when the device directly rotates after finishing a drawing

  • Fixed

    Fixes a rounding error that made certain pages scroll-able in pageCurl mode.

  • Fixed

    Fixes a page blurriness issue because of rounding errors when zooming out/zooming in a lot.

  • Removed

    Removed deprecated options from PSPDFEmailBarButtonItem.

2.8.2 - 10 Feb 2013

  • Changed

    HUD visibility/transparency can now be set more fine-grained with the new properties transparentHUD, shouldHideNavigationBarWithHUD, shouldHideStatusBarWithHUD and statusBarStyle. Check your code and let me know if this breaks something. Setting statusBarStyleSetting will update all those properties.

  • Changed

    Resize view now snaps to aspect ratio on resizing. Middle knobs are hidden if space is low.

  • Changed

    Document link annotations now resolve symbolic links.

  • Changed

    After editing annotation properties (e.g. color) the menu will re-appear.

  • Changed

    Annotation menu is re-displayed after a rotation.

  • Changed

    Finishing a drawing no longer disappears/reappears because of the page rendering process.

  • Changed

    Search view controller cells now animate better and have better sized margins.

  • Changed

    PSPDFBarButtonItem’s pdfController property is now weak. Update your code to use notifications if you previously relied on KVO.

  • Changed

    NavigationBar/ScrobbleBar are now rasterized before a fade out/fade in, which improves the fade animation (no more bleed-through)

  • Changed

    Annotation Toolbar now in all cases correctly adapts to statusbar frame size changes (calling, personal hotspot, …)

  • Changed

    Improves compatibility with writing PDF trailer data with certain corrupt PDF files.

  • Added

    Adds new helper: PSPDFAddLocalizationFileForLocale, parses a localization text file.

  • Fixed

    Fixes an UX issue where the annotation tool could be deselected when using the two-finger scroll while the annotation toolbar is active and a tool (e.g. highlight is selected).

  • Fixed

    Fixes a touch inconsistency where a annotation deselection could be done without marking the touch as processed.

  • Fixed

    Fixes several entries in the localization table.

  • Fixed

    Fixes a regression introduced in 2.8.1, a potential crash when using the highlight annotation tool outside of a glyph.

  • Fixed

    Fixes a potential crash in the search view controller due to invalid state handling.

  • Fixed

    Fixes an issue where part of the drawing state was lost when opening a modal controller while in drawing mode. (e.g. iPhone/color picker)

  • Changed

    Various typos fixed, and some very minor API changes due to spelling corrections (thanks to Tony Tomc).

2.8.1 - 6 Feb 2013

  • Changed

    The highlight tool now matches full words. A single touch will highlight the complete word instead of just one character.

  • Changed

    A new syntax for link annotations to control UI. For now pspdfkit://control:outline is supported to open the TOC directly from the document.

  • Changed

    The signature controller now uses “Signatures” as title instead of “Choose Signature” on iPhone, since later was too long and got cut off.

  • Fixed

    Fixes an issue where setFileURL: could generate a new UID if one was already set.

  • Fixed

    Fixes an UI issue when resizing an annotation purely horizontally would result in no redraw.

  • Fixed

    Fixes an UI issue where the thumbnail indicator could move behind the thumbnail image in some cases.

  • Fixed

    Fixes an UI issue in PSPDFFixNavigationBarForNavigationControllerAnimated() that could potentially shift down the navigationBar for unusual view controller setups.

  • Fixed

    Fixes an UX issue where a second tap was sometimes required after using certain modes in the annotation toolbar.

  • Fixed

    Fixes an issue where an external PSPDFBarButtonItem would not update on iPhone.

  • Fixed

    Fixes an issue where videos played in a popover continued to play even after the popover was dismissed.

  • Fixed

    Fixes an issue where thumbnailSize could not be changed after the PSPDFViewController has been displayed.

  • Fixed

    Fixes an issue with incorrect view controller locking after switching from highlight to draw mode in the annotation toolbar.

2.8.0 - 5 Feb 2013

  • Changed

    Image annotations. PSPDFKit can now add images from the camera and the photo library and embed them as stamp annotations.

  • Changed

    Search / Text extraction is now more than twice as fast and reports the current page.

  • Changed

    The whole AP stream generation system has been improved and performance optimized to allow bigger streams like images.

  • Changed

    PSPDFKit will now require Xcode 4.6/SDK 6.1 to compile. (4.5 should still work fine, but we follow Apple’s best practice with always compiling with the latest SDK available.)

  • Changed

    API change: editableAnnotationTypes is now an ordered set. Using a regular set to change this property will work for the time being, but please update your code. The order now will change the ordering of the buttons in the annotation toolbar and the new annotation menu.

  • Added

    Add experimental phone/link detection: detectLinkTypes:forPagesInRange: in PSPDFDocument. This will create annotations for phone numbers and links found in the document, if they are not linked already. This is the same that Preview/Mac and Adobe Acrobat do - they allow to click URLs even if they don’t have any link set on them.

  • Changed

    Search now displays the current processed page.

  • Changed

    Further tweaks to PSPDFHighlightAnnotation highlightedString.

  • Added

    Add setting to enable/disable the “Customer Signature” feature. (customerSignatureFeatureEnabled in PSPDFSignatureStore)

  • Changed

    The signature controller has now landscape as preferred rotation under iOS6. (but still supports portrait)

  • Changed

    Controllers presented via the PSPDFViewController helper now use a custom PSPDFNavigationController that queries the iOS6 rotation methods of the topmost view controller. This makes it easier to customize rotation for PSPDF* controllers without hacks.

  • Changed

    Performance improvement: deleted annotations now are no longer serialized if the external annotation format is used.

  • Changed

    The “hide small links” feature now works better on iPhone.

  • Changed

    FreeText annotations now parse even more font definition styles.

  • Changed

    Improvements to the heuristic in PSPDFHighlightAnnotation highlightedString.

  • Changed

    Annotations added via a modal view (e.g. Signatures on iPhone) are now also selected. (annotation selection is preserved during reloadData)

  • Changed

    Smart zoom now uses less border when zooming into a text block, which looks better. (other columns usually are no longer visible)

  • Changed

    Taps that dismiss an annotation editing popover no longer modify the HUD state.

  • Changed

    The scrobble bar thumbnail size has been tweaked to be a little bigger. This now can also be fine-tuned, see PSPDFScrobbleBar.h.

  • Changed

    The font selector now selects the currently chosen font.

  • Changed

    Various performance improvements. (esp. search and the color picker)

  • Changed

    Thumbnails are now sharper and always aligned to pixel grid (fixes a bug in UICollectionViewFlowLayout)

  • Changed

    Text selection knobs are now pixel aligned as well.

  • Changed

    When thumbnails are loaded from scratch, they are loaded in order. (PSPDFCache’s numberOfConcurrentCacheOperations has been set to 1)

  • Fixed

    Fixes an UX issue where PSPDFKit could end up displaying something like ‘1 (1 of 2)’ for page labels.

  • Fixed

    Fixes an UX issue where a tap wasn’t set to being processed when the delegate delegateDidTapOnAnnotation:annotationPoint:… was being used.

  • Fixed

    Fixes an UIKit bug that in some cases froze the UIScrollView when we zoomed out programmatically (e.g. a double tap after already zoomed in)

  • Fixed

    Fixes a potential crash when saving NSData-based PDFs with a corrupt XRef table.

  • Fixed

    Fixes a rendering issue where some landscape documents were incorrectly scaled when using renderImageForPage:withSize in PSPDFDocument.

  • Fixed

    Fixes a regression that stopped the [popover:YES] option form working properly. (A formsheet was presented instead)

  • Fixed

    Fixes a regression in the 2.7.x branch that caused movies loaded in the PSPDFWebViewController to fail with the error “Plugin handled load”.

  • Fixed

    Fixes an issue when using Storyboard and setting the viewState to thumbnails initially.

  • Fixed

    Fixes an issue where the signature selector controller dismissed the whole pdfController under certain conditions.

  • Fixed

    Fixes an issue with annotations moving to other pages on a document with multiple document providers.

  • Fixed

    Fixes an issue where the note view controller would hide the close button on iPhone if edit was set to NO.

  • Fixed

    Fixes an issue with frame displacement under certain conditions on embedded UINavigationControllers.

  • Fixed

    Fixes an issue with zooming when in text edit mode and page centering.

  • Fixed

    Fixes an issue with searching for certain characters that are reserved regex characters (like *+).

  • Fixed

    Fixes an encoding issue with annotation content and certain Chinese characters.

2.7.5 - 25 Jan 2013

  • Changed

    Signatures are now securely saved in the Keychain and a list of signatures is presented. To disable this feature, set PSPDFSignatureStore.sharedSignatureStore.signatureSavingEnabled = NO in your appDelegate.

  • Changed

    While annotation mode is active (highlight, drawing, etc) scrolling is now enabled with using two fingers. The old behavior can be restored with setting allowTwoFingerScrollPanDuringLock in PSPDFAnnotationToolbar to NO.

  • Changed

    PSPDFKit now requires Security.framework.

  • Fixed

    Fixes an issue that could cause an initial “white page” when the controller is first loaded, even when there’s cache data available.

  • Fixed

    Fixes an UX issue where, with creating a new note, the menu could be displayed on iPhone, stealing the keyboard from the newly created note controller.

  • Fixed

    Fixes a regression of 2.7.4 that broke some remote videos/audios.

  • Fixed

    Fixes a potential issue when reordering bookmarks.

  • Fixed

    Fixes an issue where the last letter was cut off when using PSPDFHighlightAnnotation highlightedString.

2.7.4 - 24 Jan 2013

  • Changed

    Line annotations are now writeable.

  • Changed

    A second tap now enables the edit mode in a free text annotation.

  • Changed

    Annotation selection is now properly pixel aligned, resulting in sharper border, drag points and content - especially on the iPad Mini.

  • Changed

    The drawing toolbar no longer forces the HUD to show before displaying itself.

  • Changed

    If enableKeyboardAvoidance is set to NO, the firstResponder won’t be tampered with anymore.

  • Added

    New property: allowToolbarTitleChange on PSPDFViewController, controls it title is set or not.

  • Changed

    PSPDFOutlineParser now lazily evaluates named destinations if an outline has more than a specified threshold. (This is currently set to 500). This greatly improves loading times for documents with complex outlines.

  • Changed

    Allow audio file types for RichMedia/Screen annotations.

  • Added

    Add more audio file formats to the support list. (aiff, cif, …)

  • Changed

    Ensure that addAnnotation:animated: in PSPDFPageView sets the page and documentProvider.

  • Changed

    Better workaround for MPMoviePlayer’s problem with multiple audio/video views on the same window. (A play button is now displayed in those cases)

  • Changed

    Normalizes extracted text, allow searching within text that contains non-normalized ligatures.

  • Changed

    Opacity menu now draws a checked white background instead of using the menu background (now it’s more like Photoshop, looks better)

  • Added

    Add spanish translation (thanks to Tony Tomc!)

  • Changed

    The maximum software dimming value is less dark.

  • Fixed

    Fixes a problem in PSPDFProcessor with NSData-based documents and adding annotation trailers.

  • Fixed

    Fixes a bug where the scrollview would update it’s position when a UIAlertView with a TextField was visible.

  • Fixed

    Fixes a bug in the outline parser that resulted in the loop for (invalid) cyclid PDF referenced objects.

  • Fixed

    Fixes an issue where parsing certain PDF dates failed.

  • Fixed

    Fixes an issue with view state restoration and continuous scrolling.

  • Fixed

    Fixes a rare issue where the bookmark thumbnail view indicator could be behind the thumbnail image.

  • Fixed

    Fixes an issue with inline editing and the split screen keyboard.

2.7.3 - 20 Jan 2013

  • Changed

    FreeText annotations are now editable inline.

  • Changed

    Improves stamp and signature rect placement (no longer places the rect outside of page boundaries)

  • Changed

    Drawing overlay is now transparent. You can restore this behavior with subclassing PSPDFDrawView and setting the backgroundColor to [UIColor colorWithWhite:1.0 alpha:0.5].

  • Changed

    When changing the thickness of a drawing, the selection border will now automatically adapt itself to fit the new bounds.

  • Changed

    Renamed “Colors…” menu entry to “Color…”.

  • Fixed

    Fixes a potential issue with annotation rotation handling.

  • Fixed

    Fixes a potential crash on stamp creation on iPhone.

  • Fixed

    Fixes an issue where the drawing toolbar was added behind the HUD toolbar.

  • Fixed

    Fixes an issue where PSPDFKit could end up displaying something like ‘Page 2-3 of 2’.

  • Fixed

    Fixes an issue where certain pages could be skipped with scroll to prev/nextPage in double page mode (via touching the borders).

  • Fixed

    Fixes some typos and spelling mistakes.

2.7.2 - 18 Jan 2013

  • Changed

    PSPDFScrollView will now move up if a keyboard is displayed.

  • Changed

    Free Text annotation now have sensible defaults when created in code. (Helvetica, font-size 20)

  • Changed

    Several tweaks for PSPDFProcessor PDF from web/office files generation.

  • Fixed

    Fixes a potential crash in the iPhone popover controller.

  • Fixed

    Fixes in the annotation selection handling logic.

  • Fixed

    Fixes a minor UX issue where Open In… could result in a second tap needed to activate.

2.7.1 - 17 Jan 2013

  • Changed

    Note annotation flattening.

  • Changed

    Text selection is now always prioritized over image selection.

  • Changed

    For the continuous scrolling page transition, all visible pages are now animated when showing/hiding the thumbnail view.

  • Changed

    Improve PDF serialization of custom stamp annotations.

  • Fixed

    Fixes an animation issue with continuous scrolling.

  • Fixed

    Fixes an UI issue where under certain conditions a second tap was required on a toolbar button to hide the active popover.

  • Fixed

    Fixes an UI issue with creating note annotations.

  • Fixed

    Fixes an issue where annotation resizing was disabled when textSelectionEnabled was set to NO.

  • Fixed

    Fixes a rounding bug in continuous scrolling that could lead to a x AND y scrolling on zoomScale 1.0

  • Fixed

    Fixes several issues with certain RichMedia embedded video annotations.

2.7.0 - 16 Jan 2013

  • Changed

    PSPDFKit model classes now have a common base model class ‘PSPDFModel’ - enables serialization/deserialization via JSON easily using externalRepresentationInFormat:. To get the JSON dictionary, use annotation externalRepresentationInFormat:PSPDFModelJSONFormat. (The old annotation serialization format is still supported for the time being)

  • Changed

    PSPDFKit now requires AssetsLibrary.framework - if you’re using PSPDFKit.xcproj or the source distribution, this is already been taken cared of. If you added the frameworks manually and get a linker error, make sure you are linking sAssetsLibrary.framework.

  • Changed

    PSPDFMenuItem learned to show images in UIMenuController - this beautifies many of the annotation menus, images are now used for annotation types/colors where appropriate.

  • Changed

    PSPDFKit has learned to write appearance streams. Currently they are emitted for Stamp and Ink annotations. This will help to further improve annotation compatibility with some apps that behave less standard compliant (like Adobe Acrobat/iOS, last tested version is 10.4.4, which doesn’t show Ink annotations if they do not have an attached AP stream, even if this is invalid behavior according to the PDF spec. (GoodReader/Preview.app/Adobe Reader on the Mac don’t require an AP stream and work in compliance to the spec.))

  • Changed

    Annotation menus have been cleaned up a little, Opacity… has been moved into a submenu of Color for highlight annotations.

  • Changed

    PSPDFProcessor has learned to write annotations as dictionary, not only flatten. This will be used e.g. for Open In… when the original PDF is not writeable and thus annotations are saved in an external file.

  • Changed

    Open In… will now create a new file if there are annotations and the source PDF is not writeable itself.

  • Changed

    Stamp annotations now have limited support for appearance streams.

  • Changed

    Stamp annotations can now be added via the new PSPDFStampViewController.

  • Added

    Add experimental pageRange feature in PSPDFDocument to allow showing of a subset of the pages.

  • Changed

    Highlight annotation hit testing is now more accurate, checking the specific rects of the highlights, not the outer boundingBox.

  • Changed

    Annotation rendering now checks if the annotation will be visible at all and only then renders the annotation. This speeds up zooming on complex documents with many annotations.

  • Changed

    Improves search by ignoring certain whitespace characters like no-break-spaces.

  • Changed

    Enables creation of password protected PDFs with PSPDFProcessor up to AES-128 (and mix other CGPDFContext properties like kCGPDFContextAllowsPrinting or kCGPDFContextAllowsCopying)

  • Changed

    Improves word detection with splitting words between a line of thought and adding special logic for non-default whitespace characters. to use the old behavior.

  • Changed

    Improves french translation.

  • Changed

    zIndex of annotation images is now below zIndex of links, so that links are always displayed before annotation images.

  • Changed

    Email sending using PSPDFEmailSendMergedFilesIfNeeded will not perform a merge if there is only one source document.

  • Changed

    Links are now handled even if they are overlapped or hidden underneath other views.

  • Changed

    Hides the page label and the scrobble bar if the document is password protected and not yet unlocked.

  • Changed

    PSPDFAnnotation now shows if an appearanceStream is attached.

  • Changed

    PSPDFAnnotation now as a userInfo dictionary to add any custom data.

  • Changed

    Annotations now have a creationDate.

  • Changed

    When note annotations are tapped, don’t fade-animate the former annotation out.

  • Changed

    Page label will not be displayed if the page label is simply the real page number. (Prevent titles like 2 (2 of 10))

  • Changed

    The internal web browser will now display an error within the HTML, much like Safari on iOS: https://twitter.com/steipete/status/287272056524001280

  • Changed

    Selected images now have a (default iOS light blue) selection state, matching the selection behavior of glyphs.

  • Changed

    Brightness control now has indicator images for less/more brightness and a better icon.

  • Changed

    Improves performance for pages with many links by dynamically disabling the rounded corners in that case.

  • Changed

    External PDF links can now be opened modally in a new controller, use [modal:YES] in the option field, e.g. pspdfkit://[modal:YES]localhost/two.pdf#page=4.

  • Changed

    Video extension with a cover now no longer has a dark background and is transparent. If you set cover:YES it will simply show the play button without any background.

  • Changed

    API change: Words are now detected if they are completely within the rect specified. Use kPSPDFObjectsTestIntersection

  • Changed

    API change: OutlineElement.page is now 0-based, not 1-based.

  • Changed

    API change: Several PSPDFProcessor methods now have an additional error part.

  • Changed

    API change: PSPDFInkAnnotation has been simplified, will automatically recalculate bounding box and paths on line change.

  • Changed

    API change: Setting the annotation color will now also set the alpha value, if one is set in color.

  • Changed

    API change: objectsAtPoint: now automatically does an intersection test unless specified otherwise, but objectsAtRect will not, so you need to specify that. Also, in previous version the rect check was done incorrectly to check if the test rect is within the object, now we check if the object is within the test rect OR intersects with it, if intersection is set to YES.

  • Changed

    API change: Links to external files now reference the page, not page+1. (pspdfkit://localhost/two.pdf#page=4 will move to page 4, before it was page 5)

  • Added

    Add support for older PDF standard of defining Dest arrays for page links (for example those produced by LaTeX with PDF version 1.3)

  • Changed

    Annotation option parsing is now more robust and will tolerate whitespace.

  • Changed

    Annotation text (and thus the annotation menu) is now even displayed if editableAnnotationType is set to NO.

  • Added

    Adds a workaround for certain PDFs with large embedded videos that previously couldn’t be parsed.

  • Changed

    PSPDFKit now uses OS_OBJECT_USE_OBJC instead of OS version checking to check of GCD objects are collected via ARC or not (This is iOS6 only and the new default, can be disabled by the compiler)

  • Changed

    Text in the password view is now viewable on iPhone in landscape.

  • Fixed

    Fixes an issue with font caching on search and certain documents.

  • Fixed

    Fixes an off-by-one error on writing link annotations that link to internal pages.

  • Fixed

    Fixes an issue with the “Save To Camera Roll” feature and iOS6 - the required rights are now checked fore before writing the image, and an error dialog is displayed for the user in case image saving failed.

  • Fixed

    Fixes an issue where PDF images in CMYK format could not be saved to the Camera Roll.

  • Fixed

    Fixes an issue where PSPDFTabbedViewController failed to show the tab bar if restoreState wasn’t called and thus the documents array was nil.

  • Fixed

    Fixes an issue with opening internal html links on PDF link annotations on the device (worked fine on the Simulator)

  • Fixed

    Fixes an issue where the cancel button of the search controller was disabled sometimes (iPhone only)

  • Fixed

    Fixes an issue where under certain conditions link annotations were marked as dirty right after reading them from the PDF which could result in some slowdown when hiding the PSPDFViewController.

  • Fixed

    Fixes a crash with LifeScribe PDF documents when there’s an embedded video annotation.

  • Fixed

    Fixes a weird potential crashing issue where setting the controlStyle of the MPMoviePlayerController could throw an exception (which is not documented and should not happen according to the MPMoviePlayer documentation).

  • Fixed

    Fixes a bug that prevented setting of the defaultColorPickerStyles.

  • Fixed

    Fixes an issue where the cover view of movie annotations showed outdated content in some cases.

  • Fixed

    Fixes a potential stack overflow when a PDF that had recursive XObjects with font informations was parsed.

  • Fixed

    Fixes an UIKit bug where the statusbar sometimes was placed above the navigationBar on certain occasions.

  • Fixed

    Fixes issue where certain isOverlay=YES annotations became unmovable after a save until the page had been changed.

  • Fixed

    Fixes issue where a highlight annotation was re-added to the backing store after a color change.

  • Fixed

    Fixes an issue where encryptImage:fromDocument: wasn’t actually using the encrypted data.

  • Fixed

    Fixes an issue in the text extractor with parsing certain special formatted CMaps wit bfranges. This should especially help for text extraction errors in languages like turkish or chinese.

  • Fixed

    Fixes a missing setter for PSPDFLineAnnotation.

  • Fixed

    Fixes a retain cycle with PSPDFAnnotationToolbar because the delegate was retained.

  • Fixed

    Fixes a issue with AES-128 encrypted documents that failed to open with a “failed to create default crypt filter.” error.

  • Fixed

    Fixes the delegate in the PSCAnnotationTestController (thanks to Peter Li)

  • Changed

    Titanium: Fixes several issues and adding compatibility for Titanium 3, also added new searchForString(string, animated) and setAnnotationSaveMode(1) functions.

2.6.4 - 21 Dec 2012

  • Changed

    Note annotations now adapt itself to the zoomScale and are no longer scaled when zooming in.

  • Changed

    Note annotation dragging has been unified with all other annotation types (Notes are now selectable as well)

  • Changed

    Text/Note annotation popover is now less modal and allows one-touch clickthrough to other annotations and UI.

  • Added

    New annotationContainerView container in PSPDFPageView makes it easier to coordinate the zIndex of annotation views with your own custom views.

  • Added

    Add encryption/decryption block helper for PSPDFCache. (PSPDFKit Annotate feature)

  • Changed

    Moved MFMailComposeViewControllerDelegate to PSPDFViewController (from PSPDFEmailBarButtonItem)

  • Changed

    Annotations now have a new isResizable that controls if they can be resized or not.

  • Changed

    With + (void)setDefaultColorPickerStyles: in PSPDFColorSelectionViewController the default color pickers can be configured easily. (e.g. disable the new HSV Picker)

  • Changed

    Better support for annotation borders.

  • Changed

    Improves performance for text extraction engine with cyclic XObjects.

  • Changed

    No longer breaks between a word after a font ligature.

  • Changed

    Properly sets the cropBox for each page in PSPDFProcessor.

  • Added

    Adds a fallback for weird URI encodings on link annotations.

  • Changed

    No longer sets the title for the internal web browser if that is nil (show URL instead)

  • Fixed

    Fixes a bug on toolbar building with correctly adding the moreBarButtonItem when the first button is filtered.

  • Fixed

    Fixes an issue where the signature jumped to a different page when added to the right page in landscape mode.

  • Fixed

    Fixes an issue with the initialization of the continuous scroll mode (especially when using it within a childViewController)

  • Fixed

    Fixes an issue with text extraction on fonts that don’t define any base encoding.

  • Fixed

    Fixes an issue where custom bookmark names were not correctly saved.

  • Fixed

    Fixes an issue with video rotation and iOS 5 - current page state is now preserved in all states.

  • Fixed

    Fixes a potential crash when annotations were written back that do not define any color information.

  • Changed

    Titanium: Fixes issue with the didTapOnAnnotation callback and event.

2.6.3 - 17 Dec 2012

  • Added

    New font picker for FreeText annotations.

  • Changed

    Allow changing the text color of the free text annotation.

  • Changed

    FreeText annotations will now persist the color state.

  • Changed

    Supports more formats for textColor and fontName in free text annotation.

  • Changed

    Selected annotations are now rendered in full resolution and no longer appear blurry when zoomed in.

  • Changed

    Don’t block double tap for selected annotations that are not movable (like text highlights)

  • Changed

    After creating a note or a freetext annotation, the toolbar will be set to none. (to match iPad behavior)

  • Fixed

    Fixes color picker placement for annotations when zoomed all the way in.

  • Fixed

    Fixes various minor issues with annotation menu showing/placement.

  • Fixed

    Fixes a UI issue where the Open In… menu didn’t disappear on tapping the button a second time.

2.6.2 - 16 Dec 2012

  • Added

    New HSV color picker.

  • Changed

    Color picker now selects the page where the color is selected, or the generic picker if none of the palette colors matches.

  • Changed

    Brightness control is now properly displayed within a custom popover on iPhone.

  • Changed

    Highlight selection control now selects using the natural text flow, not just the selected rect. (Preview: https://twitter.com/PSPDFKit/status/279636900590006272)

  • Changed

    Further improve document shadow for non-equal sized documents.

  • Changed

    Undo/Redo buttons now have icons instead of text. (Annotation drawing toolbar)

  • Changed

    Open In… now asks for flattening.

  • Changed

    Print now optionally allows annotation printing.

  • Changed

    Ensure documentProvider is always added when annotations are added.

  • Added

    Add support for annotation links like tel://4343434 and generally improves handling of external URLs.

  • Added

    Add support for PDF labels that have a offset and are plain numbered labels.

  • Fixed

    Fixed a rare condition where menus within UIMenuController could fail to execute their block target.

  • Fixed

    Fixes an issue where PSPDFNoteAnnotation sometimes used the wrong overrideClassNames dict for lookup.

  • Fixed

    Fixes a situation where pdfViewController:didDisplayDocument: wasn’t called correctly.

  • Fixed

    Fixes issue where in pageCurl mode after selecting a new color on iPhone the drawing overlay vanished.

  • Fixed

    Fixes crash when trying to change highlight annotation type on long-tap.

  • Added

    Adds a workaround for an UIKit bug that only appears on iOS 5 with videos that are playing inline and have a incorrect frame after exit from fullscreen.

2.6.1 - 10 Dec 2012

  • Changed

    Video annotations can now have a specified offset. (e.g. offset=10) in seconds. Optional parameter.

  • Changed

    PSPDFResizableView can now optionally be set in a way that it only allows moving, not resizing.

  • Added

    New toolbar style option in PSPDFViewController: useBorderedToolbarStyle. Will add regular bordered toolbar buttons. Optional.

  • Changed

    tintColor can now be changed after the PSPDFViewController has been displayed.

  • Fixed

    Fixes an issue where video was autostarted even if autostart was set to NO.

  • Fixed

    Fixes an issue where the last toolbar item on the right toolbar could vanish if the style is bordered.

  • Fixed

    Fixes some issues regarding the textParser. More documents are now supported (especially with multiple nested XObject streams)

  • Fixed

    Fixes an issue where PSPDFStatusBarDisable could sometimes trigger statusbar showing/hiding.

2.6.0 - 9 Dec 2012

  • Added

    New feature: Add signature. It’s enabled by default. If you don’t need it, set the editableAnnotationTypes on PSPDFDocument.

  • Added

    New Opacity… menu item for Ink and Highlight annotations. This can be disabled via the menu delegates (PSPDFViewControllerDelegate)

  • Added

    New Create Annotations menu after a long-tap on a space without text or image. This is now enabled by default. See createAnnotationMenuEnabled on PSPDFViewController.

  • Changed

    Improved text block detection (this also improves smart zoom)

  • Added

    New convenience method defaultAnnotationUsername in PSPDFDocument. You should set this to the user name if you’re using annotations.

  • Changed

    DualPage display will now center pages vertically if they don’t have the same aspect ratio, and will draw a nicer shadow spanning exactly both page rects.

  • Changed

    PSPDFProgressHUD now has support to show a circular progress status. (Try the new Dropbox upload sample)

  • Changed

    Exposes applicationActivities and excludedActivities in PSPDFActivityBarButtonItem.

  • Added

    Adds support for Web/Email URLs in the PDF Outline.

  • Added

    Adds a workaround for an UIKit bug that could result in an partly unresponsive scrollView when zooming out programmatically all the way to zoomLevel 1.0 (e.g. after tapping an already zoomed in text block, only affected the default pageTransition, only on device)

  • Changed

    If only Highlighting is allowed (and not Underscore or Strikeout), the Type… menu option will be hidden (since there is no point one could change it to)

  • Changed

    PSPDFScrobbleBar now has left/rightBorderMargin properties. (e.g. to make space to a custom button at one end)

  • Changed

    Allows subclassing of PSPDFThumbnailGridViewCell via overrideClassNames.

  • Changed

    Uses the shared alpha property for fillColor, to be compliant to the PDF standard. (mostly affects shape annotations)

  • Changed

    Ensure annotation selection is cleared before a pageCurl transition starts.

  • Changed

    Simplifies toolbar code by removing the copiedToolbar subclasses. (This should not affect your code at all, simply found a better way to trigger UIKit to refresh the image property)

  • Fixed

    Fixes a rare crash for parsing certain MMType1 PDF fonts.

  • Fixed

    Fixes an issue where the annotation toolbar could be overlaid by the underlying toolbar buttons when the toolbar (not navigationBar) was updated afterwards.

  • Fixed

    Fixes an issue where the search highlighting was incorrectly applied on certain rotated documents.

  • Fixed

    Fixes a bug where under certain conditions the initial page set on the PSPDFViewController was ignored.

  • Fixed

    Fixes an issue where not rendered annotations where still selectable.

  • Fixed

    Fixes a situation where the PDF annotation user wasn’t written unless contents was set.

  • Fixed

    Fixes an issue where the page offset for document providers sometimes was calculated incorrectly, this showing the wrong page labels.

  • Fixed

    Fixes a crash on iOS6 when viewMode was set to PSPDFViewModeThumbnails before the controller was actually displayed.

  • Fixed

    Fixes an issue where a late view frame change could result in an incorrectly rendered PDF view (black borders, could happen under certain conditions with Storyboarding)

  • Fixed

    Fixes a bug with using brightnessBarButtonItem on iPhone.

  • Fixed

    Fixes a situation where one could initiate a pageCurl during adding an annotation.

  • Changed

    Titanium: Fixes an issue where setLinkAnnotationBorderColor would not work on the first page. Also adds support for “clear” color.

2.5.4 - 26 Nov 2012

  • Changed

    Makes PSPDFLinkAnnotation writeable and adds a new targetString method to customize the preview URL that is displayed on a long press annotation.

  • Changed

    PDF link annotations are now editable. This is not added by default. Enable this by adding PSPDFAnnotationTypeStringLink to the editableAnnotationTypes of PSPDFDocument.

  • Changed

    PSPDFAnnotation now parses and write the name (NM) property. (Optional, used to uniquely identify PDF annotations)

  • Changed

    Exposes some new methods in PSPDFNoteViewController.

  • Changed

    Expose PSPDFPageView’s showLinkPreviewActionSheetForAnnotation:fromRect:animated to allow customization of the link preview sheet (invoked on long press)

  • Changed

    Ensures that the minimum size of annotations is not smaller than the current size (to prevent weird resizing)

  • Fixed

    Fixes a potential wrong private API detection issue where “visibleBounds” was incorrectly flagged.

  • Fixed

    Fixes an issue where the search controller was sometimes misplaced when search was directly invoked from the selected text.

  • Fixed

    Fixes an issue where scrolling was disabled when setting a document delayed in scrollperpage mode after no document was set before.

  • Fixed

    Fixes an UI glitch where the page label background was blurry for certain conditions.

  • Fixed

    Fixes a rare issue where the background color of a link annotation could get stuck when using inter-document links.

2.5.3 - 24 Nov 2012

  • Changed

    Enables rendering of certain annotations as always overlay and still preserve movement features.

  • Fixed

    Fixes for text selection handling, especially for -90/270 degree rotated documents.

  • Fixed

    Fixes image selection rects for rotated documents.

  • Fixed

    Fixes a crash with searching certain arabic documents.

  • Fixed

    Fixes a one-pixel-bleedthrough in between the pages in dualPage / pageCurl mode.

2.5.2 - 22 Nov 2012

  • Added

    New convenience helper: setUpdateSettingsForRotationBlock in PSPDFViewController. (e.g. to switch between pageCurl and scrolling on rotation)

  • Changed

    Moves the logic that returns the default classes for supported annotations out of PSPDFFileAnnotationProvider into PSPDFAnnotationProvider - so if the annotationProvider is customized to use only custom annotation providers, annotations will still work.

  • Changed

    Handles corrupt PDF more gracefully, failing faster (esp. important if you’re using a custom CGDataProvider)

  • Changed

    Search no longer searches between words (but between lines)

  • API

    Renamed fixedVerticalPositionForfitToWidthEnabledMode to fixedVerticalPositionForFitToWidthEnabledMode.

  • Changed

    Turned on a lot more warnings (like missing newlines.) PSPDFKit is now warning free even under pedantic settings.

  • Fixed

    Fixes a UX issue where sometimes a second tap was needed to show the bookmark view controller.

  • Fixed

    Fixes a crash when deleting bookmarks that has a custom name.

  • Fixed

    Fixes the delegate call pdfViewController:annotationView:forAnnotation:onPageView: (wasn’t called before due to a typo in the selector check)

  • Fixed

    Fixes an issue with generating link annotations in code using the initWithType initializer.

  • Fixed

    Fixes an issue where overrideClass wasn’t checked for PSPDFWebViewController in one case.

  • Fixed

    Fixes an issue that could result in a non-rendered PSPDFPageView if the scrollView contentOffset was set manually without animation.

  • Fixed

    Fixes an issue where the text block detection could take a very long time on some documents.

  • Fixed

    Fixes an issue where a log warning was displayed when a highlight annotation was loaded from disk.

  • Fixed

    Fixes an issue where a low memory warning while editing annotation could lead to a non-scrollable document and/or a not saved annotation.

  • Fixed

    Fixes an issue where the keyboard was no longer displayed automatically for new text annotations on iPhone.

  • Fixed

    Fixes an issue where note/text annotations could be mis-placed when a document has a non-nil origin and a non-nil rotation value.

2.5.1 - 19 Nov 2012

  • Changed

    Dismisses the search bar keyboard at the same time the popover fades out, not afterwards.

  • Changed

    Exposes some more methods on PSPDFAnnotationToolbar.

  • Fixed

    Fixes an issue with text selection being offset/invalid for certain documents (this change fixes A LOT of documents that previously had problems)

  • Fixed

    Fixes an issue with text encoding on some PDFs.

2.5.0 - 17 Nov 2012

  • Changed

    Images can now be selected and copied to the clipboard or saved to the camera roll. There’s a new delegate to customize this.

  • Changed

    A long-press on an annotation will switch over to edit-mode. Either moving if allowed, or showing the menu and cancelling the gesture if not.

  • Changed

    Changes the default PDF Box back to kCGPDFCropBox. You can customize this with using the “PDFBox” property on PSPDFDocument.

  • Changed

    Annotations can now be moved and resized, and the selection view is much sexier now (matches popular iOS apps like Pages)

  • Changed

    Words are highlighted as they are being highlighted using the annotation toolbar.

  • Changed

    Update color picker to include more colors and for better use space on iPhone 5 and iPad.

  • Changed

    Default drawing color is now blue.

  • Changed

    Highlight annotation color menu will now no longer show the currently used color and has a new option “Custom…” that will show the default color picker.

  • Changed

    The options in PSPDFEmailBarButtonItem have been changed to a bit field, it’s more flexible now. The flattenedAnnotations parameter is gone and is is now a subset of the bit field.

  • Changed

    Annotation toolbar has now properties exposed for easy drawing color/width change.

  • Added

    Add initial implementation for stamp annotations (text and images are supported, no complex AP streams)

  • Changed

    Support for “Named” PDF link annotations. (like NextPage/PrevPage/FirstPage/LastPage)

  • Added

    Add “Key” image for note annotations.

  • Added

    Add support for dashed borders on various annotation types.

  • Changed

    PSPDFPageLabelView how shows a custom label for double page mode that displays all visible pages, not only the first. (2-3 of 42) instead of (2 of 42).

  • Changed

    Refactoring of the search subsystem. Some methods have been renamed/deprecated. The interface is now much cleaner.

  • Changed

    Search now search pages in the natural order, no longer visible pages first. You can revert this behavior change with setting searchVisiblePagesFirst to YES in PSPDFSearchViewController.

  • Changed

    Search now also finds words that are split up via newline and/or a hyphenations character. This is enabled by default. See PSPDFTextSearch.compareOptions.

  • Changed

    PSPDFSearchResult now has a PSPDFTextBlock as selection type (because it might have words on multiple lines). PSPDFSearchHighlightView now supports highlighting of multiple words.

  • Changed

    Search now is more tolerant on single/double quotation marks.

  • Changed

    Improves annotation toolbar animation for iPhone/landscape.

  • Changed

    PSPDFHighlightAnnotation has a new helper “highlightedString” to get the string value of the highlighted area. Here, the document content is evaluated, since the annotation just contains CGRect values.

  • Changed

    The annotation toolbar now remembers all last used colors per annotation type IF they are changed while the annotation toolbar is visible. (e.g. create yellow highlights, change annotation color to red, make new highlights -> red. But if you change color at a point where the annotation toolbar is closed, the color will not be remembered.)

  • Changed

    PSPDFGlyph/PSPDFWord/PSPDFTextBlock frame now needs to be converted using the convertViewRectToGlyphRect/convertGlyphRectToViewRect to get the correct results.

  • Added

    New helper: PSPDFBezierPathGetPoints to convert UIBezierPaths into the representation needed in PSPDFInkAnnotation.

  • Added

    Adds some missing annotation change events.

  • Changed

    A visible annotation toolbar will be removed when the viewController disappears.

  • Changed

    Improved the performance of outline parsing and animation.

  • Added

    New HUD mode: PSPDFHUDViewAutomaticNoFirstLastPage - similar to PSPDFHUDViewAutomatic but doesn’t show the HUD on the first/last page automatically.

  • Changed

    Delegate didRenderPage:inContext: is now only called for current rendering. (not manual calls or cache)

  • Changed

    PSPDFAnnotationToolbar now exposes cancelDrawingAnimated/doneDrawingAnimated to manually cancel/confirm a open drawing.

  • Changed

    PSPDFSearchBarButtonItem, PSPDFOutlineBarButtonItem, PSPDFViewModeBarButtonItem can now also be overridden using overrideClassNames.

  • Changed

    PSPDFOutlineParsers’s isOutlineAvailable now parses the outline and always returns the correct value.

  • Changed

    If the keyboard was displayed on a PDF password prompt, that is now hidden again after the viewController is removed from the view.

  • Changed

    A single paged document is now displayed centered on pageCurl transition mode (instead of right-aligned)

  • Added

    Adds the iPod touch (4G) to the list of old devices, because that one has Retina but only 256MB RAM.

  • Changed

    Allows click-through selection of annotations that are on different pages. (before, you needed sometimes one extra-touch to hide the current selection)

  • Changed

    PSPDFGlyph, PSPDFWord, PSPDFTextLine and PSPDFTextBlock can now be properly compared using isEqual.

  • Changed

    The text selection is now hidden before the callout menu hides, not afterwards (to match default iOS behavior)

  • Changed

    On the Thickness… menu, the option that is currently active is hidden.

  • Changed

    The link selection touch-down gray is now less dark to better match Apple’s default look.

  • Changed

    The tinted popover background is now retina optimized and no longer draws an arrow outside of the rounded corner area.

  • Fixed

    Fixes a potential stack overflow when parsing really large PDF outlines (>3000 items).

  • Fixed

    Fixes an UI issue where the annotation toolbar active mode overlay wasn’t updated on an annotation frame change.

  • Fixed

    Fixes an UI bug where note annotations could show with an outdated view (e.g. no color change visible on page change)

  • Fixed

    Fixes a rare crash when searching certain documents.

  • Fixed

    Fixes a rare crash regarding ink annotation saving.

  • Fixed

    Fixes an issue where tapping on an empty HUD space would sometimes wrongly zoom out the view.

  • Fixed

    Fixes some minor issues with video cover.

  • Fixed

    Fixes some settings where didLoadPageView: was not called anymore.

  • Fixed

    Fixes a rare UIKit crash in UIPageViewController by adding a workaround.

  • Fixed

    Fixes a potential crash when hot-swapping the document from/to a 1-page document while using UIPageViewController in dual page mode.

  • Fixed

    Fixes an issue where the text selection menu sometimes wasn’t correctly displayed on the right site of a zoomed in page in pageCurl mode.

  • Fixed

    Fixes a potential crash when a document was hot-swapped during a render operation.

  • Fixed

    Fixes a rare rendering issue with certain PDF documents that have weird rotation values.

  • Fixed

    Fixes an issue with the CMap parser where the second part of font ligatures was ignored. (See http://en.wikipedia.org/wiki/Typographic_ligature for details)

  • Fixed

    Fixes PSPDFProcessor’s output of generatePDFFromDocument on rotated PDFs (documents had white border).

  • Fixed

    Fixes a issue where parsed text coordinates were offset on some non-standard PDFs that had both rotation and a non-null CropBox origin.

  • Changed

    Makes custom implementations of isEqual: commutative when called with an instance of the superclass as the argument. (#7893)

KNOWN ISSUE: Annotations can’t yet be moved between pages. This feature is on our roadmap.

2.4.0 - 2 Nov 2012

PSPDFKit now requires iOS 5.0+ and Xcode 4.5+ (iOS SDK 6.0) to compile. (Support for iOS 4.3/Xcode 4.4 has been removed, support for iOS 6.1 and Xcode 4.6b1 has been added.)

2.4 is a big release and a great new milestone of PSPDFKit. If you upgrade, make sure to read through the full header diffs to make sure methods you were calling/overriding still exist and are not moved. Common methods like pageScrolling will always get a compatibility method for the time being. Methods/Properties are are deeper within the framework won’t get a compatibility method, but it’s usually pretty easy to figure out what the property was named before. I am planning on working on PSPDFKit for a long time, and as the API evolves, it’s sometimes necessary to clean up and rename things so that the API stays clean and logical.

  • Changed

    Huge refactoring of PSPDFAnnotationParser. It’s now much easier to add custom annotation providers (see PSPDFAnnotationProvider). If you have subclassed saving/loading or other parts of PSPDFAnnotationParser, you most likely need to change this over to the new PSPDFFileAnnotationProvider.

  • Changed

    Page scrolling is now even smoother. And finally removes the slight stuttering when pushing the PSPDFViewController - now animates like butter.

  • Changed

    PSPDFShapeAnnotation can now be saved into the PDF.

  • Changed

    Ink drawings can now customize the Thickness. Select an annotation and use the new “Thickness…” menu item.

  • Changed

    Ink drawings and shape annotations can now also contain comment text.

  • Changed

    Annotations now support the title/user “T” flag. Change the default user name by changing the property in PSPDFFileAnnotationProvider.

  • Added

    Add support for embedded and external RichMedia and Screen (Video) annotations of any size.

  • Changed

    PSPDFBarButtonItem now has longPress-support. Long-Press on the bookmarkBarButtonItem to see the new PSPDFBookmarkViewController. Bookmarks can now also be renamed/reordered.

  • Changed

    If there’s no searchButton visible, the search invoked from the text selection menu now will originate from the selection rect.

  • Changed

    The Open In… action now also works on multi-file documents and/or data/cgdocumentprovider based documents (will merge the document on-the-fly, shows a progress window if it’ll take some time)

  • Changed

    PSPDFBarButtonItem now also accepts a generic UIView as sender on presentAnimated:sender:. (makes it easier to manually call menu items from custom code)

  • Changed

    Better support when barButtonItems are added to custom UIToolbars.

  • Changed

    The internal used BarButtonItem subclasses are now exposed, so that they can be overridden and their icon changed.

  • Added

    New activityBarButtonItem to share pages to Facebook/Twitter on iOS6.

  • Changed

    Double-Tapping on a video now enables full-screen (instead of zooming the page. This does not apply to YouTube movies)

  • Changed

    Greatly improves handling of multiple video views on one page/screen.

  • Changed

    Annotation views now have a optional xIndex. Video has a high index by default, so link annotations won’t overlap a video anymore.

  • Changed

    No longer allowing text selection above video annotations.

  • Changed

    PSPDFDocument now has a new property ‘PDFBox’ to customize the used PDF box (ClipRect/MediaRect/etc).

  • Changed

    PSPDFPositionView has been renamed to PSPDFPageLabelView. PSPDFPageLabelView and PSPDFDocumentLabelView are now easier skinable with the common superclass PSPDFLabelView.

  • Changed

    PSPDFLabelView has now a second predefined style (PSPDFLabelStyleBordered)

  • Changed

    PSPDFPageLabelView can now show a toolbar item. Check out the “Settings for a magazine” example how to enable this.

  • Changed

    PSPDFLinkAnnotationView and the other multimedia annotation views can now be subclassed via overrideClassNames.

  • Changed

    The Edit button for the text editor on note annotations can now be hidden. (showColorAndIconOptions)

  • Changed

    UI: Moved the Edit button of the PSPDFNoteAnnotationController to the left side. (only visible for PSPDFNoteAnnotation)

  • Changed

    Improves annotation parsing speed.

  • Changed

    Shape/Circle annotations now correctly display their fillColor.

  • Changed

    Improved color parsing for PSPDFFreeTextAnnotation (now honoring the default style string setting)

  • Changed

    The icons in the viewModeBarButtonItem now have the same shadow as the toolbar icons (iPhone for now).

  • Changed

    No longer displays annotation menus when they can’t be saved (PSPDFKit Basic)

  • Changed

    Expose outlineIntentLeftOffset and outlineIndentMultiplicator as properties on PSPDFOutlineViewController and PSPDFOutlineCell.

  • Changed

    Exposes firstLineRect, lastLineRect and selectionRect on PSPDFTextSelectionView.

  • Changed

    The text loupe now fades our correctly when in drag-handle-mode.

  • Changed

    Improved caching of external resources like annotations/text glyphs on page init. Caching now won’t overflow the dispatch queues anymore if A LOT of pages are loaded at the same time.

  • Changed

    PSPDFWord now has a lineBreaker property to detect line changes.

  • Changed

    PSPDFPageInfo now regenerates the pageRotationTransform when the pageRotation is changed manually.

  • Changed

    PSPDFKit now checks if a URL can be handled by the system and weird/nonrecognizable URLS no longer open the “Leave Application” alert.

  • Changed

    The PSPDFAnnotationBarButtonItem is now smart enough to choose the right animation depending if the toolbar is at the top/bottom (slide in/out from top/bottom)

  • Changed

    Setting the UIPopoverController no longer removes preexisting passthroughViews.

  • Changed

    The renderQueue now no longer renders the requested image if the delegate has been released in the mean time. (The delegate is now weak instead of strong)

  • Changed

    UI: Undo/Redo buttons on the drawing toolbar are better placed on iPhone.

  • Changed

    UI: The color selection button is now smaller on iPhone/Landscape.

  • API

    PSPDFPageInfo is not calculated in PSPDFDocumentProvider. If you’ve overridden methods that affect PSPDFPageInfo in PSPDFDocument, you should move that code to a PSPDFDocumentProvider subclass.

  • API

    “realPage” has been renamed to “page” and is now set-able. The old “page” has been renamed to “screenPage”. This finally cleans up the confusion that has been around page and realPage. In 99% of all cases, you’re just interested in page and can ignore screenPage. Please update your bindings accordingly. If you formerly did KVO on realPage, change this to page too. (There’s a deprecated compatibility property for realPage, but not for the KVO event)

  • API

    additionalRightBarButtonItems has been renamed to additionalBarButtonItems.

  • API

    pageScrolling has been renamed to scrollDirection. A deprecated compatibility call has been added.

  • API

    handleTouchUpForAnnotationIgnoredByDelegate has been moved to PSPDFAnnotationController.

  • API

    pdfViewController has been renamed to pdfController on PSPDFTabbedViewController.

  • API

    Warning! If you’ve used pspdf_dispatch_sync_reentrant in your own code, you now absolutely must create your dispatch queues with pspdf_dispatch_queue_create. Apple has deprecated dispatch_get_current_queue(), so we’re now using a different solution. This will most likely affect you if you’re using the “Kiosk” sample code of PSPDFKit Catalog.

  • Changed

    Titanium: The pdfView now has a hidePopover(true) method so PSPDF popovers can better be coordinated with appcelerator code popovers.

  • Fixed

    Fixes the lag introduced in 2.3.x when tapping on the screen and the textParser hasn’t been finished yet.

  • Fixed

    Fixes a potential crash when the view was removed on PSPDFKit Basic Titanium.

  • Fixed

    Fixes a potential crash when parsing the text of malformed PDFs.

  • Fixed

    Fixes a race condition during PSPDFFreeTextAnnotation drawing that could lead to a crash.

  • Fixed

    Fixes some issues with PSPDFPageScrollContinuousTransition when the document is invalid or view size is nil.

  • Fixed

    Fixes an issue where the background color of link annotations could get stuck.

  • Fixed

    Fixes an issue where PSPDFTabbedViewController did not properly align the tab bars in fullscreen mode.

  • Fixed

    Fixes an issue with creating PSPDFShapeAnnotation in code.

  • Fixed

    Fixes an issue where the isEditable flag on a PSPDFAnnotation was not honored when dragging note annotations.

  • Fixed

    Fixes an issue where the page could disappear on strong scrolling in pageCurl mode under iOS6.

  • Fixed

    Fixes an issue where scrolling on the tab bar (PSPDFTabbedViewController) sometimes didn’t work.

  • Fixed

    Fixes an issue where the color picker was not properly displayed on bottom UIToolbars.

  • Fixed

    Fixes an UI issue where the selection and drawing of annotations on rotated pages was handled incorrectly.

  • Fixed

    Fixes an UI issue where the tabbed controller tabs could be mis-placed when rotating without visible HUD.

  • Fixed

    Fixes an UI issue where the thumbnails could slightly overlap the toolbar if the statusbar is transparent/auto-hiding.

  • Fixed

    Fixes several conditions where the PSPDFViewController could be deallocated on a background thread.

  • Fixed

    Fixes new warnings that popped up with Xcode 4.6. (pretty much all false positives)

2.3.4 - 18 Oct 2012

  • Fixed

    Fixes a rare race condition that could lead to a deadlock on initializing PSPDFDocumentProvider and PSPDFAnnotationParser.

2.3.3 - 18 Oct 2012

Note: This will be the last release that supports iOS 4.3*. The next version will be iOS 5+ only and will require Xcode 4.5+ (iOS SDK 6.0) If you’re having any comments on this, I would love to hear from you: pspdfkit@petersteinberger.com The binary variant is already links with SDK 6.0 and will not link with 5.1 anymore. (It still works down to iOS 4.3 though)

(*) There is no device that supports iOS 4.3 and can’t be upgraded to iOS5, and PSPDFKit already dropped iOS4.2 and with it armv6 in 2.0.

  • Changed

    PSPDFShapeAnnotation and PSPDFLineAnnotation can now be created programmatically.

  • Added

    New flag: kPSPDFLowMemoryMode that combines a lot of settings to ease memory pressure for complex apps.

  • Changed

    Annotations now have a new flag: controls:false to hide browser/movie controls. If videos have controls disabled, they can be controlled via gestures. (tap=pause, pinch=full screen)

  • Changed

    Text loupe now also moves if it’s not anchored on a PSPDFPageView. (fixes stuck loupe issue)

  • Fixed

    Fixes a regression on view point restoration that could restore the view point at a different position.

  • Fixed

    Fixes an issue where the annotation toolbar could lock up rotation even after being dismissed.

  • Fixed

    Fixes an issue where bookmarks were checked for pages that were not visible.

  • Fixed

    Fixes the needless log statement “Password couldn’t be converted to ASCII: (null)”.

  • Fixed

    Fixes a text loupe regression where the loupe was not rotated on modal controllers.

  • Fixed

    Fixes a issue where in rare cases the document label (default displayed on iPhone only) was offset by a few pixels.

2.3.2 - 17 Oct 2012

  • Changed

    The text loupe is now displayed above all other contents (navigation bar, status bar, …)

  • Added

    New status bar style: PSPDFStatusBarSmartBlackHideOnIpad, which now is also the new default (changed from PSPDFStatusBarSmartBlack). Will hide the HUD AND the statusbar on tap now both on iPhone and on iPad.

  • Changed

    Improves Website->PDF conversion. Now supports Websites, Pages, Keynote, Excel, Word, RTF, TXT, JPG, etc… (see PSPDFProcessor. This is a PSPDFKit Annotate feature)

  • Changed

    PSPDFKit now uses the MediaBox everywhere. Previously the CropBox was used for rendering, which can display areas that are only intended for printing. See http://www.prepressure.com/pdf/basics/page_boxes.

  • Added

    New additionalActionsButtonItem allowing the selection of the additional actions menu placement position. (Default is left next to the last rightBarButtonItem)

  • Added

    New initializer in PSPDFDocument that makes handling with single-file multiple-page documents much easier. (PDFDocumentWithBaseURL:fileTemplate:startPage:endPage:)

  • Added

    Add support for GoToR link annotations.

  • Added

    Add method to search for a specific page label. See PSCGoToPageButtonItem in PSPDFKit Catalog for an example how to use it. (DevelopersGuide.pdf has labels)

  • Changed

    The page popover now shows the page label if one is set in the PDF (e.g. to replace numbers with roman numbering)

  • Changed

    Links to the external applications (e.g. AppStore, Mail) are now detected and a alert view is displayed asking to open the application or not.

  • Added

    Add workaround for a UIKit issue in iOS5.x that would sometimes dismiss the keyboard when removing characters from the search view controller. (Issues has been fixed in iOS6)

  • Fixed

    Fixes a UI issue in search results. If a search result was found more than one time in a string, the first occurrence was marked bold. Now the actual result is marked bold. (This was mostly noticeable when searching for very small words)

  • Fixed

    Fixes a issue where too fast drawing could result in some lines now being displayed.

  • Fixed

    Fixes isLastPage/isFirstPage methods for landscape mode.

  • Fixed

    Fixes a issue where sometimes overrideClassNames for annotation was ignored.

  • Fixed

    Fixes a issue where the cache could return a wrong image in some rare cases.

2.3.1 - 11 Oct 2012

  • Fixed

    Fixes a potential memory corruption with PSPDFAESCryptoDataProvider.

2.3.0 - 11 Oct 2012

  • Changed

    Experimental features: Add support to create PDF documents from html string or even a website.

  • Changed

    Annotations now can be flattened before the document is sent via email. PSPDFEmailBarButtonItem has new options, and there is a new class PSPDFProcessor to generate new PDFs.

  • Changed

    Outline elements that have no target page now no longer redirect to page 1 and will expand/collapse a section if there are child outline elements.

  • Added

    Add minimumZoomScale and setZoomScale:animated: to PSPDFViewController.

  • Changed

    Glyphs that are outside of the page rect are now not displayed in the extracted text per default. You can restore the old behavior with setting PSPDFDocument’s textParserHideGlyphsOutsidePageRect to YES.

  • Changed

    Further tweaks for the iOS5 YouTube plugin version, ensure it’s always correctly resized.

  • Changed

    viewLockEnabled now also disables zooming with double tapping.

  • Changed

    Don’t show outline on search result if it’s just one entry (most likely just the PDF name)

  • Changed

    The keyboard of the note annotation controller now moves out at the same time as the popover dismisses (before keyboard animated out AFTER the popover animation)

  • Changed

    Software dimming view now also covers the status bar.

  • Changed

    Adding/Removing bookmarks now correctly hides any open popovers.

  • Changed

    PSPDFKit Catalog: can now receive PDF documents from other apps.

  • Changed

    PSPDFKit Catalog: added basic full-text-search feature across multiple documents.

  • Removed

    Removed kPSPDFKitDebugMemory and kPSPDFDebugScrollViews.

  • API

    renamed PSPDFSearchDelegate -> PSPDFTextSearchDelegate and added the PSPDFTextSearch class as parameter.

  • API

    removes certain deprecated methods.

  • API

    renamed kPSPDFKitPDFAnimationDuration to kPSPDFAnimationDuration.

  • Fixed

    Fixes possible inconsistency between displayed and used drawing color.

  • Fixed

    Fixes a race conditions when using appendFile: in PSPDFDocument and cacheDocument:startAtPage:size:.

  • Fixed

    Fixes a rotation issue when the annotation toolbar is displayed.

  • Fixed

    Fixes a issue where the popover of a ink annotation wasn’t correctly sized.

  • Fixed

    Fixes a issue where the outline button was displayed when the document was invalid (instead of being hidden as expected)

2.2.2 - 5 Oct 2012

  • Changed

    Properly restore the PSPDFLinkAnnotationView backgroundColor.

2.2.1 - 4 Oct 2012

  • Changed

    The original backgroundColor of a PSPDFLinkAnnotationView is now preserved.

  • Changed

    YouTube embedding now supported on iOS6.

  • Changed

    Video embeddings with a cover image now don’t show the cover if play has already been pressed after a page change.

  • Changed

    Annotations now are cached much like UITableViewCells. (faster; preserve video state, etc)

  • Fixed

    Fixes a “sticky” scrolling issue that was introduced in 2.2.

2.2.0 - 4 Oct 2012

  • Added

    New scrolling mode: PSPDFPageScrollContinuousTransition (similar to UIWebView’s default mode)

  • Changed

    Support text selection on rotated PDF documents.

  • Changed

    UIPopoverController is now styleable with a tintColor. This is enabled by default if tintColor is set. Use .shouldTintPopovers to disable this. As long as you use presentViewControllerModalOrPopover:embeddedInNavigationController:withCloseButton:animated:sender:options: your custom popovers will be styled the same way.

  • Added

    Adds support for adding annotations for double page mode on the right page. (Note: drawing still isn’t perfect)

  • Added

    Add new property renderAnnotationTypes to PSPDFViewController to allow control about the types of annotations that should be rendered.

  • Added

    Add support for PDF Link Launch annotations (link to a different PDF within a PDF, see https://pspdfkit.com/guides/ios/annotations/link-annotations/)

  • Changed

    Annotation selection is now smarter and selects the annotation that’s most likely chosen (e.g. a small note annotation now is clickable even if it’s behind a big ink drawing annotation)

  • Changed

    It’s now possible to properly select an annotation while in highlight mode.

  • Changed

    Allow changing the drawing color using the menu. (invokes the color picker)

  • Added

    Add a isEditable property to be able to lock certain annotations against future edits.

  • Added

    Add printing support for small CGDataProviderRef-based PSPDFDocuments.

  • Changed

    Improve OpenIn… feature, annotations are auto-saved before opening in another app and a log warning will be displayed for incompatible document compositions.

  • Changed

    The password in PSPDFDocument is now saved and will be relayed to any added file (e.g. when using appendFile)

  • Changed

    Improved performance for outline and annotation parsing (up to 400% faster, especially for large complex documents with huge outlines)

  • Changed

    Massively improved performance for search, especially for documents with many fonts.

  • Changed

    Text loupe is faster; less delays on the main thread when waiting for a textParser (more fine-grained locking)

  • Changed

    PSPDFViewController now saves any unsaved annotation data when app moves to background.

  • Added

    Add PSPDFBrightnessBarButtonItem and optional software-dimming to darken the screen all the way down to black.

  • Changed

    PSPDFDocuments objectsAtPDFRect:page:options: now can also search for annotations and text blocks.

  • Changed

    Smart Zoom is now even smarter and picks the most likely tapped text block if the detection shows multiple overlaying blocks.

  • Added

    Adds Italian translation.

  • Changed

    Restores PDF page label feature from version 1.

  • Changed

    removeCacheForDocument:deleteDocument:error: now also removes any document metadata files (bookmarks, annotations [if they were saved externally])

  • Changed

    The cancel button in PSPDFSearchViewController can now be localized.

  • Changed

    PSPDFKit now uses UICollectionView on iOS6, and PSTCollectionView on iOS4/5.

  • Changed

    When annotations are deserialized from disk, the proper annotation subclasses set in document.overrideClassNames will be used.

  • Changed

    Ensure annotation toolbar is closed when view controller pops.

  • Changed

    Thumbnails no longer are laid out behind the tab bar if PSPDFTabbedViewController is used. (they now correctly align beneath the bar)

  • Added

    Add workaround for a UIKit problem where a UIPopoverController could be resized to zero on iPad/landscape when it’s just above the keyboard.

  • Changed

    Greatly reduced the black hair line that was visible in double page modes between the pages. Should now be invisible in most cases.

  • Changed

    The last used drawing color is now saved in the user defaults.

  • Changed

    The bookmark image is now saved proportionally to the thumbnail image.

  • Changed

    Ensures that for PSPDFTabbedViewController, tabs always have a title.

  • Changed

    The close button added when using the presentModal: api of PSPDFViewController now uses the Done-button style.

  • API

    bookmark save/load now exposes NSError object. Also new; clearAllBookmarks.

  • API

    willStartSearchOperation:forString:isFullSearch: in PSPDFSearchOperationDelegate is now optional.

  • API

    PSPDFDocument now implements PSPDFDocumentProviderDelegate and also is set as the default delegate.

  • API

    PSPDFDocumentDelegate now has methods for didSaveAnnotations and failedToSaveAnnotations.

  • API

    removeCacheForDocument:deleteDocument:waitUntilDone: is now removeCacheForDocument:deleteDocument:error: -

  • Fixed

    Fixes a rotation issue when the annotation toolbar is displayed use dispatch_async to make the call async.

  • API

    tabbedPDFController:willChangeVisibleDocument: has been renamed to tabbedPDFController:shouldChangeVisibleDocument:

  • Fixed

    Fixes a bug where annotations were not saved correctly on multi-file documents when saving into external file was used. You need to delete the annotations.pspdfkit file in /Library/PrivateDocuments/UID to update to the new saving version (PSPDFKit still first tries to read that file to be backwards compatible)

  • Fixed

    Fixes freezing if there are A LOT of search results. They are not limited to 600 by default. This can be changed in PSPDFSearchViewController, see maximumNumberOfSearchResultsDisplayed.

  • Fixed

    Fixes a issue where similar PDF documents could create a equal UID when initialized via NSData.

  • Fixed

    Fixes “jumping” of the annotation toolbar when the default toolbar style was used.

  • Fixed

    Fixes calling the shouldChangeDocuments delegate in PSPDFTabbedViewController.

  • Fixed

    Fixes issue with rotation handling under iOS6.

  • Fixed

    Fixes a bug that prevented selecting annotations for documents with multiple files on all but the first file

  • Fixed

    Fixes a bug where the text editor sometimes could have a transparent background.

  • Fixed

    Fixes a toolbar bug when using UIStoryboard and modal transitions to PSPDFViewController.

  • Fixed

    Fixes a rare placement bug with the document title label overlay on iPhone.

  • Fixed

    Fixes a regression of 2.1 where search on iPhone sometimes didn’t jump to the correct page.

  • Fixed

    Fixes issue with certain unselectable words.

  • Fixed

    Fixes always-spinning activity indicator when internal WebBrowser was closed while page was still loading. ActivityIndicator management now also can be customized and/or disabled.

  • Fixed

    Fixes a page displacement issue with pageCurl and the app starting up in landscape, directly showing a PSPDFViewController. (workaround for a UIKit issue; has been fixed in iOS6)

  • Fixed

    Fixes invalid page coordinates sent to didTapOnPageView:atPoint: delegate on right page in landscape mode.

  • Fixed

    Fixes a race condition where annotations could be missing on display after repeated saving until the document has been reloaded.

  • Fixed

    Fixes issue with word detection where sometimes words were split apart after the first letter on the beginning of a line.

  • Fixed

    Fixes viewState generation. (Was always using page instead of realPage which lead to errors when using landscape mode)

  • Fixed

    Fixes missing background drawing for shape annotations.

  • Fixed

    Fixes a issue where certain link-annotations did not work when using the long-press and then tap on the sheet-button way.

  • Fixed

    Fixes a rare bug where pages could been missing when reloading the view of the PSPDFPerPageScrollTransition in a certain way.

  • Fixed

    Fixes issue where viewLockEnabled was ignored after calling reloadData.

Known Issues:

  • Changed

    Dragging note annotations from one page to another doesn’t yet work.

  • Changed

    Drawing across multiple pages doesn’t yet work.

2.1.0 - 17 Sep 2012

  • Changed

    New: PSPDFAESCryptoDataProvider. Allows fast, secure on-the-fly decryption of AES256-secured PDF documents. (PSPDFKit Annotate feature) Unlike NSData-based solutions, the PDF never is fully decrypted, and this even works with very large (> 100MB) documents. Uses 50.000 PBKDF iterations and a custom IV vector for maximum security. Includes the AESCryptor helper Mac app to properly encrypt your PDF documents.

  • Changed

    Allow to customize caching strategy per document with the new cacheStrategy property. This is automatically set to PSPDFCacheNothing when using PSPDFAESCryptoDataProvider.

  • Changed

    Annotations now have a blue selection view when they are selected.

  • Added

    Add Black and Red to general annotation color options.

  • Changed

    Font name/size for FreeText annotations is now parsed.

  • Added

    Added write support for FreeText annotations.

  • Changed

    Allow to show/edit the associated text of highlight annotations.

  • Changed

    Improves extensibility of the annotation system with adding a isOverlay method to PSPDFAnnotation. (Instead of hard-coding this to Link and Note annotations)

  • Changed

    Moves the clipsToBounds call in PSPDFPageView so that delegate can change this (of UIView ).

  • Added

    Adds static helper [PSPDFTextSelectionView isTextSelectionFeatureAvailable] to make runtime checks between PSPDFKit and PSPDFKit Annotate.

  • Added

    Adds new isWriteable static method to PSPDFAnnotation subclasses to determine what classes can be written back to PDF.

  • Added

    Add kPSPDFAllowAntiAliasing as optional render option.

  • Changed

    PSPDFOpenInBarButtonItem no longer performs a check for compatible apps. Checking this is pretty slow. An info alert will be displayed to the user if no compatible apps are installed (which is highly unlikely for PDF). You can restore the original behavior with setting kPSPDFCheckIfCompatibleAppsAreInstalled to YES.

  • Changed

    The viewState is now preserved when another controller is displayed/dismissed modally. This mostly happened with showing/hiding the inline browser or the note text controller on an iPhone. After that the zoom rate was reset; this is now properly preserved.

  • Changed

    The annotation toolbar now flashes if the user tries to hide the HUD while the bar is still active (and blocking that)

  • Changed

    Various performance optimizations; especially scrolling and initial controller creation.

  • Removed

    Removes sporadic vertical transition of the navigationController’s navigationBar when HUD faded out.

  • Fixed

    Fixes “Persistent Text Loupe” when moving over a link annotation while selecting.

  • Fixed

    Fixes a memory leak when CGDataProviderRef is used to initialize a PSPDFDocument.

  • Fixed

    Fixes a issue where the UI could sometimes freeze for a while waiting for background tasks in low-memory situations.

  • Fixed

    Fixes a issue where the popover page display wasn’t hidden after a rotation.

  • Fixed

    Fixes a issue where sometimes the page was not correctly restored after rotation (was +1).

  • Fixed

    Fixes a issue where, if email wasn’t configured on the device, the internal web browser would be launched with a mailto: link. Now a alert is displayed.

  • Fixed

    Fixes a issue where a page could, under certain rare conditions, escape the page tracking and be “sticky” behind the new managed page views.

  • Changed

    Titanium: Add saveAnnotation method to manually save annotations (needed for createView, automatically called in showPDFAnimated).

  • Changed

    Titanium: Limit usage of useParentNavigationBar to iOS5 and above.

  • Changed

    Titanium: fixes a rare condition where using document.password to unlock sometimes resulted in an incorrect value for isLocked.

2.0.3 - 14 Sep 2012

  • Added

    Add a new “renderOptions” property to PSPDFDocument to fine-tune documents (e.g. fixes gray border lines in mostly-black documents)

  • Changed

    Reduces file size of PSPDFKit.bundle by about 50%; improves speed of certain helper plists parsing.

  • Fixed

    Fixes potential category clashing

  • Fixed

    Fixes a bug that sneaked in because PSPDFKit is now compiled with Xcode 4.5. This release now also works with 4.4 for binary.

2.0.2 - 13 Sep 2012

  • Changed

    Support for iPhone 5, Xcode 4.5, armv7s and the new screen resolution.

  • Changed

    Supports a new cover property to have a custom cover screen for videos (big play button; custom preview-images)

  • Changed

    Don’t show browse popover/actionsheet for multimedia extensions during a long press.

  • Changed

    Don’t allow long-press over a UIControl. (e.g. a UIButton)

  • Fixed

    Fixes a issue where sometimes multimedia annotations would be added multiple times to the document.

  • Fixed

    Fixes a issue where sometimes you get blank space instead of a page when PSPDFPageRenderingModeFullPageBlocking and PSPDFPageScrollPerPageTransition was combined and the scrobble bar used heavily. This is a workaround for a UIKit bug.

  • Removed

    Removes libJPGTurbo; Apple’s own implementation has gotten faster (especially in iOS6)

2.0.1 - 12 Sep 2012

  • Changed

    Faster search (document pattern detection if delayed until needed, outline results get cached)

  • Changed

    Improved reaction time for complex PDF documents (e.g. annotations are only evaluated if they’re already loaded; but won’t lock the main thread due to lazy parsing)

  • Added

    Add additional checks so that even incorrectly converted NSURL-paths (where description instead of path has been called) work.

  • Fixed

    Fixes a issue where annotations were not saved with multiple-file documents on all but the first file.

  • Fixed

    Fixes problems where link annotations lost their page/link target after saving annotations into a file.

  • Fixed

    Fixes a problem where fittingWidth was always overridden when run on the iPhone.

  • Fixed

    Fixes a race condition in the new render stack that could lead to an assert in debug mode (non-critical)

  • Fixed

    Fixes the toolbar overlapping text issue in the PSPDFKit Catalog Kiosk Example; added comments how to work around that UIKit bug.

  • Changed

    Made the pageRotation property of PSPDFPageInfo writeable; useful for manually rotation PDF documents.

  • Fixed

    Fixes some issues with the Titanium module; adds support for NavigationGroups.

  • Changed

    Improved memory usage, especially on iPad1.

2.0.0 - 8 Sep 2012

PSPDFKit 2 is a major updates with lots of changes and a streamlined API. There are some API deprecations and some breaking changes; but those are fairly straightforward and well documented.

You need at least Xcode 4.4.1 to compile. (Xcode 4.4/4.5 both run fine on Lion, Mountain Lion is not needed but recommended) PSPDFKit 2 is compatible with iOS 4.3 upwards. (armv7, i386 - thus dropping iOS 4.2/armv6 from version 1)

The installation has been simplified. You now just drop the “PSPDFKit.embeddedframework” container into your project. Next, enable the PSPDFKit.xcconfig project configuration. Here’s a screenshot: http://cl.ly/image/1e1I2Z2e1D3F (Select your project (top left), select project again in the PROJECT/TARGETS tree, select Info, then change in “Based on Configuration file” from None to PSPDFKit.)

If you have the sources and embed PSPDFKit as a subproject, don’t forget to also add PSPDFKit.bundle.

MAJOR NEW FEATURES:

  • Changed

    Text selection! (PSPDFKit Annotate) (Includes Copy, Dictionary, Wikipedia support)

  • Changed

    Annotations! (PSPDFKit Annotate) Highlight, Underscore, Strikeout, Note, Draw etc. Annotations also will be written back into the PDF. There is a new annotationBarButtonItem that shows the new annotation toolbar.

  • Changed

    Smart Zoom (Text blocks are detected and zoomed onto on a double-tap; much like Safari) The PDF is now also dynamically re-rendered at every zoom level for maximal sharpness and quality.

  • Changed

    Customizable render modes (enable/disable use of upscaled thumbnails). PSPDFPageRenderingModeFullPageBlocking is great for magazines.

  • Changed

    Greatly improved Search. Faster, parses more font styles, compatible with international characters (chinese, turkish, arabic, …)

  • Changed

    Site Bookmarks (see bookmarksBarButtonItem and PSPDFBookmarkParser)

  • Changed

    Support for VoiceOver accessibility (yes, even within the PDF!)

Further, PSPDFKit has been improved in virtually every area and a lot of details have been tweaked.

  • Changed

    Inline password view. (Before, just a empty screen was shown when document wasn’t unlocked.)

  • Changed

    Adobe DRM detection (They are just marked as not viewable, instead of showing garbage)

  • Changed

    PDF rendering indicator. (see pdfController.renderAnimationEnabled)

  • Changed

    Even better view reuse. PSPDFPageView is now reused, scrolling is even smoother.

  • Changed

    PSPDFDocument can now be initialized with a CGDataProviderRef or a dataArray.

  • Changed

    The search/outline controllers now dynamically update their size based on the content height.

  • Changed

    The Table of Contents/Outline controller now shows titles in multiple lines if too long (this is customizable)

  • Changed

    Support for Table Of Contents (Outline) linking to external PDF documents.

  • Changed

    Page Content/Background Color/Inversion can now be changed to modify rendering.

  • Changed

    On the iPhone, a new documentLabel shows the title. (the navigationBar is too small for this)

  • Changed

    PSPDFScrobbleBar now uses the small height style on iPhone/Landscape.

  • Changed

    PSPDFViewController can now programmatically invoke a search via searchForString:animated:.

  • Changed

    PSPDFViewController now has a margin and a padding property to add custom margin/padding on the pdf view.

  • Changed

    PSPDFViewController now has a HUDViewMode property to fine-tune the HUD.

  • Changed

    PSPDFTabbedViewController now has a minTabWidth property (defaults to 100)

  • Changed

    It’s now possible to pre-supply even fully-rendered page images. PSPDFDocument’s thumbnailPathForPage has been replaced with cachedImageURLForPage:andSize:.

  • Changed

    PSPDFDocument now has a overrideClassNames dictionary, much like PSPDFViewController.

  • Changed

    PSPDFDocument now has objectsAtPDFPoint/objectsAtPDFRect to return found glyphs and words.

  • Changed

    PSPDFDocument now has convenience methods to render PDF content. (renderImageForPage:withSize:…/renderPage:inContext:…)

  • Changed

    PSPDFDocument now exposes some more common metadata keys for the PDF metadata.

  • Changed

    PSPDFDocument now has convenience methods to add and get annotations (addAnnotations:forPage:)

  • Changed

    PSPDFDocument now has a property called annotationSaveMode to switch between PDF annotation embedding or an external file.

  • Changed

    Support for documents with multiple sources(files/dataArray/documentProvider) is now greatly improved due to the new PSPDFDocument/PSPDFDocumentProvider structure.

  • Changed

    PSPDFPageView now has convenience methods to calculate between PDF and screen coordinate space (convertViewPointToPDFPoint/convertPDFPointToViewPoint/etc)

  • Changed

    PSPDFPageView no longer uses CATiledLayer; this has been replaced by a much faster and better custom solution.

  • Changed

    PSPDFScrollView no longer accepts a tripple-tap for zooming out; this was a rarely-used feature in iOS and it increased the reaction time for the much more used double tap. Zooming in/out is now smarter (smart zoom) and does the right thing depending on the zoom position.

  • Changed

    PSPDFWebViewController now supports printing.

  • Changed

    A long-press on a PDF link annotation now shows the URL/Document/Page target in a popover.

  • Changed

    When switching between DEMO/FULL; the change is automatically detected and the cache cleared. (No more watermark problems)

  • Changed

    The image annotation view now properly displays and animates animated GIFs.

  • Changed

    GMGridView has been replaced by the new and better PSCollectionView, which is a API compatible copy of UICollectionView.

  • Changed

    Internal modernization; literals, subscripting, NS_ENUM, NS_OPTIONS.

  • Changed

    Better internal error handling; more functions have error parameters.

Fixes/API changes:

  • Changed

    The navigationBar title is no longer set on every page change.

  • Changed

    PSPDFDocument’s PDFDocumentWithUrl has been renamed to PDFDocumentWithURL.

  • Changed

    Delegates are now called correctly (only once instead of multiple times) in pageCurl mode.

  • Changed

    pdfViewController:willShowController:embeddedInController:animated: has been changed to (BOOL)pdfViewController:SHOULDShowController:embeddedInController:animated:

  • Changed

    tabbedPDFController:willChangeDocuments has been renamed to tabbedPDFController:shouldChangeDocuments.

  • Added

    New delegate: - (void)pdfViewController:(PSPDFViewController *)pdfController didEndPageDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset -> completes dragging delegates; zooming delegates were already available in PSPDFKit 1.

  • Changed

    Changed willShowController… delegate to shouldShowController… that returns a BOOL.

  • Fixed

    Fixes a problem in the annotation parser where some named page links failed to resolve properly.

  • Fixed

    Fixes a problem where the Cancel button of the additionalBarButtonItem menu wasn’t fully touch-able on iPhone.

  • Fixed

    Fixes a problem with PSPDFBarButtonItem image updating.

  • Changed

    Lots of other minor and major changes.

1.10.5 - 1 Aug 2012

  • Added

    Add a workaround for unusable back button in a certain unreleased version of iOS. (This is most likely a temporal iOS bug)

  • Changed

    Improve PSPDFCloseBarButtonItem to be context-aware if we should close a modal view or pop from the navigation stack.

  • Fixed

    Fixes a issue where zooming was difficult on pages with lots of PDF link annotations.

  • Fixed

    Fixes two harmless warnings with Xcode 4.4.

  • Fixed

    Fixes the delete all tabs action sheet in the TabbedExample on iPhone.

  • Fixed

    Fixes a certain issue with embedding PSPDFViewController.

  • Fixed

    Fixes a rare memory leak when image decompression fails.

1.10.4 - 12 Jul 2012

  • Added

    New delegates: shouldScrollToPage, resolveCustomAnnotationPathToken.

  • Changed

    If annotation is set to a file and this file doesn’t exist, annotation type will be set to undefined.

  • Changed

    Improve tap change speed and touch area of PSPDFTabbedViewController.

  • Changed

    Another possible bugfix for UIPageViewController rotation changes.

  • Changed

    Don’t change navigationController if embedded into a parentViewController on default. (See useParentNavigationBar).

  • Changed

    Allow to subclass PSPDFPageView via the overrideClassNames property in PSPDFViewController.

  • Changed

    Allow parsing of PDF outlines with party invalid information.

  • Removed

    Removed preloadedPagesPerSide. Changing this turned out to not bring any noticeable performance benefits.

  • Fixed

    Fixes a case where some link annotations were not correctly parsed.

1.10.3 - 22 Jun 2012

  • Added

    New property in PSPDFCache: downscaleInterpolationQuality (to control the thumbnail quality)

  • Added

    Add some improvements to caching algorithm, adds cacheThumbnailsForDocument to preload a document.

  • Changed

    Ensures that email attachments will end with “.pdf”.

  • Changed

    Clear annotation cache in low memory situations. Helps for documents with lots of embedded videos.

  • Fixed

    Fixes a UI issue where the transition between content and thumbnails was sometimes incorrect on zoomed-in content.

  • Fixed

    Fixes a bug where the pageIndex on thumbnails are off-by-one.

  • Fixed

    Fixes a bug where annotationEnabled wasn’t correctly restored when using NSCoding on PSPDFDocument.

  • Fixed

    Fixed a problem where delegates where called too often for the initial reloadData event.

  • Fixed

    Fixes a potential crash on low-memory situations.

  • Fixed

    Fixes a potential crash with pageCurl mode and device rotations.

  • Fixed

    Fixes a crash when using a NSData-provided PSPDFDocument with no metadata title and using the sendViaEmail feature.

  • Fixed

    Fixes a issue with MPMoviePlayer disappearing during fullscreen-animation.

1.10.2 - 5 Jun 2012

  • Added

    New controller delegates: willShowViewController:animated: and didShowViewController:animated:.

  • Added

    New HUD visibility delegates: shouldShowHUD/shouldHideHUD/willShowHUD:/didShowHUD:/willHideHUD:/didHideHUD:

  • Changed

    PageLabel on thumbnails is now width-limited to the maximal image size.

  • Changed

    The default linkAction is now PSPDFLinkActionInlineBrowser (changed from PSPDFLinkActionAlertView).

  • Changed

    The openIn action is now displayed in the iOS Simulator, but a UIAlertView shows that this feature only works on a real device.

  • Changed

    PSPDFOutlineElement now implements NSCopying and NSCoding.

  • Changed

    Page labels now work with documents containing multiple files.

  • Removed

    Removed the searchClassName property in PSPDFSearchViewController. Use the overrideClassNames in PSPDFViewController to change this.

  • Changed

    Renamed showCancel to showsCancelButton in PSPDFSearchViewController.

  • Changed

    searchBar in PSPDFSearchViewController is now created in init, not viewDidLoad (so you can easily customize it)

  • Added

    Added new API items for PSPDFTabbedViewController and changed the API to initialize the controller. (You can also just use init)

  • Changed

    On PSPDFDocument.title, the “.pdf” ending is now automatically removed.

  • Added

    New property in PSPDFViewController: loadThumbnailsOnMainThread. (Moved from PSPDFPageView, new default is YES)

  • Fixed

    Fixes a short black gap when loading the document under certain conditions w/o pageCurl-mode.

  • Fixed

    Fixes a bug where the new pdf path resolving function sometimes returned invalid strings.

  • Fixed

    Fixes a bug where changing left/rightBarButtonItems needed an additional call to updateToolbar to work. This is now implicit.

  • Fixed

    Fixes a bug where nilling out left/rightBarButtonItems after the controller has been displayed didm’t correctly update the navigationBar.

  • Fixed

    Fixes a bug where the position of the initial page view could be smaller than the view in landscape mode.

  • Fixed

    Fixes a bug where the titleView wasn’t used to calculate the toolbarWidths.

  • Fixed

    Fixes a bug where the TabbedViewController’s selected tab wasn’t correctly updated when setting visibleDocument.

  • Fixed

    Fixes a bug where the TabbedViewController-preference enableAutomaticStatePersistence wasn’t always honored.

1.10.1 - 29 May 2012

  • Changed

    Improvement: Better handle toolbar buttons when a too long title is set. (now exposing minLeftToolbarWidth, minRightToolbarWidth)

  • Changed

    Improvement: sometimes the NavigationBar was restored even if it wasn’t needed.

  • Changed

    Improvement: Don’t reload frame if we’re in the middle of view disappearing.

  • Changed

    Improvement: Use default white statusBar with inline browser on iPhone.

  • Changed

    Improves the document<->thumbnail transition with certain non-uniformed sized documents and pageCurl mode.

  • Fixed

    Fixes a case where the PSPDFPositionView wasn’t correctly laid out.

  • Fixed

    Fixes a problem where the close button was disabled when no document was set.

  • Fixed

    Fixes a regression regarding pageCurl mode and activated isFittingWidth.

  • Fixed

    Fixes a regression regarding the viewModeButtonItem not being displayed correctly on appcelerator.

  • Fixed

    Fixes a problem where under certain conditions a landscape->portrait rotation in pageCurl mode on the last page performed a scroll to the first page.

  • Fixed

    Fixes a leak in PSPDFActionSheet.

1.10.0 - 25 May 2012

This will probably be the last major release in the 1.x branch. Work on 2.x is already underway, with a focus on text selection and annotations.

This release has some API-breaking changes:

  • Added

    New toolbar handling (breaking API change) The properties searchEnabled, outlineEnabled, printEnabled, openInEnabled, viewModeControlVisible have been replaced by a much more flexible system based on the PSPDFBarButtonItem class.

    For example, to add those features under the “action” icon as a menu, use this: self.additionalRightBarButtonItems = [NSArray arrayWithObjects:self.printButtonItem, self.openInButtonItem, self.emailButtonItem, nil]; If you’re looking to e.g. remove the search feature, set a new rightBarButtonItems array that excludes the searchButtonItem.

    Likewise, the functions additionalLeftToolbarButtons, magazineButton and toolbarBackButton have been unified to self.leftBarButtonItems. If you want to replace the default closeButton with your own, just create your own UIBarButtonItem and set it to self.leftBarButtonItems = [NSArray arrayWithObject:customCloseBarButtonItem];

  • Changed

    Resolving pdf link paths has changed. (breaking API change) Previously, if no marker like “Documents” or “Bundle” was found, we resolved to the bundle. This version changes resolving the link to the actual position of the pdf file. If you need the old behavior, you can set PSPDFResolvePathNamesEnableLegacyBehavior to YES or use a custom subclass of the PSPDFAnnotationParser.

  • Added

    New class PSPDFTabbedViewController, to show multiple PSPDFDocuments with a top tab bar. iOS5 only. (includes new TabbedExample)

  • Added

    New feature: PDF page labels are parsed. (e.g. roman letters or custom names; displayed in the PSPDFPositionView and the thumbnail label)

  • Added

    New feature: send via Email: allows sending the pdf as an attachment. (see emailButtonItem in PSPDFViewController)

  • Added

    New feature: PSPDFViewState allows persisting/restoring of a certain document position (including page, position, zoom level). See documentViewState and restoreDocumentViewState:animated: in PSPDFViewController.

  • Added

    Add support for puny code characters in pdf URLs (like http://➡.ws/鞰齒). This uses the IDNSDK.

  • Added

    New property: useParentNavigationBar, if you embed the PSPDFViewController using iOS5 containment and still want to populate the navigationBar.

  • Added

    New property: pageCurlDirectionLeftToRight to allow a backwards pagination. (for LTR oriented documents)

  • Added

    New delegate: delegateDidEndZooming:atScale to detect user/animated zooming.

  • Changed

    UI Improvement: Show URL in embedded browser title bar, until page is loaded with the real title.

  • Changed

    General: Add french localization in PSPDFKit.bundle.

  • Changed

    Core: PSPDFDocument now implements NSCopying and NSCoding protocols.

  • Fixed

    Fixes a problem where links with hash bangs (like https://twitter.com/#!/) where incorrectly escaped.

  • Fixed

    Fixes opening certain password protected files.

  • Fixed

    Fixes unlockWithPassword always returning YES, even with an incorrect password.

  • Fixed

    Fixes a crash regarding pageCurl and UpsideDown orientation on the iPhone.

  • Fixed

    Fixes a problem where the search delegates where called after canceling the operation.

  • Fixed

    Fixes a problem where the page wasn’t re-rendered if it was changed while zoom was active.

  • Fixed

    Fixes a problem where the tile wasn’t updated after setting document to nil.

  • Fixed

    Fixes a problem where under rare conditions a spinlock wasn’t released in PSPDFGlobalLock.

  • Added

    Adds support for Xcode 4.4 DP4. Due to an already acknowledged Apple linker bug. Xcode 4.4 DP5 is currently broken. (Xcode 4.3.2 is still recommended)

  • Changed

    Titanium: New min SDK is 2.0.1.GA2.

1.9.15 - 20 Apr 2012

  • Added

    New delegate: pdfViewController:didEndPageScrollingAnimation: to detect if a scroll animation has been finished. This will only be called if scrollToPage:animated: is used with animated:YES. (not for manual user scrolling)

  • Changed

    Additional safeguards have been put in place so that videos don’t start playing in the background while scrolling quickly.

1.9.14 - 20 Apr 2012

  • Added

    Adds support for Xcode 4.4 DP3.

  • Changed

    Show document back button even if PSPDFViewController is embedded in a childViewController.

  • Changed

    Doesn’t try to restore the navigation bar if we’re the only view on the navigation stack.

  • Changed

    Allow PSPDFSearchHighlightView to be compatible with overrideClassNames-subclassing.

  • Changed

    Works around some broken annotations that don’t have “http” as protocol listed (just www.google.com)

  • Changed

    PSPDFPageView now has convertViewPointToPDFPoint / convertPDFPointToViewPoint for easier annotation calculation.

  • Changed

    There are also some new PSPDFConvert* methods in PSPDFKitGlobal that replace the PSPDFTiledView+ categories. (API change)

  • Changed

    YouTube embeds finally support the autostart option. (Note: This might be flaky on very slow connections)

  • Fixed

    Fixes a big where some documents would “shiver” due to a 1-pixel rounding bug.

  • Fixed

    Fixes a regression with KVO-observing viewMode.

  • Fixed

    Fixes a UI glitch with animated pageScrolling on pageCurl if invoked very early in the view build hierarchy.

  • Fixed

    Fixes a problem where video was playing while in thumbnail mode.

1.9.13 - 7 Apr 2012

  • Changed

    Zooming out (triple tap) doesn’t scroll down the document anymore, only moves the zoom level to 1.0.

  • Changed

    Better handling of light/dark tintColors.

  • Changed

    ScrobbleBar is now colored like the navigationBar. (check for HUD changes/regressions in your app!)

  • Changed

    The status bar now moves to the default color on the iPhone for ToC/Search views.

  • Fixed

    Fixes an alignment problem with the thumbnail animation.

  • Changed

    Disable user interaction for very small links, that are not shown anyway.

  • Changed

    YouTube videos now rotate and resize correctly.

1.9.12 - 2 Apr 2012

  • Changed

    Thumbnails now smoothy animate to fullscreen and back. (new setViewMode animation instead of the classic fade)

  • Changed

    Fullscreen video is now properly supported with pageCurl. (with the exception of YouTube)

  • Changed

    Annotation views are now reused -> better performance.

  • Changed

    The outline controller now remembers the last position and doesn’t scroll back to top on re-opening.

  • Changed

    Hide HUD when switching to fullscreen-mode with videos.

  • Changed

    Don’t allow touching multiple links at the same time.

  • Changed

    Transition between view modes are now less expensive and don’t need view reloading. Also, zoom value is kept.

  • Changed

    The pageInfo view now animates. (Page x of y)

  • Changed

    The grid now properly honors minEdgeInsets on scrolling.

  • Changed

    Thumbnail page info is now a nice rounded label.

  • Fixed

    Fixes partly missing search highlighting on the iPhone.

  • Fixed

    Fixes a few calculation errors regarding didTapOnPageView & the PSPDFPageCoordinates variable.

  • Fixed

    Fixes a problem where caching sometimes was suspended and got stuck on old devices.

  • Changed

    Free more memory if PSPDFViewController is not visible.

1.9.11 - 28 Mar 2012

  • Added

    Add more control for pageCurl, allows disabling the page clipping. (better for variable sized documents)

  • Added

    New method on PSPDFDocument: aspectRatioVariance. Allows easy checks if the document is uniformly sized or not (might be a mixture of portrait/landscape pages) There is example code in PSPDFExampleViewController.m that shows how this can be combined for dynamic view adaption.

  • Changed

    Support for Storyboarding! You can create a segway to a PSPDFViewController and even pre-set the document within Interface Builder. There now is a new example called “StoryboardExample” that shows how this can be used. (iOS5 only)

  • Changed

    Note: if you use IB to create the document, you just use a String. Supported path expansions are Documents, Cache, Bundle. Leave blank for Bundle.

  • Changed

    Changes to navigationBar property restoration - now animates and also restores alpha/hidden/tintColor. Let me know if this breaks something in your app!

  • Fixed

    Fixes a potential crash with a controller deallocation on a background thread.

  • Fixed

    Fixes a potential crash when searching the last page in double page mode.

  • Fixed

    Fixes a regression introduced in 1.9.10 regarding a KVO deallocation warning.

1.9.10 - 26 Mar 2012

  • Changed

    Greatly improved performance on zooming with the new iPad (and the iPhone4).

  • Added

    Add support for printing! It’s disabled by default. Use printEnabled in PSPDFViewController. (thanks to Cédric Luthi)

  • Added

    Add support for Open In…! It’s disabled by default. Use openInEnabled in PSPDFViewController.

  • Changed

    Improved, collapsable outline view. (Minor API changes for PSPDFOutlineParser)

  • Changed

    Improved speed with using libjpeg-turbo. Enabled by default.

  • Changed

    PSPDFStatusBarIgnore is now a flag, so the status bar style (which infers the navigation bar style) can now been set and then marked as ignore.

  • Added

    New property viewModeControlVisible, that shows/hides the toolbar view toggle.

  • Removed

    Removes the UIView+Sizes category, that was not prefixed.

  • Removed

    Remove custom PNG compression, performance wasn’t good enough.

  • Changed

    Internal GMGridView is now prefixed.

  • Changed

    Disable implicit shadow animation when grid cell size changes.

  • Fixed

    Fixes a bug regarding slow rotation on the new iPad.

  • Fixed

    Fixes a bug where sometimes a pdf document wasn’t unlocked correctly.

  • Fixed

    Fixes a potential problem where search/table of contents doesn’t actually change the page on the iPhone.

  • Fixed

    Fixes some problems with Type2 Fonts on search.

  • Fixed

    Fixes a rare crash when rotating while a video is being displayed.

1.9.9 - 15 Mar 2012

  • Changed

    Icons! (changed outline icon, and replaced “Page” and “Grid” with icons)

  • Changed

    Outline controller now has a title on the iPad.

  • Fixed

    Fixes a regression where the toolbar color was not correctly restored on the iPhone when modal controller were used.

1.9.8 - 14 Mar 2012

  • Fixed

    Fixed a minor regression regarding scrobble bar updating.

  • Fixed

    Fixed issue where frame could be non-centered in pageCurl mode with some landscape documents when the app starts up in landscape mode.

1.9.7 - 14 Mar 2012

  • Changed

    PSPDFKit is now compiled with Xcode 4.3.1 and iOS SDK 5.1. Please upgrade. (It is still backwards compatible down to iOS 4.0.)

  • Changed

    Allow adding the same file multiple times to PSPDFDocument.

  • Changed

    Links are now blue and have a higher alpha factor. (old color was yellow and more obtrusive)

  • Changed

    The animation duration of annotations is now customizable. See annotationAnimationDuration property in PSPDFViewController.

  • Changed

    Link elements are not shown with exact metrics, and touches are tested for over-span area. Also, over-span area is now 15pixel per default. (old was 5)

  • Changed

    Link elements now don’t interfere with double/triple taps and only fire if those gestures failed.

  • Changed

    Link elements no longer use an internal UIButton. (they are now handled by a global UITapGestureRecognizer)

  • Changed

    Annotations are not size-limited to the actual document, no more “bleeding-out” of links.

  • Changed

    Minimum size for embedded browser is now 200x200. (fixes missing Done button)

  • Changed

    Inline browser can now also be displayed within a popover, using pspdfkit://[popover:YES,size:500x500]apple.com

  • Changed

    Text highlighting is still disabled by default, but can be enabled with the new property createTextHighlightAnnotations in PSPDFAnnotationParser.

  • Fixed

    Fixes an issue where the navigation bar was restored too soon. Let me know if this change breaks behavior on your app. (The navigationBar is now restored in viewDidDisappear instead of viewWillDisappear, and also will be set in viewWillAppear)

  • Changed

    Support tintColor property for inline browser.

  • Changed

    Better support for invalid documents (that have no pages.) HUD can’t be hidden while a document is invalid. UI buttons are disabled.

  • Fixed

    Fixes problem where link taps were not recognized on the site edges, advancing to the next/prev page instead in pageCurl mode.

  • Fixed

    Fixes issue where scrollOnTapPageEndEnabled setting was not honored in pageCurl mode.

  • Fixed

    Fixes a problem where the embedded mail sheet sometimes couldn’t be closed.

  • Fixed

    Fixes a problem where touch coordinates on annotations where always in the frame center instead of the actual tap position.

  • Fixed

    Fixes a problem where adding items to the cache would sometimes spawn too much threads.

  • Fixed

    Fixes a potential crash in the inline browser.

  • Fixed

    Fixes a potential crash with accessing invalid memory on pageCurl deallocation.

  • Fixed

    Fixes a issue where certain URLs within pdf annotations were not correctly escaped.

  • Fixed

    Fixes a situation where the thumbnail grid could become invisible when rapidly switched while scrolling.

  • Fixed

    Fixes an issue where the HUD was hidden after a page rotate (which should not be the case)

  • Fixed

    Fixes weird animation with the navigationController toolbar when opening the inline browser modally.

1.9.6 - 6 Mar 2012

  • Added

    New Inline Browser: PSPDFWebViewController. Annotations can be styled like pspdfkit://[modal:YES,size:500x500]apple.com or pspdfkit://[modal:YES]https://gmail.com.

  • Added

    New property in PSPDFViewController: linkAction. Decides the default action for PDF links (alert, safari, inline browser)

  • Added

    Add PSPDFStatusBarIgnore to completely disable any changes to the status bar.

  • Changed

    Automatically close the Table of Contents controller when the user tapped on a cell.

  • Fixed

    Fixes sometimes missing data in the pageView didShowPage-delegate when using pageCurl mode.

  • Fixed

    Fixes (another) issue where status bar style was not restored after dismissing while in landscape orientation.

  • Fixed

    Fixes a severe memory leak with pageCurl mode.

1.9.5 - 5 Mar 2012

  • Changed

    Further tweaks on the scrobbleBar, improves handler in landscape mode. (thanks to @0xced)

  • Fixed

    Fixes a problem with pageCurl and the animation on the first page (thanks to Randy Becker)

  • Fixed

    Fixes an issue where double-tapping would zoom beyond maximum zoom scale. (thanks to Randy Becker)

  • Fixed

    Fixes issue where status bar style was not restored after dismissing while in landscape orientation. (thanks to Randy Becker)

  • Fixed

    Fixes some remote image display issues in the PSPDFKit Kiosk Example.

  • Fixed

    Fixes a regression with opening password protected pdf’s.

1.9.4 - 4 Mar 2012

  • Fixed

    Fixes a regression from 1.9.3 on single page documents.

1.9.3 - 1 Mar 2012

  • Changed

    Improves precision and stepping of the scrobbleBar. Now it’s guaranteed that the first&last page are shown, and the matching between finger and page position is better.

  • Fixed

    Fixes a problem where sometimes page 1 should be displayed, but isn’t in pageCurl mode.

  • Changed

    Hide warnings for rotation overflow that UIPageViewController sometimes emits.

1.9.2 - 1 Mar 2012

  • Changed

    pageCurl can now be invoked from the edge of the device, even if the file is smaller. Previously, the gesture was not recognized when it wasn’t started within the page view.

  • Changed

    The incomplete support for text highlighting has been disabled.

  • Changed

    removeCacheForDocument now has an additional parameter waitUntilDone. The previous behavior was NO, so just set NO if you use this and upgrade from an earlier release.

  • Fixed

    Fixes a potential cache-loop, where the device would constantly try to load new images.

  • Added

    Adds a safety check for loading images, and fixes a rare issue with images not showing up.

1.9.1 - 17 Feb 2012

  • Changed

    Allow scrolling to a specific rect and zooming: see scrollRectToVisible:(CGRect)rect animated:(BOOL)animated and (void)zoomToRect:(CGRect)rect animated:(BOOL)animated;

  • Changed

    PSPDFAnnotationParser now allows setting custom annotations. (to complement or override pdf annotations)

  • Added

    New annotation type: Image. (jpg, png, tiff and all other formats supported by UIImage)

  • Changed

    Better handling of situations with nil documents or documents where the actual file is missing.

  • Changed

    Better alignment of the scrobble bar position image.

  • Added

    Add “mp4” as supported audio filetype.

  • Fixed

    Fixes ignored scrollingEnabled on PSPDFPageViewController.

  • Fixed

    Fixes event delegation in the Titanium module.

  • Fixed

    Fixes the method isFirstPage (checked for page = 1, but we start at page 0).

  • Changed

    Renamed kPSPDFKitDebugLogLevel -> kPSPDFLogLevel.

1.9.0 - 13 Feb 2012

  • Changed

    PageCurl mode. Enable via setting “pageCurlEnabled” to YES. iOS5 only, falls back to scrolling on iOS4.

  • Changed

    It’s now possible to create a PSPDFDocument with initWithData! (thanks to @0xced)

  • Added

    Add support for pdf passwords! (Thanks to Steven Woolgar, Avatron Software)

  • Added

    Adds support for setting a custom tintColor on the toolbars.

  • Fixed

    Fixes a problem with PSPDFPageModeAutomatic and portrait/landscape page combinations.

  • Fixed

    Fixes various problems with __weak when the development target is set to iOS5 only.

  • Added

    Adds additional error checking when a context can’t be created due to low memory.

  • Fixed

    Fixes flaky animations on the Simulator on the grid view.

  • Changed

    Improves usage of PSPDFViewController within a SplitViewController (thanks to @0xced).

  • Removed

    Removes a leftover NSLog.

  • Fixed

    Fixes a UID clashing problem with equal file names. Warning! Clear your cache, items will be re-generated in 1.9 (cache directories changed)

  • Fixed

    Fixes a bug with replacing local directory path with Documents/Cache/Bundle. (thanks to Peter)

  • Fixed

    Fixes a retain cycle in PSPDFAnnotationParser (thanks to @0xced).

  • Fixed

    Fixes a retain cycle on UINavigationController (thanks to Chan Kruse).

  • Fixed

    Fixes a problem where the scrobble bar tracking images were sometimes not updated.

  • Fixed

    Fixes a rare race condition where rendering could get stuck.

  • Changed

    Improves handling of improper PSPDFDocument’s that don’t have a uid set.

  • Changed

    Allow adding of UIButtons to gridview cells.

  • Added

    Added “Cancel” and “Open” to the localization bundle. (mailto: links)

  • Changed

    Setting the files array is now possible in PSPDFDocument.

  • Changed

    The cache now uses MD5 to avoid conflicts with files of the same name. (or multiple concatenated files)

  • Changed

    Better handling of rendering errors (error objects are returned)

  • Changed

    Search controller is now auto-dismissed when tapped on a search result.

  • Changed

    PSPDFPositionView more closely resembles iBooks. (thanks to Chan)

  • Changed

    PDF cache generation is no no longer stopped in the viewWillDisappear event (only on dealloc, or when document is changed)

  • Changed

    Titanium: Add ability to hide the close button.

Note: For pageCurl, Apple’s UIPageViewController is used. This class is pretty new and still buggy. I had to apply some private API fixes to make it work. Those calls are obfuscated and AppStore-safe.

If you have any reasons to absolutely don’t use those workarounds, you can add PSPDFKIT_DONT_USE_OBFUSCATED_PRIVATE_API in the preprocessor defines. (only in the source code variant) This will also disable the pageCurl feature as the controller will crash pretty fast when my patches are not applied.

Don’t worry about this, I have several apps in the store that use such workarounds where needed, it never was a problem. Also, I reported those bugs to Apple and will keep track of the fixes, and remove my workarounds for newer iOS versions if they fix the problem.

1.8.4 - 27 Dec 2011

  • Fixed

    Fixes a problem where search highlights were not displayed.

  • Changed

    Updated git version scripts to better work with branches. (git rev-list instead of git log)

1.8.3 - 26 Dec 2011

  • Changed

    Update internally used TTTAttributedString to PSPDFAttributedString; prevent naming conflicts.

  • Changed

    Fallback to pdf filename if pdf title is set but empty.

  • Changed

    pageMode can now be set while willAnimateRotationToInterfaceOrientation to customize single/double side switching.

  • Fixed

    Fixes a problem with the document disappearing in certain low memory situations.

1.8.2 - 25 Dec 2011

  • Changed

    Uses better image pre-caching code; now optimizes for RGB screen alignment; smoother scrolling!

  • Fixed

    Fixes a regression with scrobble bar hiding after animation.

  • Fixed

    Fixes wrong toolbar offset calculation on iPad in landscape mode.

  • Changed

    Various performance optimizations regarding CGPDFDocument, HUD updates, thumbnails, cache creation.

  • Changed

    Lazy loading of thumbnails.

1.8.1 - 23 Dec 2011

  • Changed

    UINavigationBar style is now restored when PSPDFViewController is popped back.

  • Changed

    Annotation page cache is reset when protocol is changed.

  • Fixed

    Fixes Xcode Archive problem because of public header files in PSPDFKit-lib.xcodeproj

  • Fixed

    Fixes a regression with the Web-AlertView-action not working.

1.8.0 - 21 Dec 2011

  • Changed

    Search Highlighting! This feature is still in BETA, but already works with many documents. If it doesn’t work for you, you can disable it with changing the searchMode-property in PSPDFDocumentSearcher. We’re working hard to improve this, it just will take some more time until it works on every document. As a bonus, search is now fully async and no longer blocks the main thread.

  • Changed

    ARC! PSPDFKit now internally uses ARC, which gives a nice performance boost and makes the codebase a lot cleaner. PSPDFKit is still fully compatible with iOS4 upwards. You need to manually include libarclite.so if you are not using ARC and need compatibility with iOS4. Check the MinimalExample.xcodeproj to see how it’s done. (You can drag the two libarclite-libraries directly in your project). If you use the PSPDFKit-lib.xcodeproj as a submodule, you don’t have to think about this, Xcode is clever enough to not expose this bug here. See more about this at https://pspdfkit.com/guides/.

  • Added

    New default shadow for pages. More square, iBooks-like. The previous shadow is available when changing shadowStyle in PSPDFScrollView. The shadow override function has been renamed to pathShadowForView.

  • Changed

    New: PSPDFDocument now uses the title set in the pdf as default. Use setTitle to set your own title. Title is now also thread-safe.

  • Added

    New Thumbnail-Framework (removed AQGridView). Faster, better animations, allows more options. Thumbnails are now centered. You can override this behavior with subclassing gridView in PSPDFViewController.

  • Changed

    New: HUD-elements are now within hudView, hudView is now a PSPDFHUDView, lazily created.

  • Changed

    New: Page position is now displayed like in iBooks at the bottom page (title is now just title)

  • Changed

    Videos don’t auto play per default. Change the url to pspdfkit[autoplay:true]://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 to restore the old behavior (or use delegates).

  • Changed

    viewMode does not longer animate per default. Use the new setViewMode:animated: to change it with animation.

  • Changed

    the left section of the toolbar now uses iOS5-style leftToolBarButtons if available; falls back to custom UIToolBar in iOS4.

  • Changed

    Shortly pressed link targets are now highlighted with a minimum duration.

  • Changed

    Alert is no longer displayed for URLs that can’t be opened by the system.

  • Changed

    Support detection of “m4v” as video annotation.

  • Changed

    Improves performance when caching very large documents.

  • Changed

    Expose the borderColor of PSPDFLinkAnnotationView; set in one of the delegates.

  • Removed

    Removes a lot of glue code and switches to KVO for many view-related classes (Scrobble Bar)

  • Added

    Add methods to check if PSPDFPageInfo is already available, improves thumbnail speed.

  • Added

    Add generic support to override classes. See the property “overrideClassNames” for details. This replaces “scrollViewClass” and “scrobbleBarClass” and is much more flexible. Just use a key/value pair of NSStrings with default/new class names and your custom subclass will be loaded.

  • Changed

    setScrobbleBarEnabled is now animatable.

  • Changed

    The protocolString for the multimedia link annotation additions can now be set in PSPDFAnnotationParser (defaults to pspdfkit://).

  • Changed

    didTapOnPage is now didTapOnPageView, the former is deprecated.

  • Changed

    PSPDFPageCoordinates now show a nice description when printed.

  • Changed

    Many deprecated delegate calls have been removed. Check your calls.

  • Changed

    Version number is now directly written from the git repository. (PSPDFVersionString() is now more accurate)

  • Changed

    When a link annotation is tapped, the HUD no longer shows/hides itself.

  • Changed

    HUD show/hide is now instant, as soon as scrolling is started. No more delays.

  • Changed

    Scrollbar is now only changed if controller is displayed in full-screen (non-embedded).

  • Fixed

    Fixes a issue where PSPDFKit would never release an object if annotations were disabled.

  • Fixed

    Fixes a bug where the outline was calculated too often.

  • Fixed

    Fixes an issue where the title was re-set when changing the file of a pdf.

  • Fixed

    Fixes problems with syntax highlighting of some files. Xcode 4.3 works even better; use the beta if you can.

  • Fixed

    Fixes a bug with video player when auto play is not enabled.

  • Fixed

    Fixes encoding for mailto: URL handler (%20 spaces and other encoded characters are now properly decoded)

  • Fixed

    Fixes potential crash with recursive calls to scrollViewDidScroll.

  • Fixed

    Fixes a rare crash when delegates are changed while being enumerated.

  • Changed

    Lots of other small improvements.

1.7.5 - 1 Dec 2011

  • Fixed

    Fixes calling the deprecated delegate didShowPage when didShowPageView is not implemented. (thanks Albin)

1.7.4 - 29 Nov 2011

  • Changed

    Custom lookup for parent viewcontroller - allows more setups of embedded views.

  • Fixed

    Fixes a crash related to parsing table of contents.

1.7.3 - 29 Nov 2011

  • Added

    Add a log warning that the movie/audio example can crash in the Simulator. Known Apple bug. Doesn’t happen on the device.

  • Changed

    PSPDFCache can now be subclassed. Use kPSPDFCacheClassName to set the name of your custom subclass.

  • Fixed

    Fixes a bug where scrollingEnabled was re-enabled after a zoom operation.

1.7.2 - 29 Nov 2011

  • Changed

    Changes delegates to return PSPDFView instead of the page: didShowPageView, didRenderPageView.

  • Changed

    Improve zoom sharpness. (kPSPDFKitZoomLevels is now set to 5 per default from 4; set back if you experience any memory problems on really big documents.)

  • Changed

    Increase tiling size on iPad1/older devices to render faster.

  • Changed

    Reduce loading of unneeded pages. Previously happened sometimes after fast scrolling. This also helps when working with delegates.

  • Fixed

    Fixes a locking race condition when using PSPDFDocument.twoStepRenderingEnabled.

1.7.1 - 29 Nov 2011

  • Fixed

    Fixes a rare crash when encountering non-standardized elements while parsing the Table of Contents.

1.7.0 - 28 Nov 2011

  • Changed

    PSPDFKit now needs at least Xcode 4.2/Clang 3.0 to compile.

  • Changed

    Following new frameworks are required: libz.dylib, ImageIO.framework, CoreMedia.framework, MediaPlayer.framework, AVFoundation.framework.

  • Changed

    Images are now compressed with JPG. (which is usually faster) If you upgrade, add an initial call to [[PSPDFCache sharedPSPDFCache] clearCache] to remove the png cache. You can control this new behavior or switch back to PNGs with PSPDFCache’s useJPGFormat property.

  • Changed

    Optionally, when using PNG as cache format, crushing can be enabled, which is slower at writing, but faster at reading later on. (usually a good idea!)

  • Added

    New multimedia features! Video can now be easily embedded with a custom pspdfkit:// url in link annotations. Those can be created with Mac Preview.app or Adobe Acrobat. Try for example “pspdfkit://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8” to get the HTTP Live streaming test video.

  • Changed

    Link annotations are now UIButtons. This allows more interactivity (feedback on touch down), and also changes the default implementation of PSPDFDocument’s drawAnnotations function to be empty. Clear the cache after updating, or else you get two borders. You can also return to the old behavior if you return NO on shouldDisplayAnnotation (PSPDFViewControllerDelegate) anytime an annotation of type PSPDFAnnotationTypeLink is sent.

  • Changed

    Localization is now handled via the PSPDFKit.bundle. You can either change this, or use PSPDFSetLocalizationDictionary to add custom localization.

  • Changed

    PSPDFLinkAnnotation is renamed to PSPDFAnnotation and adds a new helper function to get the annotation rect.

  • Changed

    PSPDFPage is refactored to PSPDFPageView and is now the per-page container for a document page. The delegate methods have been changed to return the corresponding PSPDFPageView. Within PSPDFPageView, you can get the parent scrollview PSPDFScrollView.

  • Changed

    PSPDFPageModeAutomatic is now more intelligent and only uses dual page mode if it actually improves reading (e.g. no more dual pages on a landscape-oriented document)

  • Changed

    PSPDFKitExample: fixes delete-image positioning in long scroll lists.

  • Changed

    new: use PSPDFPageInfo everywhere to allow custom rotation override. (- (PSPDFPageInfo *)pageInfoForPage:(NSUInteger)page pageRef:(CGPDFPageRef)pageRef)

  • Added

    new delegate options to allow dynamic annotation creation.

  • Changed

    Better size calculation for the toolbar, allows changing titles to longer/shorter words and resizing automatically.

  • Changed

    PSPDFDocument now uses the title of the pdf document (if available). You can override this with manually setting a title.

  • Added

    New option “scrollingEnabled” to be able to lock scrolling. (e.g. when remote controlling the pdf)

  • Changed

    Improves speed on image pre-caching.

  • Changed

    Improves documentation.

  • Fixed

    Fixes a rotation problem with the last magazine page.

  • Fixed

    Fixes a bug where scrollPage w/o animation didn’t show the page until the user scrolled.

  • Fixed

    Fixes a potential crash when view was deallocated while popover was opened.

  • Fixed

    Fixes a deadlock with clearCache.

1.6.20 - 18 Nov 2011

  • Fixed

    fixes possible cache-reload loop with page-preload if non-odd values are chosen.

  • Fixed

    fixes a memory leak (regression in 1.6.18)

1.6.19 - 16 Nov 2011

  • Changed

    further small rotation improvement.

1.6.18 - 16 Nov 2011

  • Changed

    New: Much, much improved rotation. Now smooth as butter. Enjoy!

1.6.17 - 12 Nov 2011

  • Changed

    In search results, “Site” was renamed to “Page” to be consistent with the toolbar. If you use custom localization, you have to rename the entry “Site %d” to “Page %d”.

  • Added

    add API call to allow basic text extraction from the search module (magazine.documentSearcher)

1.6.16 - 12 Nov 2011

  • Fixed

    fixes a bug with invalid caching entries when a deleted document is re-downloaded in the same application session (pages suddenly went black)

  • Added

    add a custom lib-project for PSPDFKit; it’s now easier than ever to integrate it. Note: you really should use that one - I’ll switch over to ARC soon, so a library makes things easier.

1.6.15 - 5 Nov 2011

  • Changed

    thumbnails are now displayed under the transparent bar, not overlapping

  • Changed

    only enable outline if it’s enabled and there actually is an outline (no more empty popovers)

  • Changed

    mail links are now presented in a form sheet on the iPad

  • Changed

    allow show/hide of navigation bar even when zoomed in

1.6.14 - 22 Oct 2011

  • Fixed

    fixes bug where delete method of PSPDFCache (removeCacheForDocument) was deleting the whole directory of the pdf instead of just the related files

1.6.13 - 22 Oct 2011

  • Removed

    removed the zeroing weak reference helper. If you use custom delegates for PSPDFCache, you now need to manually deregister them. Upside: better management of delegates.

1.6.12 - 19 Oct 2011

  • Changed

    changed: turns out, when compiling with Xcode 4.2/Clang, you’ll loose binary compatibility with objects linked from 4.1. Thus, the framework crashed with EXC_ILLEGAL_INSTRUCTION when compiled within an older Xcode. I will use 4.1 some more time to give everyone the change to upgrade, but due to some great improvements in Clang 3.0 compiler that ships with Xcode 4.2 (e.g. nilling out of structs accessed from a nil object) it’s highly advised that you use Xcode 4.2. If you use the source code directly, this is not an issue at all.

1.6.11 - 14 Oct 2011

  • Changed

    new: PSPDFKit is now compiled with Xcode 4.2/iOS Base SDK 5.0 (still works with 4.x)

  • Changed

    improves compatibility for outline parser; now able to handle rare array/dict destination variants (fixes all destinations = page 1 error)

  • Fixed

    fixes a rare stack overflow when re-using zoomed scrollviews while scrolling.

  • Fixed

    fixes a compile problem on older Xcode versions. (It’s not officially supported though - use Xcode 4.2 for the best experience!)

  • Fixed

    fixes a memory problem where iPad1 rarely tries to repaint a page forever

1.6.10 - 25 Sep 2011

  • Changed

    aspectRatioEqual now defaults to NO. Many customers oversee this and then send me (false) bug reports. Set this to YES for maximum speed if your document has one single aspect ratio (like most magazines should).

  • Changed

    scroll to active page in grid view

  • Fixed

    fixes small offset-error in the scrobble bar

1.6.9 - 22 Sep 2011

  • Added

    add option do debug memory usage (Instruments isn’t always great)

  • Changed

    improves memory efficiency on tile drawing, animations

  • Changed

    improves performance, lazily creates gridView when first accessed

  • Changed

    improves scrobble bar update performance

  • Fixed

    fixes memory problems on older devices like iPad 1, iPhone 3GS

  • Fixed

    fixes a problem with unicode files

  • Fixed

    fixes auto-switch to fitWidth on iPhone when location is default view

1.6.8 - 15 Sep 2011

  • Changed

    update thumbnail grid when document is changed via property

1.6.7 - 15 Sep 2011

  • Changed

    improves outline parser, now handles even more pdf variants

1.6.6 - 15 Sep 2011

  • Changed

    potential bug fix for concurrent disk operations (NSFileManager is not thread safe!)

  • Fixed

    fixes positioning problem using the (unsupported) combination of PSPDFScrollingVertical and fitWidth

1.6.5 - 15 Sep 2011

  • Fixed

    fixes a bug where scroll position was remembered between pages when using fitWidth

1.6.4 - 15 Sep 2011

  • Changed

    new: didRenderPage-delegate

  • Changed

    fixes: crash bug with NaN when started in landscape

1.6.3 - 14 Sep 2011

  • Changed

    new: maximumZoomScale-property is exposed in PSPDFViewController

  • Changed

    changed: realPage is now remembered, not the page used in the UIScrollView. This fixes some problems with wrong page numbers.

  • Fixed

    fixes situation where page was changed to wrong value after view disappeared, rotated, and reappeared.

  • Fixed

    fixes option button in example is now touchable again

  • Fixed

    fixes a bug where HUD was never displayed again when rotating while a popover controller was visible

  • Fixed

    fixes potential crash where frame get calculated to NaN, leading to a crash on view rotation

  • Fixed

    fixes problems when compiling with GCC. You really should use LLVM/Clang though.

1.6.2 - 13 Sep 2011

  • Changed

    fixed: HUD is now black again on disabled status bar

1.6.1 - 13 Sep 2011

  • Changed

    new: open email sheet per default when detecting mailto: annotation links. (You now need the MessageUI.framework!)

  • Changed

    new: fileUrl property in PSPDFDocument

  • Changed

    improve toolbar behavior when setting status bar to default

  • Fixed

    fixes memory related crash on older devices

  • Fixed

    fixes crash when toolbarBackButton is nil

  • Changed

    greatly improved KioskExample

1.6.0 - 12 Sep 2011

  • Changed

    changed: willShowPage is now deprecated, use didShowPage. Both now change page when page is 51% visible. Former behavior was leftIndex

  • Changed

    changed: pageCount is now only calculated once. If it’s 0, you need to call clearCacheForced:YES to reset internal state of PSPDFDocument

  • Changed

    changed: iPhone no longer uses dualPage display in landscape, now zooms current page to fullWidth

  • Changed

    new: property fitWidth in PSPDFViewController lets you enable document fitting to width instead of largest element (usually height). Only works with horizontal scrolling

  • Changed

    new: thumbnails in Grid, ScrobbleBar, KioskExample are now faded in

  • Changed

    new: pdf view fades in. Duration is changeable in global var kPSPDFKitPDFAnimationDuration.

  • Changed

    new: new property preloadedPagesPerSide in PSPDFViewController, controls pre-caching of pages

  • Changed

    new: add delegates for page creation (willLoadPage/didLoadPage/willUnloadPage/didUnloadPage) with access to PSPDFScrollView

  • Changed

    new: pdf cache handle is cleared on view controller destruction

  • Changed

    new: exposes pagingScrollView in PSPDFViewController

  • Changed

    new: HUD transparency is now a setting (see PSPDFKitGlobal)

  • Changed

    new: scrobble bar class can be overridden and set in PSPDFViewController

  • Changed

    new: directionalLock is enabled for PSPDFScrollView. This is to better match iBooks and aid scrolling

  • Changed

    new: kPSPDFKitZoomLevels is now a global setting. It’s set to a sensible default, so editing is not advised.

  • Changed

    new: thumbnailSize is now changeable in PSPDFViewController

  • Changed

    improve: faster locking in PSPDFCache, no longer freezes main thread on first access of pageCount

  • Changed

    improve: split view example code now correctly relays view events

  • Changed

    improve: cache writes are now atomically

  • Changed

    improve: no more log warnings when initializing PSPDFViewController w/o document (e.g. when using Storyboard)

  • Changed

    improve: faster speed for documents with high page count (better caching within PSPDFDocument)

  • Changed

    improve: keyboard on searchController popover is now hidden within the same animation as popover alpha disappear

  • Changed

    improve: grid/site animation no longer blocks interface

  • Fixed

    fixes touch handling to previous/next page for zoomed pages

  • Fixed

    fixes rasterizationScale for retina display (thumbnails)

  • Fixed

    fixes non-localizable text (Document-Name Page)

  • Fixed

    fixes inefficiency creating the pagedScrollView multiple times on controller startup/rotation events

  • Fixed

    fixes search text alignment, now synced to textLabel

  • Fixed

    fixes issue where documents may be scrollable on initial zoomRatio due to wrong rounding

  • Fixed

    fixes issue where caching was not stopped sometimes due to running background threads

  • Fixed

    fixes bug where alpha of navigationBar was set even if toolbarEnabled was set to NO

  • Fixed

    fixes bug where initial page delegation event was not sent when switching documents

  • Fixed

    fixes crash related to too high memory pressure on older devices

1.5.3 - 23 Aug 2011

  • Added

    add correct aspect ratio for thumbnails

  • Changed

    improve thumbnail switch animation

  • Changed

    improve memory use during thumbnail display

  • Changed

    improve thumbnail scrolling speed

1.5.2 - 23 Aug 2011

  • Added

    add basic compatibility with GCC (LLVM is advised)

  • Changed

    renamed button “Single” to “Page”

  • Fixed

    fixes page navigation for search/outline view

  • Fixed

    fixes a rare deadlock on PSPDFViewController initialization

  • Fixed

    fixes a race condition when changing documents while annotations are still parsed

  • Fixed

    fixes a crash when removing the view while a scrolling action is still active

  • Changed

    possible bug fix for a “no autorelease pool in place”

1.5.1 - 23 Aug 2011

  • Fixed

    fixes setting of back button when view is pushed non-modally

1.5.0 - 23 Aug 2011

  • Added

    add advanced page preload - fully preloads pages in memory for even faster display

  • Changed

    API change: PSPDFDocument now has a displayingPdfController attached if displayed. isDisplayed is removed.

  • Changed

    improves animation between thumbnails and page view

  • Changed

    improves scrolling performance

  • Fixed

    fixes crash when caching pages on iOS 4.0/iPhone

  • Fixed

    fixes crashes related to fast allocating/deallocating PSPDFViewControllers.

  • Fixed

    fixes issue where tap at rightmost border would not be translated to a next page event

  • Fixed

    fixes assertion when viewDidDisappear was not called

1.4.3 - 22 Aug 2011

  • Changed

    enables page bouncing (allow zooming < 1, bounces back)

  • Added

    add setting for status bar management (leave alone, black, etc)

  • Fixed

    fixes issue where page index was incremented on first page after multiple rotations

  • Fixed

    fixes issue where pdf text is rendered slightly blurry on initial zoom level

  • Fixed

    fixes issue where status bar was not taken into account on cache creation

  • Fixed

    fixes issue where pages were sometimes misaligned by 0.5-1 pixel

  • Fixed

    fixes issue where page shadow was not animated on zoomIn/zoomOut

1.4.2 - 17 Aug 2011

  • Removed

    remove queued cache requests when document cache stop is requested

  • Fixed

    fixes an assertion “main thread” when rapidly allocating/deallocating PSPDFViewController. Tip: Use the .document property to change documents instead if creating new controllers, it’s much less expensive.

  • Fixed

    fixes incorrect tile setting in scrobble bar

1.4.1 - 13 Aug 2011

  • Added

    add optional two-step rendering for more quality

  • Changed

    improve scrobble bar marker

  • Fixed

    fixes annotation handling on first page

  • Fixed

    fixes page orientation loading on landscape & iPhone

1.4.0 - 13 Aug 2011

  • Changed

    greatly improves PDF rendering speed!

  • Changed

    improves responsiveness of page scrolling while rendering

  • Changed

    improves cache timings

  • Changed

    improves full page cache

  • Changed

    improve scrobble bar default thumb size

  • Changed

    API change: PSPDFDocument.aspectRatioEqual now defaults to YES.

  • Fixed

    fixes rounding errors, resulting in a small border around the pages

  • Fixed

    fixes a potential deadlock while parsing page annotations

  • Fixed

    fixes bug where right thumbnail in scrobble bar is not always loaded

  • Changed

    other minor bugfixes and improvements

1.3.2 - 11 Aug 2011

  • Added

    Add example to append/replace a document

  • Changed

    allow changing the document

  • Changed

    improve clearCache

1.3.1 - 9 Aug 2011

  • Added

    Add optional vertical scrolling (pageScrolling property)

  • Added

    Adds animation for iOS Simulator

  • Changed

    improve thumbnail loading speed

  • Fixed

    fixes memory pressure when using big preprocessed external thumbnails

  • Fixed

    fixes a regression with zoomScale introduced in 1.3

1.3 - 8 Aug 2011

  • Changed

    Major Update!

  • Added

    add support for pdf link annotations (site links and external links)

  • Added

    add delegate when viewMode is changed

  • Added

    add reloadData to PSPDFViewController

  • Added

    add scrollOnTapPageEndEnabled property to control prev/next tap

  • Added

    add animations for page change

  • Changed

    improve kiosk example to show download progress

  • Changed

    improve scrobblebar; now has correct aspect ratio + double page mode

  • Changed

    improve scrollbar page changing

  • Changed

    improve outline parsing speed

  • Changed

    improve support for rotated PDFs

  • Changed

    improve thumbnail display

  • Fixed

    fixes some analyzer warnings

  • Fixed

    fixes a timing problem when PSPDFCache was accessed from a background thread

  • Fixed

    fixes various other potential crashes

  • Fixed

    fixes a rare deadlock

1.2.3 - 5 Aug 2011

  • Changed

    properly rotate pdfs if they have the /rotated property set

  • Added

    add option to disable outline in document

  • Changed

    outline will be cached for faster access

  • Changed

    outline element has now a level property

  • Fixed

    fixes a bug with single-page pdfs

  • Fixed

    fixes a bug with caching and invalid page numbers

1.2.2 - 5 Aug 2011

  • Fixed

    fixes a crash with < iOS 4.3

1.2.1 - 4 Aug 2011

  • Changed

    detect rotation changes when offscreen

1.2 - 4 Aug 2011

  • Added

    add EmbeddedExample

  • Changed

    allow embedding PSPDFViewController inside other viewControllers

  • Added

    add property to control toolbar settings

  • Changed

    made delegate protocol @optional

  • Fixed

    fixes potential crash on rotate

1.1 - 3 Aug 2011

  • Added

    add PDF outline parser. If it doesn’t work for you, please send me the pdf.

  • Added

    add verbose log level

  • Changed

    improve search animation

  • Fixed

    fixes a warning log message when no external thumbs are used

  • Fixed

    fixes some potential crashes in PSPDFCache

1.0 - 1 Aug 2011

  • Changed

    First public release