Changelog

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

Newest Release

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

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)

Previous Releases

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)

8.5.0 - 31 Jul 2019

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)

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)

8.4.0 - 30 May 2019

PSPDFKitUI

API

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)

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)

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)

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)

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)

8.3.0 - 23 Apr 2019

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)

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

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)

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)

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)

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 PSPDFCatalog. (#19277)

Added

Adds French (Canadian) localization. (#19686)

Added

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

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 PSPDFCatalog example illustrating how to customize the tab title of a PSPDFTabbedViewController. (#19590)

Added

Adds a PSPDFCatalog 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)

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)

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)

PSPDFKit

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.

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)

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)

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)

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)

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)

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)

8.1.0 - 6 Dec 2018

PSPDFKitUI

API

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

API

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

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)

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)

8.0.0 - 17 Oct 2018

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)

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)

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)

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)

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)

Examples

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

Added

Adds a PSPDFCatalog 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 PSPDFCatalog 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)

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)

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

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)

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)

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)

7.6.0 - 30 May 2018

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.

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)

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 PSPDFCatalog. (#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/filename to filename to prevent collisions. (#14856)

Instant

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 PSPDFCatalog 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 .scrollPerSpreadpageMode. (#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)

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)

API

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)

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)

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)

Examples

Adds a PSPDFCatalog 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)

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

Deprecates encryptionAlgorithm in PSPDFPrivateKey, in favor of signatureEncryptionAlgorithm, which is enum-typed. (#13940)

Adds the shouldTrackDeletions class property to PSPDFContainerAnnotationProvider to customize the effect of removeAnnotations:options: on dirtyAnnotations. See PSPDFContainerAnnotationProvider.h for more information. (#8839)

Adds +[PSPDFImagePickerController availableImagePickerSourceTypes] to allow specifying the source types of a PSPDFImagePickerController subclass. See CustomImagePickerControllerExample in PSPDFCatalog for details. (#13724)

Added

Adds a PSPDFCatalog example illustrating how to go to a specific outline programmatically. (#13166)

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)

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

API

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)

PSPDFKit

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)

Adds PSPDFCatalog 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)

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)

7.0.0 - 4 Oct 2017

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)

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)

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)

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.

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

Deprecates the undoEnabled property on PSPDFUndoController. (#11476)

API

Adds pdfViewController:didDeselectAnnotations:onPageView: as a new PSPDFViewControllerDelegate callback. (#11485)

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)

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

6.7.0 - 10 May 2017

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)

6.5.0 - 9 Mar 2017

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)

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)

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)

6.4.0 - 31 Jan 2017

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)

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.0 - 28 Nov 2016

Changes PSPDFDocumentSharingCoordinatorDelegate selector from documentSharingCoordinator:didFailWithError: to documentSharingCoordinator:didFinishWithError. New call is more general and is called on success and on failure. (#8568)

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)

6.0.0 - 23 Sep 2016

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)

5.4.0 - 1 Jul 2016

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)

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)

5.3.1 - 8 Apr 2016

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 PSPDFCatalog. (#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)

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)

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)

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

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

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)

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)

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)

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)

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

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

5.0.0 - 23 Oct 2015

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.

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.

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)

4.4.12 - 10 Aug 2015

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)

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)

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)

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)

4.4.0 - 29 Apr 2015

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.

4.3.0 - 6 Mar 2015

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)

4.2.0 - 5 Feb 2015

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)

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.0 - 5 Nov 2014

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)

4.0.0 - 22 Sep 2014

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.

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.

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.

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.

3.7.0 - 19 Apr 2014

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 PSPDFCatalog. (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.

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.

3.6.0 - 16 Mar 2014

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.

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.

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.

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 PSPDFCatalog.

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.

3.5.0 - 10 Feb 2014

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.

3.4.4 - 22 Jan 2014

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

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.

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.

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.

3.3.0 - 29 Dec 2013

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.

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.

3.1.2 - 21 Oct 2013

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.