PSPDFKit Changelog

 

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

Newest Release

6.9.3 - 1 Sep 2017

This will be one of the last releases in the PSPDFKit for iOS version 6 branch, while we're busy working on version 7. It includes a fix for using it with Xcode 9, however we still recommend Xcode 8 for compiling and testing.

PSPDFKit 7 for iOS will require Xcode 9 and keep compatibility for iOS 9 until the end of the year to ease the transition. Read more about our version support here: https://pspdfkit.com/guides/ios/current/announcements/version-support/

  • Changed
    Improves performance for hit-testing ink annotations. (#11858)
  • Changed
    Improves apperance stream generation to not have extra space after non-latin characters in form fields. (#11874)
  • Changed
    Works around a crash in the bookmark view controller due to UIKit bug rdar://32485481. (#11850)
  • Fixed
    Fixes a NaN calculation issue when linking with Xcode 9/Base SDK 11. (#11886)
  • Fixed
    Fixes an issue with recreating AVPlayer and AVPlayerItem when it was in an error state. (#11864)
  • Fixed
    Fixes an issue with view state restoration in PSPDFMultiDocumentViewController. (#11856)
  • Fixed
    Fixes memory leaks in PSPDFDocument and PSPDFViewController. (#11883)
  • Fixed
    Fixes an infinite recursion when describing certain NSValueTransformer instances. (#11881)
  • Fixed
    Fixes an issue where the keyboard was dismissed when typing a custom form value on iPad. (#11892)
  • Fixed
    Fixes a rare crash when saving. (#11861)

Instant

  • Added
    Adds support for note annotations. (#11704)
  • Fixed
    Fixes two lock-inversions that could cause live-lock or dead-lock when a document received changes while initially reading its annotations. (#11586)
  • Fixed
    Fixes a crash that could occur when a document was deleted while pages were still being rendered. (#11586)

Previous Releases

6.9.2 - 16 Aug 2017

  • Changed
    Improves performance for loading and interacting with complex forms. (#11389)
  • Changed
    Improves the eraser radius calculations. (#11803)
  • Fixed
    Fixes a stamp annotation quality degradation issue for images after moving/resizing. (#11625)
  • Fixed
    Fixes a font selection issue with documents using the Courier font. (#11228)
  • Fixed
    Fixes an issue where the selected property of annotation views was not set correctly. (#11687)
  • Fixed
    Fixes a layout issue when moving knobs of callout annotation that could happen in rare cases. (#9750)
  • Fixed
    Fixes an issue where link annotations marked as readonly were not tap-able. (#11715)
  • Fixed
    Fixes an issue where documents could sometimes end up locked after saving when an owner-password is set. (V#1121)
  • Fixed
    Fixes an issue where the document cache was not properly invalidated when saving manually via PSPDFDocumentEditor. (#11767)
  • Fixed
    Fixes PSPDFMediaPlayerController not behaving correctly in some cases when a subclass exists. (#11671)
  • Fixed
    Fixes an issue in the sample catalog that made the subclassing category not show up. (#11707)
  • Fixed
    Fixes note annotation text not being editable after showing the icon and color options on iPhone on iOS 11 when building with the iOS 11 SDK. (#11789)
  • Fixed
    Fixes the icon and color buttons not being tappable when editing a note annotation on iOS 11 when building with the iOS 11 SDK. (#11789)

Instant

  • Fixed
    Fixes an issue where the Instant document descriptor was released too soon. (#11721)
  • Fixed
    Fixes a failed assertion due to an improper format string in an error condition. (#11747)

6.9.1 - 3 Aug 2017

  • API
    Changes the object of PSPDFMediaPlayerControllerPlayback* notifications from PSPDFGalleryVideoItem to PSPDFMediaPlayerController. (#11549)
  • Added
    Adds support for external named destinations in PSPDFRemoteGoToAction. (#11320)
  • Changed
    Allows backwards selection of text when creating markup annotations. (#11583)
  • Changed
    Improves handling of galleries and videos during screen mirroring. (#11549)
  • Changed
    Improves drawing and the erasure tool when using the Apple Pencil. (#11527)
  • Changed
    Improves the rendering of polygon annotations. (#11620)
  • Changed
    Improves form text rendering with non-latin characters. (#10996)
  • Fixed
    Fixes an issue where videos were shown fullscreen when screen mirroring was enabled. (#11549)
  • Fixed
    Fixes a color management issue for file annotations. (#11488)
  • Fixed
    Fixes an issue where annotation assets might have gotten overwritten in some cases. (#11581)
  • Fixed
    Fixes incorrect default resizing behavior for freetext and callout annotations. (#11630)
  • Fixed
    Fixes a leaking color space when encoding images. (#11512)
  • Fixed
    Fixes an issue where an image annotation with a note could lose the image data. (#11652)

Instant

  • API
    Renames PSPDFInstantClient’s signOut to removeLocalStorage, which makes more sense because there is no explicit signing in. (#11619)
  • Added
    Adds automatically recovering from connection errors when automatic sync is active. (#11506)
  • Added
    Adds the annotation selection tool to the default annotation toolbar. (#11565)
  • Added
    Adds error codes for cases that were previously reported as “unknown”. (#11522)
  • Fixed
    Fixes continuing to listen for updates if the app keeps running in the background. Listening now resumes when the app comes back to the foreground. (#11542)
  • Fixed
    Fixes incorrect handling/reporting of an authentication error during sync. (#11386)
  • Fixed
    Fixes an incorrect log message format that could lead to a failed assertion. (#11634)
  • Fixed
    Fixes deletion of multiple annotations at once. (#11651)

6.9.0 - 20 Jul 2017

  • Added
    Adds Instant: an easy-to-integrate solution to connect your app to your PSPDFKit Server to download documents and synchronize annotations between users. Everything’s synced in an instant!
  • API
    Adds option to configure flattening or embedding of form elements to PSPDFProcessorConfiguration. (#11096)
  • API
    Introduces failable annotationsByDetectingLinkTypes:forPagesInRange:options:progress:error: instead of annotationsFromDetectingLinkTypes:pagesInRange:options:progress:error:. (#11125)
  • API
    Changes isFixedSize and fixedSize to be instance properties on PSPDFAnnotation. (#10931)
  • API
    Moves allowedImageQualities to PSPDFImagePickerController from PSPDFAnnotationStateManager. (#11172)
  • API
    Audit and update several nullability declarations for correctness. (#11183)
  • API
    The method extractImageFromAppearanceStreamWithTransform:error: on PSPDFAnnotation has been removed. Use the equivalent loadImageWithTransform:error: method on PSPDFStampAnnotation. The call was not useful for other annotation types. (#11185)
  • API
    PSPDFDocument's undoController is now declared as nullable and set to nil when undoEnabled is disabled shortly after document initialization. (#11476)
  • API
    Deprecates the undoEnabled property on PSPDFUndoController. (#11476)
  • API
    Adds pdfViewController:didDeselectAnnotations:onPageView: as a new PSPDFViewControllerDelegate callback. (#11485)
  • Added
    Adds improved markup annotation behavior to select blocks of text. This makes certain selections easier to create. (#10482, #9768)
  • Added
    Adds support for flattening signature annotations. (#11096)
  • Added
    Adds language-based filtering options to the PSPDFKit Catalog example. (#5436)
  • Added
    Adds Adobe root CA by default when using PSPDFSignatureManager, so that documents can be more easily verified the same way as on desktop readers. (#11240)
  • Added
    Adds support for Instant.framework to strip-framework.sh. (#11362)
  • Changed
    Works around a content inset layout issue of the search bar in the outline and annotation list, when the navigation bar has a background image set. (#10878, rdar://32980288)
  • Changed
    The global SQLite message logger now filters out irrelevant common known logs from iOS like cfurl_cache_response. (#10890)
  • Changed
    PSPDFBookmarkViewController now automatically scrolls to inserted bookmarks. (#11029)
  • Changed
    Improves certificate validation for digital signatures. (#11128)
  • Changed
    Improves support for more types of certificates in digital signatures. (#11083)
  • Changed
    Improves RTL language support in forms. (#11013)
  • Changed
    Improves automatic layout during callout annotation knob dragging. (#9750)
  • Changed
    Improves memory management when rendering forms. (#11176)
  • Changed
    Improves support for file presenter based document deletion notifications in multi data provider documents. (#10362)
  • Changed
    Improves interaction while drawing annotations by introducing a draw gesture recognizer on PSPDFDrawView. (#7655)
  • Fixed
    Fixes a crash related to bookmarks when viewing multiple documents. (#11020)
  • Fixed
    Fixes very rare issue on saving files repeatedly. (#9477)
  • Fixed
    Fixes an access to the view’s bounds on a background thread when laying out the thumbnails view. (#11084)
  • Fixed
    Fixes an issue where in some configurations a scroll view, that was out of our control, was modified. (#10981)
  • Fixed
    Fixes an issue where selecting an annotation in the outline view would not navigate to the correct page in multi-provider documents. (#11136)
  • Fixed
    Fixes a problem while importing some kind of certificates for digital signatures. (#11120)
  • Fixed
    Fixes an issue where UI code was called on a background thread. (#11408)
  • Fixed
    Fixes an issue where disabling screen mirroring didn't work in some cases. (#11171)
  • Fixed
    Fixes an issue where one PSPDFSignerError had an invalid error code. (#11186)
  • Fixed
    Fixes an issue occurring after searching in PSPDFOutlineViewController. (#11268)
  • Fixed
    Fixes issues with language selection in the Catalog example on iOS 11. (#11342)
  • Fixed
    Fixes some crashes when signing a particular type of PDF documents. (#11285)
  • Fixed
    Fixes an issue where the close buttons in the tabbed bar were not correctly shown when using PSPDFTabbedViewControllerCloseModeSizeDependent in some cases. (#v590)
  • Fixed
    Fixes an issue where signatures could show the certificate issuer name instead of the certificate subject name. (#11368)
  • Fixed
    Fixes a rare race condition in the render queue that could occur when using any kind of drawing based annotation with the eraser tool while a page rendering completes. (#11326)
  • Fixed
    Fixes an issue where some digital signatures couldn't be open in Adobe Acrobat. (#11390)
  • Fixed
    Fixes a retain cycle in the document info UI. (11260)
  • Fixed
    Fixes a layout issue when a document with partially broken pages is loaded. (#11481)
  • Fixed
    Fixes an issue where no annotations were shown in PSPDFAnnotationTableViewController, when editableAnnotationTypes was empty. (#11391)
  • Fixed
    Fixes an issue with encoding preloaded monochrom images. (#10985)
  • Fixed
    Fixes a rare deadlock related to undo operations. (#11479)
  • Fixed
    Fixes a data race in PSPDFRenderQueue. (#11494)
  • Removed
    Deprecates annotationsFromDetectingLinkTypes:pagesInRange:options:progress:error:. (#11125)
  • Removed
    Deprecates allowedImageQualities on PSPDFAnnotationStateManager. (#11172)
  • Removed
    Deprecates isHighlightAnnotationState: in favor of isMarkupAnnotationState:. (#10482, #9768)
  • Removed
    Deprecates fixed size class methods on PSPDFAnnotation in favor of instance properties. (#10931)
  • Removed
    Deprecates allowedTouchTypes on PSPDFDrawView and introduces it on PSPDFDrawGestureRecognizer. (#7655)
  • Removed
    Deprecates the undoEnabled property on PSPDFUndoController. (#11476)

6.8.0 - 22 Jun 2017

This release removes the embedded OpenSSL. This results in a smaller binary and faster link times.

  • Added
    Adds new digital signature implementation that no longer relies on OpenSSL. (#10864)
  • Added
    Adds support for filtering watermarks (enabled by default). See PSPDFDocument.isWatermarkFilterEnabled (#8144, #10874)
  • Added
    Adds support for opening the Settings app from the privacy access denied controller. (#10526)
  • Changed
    Uses the app name instead of "This app" in the privacy access denied controller. (#10528)
  • Changed
    Makes the disclosure button of PSPDFOutlineCell tintable. (#10818)
  • Changed
    Works around an issue where UISearchController would load its view during dealloc. (#10936)
  • Changed
    Various refinements around nullability that have been discovered with Xcode 9's Undefined Behavior Sanitizer. (#10876)
  • Changed
    Preserves the previous state of the expanded value for outline elements after searching in PSPDFOutlineViewController. (#10862)
  • Changed
    Improves action resolving in multi-provider documents. (#10782)
  • Changed
    Improves the popover sizing of the choice form editor view controller. (#10621)
  • Changed
    Improves style manager support for color presets and fixes various smaller issues. (#10930)
  • Changed
    Improves rotation on iPads when using automatic page transition, i.e. rotating from landscape to portrait shows the last interacted page. (#11033)
  • Changed
    Improves support for form filling via JavaScript. (#10979)
  • Changed
    Improves documentation of the digital signatures feature. (#11027)
  • Fixed
    Fixes an issue when tapping a search result in some documents. (#10844)
  • Fixed
    Fixes issue while saving PDF files. (#10849)
  • Fixed
    Fixes a leak when rendering a bitmap. (#10847)
  • Fixed
    Fixes an issue where the "Open In" activity was not shown for non-URL backed documents. (#10854)
  • Fixed
    Fixes an issue where documents with incorrectly created annotations could cause infinite loops. (#10640)
  • Fixed
    Fixes rare file coordination related crashes and deadlocks. (#10935)
  • Fixed
    Fixes an issue where the bookmark migration could deadlock in some configurations. (#10857)
  • Fixed
    Fixes an issue where the page grabber could cause a crash on 32bit devices when switching from a multi page document to a single page document in a visible view controller instance. (#v929)
  • Fixed
    Fixes an issue with digital signatures where a name and date was required. (#7892)
  • Fixed
    Fixes an issue where the page wasn't preserved in automatic page mode when rotating from portrait to landscape and back to portrait. (#10988)
  • Fixed
    Fixes an issue where embedded files with very long names might fail to be extracted correctly. (#11028)
  • Fixed
    Fixes an issue with digital signatures where some valid signatures are not recognized by Adobe Reader. (#9565)
  • Fixed
    Fixes an issue where the cache is not properly invalidated if saving a document fails. (#11022)

6.7.2 - 31 May 2017

  • Changed
    Update OpenSSL to 1.0.2l. (#10820)
  • API
    Adds option to configure background indexing queue priority in PSPDFLibrary. (#10619)
  • Added
    Adds file coordination support to PSPDFDocumentEditor. (#10595)
  • Changed
    Moves Bookmarks in front of Annotations in the document info view controller tab order. (#10666)
  • Changed
    PSPDFAnnotationTableViewController now has smarter defaults when neither visible- nor editableAnnotationTypes are set. (#10788)
  • Changed
    Improves PSPDFDocument and PSPDFFileDataProvider documentation, clarifying the expected behavior with symlinks and alias files. (#10750)
  • Changed
    Improves error handling for saves that fall back to external file saving due to an unwritable document. (#10805)
  • Fixed
    Fixes an issue where editing a bookmark could result in a crash. (#10607, #10723)
  • Fixed
    Fixes an issue with document render options when mirroring the screen. (#10676)
  • Fixed
    Fixes an issue where annotations were drawn in the wrong size if fitToWidth was set to PSPDFAdaptiveConditionalAdaptive and the adaptive style would have been mapped to a disabled fit to width behavior. (#9754)
  • Fixed
    Fixes an issue where bookmarks lost their custom sort order when migrating from PSPDFKit 5 for iOS. (#10705)
  • Fixed
    Fixes issue with free text annotations ending editing mode on rotation in continuous page transition mode. (#10671)
  • Fixed
    Fixes an issue where the outline controller was shown when there was no outline in a document. (#6902)
  • Fixed
    Fixes an issue where custom bookmark providers did not receive a save call if the annotation save mode was set to PSPDFAnnotationSaveModeExternalFile or PSPDFAnnotationSaveModeDisabled. (#10665)
  • Fixed
    Fixes PSPDFDocumentPickerController not persisting the FTS index. (#10704)
  • Fixed
    Fixes smaller document editor glitches caused by file presenter updates. (#10595)
  • Fixed
    Fixes an issue with saving files that did not conform completely to the PDF format. (#10712)
  • Fixed
    Fixes an issue with Digital Signatures. (#10762)
  • Fixed
    Fixes an issue where the text selection loupe magnification could break after moving it to a different page. (#10589)
  • Fixed
    Fixes an issue with saving link annotations. (#10355)
  • Fixed
    Fixes a potential deadlock that could occur when performing synchronous saves of encrypted documents on the main thread. (#10789)
  • Fixed
    Fixes an issue where saving an unwritable document using PSPDFAnnotationSaveModeEmbeddedWithExternalFileAsFallback would fail. (#10805)
  • Fixed
    Fixes a leak when rendering a bitmap. (#10777)

6.7.1 - 22 May 2017

  • API
    Adds a new global configuration option that allows you to opt out of PSPDFDocument file coordination if needed. By setting PSPDFFileCoordinationEnabledKey to @NO, PSPDFDocument no longer implicitly creates PSPDFCoordinatedFileDataProvider instances when initialized with 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)
  • API
    Adds PSPDFRenderOptionTextRenderingUseCoreGraphicsKey and PSPDFRenderOptionTextRenderingClearTypeEnabledKey as advanced rendering options. (#10231)
  • Added
    Adds support for mirroring a PSPDFViewController via PSPDFScreenController to an external screen. (#2527)
  • Changed
    Using setRenderOptions:type: with type PSPDFRenderTypeAll now works as expected. (#10231)
  • Changed
    The FTS indexer scans faster and is limited to one thread with a low priority. (#10618)
  • Changed
    Improves file data provider behavior during progress indication by blocking file access while the file might not yet be completely written. (#v880)
  • Changed
    Improves the customization options for the page grabber. (#10538)
  • Changed
    Improves saving behavior around encrypted files. (#v879, #9088)
  • Changed
    Improves performance around reading PDF files. (#v879, #10554)
  • Changed
    Improves performance when reading page labels (#v879, #10575)
  • Changed
    Improves reliability of Spotlight indexed PSPDFLibrary documents being found. (#10658)
  • Changed
    Improves PSPDFLibrary's handling of queued documents when updateIndex is called, ensuring no stale data is indexed. (#10662)
  • Fixed
    Fixes an issue that could prevent PSPDFDocument deserialization using initWithCoder:. (#v880)
  • Fixed
    Fixes handling of annotations with the NoView and Print flags set, and now renders them in documents generated for printing. (#9725, #10459)
  • Fixed
    Fixes an issue when migrating from old bookmark data. (#10560)
  • Fixed
    Fixes an issue with the empty state of the outline controller. (#Z6161)
  • Fixed
    Fixes an issue with the page range selection not showing up for some sharing options. (#Z6155)
  • Fixed
    Fixes an issue where the page grabber might not be visible when the document starts in its loading state and then becomes available. (#10604)
  • Fixed
    Fixes a crash related to embedded files when the asset name is invalid. (10601)
  • Fixed
    Fixes a crash when parsing invalid metadata. (#10611)
  • Fixed
    Fixes a very rare crash when using the page grabber. (#v929)
  • Fixed
    Fixes an issue where coordinated file access could end up in a deadlock. (#10622)
  • Fixed
    Fixes PSPDFLibrary indexing completed notifications not including the PSPDFLibraryNotificationSuccessKey in the userInfo. (#10662)
  • Fixed
    Fixes an issue with the outline popover sizing on some devices. (#10594)
  • Removed
    Deprecates pdfViewController:didRenderPageView: and replaces it with more accurate delegate calls. (#9577)
  • Removed
    Deprecates a few properties in PSPDFSignaturePropBuildEntry. (#10448)

6.7.0 - 10 May 2017

  • API
    Adds PSPDFDefaultScale() which returns the main screen scale on iOS and 1.0 on macOS. (#10438)
  • API
    All fileURL based PSPDFDocuments are now backed by PSPDFCoordinatedFileDataProvider instances. The initialization flow for file data providers and the behavior of some fileURL related methods on PSPDFDocument have slightly changed to accommodate file coordination. (#1859)
  • API
    Simplified API of PSPDFModel, removes several methods which should not be required to be called or subclassed. (#10221)
  • API
    PSPDFBookmark is now fully immutable. If you want to change a bookmark, create a mutable copy, change it, and add it to the bookmark manager again. (#9308)
  • API
    Add notifications for gallery video playback state changes to PSPDFMediaPlayerController. (#9758)
  • API
    PSPDFStatefulTableViewController conforms to the newly added PSPDFStatefulViewControllerProtocol protocol. (#v775)
  • API
    Rename enum PSPDFStatefulTableViewState to PSPDFStatefulViewState. (#v775)
  • API
    PSPDFNoteAnnotationViewController now declares that it implements UITextViewDelegate. (#10407)
  • API
    Renames -[PSPDFRenderQueue cancelAllJobs] to cancelAllTasks. (#10417)
  • API
    Deprecates -[PSPDFRenderQueue concurrentRunningRenderRequests]. (#10417)
  • Added
    Adds the option to specify the image scale in a PSPDFRenderRequest. (#10413)
  • Added
    Adds support for coordinated file operations to PSPDFDocument and implements the NSFilePresenter protocol. (#1859)
  • Added
    Adds PSPDFPageGrabberController and PSPDFPageGrabber to provide UI to quickly scroll through a document. (#76)
  • Added
    Adds support for PSPDFDocument progress indication via the PSPDFFileProvider API. Check out DocumentProgressExample.swift for more information. (#10410)
  • Added
    Adds an error handling delegate method to PSPDFTextSearchDelegate to better notify of errors during text search. (#10276)
  • Added
    Adds support for PSPDFAnnotationTriggerEventLooseFocus JavaScript events. (#10295)
  • Added
    Adds support for the NeedAppearances form flag. (#10288)
  • Added
    Adds support for automatically closing deleted documents to PSPDFViewController and PSPDFTabbedViewController. (#v790)
  • Added
    Adds support for respecting minimumSize of PSPDFAnnotation during creation as well. (#10435)
  • Added
    Adds a contentsLocked property to PSPDFAnnotation that checks the PSPDFAnnotationFlagLockedContents flag. We now do not allowing editing contents for annotations with this flag. (#9552)
  • Added
    Adds support for searching choice form options. (#10306)
  • Added
    Adds the form navigation bar to the top of choice form options when in half modal presentation. (#10307)
  • Changed
    Improves naming for the ink annotation fill color inspector option. (#10088)
  • Changed
    Improves PSPDFTextSearch handling of invalid or locked documents. (#10276)
  • Changed
    Improves support for custom bookmark provider. (#9649)
  • Changed
    Improves the user experience when the user denied access to the camera or the photo library. (#9752)
  • Changed
    Improves performance around complex PDF documents. (#10290, #10295)
  • Changed
    Improves cache invalidation when files change while the document is not opened or the app is not running. (#10212)
  • Changed
    Improves NSCoding support for PSPDFFileDataProvider, by ensuring its URL is preserved in application path independent way. (#v817)
  • Changed
    Improves sqlite3 linking. (#10089)
  • Changed
    Improves reliability of reading from data providers. (#10382)
  • Changed
    Improves documentation of PSPDFX509's memory model for the encapsulated OPENSSL_X509 object. (#10225)
  • Changed
    Improves documentation of some annotation flags which were incorrectly said to have been ignored. (#9552)
  • Changed
    Choice form options now are automatically scrolling to the selected index when shown. (#10295)
  • Changed
    PSPDFTabbedViewController no longer automatically emits taptic feedback when selecting tabs. (#10371)
  • Fixed
    Fixes an issue where the cachePolicy of a render request could be ignored in some cases. (#10428)
  • Fixed
    Fixes highlight annotations rendering incorrectly in documents created by PowerPoint and some other PDF creators. (#9677)
  • Fixed
    Fixes PSPDFFontSizeName not being public despite being referenced in the documentation. (#10223)
  • Fixed
    Fixes an issue when setting pageIndex before PSPDFViewController was shown. (#10079)
  • Fixed
    Fixes an issue where bookmarks were not being saved for viewer only licenses. (#10025)
  • Fixed
    Fixes the Clear Field button not being enabled at the correct times when editing form fields. (#10254)
  • Fixed
    Fixes a retain cycle in PSPDFOutlineElement. (#10287)
  • Fixed
    Fixes an issue with scrolling in the outline list. (#10251)
  • Fixed
    Fixes rendering issues with Arial Narrow. (#10244)
  • Fixed
    Fixes an issue where annotations were rendered in an outdated state when modifying annotations while rendering was in progress. (#9991)
  • Fixed
    Fixes an issue with collapsing outline elements when searching (#10409)
  • Fixed
    Fixes a locking issue related to UID generation. (#10453)
  • Fixed
    Fixes an issue where the document editor cell layout could remain out of date after a collection view bounds size change. (#9511)
  • Fixed
    Fixes an issue that could result in a very long running loop when rendering PDF documents with broken dashed lines. (#9764)

6.6.1 - 13 Apr 2017

  • API
    Adds soundAnnotationRecordingOptions to PSPDFConfiguration to configure recording parameters when creating a new sound annotation. (#10120)
  • API
    PSPDFDocumentPickerCell now uses custom image view and labels to improve the layout. (#10108)
  • API
    Deprecates cache pausing and resuming as this is no longer necessary with the improved render engine. (#10166)
  • Changed
    Improves the view state restoration logic when a view controller is presented with/without the toolbar. (#v723)
  • Changed
    Improves stability in low memory situations. (#10086)
  • Changed
    Improves error reporting in PSPDFPKCS12 when unlocking fails. Also fix premature unloading of OpenSSL digests/algorithms from memory. (#10021, #10022)
  • Changed
    Improves support for adaptive user interfaces in PSCCustomToolbarExample. (#9578)
  • Changed
    Improves some warning log messages for better clarification. (#10168)
  • Changed
    Freshens up the visual design of PSPDFDocumentPickerController. (#10108)
  • Changed
    Moves error codes reported by PSPDFPKCS12 into the PSPDFErrorCode enum to be more consistent with the rest of the framework. (#10022)
  • Changed
    Default sample rate for sound annotation recordings has been lowered to 22,050 samples per second to comply with the PDF specification and to decrease the file size. (#10120)
  • Fixed
    Fixes an issue when using the image picker on form elements in double page mode. (#10069)
  • Fixed
    Fixes an issue with loading XFDF annotations. (#10096)
  • Fixed
    Fixes text color in form fields not rendering correctly and not being compatible with other PDF readers. (#10090)
  • Fixed
    Fixes the processor call to setFormMappingNameMappings:. (#10102)
  • Fixed
    Fixes an issue with invisible form fields if their bounding box wasn't normalized. (#10035)
  • Fixed
    Fixes an issue with flattening form fields appearing upside down. (#10036)
  • Fixed
    Fixes status bar related HUD issues. (#9975)
  • Fixed
    Fixes an issue where the freetext annotation intent conversion option was shown in the annotation inspector during annotation creation. (#9109)
  • Fixed
    Fixes an issue where certain bar button items would remain selectable when disabled. (#9130)
  • Fixed
    Fixes annotation toolbar drag & drop for certain container view controller arrangements. (#9746)
  • Fixed
    Fixes a layout issue in PSPDFDocumentPickerController (#9743)
  • Fixed
    Fixes an issue with displaying the empty state of the outline list. (#10151)
  • Fixed
    Fixes an issue where wrong values were rendered in forms. (#10007)
  • Fixed
    Fixes an issue while saving with a PSPDFXFDFAnnotationProvider. (#10187)
  • Fixed
    Fixes an issue that could cause very low priority render tasks to never be executed. (#10166)
  • Fixed
    Fixes an issue with infinite loop galleries when presented modally. (#9941)
  • Fixed
    Fixes an issue with using -[PSPDFDocument setPageBinding:]. (#10186)

6.6.0 - 6 Apr 2017

PSPDFKit now requires and is built with Xcode 8.3 (8E162).

  • API
    Various methods have been converted to properties where appropriate. This is source compatible for Objective-C but might require small adjustments in Swift code. (#9854)
  • API
    Adds PSPDFDocumentPDFMetadata. This class allows you to retrieve and set metadata in a PDF. This deprecates -[PSPDFDocument metadata].
  • API
    Adds PSPDFDocumentXMPMetadata. This class allows you to retrieve and modify data in the XMP stream inside a PDF document.
  • API
    Adds clearRegisteredSigners to PSPDFSignatureManager to remove all registered signers. (#9908)
  • API
    PSPDFOutlineCell now uses a custom nameLabel property instead of UITableViewCells textLabel for displaying the outline name. (#9930)
  • API
    Adds formFieldNameMappings and formMappingNameMappings to PSPDFProcessorConfiguration for changing the name of form fields. (#9868)
  • API
    Adds shouldShowImageEditor to PSPDFImagePickerController, which configures showing the image editor. (#10058)
  • Added
    Adds support for right to left page bindings and automatically changes the page order for the main page view, the scrubber bar, the thumbnail bar and the thumbnail view mode. (#1973)
  • Added
    Adds more callbacks to PSPDFImagePickerControllerDelegate to get the selected and edited images from the image picker. (#9510)
  • Added
    Adds the ability to keep the outline hiearchy intact and to collapse and expand elements while searching. (#9930)
  • Changed
    Changes the line thickness slider in the inspector (PSPDFAnnotationStyleViewController) to be more precise for smaller values and reduces the minimum thickness from 1 to 0.5 points. (#9464)
  • Changed
    Changes the inspector’s opacity and line thickness value labels to use monospaced numbers so they change more smoothly when using the slider. (#9891)
  • Changed
    Improves support for "buttonImportIcon" JS functionality in forms to be more in line with Adobe. (#9730).
  • Changed
    Improves creation and rendering of small cloud annotations. (#9830)
  • Changed
    Improves form loading performance for some documents. (#9382)
  • Changed
    Improves PSPDFLibrary search when using FTS5. (#10018)
  • Changed
    Improves support for RTL text selection. (#9688)
  • Changed
    Improves JavaScript calculation support. (#10024)
  • Changed
    Improves status bar management reliability. (#9975)
  • Changed
    Improves memory usage. (#10082)
  • Fixed
    Fixes an issue where line and arrow annotations were always previewed as a dashed line. (#9024)
  • Fixed
    Fixes an issue where the user could select a cloudy line style for arrow annotations. Cloudy line styles are not available for arrow annotations. (#9024)
  • Fixed
    Fixes an issue where circle annotations that have a cloudy border style pass NaN values to CoreGraphics in some cases. (#9834)
  • Fixed
    Fixes the JavaScript Form API by providing setItems, clearItems, deleteItemAt and insertItemAt again. (#9868)
  • Fixed
    Fixes symbol characters being used for rendering text in certain situations. (#9878)
  • Fixed
    Fixes an issue where JavaScript wasn't executed when a choice form element was selected. (#9894)
  • Fixed
    Fixes the half modal view controller close button animation timing during dragging. (#9895)
  • Fixed
    Fixes a race condition crash in PSPDFCoreFormProvider. (#9744)
  • Fixed
    Fixes an issue where the presented SFSafariViewController was blank while a popover was visible. (#9149)
  • Fixed
    Fixes an issue with flattening annotations using custom PSPDFFileAnnotationProvider subclasses. (#9914)
  • Fixed
    Fixes the JavaScript action triggers MouseUp and MouseDown and the JavaScript display property. (#9932)
  • Fixed
    Fixes an issue with unselectable form checkboxes in certain documents. (#9960)
  • Fixed
    Fixes full text search results returning incorrect results when an unmatched quote character is included in the search string. (#9831)
  • Fixed
    Fixes YouTube cover image parsing. (#10003)
  • Fixed
    Fixes text field form rendering when text properties are changed. (#9956)
  • Fixed
    Fixes an issue with exporting choice form elements to JSON. (#9420)
  • Fixed
    Fixes an issue where the export value instead of the label was rendered in a PSPDFChoiceFormElement. (#9953)
  • Fixed
    Fixes an issue where some video preview thumbnails may be upside down. (#9992)
  • Fixed
    Fixes an issue with a missing red border around required form fields. (#9983)
  • Fixed
    Fixes a view state restoration issue in continuous scroll mode that could trigger an internal assertion. (#9936)
  • Fixed
    Fixes an issue with sharing PSPDFDocument including multiple files. (Z#5864)
  • Fixed
    Fixes an issue with making form elements non-editable. (#10009)
  • Fixed
    Fixes an issue where the document editor may show page thumbnails with an incorrect orientation. (#9974)
  • Fixed
    Fixes an issue with selecting a entry in a PSPDFChoiceFormElement. (#10056)
  • Fixed
    Fixes free text annotation colors not being compatible with Adobe Acrobat and other PDF readers, and not being read properly in some situations. (#8941)
  • Fixed
    Fixes a layout issue in the outline list. (#9516)
  • Fixed
    Fixes an issue that prevented the document editor cells from loading the correct thumbnail image. (#10083)
  • Removed
    Deprecates +[PSPDFOutlineCell heightForCellWithOutlineElement:documentProvider:constrainedToSize:outlineIntentLeftOffset:outlineIntentMultiplier:showPageLabel] in favor of a self-sizing table view cell. (#9930)

6.5.1 - 15 Mar 2017

  • API
    Introduces -[PSPDFDocumentProvider fileId] and -[PSPDFDocument documentId]. A permanent identifier (if available) based on the contents of the file at the time it was originally created. (#v602)
  • API
    Adds PSPDFApplePencilDetectedChangedNotification. Use this instead of PSPDFApplePencilDetectedNotification to avoid unnecessary work when there is no change in detection state. (#9766)
  • API
    Adds shouldExpandCollapseOnRowSelection subclassing hook to modify the expand/collapse behavior in PSPDFOutlineViewController. (#9691)
  • Changed
    PSPDFApplePencilDetectedNotification is no longer posted when detected is set to NO to better clarify its purpose. (#9766)
  • Changed
    Improves the bookmark view controller reload behavior by implementing incremental updates. (#9580)
  • Changed
    Calling description on the document no longer tries to parse the document. (#9556)
  • Changed
    Polygon annotations now correctly require at least 3 points before it is possible to commit them. (#9800)
  • Changed
    Improves the drawing order of watermarks and annotations. (#9258)
  • Changed
    Improves formatting of text related annotations in the annotation list view. (#9740)
  • Changed
    Improves creation of dashed and cloudy annotations. (#9738)
  • Fixed
    Fixes a condition where bold font would be incorrectly used for text that is not to be highlighted in PSPDFSearchViewController. (#608)
  • Fixed
    Fixes a crash on iOS 9.0.x. (#9789)
  • Fixed
    Fixes ghost images when selecting form elements. (#9482)
  • Fixed
    Fixes an issue on incrementally saving using a data provider. (#9410)
  • Fixed
    Fixes a crash that could occur when drawing polygon annotations with the cloudy line style. (#9800)

6.5.0 - 9 Mar 2017

  • API
    Stylus support has been modified to better support Apple Pencil. If you integrated a third-party stylus SDK with PSPDFKit as demonstrated in PSCStylusSupportExample, you’ll need to revise this. We recommend adding PSPDFApplePencilDriver in availableDriverClasses, and annotationToolbar.additionalButtons = @[annotationStateManager.stylusStatusButton] must be replaced with annotationToolbar.showingStylusButton = YES. The stylus support guide and PSCStylusSupportExample have been updated to reflect this. (#6525)
  • API
    Changes fitToWidthEnabled type to PSPDFAdaptiveConditional and adjusts its behavior. (#v527)
  • API
    Makes PSPDFAnnotationString* and some constants for stylus drivers nicer to use from Swift. (#9543, #9672)
  • API
    Introduces -[PSPDFRenderQueue scheduleTasks:] to schedule multiple tasks at once. (#9416)
  • API
    Introduces -[PSPDFRenderTask groupTasks:completionHandler:] to group multiple render tasks together and get a single completion handler call once all of them complete. (#9416)
  • API
    A new sharing option has been introduced to improve document export for print. PSPDFDocumentSharingOptionFlattenAnnotationsForPrint should be used instead of PSPDFDocumentSharingOptionFlattenAnnotations when printing. This is set by default in PSPDFConfiguration.printSharingOptions. (#9295)
  • API
    Introduces PSPDFPrintConfiguration to customize the print flow or set a default printer. (#9650)
  • Added
    Adds first-class Apple Pencil support. Users can now annotate documents with the Pencil while scrolling and tapping with a finger. This is built into PSPDFStylusManager, PSPDFAnnotationStateManager and PSPDFAnnotationToolbar and enabled by default. It is also possible to set the Apple Pencil to always create a particular annotation type, such as ink or highlight, without showing any UI. Learn more in the new Apple Pencil guide. (#6525)
  • Added
    Adds 3D Touch preview support in PSPDFThumbnailViewController, PSPDFAnnotationTableViewController, PSPDFOutlineViewController and PSPDFBookmarkViewController. (#9195)
  • Added
    Adds support for non-printable annotations via the new PSPDFDocumentSharingOptionFlattenAnnotationsForPrint option. (#9295)
  • Added
    Adds an option to close all tabs except one. Accessible by selecting Close All Other Tabs after long pressing a close button in PSPDFTabbedViewController. (#9393)
  • Added
    Adds an option to set cloudy borders on geometric annotations in the annotation inspector. (#9675)
  • Changed
    Improves settings controller by preventing user from selecting unsupported configurations. (#8321)
  • Changed
    Improves the annotation view controller reload behavior by implementing incremental updates. (#9520)
  • Changed
    Improves the animation in the kiosk grid example. (#9225)
  • Changed
    Improves text to speech language detection for some documents. (#9371)
  • Changed
    Improves haptic feedback when scrubbing to first and last page. (#9193)
  • Changed
    Improves the transition to and from the fullscreen gallery view mode. (#9460, #9467)
  • Changed
    Improves compatibility with embedded videos to allow playing even more format variations. (#9484)
  • Changed
    Improves JavaScript support for formatting dates in form fields. (#9481)
  • Changed
    Improves disk usage and reuses temporary paths for asset annotations. (#9396)
  • Changed
    Improves page navigation with keyboard shortcuts. (#9234)
  • Changed
    Improves font size while editing a text form element. (#9419, #9436)
  • Changed
    Improves support for certain types of link annotations. (#9201)
  • Changed
    Updates OpenSSL to 1.0.2k. (#9364)
  • Changed
    Changing the tab in PSPDFTabbedViewController now creates haptic feedback. (#9415)
  • Changed
    The example stylus drivers have now been tested with the Adonit SDK 3.3 and Wacom SDK 2.1.0. (#9672)
  • Changed
    The annotation state manger’s state is no longer set to nil when changing selected annotations, saving a document, or changing PSPDFViewController’s document. This was necessary to create a great experience with Apple Pencil. (#6525)
  • Changed
    Status HUD notifications are no longer shown when the connected stylus changes. These can be turned back on with PSPDFStylusManager’s new showsStatusHUDForConnectionStatusChanges property. (#6525)
  • Fixed
    Fixes an issue where checking for a cached image falsely resulted in a cache miss when checking for smaller images in some size constellations. (#9440)
  • Fixed
    Fixes an issue with the thumbnail view mode layout. (#9456)
  • Fixed
    Fixes an issue with generating a document from a local file. (Z#5470)
  • Fixed
    Fixes an issue with half modal view controller avoidance. (#9314)
  • Fixed
    Fixes an issue with -[PSPDFLibraryFileSystemDataSource indexItemDescriptorForDocumentWithUID:] returning nil before PSPDFLibrary.updateIndex is called. (#9392)
  • Fixed
    Fixes an issue where pages were disappearing when laying out PSPDFViewController multiple times in a very short time frame. (#9402)
  • Fixed
    Fixes positioning of free text annotations when pasting text. (#9299)
  • Fixed
    Fixes a rare deadlock encountered with background saving. (#8689)
  • Fixed
    Fixes relative path for documents stored in an iCloud container. (#v599)
  • Fixed
    Fixes an issue where exporting a document with forms didn't always automatically invoke save. (#9457)
  • Fixed
    Fixes hard to read text in small choice form elements. (#9450)
  • Fixed
    Fixes an issue where search may not return every match for some documents. (#9173)
  • Fixed
    Fixes an issue that cancelled ongoing animations when the HUD was animating in or out. (#8410)
  • Fixed
    Fixes the PSPDFAnnotationStyleViewController (inspector) shown from the annotation toolbar not showing the annotation preview on iPhone in landscape. (#9512)
  • Fixed
    Fixes an issue with layout invalidation when in thumbnail view mode and rotating the device while the app is in the background. (#9523)
  • Fixed
    Fixes PSPDFLibrary's usage of background tasks when indexing. (#9674)
  • Fixed
    Fixes an issue in the renderer that produced an endless loop with invalid values in certain locations of a PDF. (#9595)
  • Fixed
    Fixes an issue where some annotations with dashed border was incorrectly rendered. (#9435)
  • Fixed
    Fixes a text layout issue in PSPDFOutlineViewController. (#9516)
  • Removed
    Removes PSPDFStylusDriverDelegateKey which was not used. (#9672)

6.4.0 - 31 Jan 2017

  • API
    Adjusts PSPDFDocument initializers for better Swift support. initWithContent:signatures: is now marked as the designated initializer for this class. (#9143)
  • API
    New helper searchableItemAttributeSetWithThumbnail: on PSPDFDocument for easier Handoff/NSUserActivity/Spotlight integration. (#9218)
  • API
    The doublePageModeOnFirstPage property in PSPDFConfiguration has been renamed to firstPageAlwaysSingle. (#9277)
  • API
    Makes PSPDFMetadata* keys nicer to use from Swift. (#9218)
  • API
    Adds -[PSPDFLibraryFileSystemDataSource indexItemDescriptorForDocumentWithUID:] to retrieve document metadata without having to read the document from disk. (#9317)
  • API
    Adds PSPDFLibraryFileSystemDataSource.documentProvider to allow for custom-prepared (encrypted) documents to be used. (#9307)
  • API
    Adds pdfViewController:didExecuteAction: method to PSPDFViewControllerDelegate which is called after an action has been executed. (#9297)
  • Added
    Adds support for FTS5 (full-text search) to PSPDFLibrary, when available. This updates the internal format and will require a re-indexing. See https://sqlite.org/fts5.html for more details on FTS5. (#9026)
  • Added
    Adds support for right-to-left user interface. (#5635)
  • Added
    Adds translations for Arabic.
  • Added
    Adds a photo editor to crop, rotate and zoom images, when adding a new page or an image annotation. (#969)
  • Added
    Adds a search UI to the annotations table view controller. (#8906)
  • Added
    Adds a placeholderImage to <PSPDFPageCellImageRequestToken> for smoother transitions to the thumbnail view mode. (#9197)
  • Changed
    Improves performance when zooming and scrolling in certain cases. (#9288)
  • Changed
    Improves behavior of close-all-tabs option in PSPDFTabbedBarController. (#9050)
  • Changed
    Improves power consumption in low power mode. (#5595)
  • Changed
    Improves external keyboard support when navigating through form fields. (#8503)
  • Changed
    Improves the highlight icon for the annotation toolbar. (#9187)
  • Changed
    Improves automatic page mode threshold to use double page mode more often. (#9161)
  • Changed
    Improves performance of library indexing and preview snippet generation. (#9131)
  • Changed
    Improves behavior of annotations in night mode. (#9207)
  • Changed
    Improves PSPDFLibraryFileSystemDataSource's checking of its source documents URL to ensure it is a directory. (#9216)
  • Changed
    Improves display of indexed documents in Spotlight. (#9219)
  • Changed
    Improves localizations in Norwegian and renames Save To Camera Roll to Save to Photo Library. (#9353)
  • Changed
    Improves the padding around responders that are scrolled to become visible when the keyboard is shown. (#9316)
  • Changed
    Improves the layout of the empty state in thumbnail view mode when filtered for annotations or bookmarks. (#9315)
  • Changed
    Changes default number of search results and preview snippets in library queries to 500. Can be modified via options dictionary. (#9131)
  • Changed
    Form annotations now honor the hidden flag just like other annotation types. (#9200)
  • Fixed
    Fixes an issue where the Current Page option was presented in pages range picker even when there're no visible page indexes set. (#9350)
  • Fixed
    Fixes a crash that could happen while rotating in some scenarios. (#v530, #v532)
  • Fixed
    Fixes a rare crash in PSPDFTabbedBarController. (#v539)
  • Fixed
    Fixes issues with selected annotations on rotated pages. (#9083)
  • Fixed
    Fixes a layout issue when switching to thumbnail mode in some cases. (#9128)
  • Fixed
    Fixes an issue with entering edit mode of free text annotations when long pressing. (#9148)
  • Fixed
    Fixes an issue with free text annotations in night mode. (Z#5365)
  • Fixed
    Fixes an issue where the document editor could get into an invalid state while interactive movement of pages. (#9198)
  • Fixed
    Fixes an issue where annotations were not rendered in night mode color while annotation mode was enabled. (#9168)
  • Fixed
    Fixes an issue where the scrubber bar sometimes requested the wrong image size. (#8998)
  • Fixed
    Fixes selecting items in the annotation toolbar not working properly in some configurations with restricted editableAnnotationTypes. (#9226)
  • Fixed
    Fixes an issue where borders weren't dashed properly. (#9260)
  • Fixed
    Fixes an issue where menu controller stayed visible after deselecting an image annotation. (#9286)
  • Fixed
    Fixes an issue where the annotation user name controller could dismiss its parent controller as well. (#9296)
  • Fixed
    Fixes an issue where the annotation's search results don't select the annotation when tapped. (#9313)
  • Fixed
    Fixes a rare issue where inline image objects were not released properly. (#9241)

6.3.1 - 9 Jan 2017

  • API
    Removes unused onlyReturnIfVisible parameter from PSPDFChildViewControllerForClass. (#9072)
  • Changed
    Improves haptic feedback from annotation toolbar and thumbnail scrubber. (#9065)
  • Fixed
    Fixes the shadow position for sound annotation appearance streams. (#9037)
  • Fixed
    Fixes PSPDFLibraryFileSystemDataSource becoming inconsistent with the document library. (#9043)
  • Fixed
    Fixes PSPDFLibraryFileSystemDataSource ignoring encrypted but not locked documents. (#9047)
  • Fixed
    Fixes height of the search view controller when the search results are cleared. (#9028)
  • Fixed
    Fixes the author name view never being shown if the annotation button is tapped while a popover is visible. (#9058)
  • Fixed
    Fixes the half modal presentations such as the annotation inspector not being dismissed if the user cancels an interactive pop gesture then attempts to go back a second time. (#9058)
  • Fixed
    Fixes the annotation toolbar not being hidden when popping the PSPDFViewController from a navigation stack while there is a half modal presentation. (#9058)
  • Fixed
    Fixes it being possible to show the annotation toolbar underneath a half modal presentation. (#9058)

6.3.0 - 21 Dec 2016

PSPDFKit now requires and is built with Xcode 8.2.1 (8C1002).

  • API
    Adds -[PSPDFLibrary indexedDocumentWithUID:] method to easily retrieve documents from FTS search results. (#8884)
  • API
    Adds an "explicit mode" to PSPDFLibraryFileSystemDataSource, to improve handling of cases where the documents directory's contents would change rapidly. (#8894)
  • Added
    Adds option to close all tabs by long pressing a close button in PSPDFTabbedViewController. (#8662)
  • Added
    Adds Norwegian and Slovak language and improves the translations overall. (#8975)
  • Changed
    Improves updating of cells in PSPDFDocumentPickerController when a document title changed. (#8874)
  • Changed
    Improves the flexible toolbar drag & drop handle. (#8883)
  • Changed
    Improves website conversion support in PSPDFProcessor. The changes make it less likely for pages to be converted in a partially rendered state. (#8830)
  • Changed
    Improves the cache eviction algorithm. (#8876)
  • Changed
    Improves the eraser for natural drawing ink annotations. (#7532)
  • Changed
    Improves button selection across different annotation toolbar configurations by prioritizing recently picked tools on all toolbar configurations. (#8610)
  • Changed
    Improves automatic reloading of PSPDFAnnotationTableViewController when changing properties. (#8966)
  • Changed
    Improves settings UI with new icons representing scrolling directions. (#8590)
  • Changed
    Improves callout annotation resizing and auto sizing behaviors. (#8692)
  • Changed
    Key classes are now better protected against misuse to show potential bugs early. (#8892)
  • Fixed
    Fixes an issue where PSPDFLibrary would send duplicate notifications when spotlight indexing is disabled. (#8833)
  • Fixed
    Fixes loss of selection when the app is backgrounded. (#8458)
  • Fixed
    Fixes an issue where XFDF fields are incorrectly filled. (#8925)
  • Fixed
    Fixes an issue where the scrubber bar could take a lot of CPU time to layout. (#8876)
  • Fixed
    Fixes an issue with loading invalid annotations. (#8869)
  • Fixed
    Fixes an issue with view state restoration when using specific scroll and transition modes. (#8801)
  • Fixed
    Fixes an issue while garbage collecting PDF objects on saving non-incrementally. (#8901)
  • Fixed
    Fixes documentation of -[PSPDFLibrary updateIndex] which incorrectly stated that the method would return immediately and was asynchronous. (#8893)
  • Fixed
    Fixes an issue with parsing invalid sound annotations. (#8814)
  • Fixed
    Fixes an issue where search result cells showed the wrong search result when tapping it in some cases. (#8931)
  • Fixed
    Fixes an issue where the frame of note annotations was incorrectly displayed on the page. (#8865)
  • Fixed
    Fixes a crash when trying to save a photo and NSPhotoLibraryUsageDescription is not set in your Info.plist. The menu item is no longer shown unless a usage description is found. You should add a usage description to your Info.plist to re-enable this feature. (#8992)
  • Fixed
    Fixes a crash when using custom versions of SQLite 3.11 or higher. (#8967)

6.2.1 - 30 Nov 2016

  • API
    Adds indexedUIDCount and indexedUIDs properties to PSPDFLibrary. (#8757)
  • Changed
    Enable integration with PSPDF Instant.
  • Changed
    Improves the UI when asking for an author name the first time the user wants to add an annotation. (#6160)
  • Added
    Adds key commands to allow up/down arrow keys on a physical keyboard to change pages. (#8395)
  • Fixed
    Fixes a missing deprecation statement on -[PSPDFDocument diskCacheStrategy]. Disk cache strategy is deprecated since PSPDFKit 6.1. (#8783)

6.2.0 - 28 Nov 2016

  • API
    Changes PSPDFDocumentSharingCoordinatorDelegate selector from documentSharingCoordinator:didFailWithError: to documentSharingCoordinator:didFinishWithError. New call is more general and is called on success and on failure. (#8568)
  • API
    Changes -[PSPDFDocumentSharingViewController initWithDocument:] (and for subclasses) to -[PSPDFDocumentSharingViewController initWithDocuments:]. Update property document to documents in PSPDFDocumentActionExecutor. (#8595)
  • API
    Adds new options to customize the appearance of PSPDFSearchViewController. (#8679)
  • API
    Adds closeMode property to PSPDFTabbedViewController, which may be used to show the close button in all tabs, or in all tabs but only in regular width size classes. The Boolean allowsClosingDocuments is deprecated. If you previously set this property to NO, use PSPDFTabbedViewControllerCloseModeDisabled instead. The default behavior has not changed. (#8595)
  • Added
    Adds support for rendering annotations in their corresponding color in (color correct) night mode. (#8582)
  • Added
    Adds support for annotation flags PSPDFAnnotationFlagReadOnly and PSPDFAnnotationFlagLocked. (#1182)
  • Changed
    The default allowed disk cache size has been decreased and the set allowed cache size is now treated as a hint. The actual maximum cache size might be smaller depending on several conditions. (#8648)
  • Changed
    Improvements to the render engine for performance and correctness. (#8310)
  • Changed
    Improves memory handling in low-memory situations and with many open documents. (#8352, #8447)
  • Changed
    Improves document sharing by adding support for handling multiple documents. (#8715)
  • Changed
    Improves user experience when adding a new page via the Document Editor. (#8450)
  • Changed
    Improves performance of decoding JPEG images. (#8712, #8673)
  • Changed
    Improves disk cache. It is now smarter which leads to smaller cache size in many cases. (#8648)
  • Changed
    Improves compatibility with Swift. (#7990, Z#5063)
  • Changed
    Improves software dimming so it no longer affects the navigation bar style. (#8663)
  • Changed
    Improves handling of camera access being denied when using UIImagePickerController. (#8546)
  • Changed
    Improves bookmark handling in Processor and DocumentEditor. (#8091)
  • Changed
    Improves scrubber thumbnail shadow rendering in double page mode. (#8669)
  • Changed
    Improves text when no search results are found. (#8769)
  • Changed
    Improves translations. (#8698)
  • Changed
    Improves PSPDFLibrary's handling of documents that are to be removed from the index.
  • Changed
    Works around a UIKit issue that disables user interaction on custom bar button items in some scenarios. (#v407, rdar://problem/18906964)
  • Fixed
    Fixes an issue where pdfViewController:didShowController:options:animated: could pass nil as the controller parameter in rare cases. (#8641)
  • Fixed
    Fixes an issue where form elements where partly parsed if they were not part of the license. (#8567)
  • Fixed
    Fixes memory issues in the document sharing controllers. (#8568)
  • Fixed
    Fixes an issue where PSPDFLibraryFileSystemDataSource incorrectly handled removal of a document from the search index (#8642).
  • Fixed
    Fixes an issue where the PDF file was modified even if PSPDFAnnotationSaveModeExternalFile was specified. (#8667)
  • Fixed
    Fixes an issue with flattened form annotations. (#8151)
  • Fixed
    Fixes an issue where the "Open In" option didn't export a document if it wasn't file based. (#8683)
  • Fixed
    Fixes an issue where annotations could be printed when the "Print without annotations" option was selected. (#8650)
  • Fixed
    Fixes an issue where text selection was broken after the app came back from background. (#8660)
  • Fixed
    Fixes the tabbed bar not scrolling to show all of the selected tab if the tapped tab is already selected. (#8687)
  • Fixed
    Fixes an issue that caused annotations to flicker when deselecting while a render view was present. (#8661)
  • Fixed
    Fixes an issue requesting text from glyphs on certain documents. (#8657)
  • Fixed
    Fixes an issue where the text selection is lost when switching apps. Tapping the selection brings back the menu now. (#8458)
  • Fixed
    Fixes an issue where text was rendered incorrectly. (#8102)
  • Fixed
    Fixes an issue where the pdfDocumentDidSave: delegate callback was invoked despite the document not being modified by the save operation. (#8722)
  • Fixed
    Fixes a crash that could occur when the device was rotated while the content offset was animated in continuous scroll mode. (#8710)
  • Fixed
    Fixes an issue where arrow annotation default style changes were leaking over to line annotations. (#8691)
  • Fixed
    Fixes an issue where scrubber thumbnail shadow was applied multiple times. (#8669)

6.1.0 - 15 Nov 2016

PSPDFKit now requires and is built with Xcode 8.1 (8B62).

  • API
    Adds new Analytics API. (#8224)
  • API
    Adds document saving callbacks to PSPDFDocumentDelegate. (#8234)
  • Added
    Adds CoreSpotlight indexing to PSPDFLibrary which adds entire PDFs (with full text) to native search. (#6966, #8421)
  • Added
    Adds PSPDFMemoryCache and PSPDFDiskCache to give more control over the behavior of the cache. (#7964)
  • Added
    Adds translations for user-facing strings in the settings for the languages da, el, fi, id, it, ko, ms, nl, pl, pt-BR, pt-PT, sv, th, and tr. (#8413)
  • Added
    Adds translations for using-facing strings in all supported languages (#8613)
  • Added
    Adds option to add a new page in the Document Editor using an image. (#8219)
  • Added
    Adds support for custom CIFilter when rendering. (#8332)
  • Changed
    Improves visibility of disabled toolbar buttons. (#8319)
  • Changed
    Improves page index restoration when rotating from double page mode to single page mode. (#8272)
  • Changed
    Improves view state restoration when scrolling between pages. (#8373)
  • Changed
    Improves memory usage handling of PSPDFProcessor. (#8352)
  • Changed
    Improves digital signature permissions. (#8391)
  • Changed
    Improves handling of bookmarks for nonexistent pages. (#8466)
  • Changed
    Improves document editor page rendering by showing annotations. (#8467)
  • Changed
    Improves layout in thumbnail mode in some edge cases. (#8466)
  • Changed
    Improves memory cache efficiency when using the scrubber bar in large documents. (#8470)
  • Changed
    Improves the default value for the page range when exporting a document. (#8532)
  • Changed
    Improves document caching behavior when using the document editor. (#8537)
  • Changed
    Improves view state restoration when returning from background. (#8307)
  • Changed
    Improves the look of the search results. (#8490)
  • Fixed
    Fixes a race condition where PSPDFDocumentUnderlyingFileChangedNotification and pdfDocument:underlyingFileDidChange: were triggered even though the save originated from the document itself. (#8525)
  • Fixed
    Fixes a race condition in the Document Editor. (#8370)
  • Fixed
    Fixes a few rare crashes that we discovered in the SDK after shipping PDF Viewer. (#8367)
  • Fixed
    Fixes an issue where annotations didn't update when dragging resizing knobs unless their bounding box changed. (#8354)
  • Fixed
    Fixes an issue that could occur during app termination under rare conditions. (#8366)
  • Fixed
    Fixes an issue due key-value observing of title in specific situations. (#8376)
  • Fixed
    Fixes an issue where images from the camera weren't compressed according to PSPDFDefaultImageCompressionKey. (#8154)
  • Fixed
    Fixes an issue in the Document Editor when selecting all pages could cause collection view crash. (#8402)
  • Fixed
    Fixes an issue on adding annotations to a document with a DocMDP signature. (#8391)
  • Fixed
    Fixes an issue that made the close button reappear after setting it to nil. (#8383)
  • Fixed
    Fixes an issue with sound annotations being distorted or rendered incorrectly. (#8386, #8429)
  • Fixed
    Fixes an issue that leads to excessive CPU usage when opening invalid documents. (#8427)
  • Fixed
    Fixes an issue where the caret in a note's text view was missing when editing. (#8381)
  • Fixed
    Fixes an issue where adding a custom stamp did not always exit the stamp mode automatically. (#8462)
  • Fixed
    Fixes an issue where line annotations were saved in a wrong format. (#8396)
  • Fixed
    Fixes an issue where some annotations flickered when selecting them. (#8469)
  • Fixed
    Fixes an issue where background updates via document JavaScript might cause property changes on the wrong thread. (#8468)
  • Fixed
    Fixes an issue where annotations could be rendered with a wrong image. (#8493)
  • Fixed
    Fixes an issue where the border of a page in the thumbnail view wasn't rendered correctly in rare cases. (#8380)
  • Fixed
    Fixes an issue where text annotation was always scrolled to the top of the keyboard when continuous scrolling was used. (#8355)
  • Fixed
    Fixes an issue where tabbedPDFController:shouldChangeVisibleDocument: and tabbedPDFController:didChangeVisibleDocument: could be called without the document actually changing. (#8530, #8525)
  • Fixed
    Fixes an issue where language auto-detection for text-to-speech could fail in rare cases. (#8593)
  • Fixed
    Fixes an issue with opening a PDF with bookmarks in Preview.app. (#8591)
  • Fixed
    Fixes an issue where stamp annotations could disappear. (#8597)
  • Fixed
    Fixes an issue where modifying the document page count using the document editor could trigger an assertion in continuous scroll mode. (#8604)
  • Fixed
    Fixes incorrect declaration of PSPDFLogLevelMask. It's now correctly marked as an NS_OPTIONS bitmask. (#8628)
  • Fixed
    Fixes an issue where the first page could not be selected in the scrubber bar in some cases. (#8623)
  • Fixed
    Fixes an issue with the document editor's page sizes when adding new pages. (#V381)

6.0.3 - 24 Oct 2016

  • Changed
    Improves customization of close button by making -[PSPDFNavigationItem closeBarButtonItem] nullable. (#8206)
  • Changed
    Improves updating bar button items that are not currently added to PSPDFViewController's navigation item. (#8086)
  • Changed
    Improves large memory usage handling of PSPDFProcessor. (#8291)
  • Changed
    Improves render performance in cases where a large image is already available in the cache. (#8334)
  • Changed
    Update notes font to match current iOS look and feel. (#8267)
  • Added
    Adds translations for user-facing strings in the settings for the languages de, en, es, fr, ja, ru, zh-Hans and zh-Hant. (#8286)
  • Added
    Adds option alwaysRewriteOnSave to PSPDFDocument to allow rewriting the whole document on demand. (#8290)
  • Fixed
    Fixes an issue that produced a large number of cache misses in the disk cache. (#8334)
  • Fixed
    Fixes an issue where annotations could be added even though annotations were disabled. (#8123)
  • Fixed
    Fixes an issue where the action executor could assert when no document was set. (#8232)
  • Fixed
    Fixes an issue where in very rare cases, vertical numbers could be reversed. (#5203)
  • Fixed
    Fixes issues when saving to the current file in the document editor. (#8259, #8233)
  • Fixed
    Fixes an issue where the default tint color was not applied for knob views. (#7940)
  • Fixed
    Fixes an issue where stamps with a missing subject caused rendering issues. (#8296)
  • Fixed
    Fixes an unlikely crash in annotation parsing. (#8295)
  • Fixed
    Fixes an issue with embedding new sound annotations. (#8207)
  • Fixed
    Fixes an issue where the menu controller was unexpectedly hidden. (#8169)

6.0.2 - 10 Oct 2016

  • Changed
    PSPDFViewController, PSPDFMultiDocumentViewController and PSPDFTabbedViewController now update the UI when document titles change. (#8120)
  • Changed
    Performance and stability improvements to the PDF render engine. (#7890)
  • Changed
    Improves flattening logic for PDFs with extensive use of ExtGStates dictionaries. (#7484)
  • Changed
    Improves image caching for annotations. (#8114)
  • Changed
    Relaxes licensing logic to be more forgiving when the license key is set at a later stage. (#7984)
  • Changed
    If document.canSaveAnnotations is false, the annotation view is configured to not be editable by default. (#8116)
  • Fixed
    Fixes an issue where the annotation menu was not updated correctly for certain edge cases. (#8036)
  • Fixed
    Fixes an issue where disabling annotations caused the document to render incorrectly. (#7992)
  • Fixed
    Fixes an issue where moved files were not detected correctly. (FS#50)
  • Fixed
    Fixes an issue where swiping through a large PDF could cause a crash. (#8141)
  • Fixed
    Fixes issues with flattening annotations on certain documents. (#7484, #7486)
  • Fixed
    Fixes an issue where the menu controller was not correctly hidden when some annotation types were deselected. (#7986)

6.0.1 - 3 Oct 2016

  • Changed
    Updates OpenSSL to 1.0.2j. (#7989)
  • API
    Make setRotation:forPageAtIndex: on PSPDFDocumentProvider public again. (Z#4618)
  • Changed
    The PSPDFBookmarkViewController no longer calls save: automatically when dismissed. (#8033)
  • Changed
    Improves thumbnail rendering related to the night mode settings. (#7913)
  • Changed
    Improves memory usage when searching in a large document. (#7958)
  • Changed
    Improves annotation handling in environments that do not allow saving annotations. (#7595)
  • Changed
    Improves delegate behavior for pdfViewController:didRenderPageView: which is now also called in case of a cache hit. (#8020)
  • Changed
    Improves handling search results for deleted or changed annotations. (#8030)
  • Fixed
    Fixes an issue where images in a too low resolution could be cached. (#8057)
  • Fixed
    Fixes an issue with night mode and the tabbed view controller. (#7913)
  • Fixed
    Fixes an issue where PSPDFViewController wrongly displayed a close button in certain scenarios. (#7993)
  • Fixed
    Fixes an issue where annotations could be edited but not saved. (#8002)
  • Fixed
    Fixes an issue where annotations were not positioned correctly if the page was rotated and cropped. (#7922)
  • Fixed
    Fixes an issue where an annotation could disappear when other annotation was selected. (#8035)
  • Fixed
    Fixes an issue where circle annotation's border was not rendered. (#7982)

6.0.0 - 23 Sep 2016

PSPDFKit 6 is a major new release. It's fully optimized for Xcode 8 and iOS 10, comes with improved API for Swift 3, faster rendering, various fixes and a visual refresh. These updates make it our best release so far. As usual, our versioning scheme supports the current and the previous iOS version. We fully support iOS 9, while also focusing on many new features that iOS 10 offers.

  • API
    Many getters/setters named page or pageNumber have been renamed to pageIndex. (#7451)
  • API
    The combineInk property on PSPDFDrawView has been renamed to drawCreateMode and exposed to PSPDFConfiguration. (#7344)
  • API
    PSPDFPlugin has been removed. Use PSPDFStylusManager.availableDriverClasses to configure drivers. (#7266)
  • API
    Initialization methods of PSPDFProcessorSaveOptions has been changed to be cleaner and convenience initialization has been deprecated. (#7422)
  • API
    settingsOptions configuration property is set to All by default, but settingsButtonItem has to be explicitly added to navigation item. (#7310)
  • API
    Removes the legacy PSPDFLinkAnnotationView.overscan property. (#7521)
  • API
    Replaces NSSet<NSNumber *> with NSIndexSet in the document editor classes. (#7676)
  • Changed
    Updates OpenSSL to 1.0.2i. (#7944)
  • Added
    Adds an option to set the line width of the eraser tool using PSPDFAnnotationStyleManager. (#7748)
  • Added
    Adds a page mode control to PSPDFSettingsViewController. (#7708)
  • Added
    Adds a configurable bookmark indicator button to each page of the PDF. (#7224)
  • Added
    Adds haptic feedback on the iPhone 7 and 7 Plus using the UIFeedbackGenerator API. (#7906)
  • Added
    Adds new keyboard shortcuts for iPad hardware keyboards. (#7707)
  • Changed
    The link annotation borders are now hidden by default. (#7521)
  • Changed
    The useParentNavigationBar configuration option now forwards the prompt, backBarButtonItem and hidesBackButton properties to the parent’s navigation item. (#7577)
  • Changed
    The page labels are now automatically dimmed in night mode. (#7562)
  • Changed
    The PSPDFNavigationItem now has API to manage the close button in case the view controller is presented in a modal context. (#7509)
  • Changed
    Makes PSPDFDefaultFileManager use background tasks when performing coordinated file access. (#7603)
  • Changed
    Make zoom out behaviour consistent -- double tapping when zoomed in now always zooms out. (#7394)
  • Changed
    Makes all annotation line endings solid, irrespective of the line's style. (#7715)
  • Changed
    Calling reloadData on PSPDFViewController now automatically preserves the current view state. (#7418)
  • Changed
    Logging now uses the constants from os_log. (#7493)
  • Changed
    Improves the performance and memory situation of the thumbnail view mode and the document view mode. (#7915)
  • Changed
    Improves the API for rendering and caching document. (#6881, #7645)
  • Changed
    Improves toolbar drag gesture by prioritizing it over the interactive pop gesture. (#7369)
  • Changed
    Improves audio annotation UI. (#7404)
  • Changed
    Improves text selection UI in several edge case scenarios. (#7399, #7400)
  • Changed
    Improves how the tabbed view controller handles files and saves. (V#83, V#92)
  • Changed
    Improves PSPDFDefaultFileManager to use background tasks when performing coordinated file access. (#7603)
  • Changed
    Improves stamp annotation inspector, which now opens with the last recently selected tab. (#7446)
  • Changed
    Improves annotation button handling when annotation saving is disabled. (#7590)
  • Changed
    Improves resource usage when indexing a large amount of documents. (#7397)
  • Changed
    Improves notification based APIs with Swift friendly NSNotificationName type. (#7825)
  • Changed
    Improves performance of loading annotations in certain situations dramatically. (#7873)
  • Removed
    Removes workaround for keeping status bar view controller unchanged on iOS 9 when using the half modal presentation style. This has been fixed in iOS 10. (#7544)
  • Fixed
    Fixes an issue where batch updates where not posted when interactively picking a color. (#6900)
  • Fixed
    Fixes an issue where ink annotations were not rendered with the proper line thickness in some cases. (#7437)
  • Fixed
    Fixes an issue where ink annotations were not unarchived properly from old NSKeyedArchiver files. (#7629)
  • Fixed
    Fixes an issue that caused two different versions of the same document kept in memory when using the tabbed view controller in some situations. (V#80)
  • Fixed
    Fixes changing the documents of the tabbed view controller before the view was loaded resulting in loading the view and possibly crashing. (#7563)
  • Fixed
    Fixes the tabbed view controller not scrolling to show newly inserted documents. (#7561)
  • Fixed
    Fixes navigation item updates not being animated in some cases. (#7577)
  • Fixed
    Fixes an issue where the text selection offsets were wrong in certain documents. (#7271)
  • Fixed
    Fixes an issue where the tabbed bar could be incorrectly positioned after interface rotation. (#7179)
  • Fixed
    Fixes an issue where shared document might not have recent changes. (#7717)

5.5.5 - 22 Sep 2016

  • Changed
    Rename a method called finished: in PSPDFKit to work around a bug in Apple's App Store review process. (rdar://28252227)

5.5.4 - 20 Sep 2016

  • Changed
    Improves handling of document titles with specific characters. (#7787)
  • Fixed
    Fixes an issue where the menu controller blur background was larger than the actual popover by working around an UIKit bug. (rdar://28275291, #6162)
  • Changed
    Renames some methods to work around a radar. (rdar://28252227)

5.5.3 - 12 Sep 2016

PSPDFKit 5.5.3 has been tested with the latest stable Xcode 7.3.1 and iOS 10 GM.

PSPDFKit 6 for iOS, which is compatible with Xcode 8 and works with iOS 9 and 10, is coming later this month. See our article about version support for more details.

  • Changed
    Changes some internal API to prevent triggering of Apple's private API checks. (#7751)
  • Fixed
    Fixes an issue where the page index was not shown in certain cases in thumbnail mode. (#7740)
  • Fixed
    Fixes an issue with changing the appearance mode in PSPDFTabbedViewController. (#7658)
  • Changed
    Improvements to the rendering engine and speed enhancements. (#7760)

5.5.2 - 5 Sep 2016

  • Added
    Adds option to change the color for the thumbnail button in page label. (#7696)
  • Fixed
    Fixes an issue where auto page mode with curl transition could cause the document to be presented in single page mode instead of double page mode. (#7586)
  • Fixed
    Fixes the eraser overlay when using an Adonit stylus. (#7535)
  • Fixed
    Fixes an issue where a highlight annotation was rendered with a border. (#7618)
  • Fixed
    Fixes issues where clearing of text field form elements was not working correctly. (#7623)
  • Fixed
    Fixes an issue where some documents couldn't be exported or printed. (#7585)
  • Changed
    The page label is now displayed instead of the page index in the thumbnail view, when available. (#7671)

5.5.1 - 23 Aug 2016

  • API
    PSPDFActivityViewController is now public. (#7529)
  • Changed
    Checks for the NSMicrophoneUsageDescription, NSCameraUsageDescription and NSPhotoLibraryUsageDescription keys in the app Info.plist. Will warn if missing and stop the functionality on iOS 10 if linked with SDK 10. Learn more at https://pspdfkit.com/guides/ios/current/getting-started/permissions/ (#7407)
  • Changed
    Checks the linked SDK with the expected value and warns if there is a mismatch. (#7407)
  • Changed
    Improves the view state restoration logic when a view controller is presented/dismissed above the PSPDFViewController. (#7450)
  • Fixed
    Fixes an issue where the playback duration of a sound annotation was wrong in some cases. (#7401)
  • Fixed
    Fixes an issue where files were no longer monitored for file changes after they have been saved once. (#7319)
  • Fixed
    Fixes an issue where file handlers where not properly closed in some cases. (#7319)
  • Fixed
    Fixes an issue where invoking a cached PSPDFSearchViewController without changing search terms could lead to missing highlights. (#7445)
  • Fixed
    Fixes an issue where thumbnail generation could crash if the size of the first page couldn't be read. (#7443)
  • Fixed
    Fixes an issue where a popover might be incorrectly re-positioned after keyboard presentation. (#7456)
  • Fixed
    Fixes an issue where PSPDFLibrary.saveReversedPageText couldn't be disabled. (#7519)
  • Fixed
    Fixes an issue where frequent rendering passes could cause a crash. (#7570)

5.5.0 - 28 Jul 2016

  • Added
    Adds new helpers methods to get and set the default annotation username. (#7265)
  • Changed
    Renders appearance stream for Square and Circle annotations if one is set. (#7327)
  • Changed
    Improves performance around rendering JPEG 2000 and annotation parsing.
  • Changed
    Improves content search within annotations to no longer search generated text like "Ink Annotation". (#7270)
  • Changed
    Improves compatibility when flattening documents with non-standard headers. (#7212)
  • Changed
    Improves annotation change updates. (#6196)
  • Changed
    Improves search popover placement logic when the toolbar is not at the top of the screen. (#7233)
  • Changed
    Improves logic around copying forms via the processor when the source document has invalid form entries. (#7273)
  • Changed
    Improves scrolling performance of the thumbnail view. (#6503)
  • Changed
    Improves alert presentation in popovers. (#7277)
  • Changed
    Improves JPEG2000 decoding performance. (#7307)
  • Changed
    Improves Wikipedia language resolving and popover presentation. (#7322)
  • Fixed
    Fixes an issue while processing documents with unsaved annotations. (#7135)
  • Fixed
    Fixes possible logging about unsatisfiable constraints when the view is not full screen. (Z#3346)
  • Fixed
    Fixes the placeholder for when there is no document sometimes being displayed too low when the view is not full screen. (#7239)
  • Fixed
    Fixes an issue with custom thumbnail layouts that are not based on PSPDFThumbnailFlowLayout. (#7249)
  • Fixed
    Fixes an issue where plugin ordering was reversed. Make sure to check if plugins are still called after this update. (#7268)
  • Fixed
    Fixes an issue where Swift-based plugin subclasses were not always automatically detected if they were based on an existing plugin class. (#7268)
  • Fixed
    Fixes an issue where incorrect annotation search results could be returned. (#7343)

5.4.1 - 8 Jul 2016

  • API
    activityViewControllerWithSender: on PSPDFViewController allows to get a preconfigured activity view controller instance. (#7147)
  • API
    Exposes application on the PSPDFKit singleton to customize URL opening behavior. (e.g. you can now override canOpenURL:)
  • Changed
    Improves exporting of images that are mirrored in the PDF document. (#7089)
  • Changed
    Improves color generation for knobs. (#6852)
  • Changed
    Improves annotation cell layout in edit mode. (#4158)
  • Fixed
    Fixes a regression in iOS 10 where UIActivityController would crash on presentation. (rdar://27261367, #7181)
  • Fixed
    Fixes an issue while processing documents with unsaved annotations. (#7135)
  • Fixed
    Fixes an issue with extracting embedded files. (#7154)
  • Fixed
    Fixes an issue with propagating isEncrypted properly. (#7153)

5.4.0 - 1 Jul 2016

  • API
    renderOptions now has an associated type. The property has been deprecated in favor of setRenderOptions:type: and getRenderOptionsForType:context: where context depends on the type. This also removes the previous subclassing hook renderOptionsForPage:. Subclass getRenderOptionsForType:context: directly instead if you need this kind of advanced behavior.
  • Changed
    Improves document parsing to be both faster and cover more edge cases with non-standard-compliant documents. (#6820)
  • Removed
    Removes workaround for rdar://23285766 (Swift over-optimization) as this has been fixed in Swift 2.2. (#6880)
  • Added
    Adds sqlite3 compile option checks for THREADSAFE, ENABLE_FTS3, ENABLE_FTS3_PARENTHESIS. (#6950)
  • Added
    Adds support for creating a temporary data provider to PSPDFFileManager. This enables the PSPDFProcessor to use a secure temporary file, if wanted. (#7056)
  • Changed
    Improves UIAppearance support on PSPDFLabelView and PSPDFBackForwardButton and freshens up the default design. (#7073)
  • Changed
    Improves annotation editing behavior for protected documents. (#6885)
  • Changed
    Improves the layout of segmented controls when space is limited. (#6889)
  • Changed
    Improves loading of asset annotations. (#6879)
  • Changed
    Improves handling of outline view. (#6902)
  • Changed
    Improves PSPDFProcessor API to allow processing into a id<PSPDFDataSink>. (#7042)
  • Changed
    Improves rendering performance in certain situations. (#6944)
  • Changed
    Improves accessibility around cells with sliders. (#7046)
  • Changed
    Improves handling of corrupt cross reference tables in PDFs. (#6838)
  • Changed
    Improves precision when writing highlight annotations, leading to better highlightedString results. (#6652)
  • Changed
    Improves height calculation logic for the page range selection view controller. (#7104)
  • Changed
    Improves containsAnnotations no longer counts already (soft) deleted annotations. (#6956)
  • Changed
    Improves reliability of aspect-locked resizing with PSPDFGuideSnapAllowanceAlways. (#7088)
  • Changed
    Improves rotation animations in continuous scrolling mode. (#7077)
  • Changed
    Improves text markup annotations rendering for rotated page. (#6477)
  • Changed
    Improves zoom behavior when searching for annotations. (#6890)
  • Changed
    Silences a missing license feature warning when toggling the HUD. (#7018)
  • Fixed
    Fixes subclassing of text overlay annotations. (#6954)
  • Fixed
    Fixes a visual glitch during PSPDFBackForwardButton fadeout animation. (#7103)
  • Fixed
    Fixes an issue where statically linked sqlicipher library conflicted with OS version dynamically linked in PSPDFKit.framework. (#6929)
  • Fixed
    Fixes an issue where a document couldn't be unlocked due to a overflowing integer in the document. (#6919)
  • Fixed
    Fixes an issue with sqlite3_errstr not being available before iOS 8.2. (#6970)
  • Fixed
    Fixes an issue where setting PSPDFDocumentSharingOptionPageRange could trigger an assertion while printing. (#6953)
  • Fixed
    Fixes an issue where schemes where interpreted case sensitive when creating URL actions on iOS 9. (#6960)
  • Fixed
    Fixes an issue where the add bookmark button was not presented in the bookmarks popover. (#7011)
  • Fixed
    Fixes an issue where incorrect bookmark name was displayed on the list right after adding new bookmark. (#7026)
  • Fixed
    Fixes an issue where a free text annotation couldn't be embedded in a document that contains invisible text. (#7008)
  • Fixed
    Fixes an issue where a page couldn't be properly rotated to 0. (#7044)
  • Fixed
    Fixes an issue where setting the document on controller during presentation transition could result in broken page navigation. (#7054)
  • Fixed
    Fixes an issue where NSData backed files with dots in their title where not exported correctly when sharing. (#6904)
  • Fixed
    Fixes an issue on trying to strip empty pages. (#7015)

5.3.8 - 6 Jun 2016

  • Added
    Adds PSPDFRenderInteractiveFormFillColorKey as a render option to make the form element color override customizable. (#6529)
  • Added
    Adds a better log message if a document is encrypted and annotations can't be embedded. (#6765)
  • Added
    Adds cropBox and mediaBox to PSPDFPageInfo. (#6745)
  • API
    The vertices property of PSPDFImageInfo is now boxed instead of a raw pointer array. (#6831)
  • API
    The public constructor for PSPDFImageInfo has been removed - this class should never be manually constructed. Instead, get it from PSPDFTextParser. (#6831)
  • Changed
    Improves rendering performance for some complex documents. (#6686)
  • Changed
    Improves the position of the filter UI element in the thumbnail view mode. (#6651)
  • Changed
    Improves security in various critical areas of the framework via a code audit. (#6774)
  • Fixed
    Fixes a regression that raised an exception when changing the font or resizing a free text annotation. (#6709)
  • Fixed
    Fixes an issue where UI was clipped in a scrollable thumbnail bar in rare cases. (#6695)
  • Fixed
    Fixes an issue where multiple embedded files would not be correctly displayed. (#6784)
  • Fixed
    Fixes an issue related to JavaScript and forms that could lead to a type mismatch for the contents property. (#6781)
  • Fixed
    Fixes an issue where bar button items would not always correctly update when using PSPDFTabbedViewController. (#6789)
  • Fixed
    Fixes an issue where content would be inset to account for the tabbed bar even when the tabbed bar was hidden. (#6787)
  • Fixed
    Fixes an issue where during annotation resize the wrong coordinates where used in rare conditions. Replaces -[PSPDFResizableView centerPointForOuterKnob:] with -[PSPDFResizableView centerPointForOuterKnob:inFrame:]. (#6828)
  • Fixed
    Fixes an issue where some Free Text Annotations disappeared while editing. (#6826)

5.3.7 - 27 May 2016

  • Added
    Adds API to customize the color pickers. (#4502)
  • Added
    Adds API titleForDocumentAtIndex: as subclassing hook on PSPDFMultiDocumentViewController. This can be used to customize tab bar titles. (#6693)
  • Added
    Adds support for scaling a page in PSPDFProcessor.
  • Added
    Adds support for changing the CropBox or MediaBox in PSPDFProcessor.
  • Changed
    Improves the PSPDFKit shared instance to no longer automatically load, which can slightly improve startup performance. (#6682)
  • Fixed
    Fixes a regression that could prevent the 'more' menu from appearing in the document editor. (#6619)
  • Fixed
    Fixes an issue where note annotations rendered as a black icon when embedded into a document. (#6411)
  • Fixed
    Fixes an issue where saved values in the text fields being hidden in other PDF readers. (#6589, #6593)
  • Fixed
    Fixes an issue where text form fields (rotated) were using a huge font size for the content. (#6595)

5.3.6 - 18 May 2016

  • Changed
    Updates OpenSSL to 1.0.2h.
  • Added
    Adds a delegate method (documentSharingViewController:willShareFiles:) that allows to files/file names before they are shared. (#6597)
  • Added
    Adds a pageMargins setter on PSPDFNewPageConfigurationBuilder. (#6566)
  • Changed
    Improves the PSPDFProcessorConfiguration initializer for creating a completely new document. (#6566)
  • Changed
    Improves the handling of annotations when the delegate does not return them via pdfViewController:shouldSelectAnnotations:onPageView:. (#6143)
  • Changed
    Improves touch handling logic for forms that are readonly. (#6143)
  • Changed
    Improves link handling inside an web or text view within sheet presentation of modal view controllers by working around an UIKit bug. (rdar://26295020, #6580)
  • Changed
    Improves performance, placement and aspect ratio handling of annotations during resizing. (#6556)
  • Changed
    Improves keyboard handling for form elements. (#6551)
  • Fixed
    Fixes a regression that could cause issues with searching via PSPDFSearchViewController. (#6605)
  • Fixed
    Fixes an issue where resizing multiple annotations could lead to an assertion. (#6528)
  • Fixed
    Fixes an issue where page layout could be offset too much after rotating in continuous scroll mode. (#6563)
  • Fixed
    Fixes an issue where flattened annotations were misplaced/rotated in a particular non-compliant document. (#6510, #6600)

5.3.5 - 13 May 2016

  • API
    PSPDFProcessorConfiguration is now a failable initializer if the document is not valid. Previously this did throw an exception. (#6557)
  • API
    The render manager has been streamlined and the renderer accessor has been made readonly and deprecated. (#6498)
  • Added
    Adds the option to share images of the current page via PSPDFDocumentSharingOptionImage. (#2793)
  • Added
    Adds an option to choose the last line alignment of thumbnail layouts. (#6502)
  • Added
    Adds configurable PSPDFSettingsViewController that allows to change some UX aspects of PSPDFViewController. (#6082)
  • Added
    Adds PSPDFBrightnessManager that controls screen brightness. (#6082)
  • Changed
    Improves the way how speech synthesis detects the voice it uses. (#6481)
  • Changed
    Improves gesture detection in the color picker. (#5669)
  • Fixed
    Fixes an issue where the text to speech voice sounded very robotic (#6481)
  • Fixed
    Fixes an issue where selecting an annotation which had no color set could lead to an assertion. (#6496)
  • Fixed
    Fixes an issue where the processor didn't rotate the document correctly. (#6493)
  • Fixed
    Fixes an issue where flattened annotations were misplaced. (#6510)
  • Fixed
    Fixes an issue where the document provider rotation wasn't taken into account on exporting with the processor. (#6516)
  • Fixed
    Fixes an issue where the rotation animation did not look right. (#6131)
  • Fixed
    Fixes an issue that could lead to presented view controllers being mistakenly dismissed. (#6512)
  • Fixed
    Fixes an issue that could lead to crashes when calling description on some model objects. (#6524)
  • Fixed
    Fixes an issue with "light" weight font was selected in font substitution process instead of the missing "regular" weight font. (#6487)
  • Removed
    Deprecates configuration methods on PSPDFBrightnessViewController. Use PSPDFBrightnessManager instead. (#6082)

5.3.4 - 4 May 2016

This version has been compiled with Xcode 7.3.1.

  • Added
    Adds a convenient way to enforce aspect ratio preserving annotation resizing. See AspectRatioConservingResizingExample.swift and the new PSPDFGuideSnapAllowanceAlways constant. (#6373)
  • Added
    Adds logic to automatically stop recording sound annotations. The default is 5 minutes. This can be changed through -[PSPDFConfiguration soundAnnotationTimeLimit]. (#4920)
  • Added
    Adds a file watcher: PSPDFDocument now notifies the delegate when underlying files are updated by another source. (#6399)
  • Changed
    Set correct class visibility for PSPDFNewPageConfigurationBuilder.
  • Changed
    Improves the way search results are displayed. (#6231, #6011)
  • Changed
    Improve performance when opening the Thumbnail view. (#5874, #6148)
  • Changed
    Improves error handling for digital signatures verification. (#6253)
  • Changed
    Improves the PSPDFProcessor API and clarifies the save options. (#6463)
  • Fixed
    Fixes an issue that caused a crash during search. (#6425)
  • Fixed
    Fixes an issue that caused extensive CPU usage when no document was set on a PSPDFViewController. (#6418)
  • Fixed
    Fixes an issue where the annotation browser was rendering text annotations without whitespaces in some cases. (#6273)
  • Fixed
    Fixes an issue where the page label could incorrectly capture certain touches. (#6360)
  • Fixed
    Fixes an issue where the minimum annotation size would not be correctly enforced after interface rotation (#6382).
  • Fixed
    Fixes an issue where note annotations weren't correctly embedded while processing. (#6411)
  • Fixed
    Fixes an issue where the duration could be displayed as indeterminate in rare cases for m3u8 playlists. (#6450)

5.3.3 - 22 Apr 2016

  • Changed
    The document editor API now supports new document creation. (#6262)
  • Changed
    PSPDFViewController now honors the initial page setting, even for password protected documents. (#6146)
  • Changed
    Improves page movement UI in the document editor. (#6159)
  • Changed
    Localization updates and fixes.
  • Changed
    Improves margin handling in certain view modes and adds a new example - DynamicMarginsExample. (#6294)
  • Fixed
    Fixes an issue where annotations were not always copied correctly in the document editor when the page already exists. (#6216)
  • Fixed
    Fixes an issue where screen brightness slider had wrong initial value. (#6245)
  • Fixed
    Fixes an issue where sound and video gallery items did not stop playing when changing view modes. (#5997)
  • Fixed
    Fixes an issue where umlauts where stripped after saving a choice annotations. (#6285, #6323)
  • Fixed
    Fixes an issue where the wrong value was saved when selecting an option from a choice annotation. (#6285)
  • Fixed
    Fixes an issue where a presented JavaScript alert could be automatically dismissed after presentation. (#5996)
  • Fixed
    Fixes an issue in certain documents where text selection contained more text that was actually selected. (#6213)
  • Fixed
    Fixes an issue with watermarking multiple (50+) pages using the PSPDFProcessor. (#6031)
  • Fixed
    Fixes an issue where a gallery displayed in a popover would not switch into fullscreen on double-tap. (#6296)
  • Fixed
    Fixes an issue that stopped audio playback from other apps during framework initialization. (#6330)
  • Fixed
    Fixes an issue where landscape pages didn't rotate correctly. (#6265)
  • Fixed
    Fixes an issue where a deprecated syntax variant of the JavaScript mailDoc function was handled incorrectly. (#6331)
  • Fixed
    Fixes an issue where flattening and removing annotations at the same time caused problems. (#6344)

5.3.2 - 14 Apr 2016

  • Added
    Adds an API to customize the controller state UI added in 5.3.0. (#6106)
  • API
    The undo methods in PSPDFAnnotationStateManager are now deprecated, use PSPDFUndoController on PSPDFDocument instead. (#6177)
  • Changed
    If annotations are changed programmatically, they are now correctly updated even if they have just been created via the annotation toolbar. (#6195)
  • Changed
    Annotation preset properties for disabled properties are no longer applied. (e.g. disabling fill color will no longer set fill color when choosing a preset) (#6233)
  • Changed
    The processor now supports copying forms from source and any external document to the generated document. (#5975)
  • Fixed
    Fixes incorrect assertions on some document editor controllers on iOS 8. (#6188)
  • Fixed
    Fixes an issue where delayed document setting could result in missing updates on the scrubber bar. (#6210)
  • Fixed
    Fixes an issue that resulted in a crash in the page range selection on iOS 8. (Z#3370)
  • Fixed
    Fixes an issue when checking for a default password upon annotation saving.
  • Fixed
    Fixes an issue that prevented PSPDFUndoControllerRemovedUndoActionNotification from being sent out. (#6177)
  • Fixed
    Fixes an issue where thumbnail cells had a wrong image position. (#6174)
  • Fixed
    Fixes selection and menu placement for non-editable note annotations. (#6215)
  • Fixed
    Fixes an issue where software dimming view wasn't correctly positioned. (#6203)

5.3.1 - 8 Apr 2016

  • API
    The variant that returns NSData on PSPDFProcessor.generatePDFFromConfiguration now correctly maps into Swift with a throws. (#6051)
  • Changed
    PSPDFDocument has a new helper containsAnnotations which scans the document if it contains any relevant annotations (excluding links and widgets/forms). (#6099)
  • Changed
    Pages are now positioned between fixed bars in page curl mode, ensuring no scrolling is needed if HUD elements or system bars do not auto-hide. (#6040)
  • Changed
    The Document Editor now preserves as much as possible from an existing outline. (#5993)
  • Added
    Adds new document editing examples to 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)
  • Changed
    Increase memory limit for images to allow rendering more complex documents. (#5677)
  • Changed
    Uses the Photos framework instead of the Assets Library framework.
  • Changed
    PSPDFDocument now implements UIActivityItemSource in a way that is compatible with Facebook, Twitter, Sina Weibo and Tencent Weibo. (#2739)
  • Added
    Adds a new PSPDFLinkActionInlineBrowserLegacy that forces the use of PSPDFWebViewController even on iOS 9 where the new Safari View Controller is available. This might be desirable in environments that need custom hooks on URLs which as of iOS 9 is not possible in SFSafariViewController. (#5744)
  • Changed
    Better error handling when switching tokenizers in PSPDFLibrary. (#5771)
  • Changed
    Searching now works better across new lines. (#5751)
  • Changed
    The loupe now resets initial magnification after the line loupe mode has been used. (#5789)
  • Changed
    Optimizes the size of thumbnails in the scrubber bar for very wide page layouts. (#4180)
  • Changed
    Form choice fields with long labels are now fully displayed and switch to multi-line cells automatically. (#5796)
  • Changed
    Improves interface performance when selecting annotations that are backed by complex appearance streams. (#5912, #5913)
  • Changed
    Annotation hit testing extension area has been decreased to allow more precise input. (#5846)
  • Changed
    Improves annotation toolbar autosizing. (#5854)
  • Fixed
    Fixes an issue where the “Dictionary” popover could be incorrectly placed in landscape. (Z#3167)
  • Fixed
    Fixes an issue where we would try to open Safari View Controller for file URLs, which are not supported. (#5837)
  • Fixed
    Fixes an issue where sound annotations would play without making any sound if the Ring/Silent switch is set to silent. (#5672)
  • Fixed
    Fixes an assertion that could be triggered when displaying a document at a size that would only allow for a single thumbnail to be displayed in the scrubber bar. When this condition is met, we now log a warning instead. (#5686)
  • Fixed
    Fixes an issue where a PSPDFStatusHUDView progress could start flickering in rare cases. (#5703)
  • Fixed
    Fixes layout issues with the search bar in the Kiosk example while rotating. (#2350)
  • Fixed
    Fixes an issue where the wrong page could be restored when switching the page mode with page curl transition while margins are set. (#5717)
  • Fixed
    Fixes an issue with a wrong zooming behavior in certain special cases around search results. (#5699)
  • Fixed
    Fixes an issue related to page labels and Korean localization. (Z#3176)
  • Fixed
    Fixes an issue where the outline view did not refresh its size properly. (#5737)
  • Fixed
    Fixes a regression where applying a PSPDFViewState in viewWillAppear: fails to restore the viewport in page–scroll–mode. (Z#3202)
  • Fixed
    Fixes a regression where manually overriding the rotation of the PSPDFPageInfo object via setRotation:forPage: did not work in all cases. (#5659)
  • Fixed
    Fixes an issue where under certain rare cases around updating configuration while rotation is active we didn't show link borders when they should be visible. (#5818)
  • Changed
    Works around an issue in Xcode 7.3 that broke the Visual Debugger. (rdar://25311044)
  • Changed
    Works around a bug in GLKView on iOS 9 that could cause a crash under certain rare setups. (Z#3251)
  • Removed
    Deprecates the viewState property and setViewState:animated: method on PSPDFViewController in favor of two new instance methods: captureCurrentViewState and applyViewState:animateIfPossible:, which are more explicit about how to use them and what to expect when doing so.

5.2.1 - 26 Feb 2016

  • Changed
    PSPDFLibrary now allows setting a custom tokenizer. (#5443)
  • Changed
    Improved search results for PSPDFLibraryMatchExactPhrasesOnlyKey and PSPDFLibraryMatchExactWordsOnlyKey. (#5443)
  • Changed
    Images that are too large for menu items are now automatically resized to fit. (#5586)
  • Changed
    Scrolling to a search result now tries to center the result on the page, instead of just making it visible. (#5542)
  • Changed
    Be more selective about what annotation manager states we need to commit before a save event. (Z#3006)
  • Changed
    Sound annotation control buttons now have a larger hit target. (Z#2984)
  • Changed
    The new property originalFile on PSPDFDocument allows you to specify a source file if the PDF is the result of a conversion, so for actions such as Open In or Send via Email the original file can be selected. (#5531)
  • Changed
    Empty input is now accepted on form fields with number formatting. (#4934)
  • Added
    Adds support for animated GIFs that have a variable frame rate. (#893)
  • Fixed
    Fixes an issue where zooming to a rect misses the target when the view controller is set to continuous vertical scrolling. (#5509)
  • Fixed
    Fixes an issue where plugin classes were not correctly detected, if they inherited from a PSPDFPlugin adopting class. (#5592)
  • Fixed
    Fixes an issue where setting the page could fail when set within viewDidAppear: for page curl mode on landscape. (#5535)

5.2.0 - 15 Feb 2016

  • Changed
    The SDK is now only requires app-extension-safe API and automatically detects if in extension mode. (#2954)
  • Changed
    Text and annotation selection now use tintColor, enabling easier theming by inheriting color from superviews. Selection color can be customized individually by setting tintColor on PSPDFTextSelectionView, PSPDFSelectionView and PSPDFResizableView.
  • Changed
    The annotation selection knobs have been redesigned so they are more easily visible on various backgrounds. (#5139)
  • Changed
    The framework now shows guides while drawing ovals and rectangles, making it easier to draw circles and squares. (#5376)
  • Changed
    Color presets can now be reset back to their default value by long pressing on the preset button. (#2891)
  • Changed
    PSPDFProcessor now ignores annotations that aren't in the specified page ranges. (Z#2873)
  • Changed
    Simply reselecting an annotation will no longer generate a change notification for the bounding box. (#5444)
  • Changed
    Improves object selection prioritization to objects that are not yet saved. This improves the experience when creating new annotations. (#5305)
  • Changed
    Improves settings controller bridge of the Adonit Stylus SDK. (Z#2960)
  • Changed
    Improves shape stability during drawing on certain modern devices. (#5429)
  • Changed
    Improves logic when saving is invoked while a undo change notification is processed. (#5451)
  • Changed
    Improves the snap to aspect ratio behavior during resizing. (#5161)
  • Fixed
    Fixes an issue where executing JavaScript could result in retaining parts of the model longer than necessary. (#5470)
  • Fixed
    Fixes an issue where the inline search incorrectly highlighted search terms on rotated documents. (#5402)
  • Fixed
    Fixes minor color selection inconsistency on the color picker. (#5268)
  • Fixed
    Fixes minor inconsistencies regarding the sequence of PSPDFAnnotationStyleViewControllerDelegate calls. (#5380)
  • Fixed
    Fixes memory issues on the annotation inspector. (#5399)
  • Fixed
    Fixes an issue related to PSPDFThumbnailBarModeScrubberBar and a particular unusual use of the tabbed controller. (#2873)
  • Fixed
    Fixes an issue related to zooming while night-mode is enabled. (#5410)
  • Fixed
    Fixes an iOS 8 code signing issue in strip-framework.sh. (Z#2903)
  • Fixed
    Fixes an issue when a document that is not part of the tab bar is removed from the tab bar programmatically. (#5452)

5.1.5 - 1 Feb 2016

  • Changed
    The color name part of the menu identifier item is no longer localized. (Z#2916)
  • Fixed
    Fixes an issue where a signature couldn't be validated if no PSPDFSigner was configured. (Z#2911)
  • Fixed
    Fixes an issue where a subscription license would stop working once expired. (#5327)

5.1.4 - 28 Jan 2016

  • Changed
    Smaller binary size. See https://pspdfkit.com/guides/ios/current/faq/framework-size/ and the bitcode section for more details. (#5225)
  • Changed
    Improves performance and reliability of full-text search previews. (#5172, #5211)
  • Changed
    Pasting annotations will now set a new UUID on the name field. (Z#2854)
  • Changed
    The text parser now filters text outside of page bounds.
  • Changed
    Sepia and night mode can now be properly disabled. (#5263)
  • Changed
    Better handling of extremely large images that exceed the device capabilities to decompress. (#5243)
  • Fixed
    Fixes a few rendering edge cases. (#5227)

5.1.3 - 22 Jan 2016

  • Changed
    Various internal optimizations to improve performance and decrease binary file size. (#5157)
  • Changed
    Improves note annotation positioning in certain cases. (#3685)
  • Changed
    Improves memory usage on using external TTC fonts in a PDF. (#5197)
  • Changed
    Searching a document with annotations now works more reliably and correct, especially in regards to special characters like .. (#5143)
  • Changed
    The ink eraser now sends out change notifications when existing ink annotations are modified (PSPDFAnnotationChangedNotification). (#5170)
  • Changed
    JavaScript format actions are now triggered when a signature is created on a form signature element. (#5184)
  • Changed
    A long-press no longer calls pdfViewController:didTapOnAnnotation:... - only a regular tap does. (Z#2844)
  • Changed
    After saving an annotation, the controller now automatically scrolls to the bottom. (#643)
  • Changed
    When using PSPDFPageTransitionScrollContinuous, the view states that can be obtained from PSPDFViewController will now contain a viewport even when fully zoomed out. This preserves the scrolling position during rotation and makes it easier for you to capture and subsequently restore the exact reader’s location in a document. (#5052)
  • Fixed
    Fixes a potential race condition when rendering pages and calling methods from PSPDFProcessor at the same time while using a data provider. (Z#2768)
  • Fixed
    Fixes an rare issue when invalid points are sent via touchesMoved: to our draw view. (Z#2780)
  • Fixed
    Fixes an issue where the text alignment was not correctly preserved when serializing to JSON. (#5138)

5.1.2 - 15 Jan 2016

  • Changed
    We improved page layout and HUD handling in various configuration modes and fixed a number of subtle issues that were found in some less common combinations. (#3689, #3229, #5043, #5063)
  • Changed
    strip-framework.sh now also copies debug symbols. This works around an issue with the COPY_PHASE_STRIP build setting set to YES and using a "Copy Files" build phase to copy debug symbols. See step 3) of Integrating PSPDFKit - Dynamic Framework for updated integration instructions.
  • Changed
    Improved reliability of PSPDFProcessorStripEmptyPagesKey and eliminated need for PSPDFWhitespaceTrimmerPerformRenderComparison option.
  • Fixed
    Fixes an issue where the view state restoration page boundary check was insufficient in certain cases. (#5018)
  • Changed
    Various PDF rendering correctness and performance updates. (#5024)
  • Removed
    Remove deprecated method PSPDFSetLicenseKey for setting the license key. Use +[PSPDFKit setLicenseKey:] instead.
  • Changed
    Images from stamp annotations are now included in JSON via a base64-encoded PNG. (#5060)
  • Changed
    Improved performance of the PDF renderer and further improves compatibility with non-standard documents. (#5025)
  • Changed
    The PSPDFKit singleton now offers a hook to register your own logging handler - see the logHandler property.(#5093)
  • Changed
    The ExtraVerbose logging level is now Verbose and Verbose is now Debug. (#5093)
  • Changed
    The pdfViewController:didEndPageDragging:willDecelerate:withVelocity:targetContentOffset: delegate now also reports changes to pagedScrollView in paged mode. (#4924)
  • Changed
    The pdfViewController:shouldScrollToPage: delegate is no longer called during reloadData. This was unexpected and could cause issues if NO was returned in this specific case. (#4923)
  • Changed
    Reduces memory pressure for the disk cache when using the SDK in combination with Appcelerator Titanium. (#5133)
  • Fixed
    Fixes for highlight annotation selecting too much text at the end of a paragraph. (#5053)
  • Fixed
    Fixes an issue when using the PSPDFLibrary with an empty search string. (#5058)
  • Fixed
    Fixes an issue where importing annotation JSON could restore actions to a different type. (#5060)
  • Fixed
    Fixes an issue where white lines appeared in a document. (#5095, #5026)
  • Fixed
    Fixes an issue when parsing certain documents with embedded forms that contain JavaScript. (#5077)
  • Fixed
    Fixes an issue about returning the wrong UID in the results of the PSPDFLibrary. (#5082)
  • Fixed
    Fixes an issue where importing annotation JSON could restore actions to a different type. (5060)
  • Fixed
    Fixes an issue with flattening annotations and the text not showing up. (#5109)
  • Fixed
    Fixes an issue where a change notification for an annotation could be sent before it was added to the document. (#5098)
  • Fixed
    Fixes view controller setup and adaptivity issues with the split screen example. (#4766)
  • Fixed
    Fixes an issue where a change notification for an annotation could be sent before it was added to the document. This didn't cause any bugs but might affected 3rd-party annotation provider implementations. (#5098)
  • Fixed
    Fixes an issue where the color picker might show an incorrect color when first being presented. (#5142)

5.1.1 - 21 Dec 2015

  • Changed
    Various blocks have been declared with @noescape for even better Swift compatibility. (#4996)
  • API
    Hide properties for visibility of document and page label on PSPDFHUDView, as they need to be controlled in PSPDFConfiguration. (#4989)
  • API
    The shouldAutomaticallyAdjustScrollViewInsets configuration option has been extended with an additional mode and renamed to scrollViewInsetAdjustment. (#4461)
  • Changed
    Improved rendering quality for small pages (thumbnails). (#4478)
  • Changed
    Improved support for longer messages in PSPDFStatusHUD. (#4990)
  • Changed
    Works around a compatibility problem with RubyMotion.
  • Fixed
    Fixes an issue where the pageLabelEnabled configuration could be ignored in some cases. (#4989)
  • Fixed
    Fixes an issue where the image stamp content could disappear after moving or resizing the annotation. (#4984)
  • Fixed
    Fixes a potential crash when extracting file streams from file annotations. (#4978)
  • Fixed
    Fixes an issue where subclasses of PSPDFBookmark were not used in all cases.
  • Fixed
    Fixes a small issue where scrollToPage:document:animated in the thumbnail controller advertised document as nullable but was declared as nonnull.
  • Fixed
    Fixes potential page layout issues in vertical paged mode with fit to width enabled. (#4765)
  • Fixed
    Fixes an issue where a certain font could be mapped to a different one on device, causing slightly offset rendering. (#4968)

5.1.0 - 16 Dec 2015

PSPDFKit 5.1 focusses on improving the drawing experience, easier integration, better iOS 9 adaptivity and features a greatly improved night mode.

  • Changed
    PSPDFKit is now compiled and requires Xcode 7.2.
  • Changed
    We streamlined our manual integration process - take a look at our new integration guide for details. We also provide a v5.0 to v5.1 integration steps migration guide.
    • Changed
      PSPDFKit.framework now includes its app symbols. This enables you to receive symbolicated crash logs from Apple after uploading your app to the App Store.
    • Changed
      We now also ship SDK symbols to allow better crash identification. (Only available for license holders, see PSPDFKit.framework.dSYM).
  • Changed
    We added pressure sensitivity to drawing and erasing. Natural lines can use pressure data from the Apple Pencil, 3D touch displays and some other supported styluses. The ink eraser radius can be adjusted based on the finger surface area or Apple Pencil altitude angle. (#4070, #1797)
    • Changed
      Note: We now use a custom data structure to represent annotation points for certain annotation types. If you are accessing pointArray, pointSequences, lines or similar annotation properties, be sure to update your code to use PSPDFDrawingPoint from now on.
  • Changed
    PSPDFKit now comes with a few built in appearance modes, that include an extended night mode. The modes can be set and customized via PSPDFAppearanceModeManager. PSPDFBrightnessViewController has also been extended with additional UI for this feature. (#3000, #4794)
  • API
    Various smaller updates around toggling view controllers in PSPDFAnnotationStateManager. (#4642)
  • API
    editableAnnotationTypes has been moved from PSPDFDocument to PSPDFConfiguration and is now a simple NSSet. (#4642)
  • API
    Creating text overlay annotations requires pageRotation instead of rotationTransform now. (#4748)
  • Changed
    Bookmarks are now sorted based on page order. This can be controlled via the new bookmarkSortOrder property in PSPDFConfiguration. (#4503)
  • Changed
    The annotation toolbar now has a new "Arrow" tool which is a variation of line with a predefined arrow head. (#4479)
  • Changed
    Manually rotating pages is now possible again. See PSCRotatePageExample. (#4715)
  • Changed
    The document view is now adaptive, even in situations where the keyboard is visible from another app in a multi-tasking environment. (#4714)
  • Changed
    The document view now correctly adapts to keyboard frame size changes, mostly from 3rd-party keyboards. (#4714)
  • Changed
    We added new items to the free text annotation inputAssistantItem, enabling you to toggle the free text accessory view visibility and adjust the font size even while the free text accessory view is hidden. (#4025)
  • Changed
    The undo and redo buttons now get compacted into one button when the annotation toolbar space is limited. (#3994)
  • Changed
    Various classes that should not be subclasses now declare this explicitly to prevent usage mistakes. (#4781)
  • Changed
    Styluses without touch classification, e.g. Adonit styluses, are now using the eraser correctly. (#4658)
  • Changed
    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)
  • Changed
    The stylus selection popover now resizes itself automatically. (#4729)
  • Changed
    Improves popover resizing for the font picker. (#4554)
  • Changed
    Improves error reporting in case email is not configured on the device. (#4555)
  • Changed
    Improves undo registration when using the free text tool. (#4686)
  • Changed
    Improvements to text-selection and text-extraction on rotated documents. (#4748)
  • Changed
    The modal search view controller now automatically focusses the search bar to ensure the keyboard is visible.
  • Changed
    PDF parsing/rendering improvements for older, non-compliant versions. (#4903)
  • Changed
    Form buttons that are neither choice nor radio button styles are no longer highlighted to match Adobe Acrobat behavior. (#4929)
  • Changed
    Improves hit testing for small geometric annotations (Square, Circle) (#4937)
  • Changed
    Reduced memory usage and better low memory handling (#4911)
  • Changed
    Works around a regression in iOS 9 where section backgrounds on table views could be incorrectly styled. (rdar://23904182, #1100)
  • Changed
    The annotation toolbar now correctly avoids the tabbed bar during layout. (#4448)
  • Fixed
    Fixes nullability warnings created by certain stylus drivers. (#4670)
  • Fixed
    Fixes an issue with glyph positioning for documents with a non-null origin. (#4657)
  • Fixed
    Fixes an issue where the link annotation editor would not create a correct link annotation under some situations. (#4750)
  • Fixed
    Fixes an issue where certain unicode (emoji) characters in the PDF could be converted into invalid UTF-8. (#4946)
  • Fixed
    Fixes an issue where the annotation inspector could be presented at a slightly smaller size and than jump to the correct size (#4965).
  • Fixed
    Fixes an issue where certain unicode (e.g. emoji) characters in the PDF could be converted into invalid UTF-8. (#4946)
  • Fixed
    Fixes an issue where copy/pasting free text annotations could lead to an issue with rendering until the copy was modified. (#4973)
  • Added
    Adds Croatian localization. (#4956)

5.0.3 - 20 Nov 2015

  • API
    PSPDFSearchViewController has a new property to control restoring the last search result: restoreLastSearchResult. (Z#2411)
  • Changed
    Improve text extraction for certain documents which produces too many newlines. (#4409)
  • Changed
    Adjusted gallery Vimeo video playback for Vimeo API changes. (#4530)
  • Changed
    Improved performance and accuracy when exporting PDF documents with embed annotations. (#4536)
  • Changed
    Improves document metadata conversion: The creation and modification date are automatically translated to an NSDate object. (#4617)
  • Changed
    Stylus buttons can now be mapped to different and even custom actions. (#4588)
  • Changed
    Hex3 JaJa stylus driver is no longer available. (#4616)
  • Fixed
    Fixes an issue where the appearance stream of digital signatures could have a wrong object number. (#4462)
  • Fixed
    Fixes an issue in iOS 9 where sound annotation views didn't correctly clean up their OpenGL session. (#4602)
  • Fixed
    Fixes an issue with rendering incorrect or empty PDF with contents in Chinese. (#4482)
  • Fixed
    Fixes an issue where the ink annotation bounding box could be slightly off when copying the annotation or re-reading it from the PDF. (#4609, #4613)
  • Fixed
    Fixes an issue where link and highlight annotations were at the wrong location (#4630)
  • Fixed
    Fixes an issue where the PSPDFRenderDrawBlockKey key in renderOptions was not always evaluated. (#4601)

5.0.2 - 10 Nov 2015

PSPDFKit is now compiled with Xcode 7.1.1. (7B1005)

  • API
    The propertiesForAnnotations setting from PSPDFAnnotationStyleViewController has been moved to PSPDFConfiguration and it now also affects the free-text accessory view. (#4466)
  • API
    Remove isAESCryptoDataProvider: helper. Use [dataProvider isKindOfClass:PSPDFAESCryptoDataProvider.class] instead to check. (Z#2323)
  • Changed
    Improves a condition where an ink annotation has a fill color set which overlapped the foreground color. (#3842)
  • Changed
    The outline property of PSPDFOutlineParser is now writable to allow setting a custom outline. (#4467)
  • Changed
    Ensures the HUD is visible when certain HUD actions are invoked. (#4272)
  • Changed
    Works around a UIKit issue that decreases the scroll view precision, which could have lead to incorrectly centered content. (#3864, rdar://23255528)
  • Changed
    JavaScript execution can now be disabled on a document-level via the javaScriptEnabled property. (#4491)
  • Changed
    Improves form navigation using keyboard and also with prev/next UI buttons. (#4398, #4427)
  • Changed
    didChangeAnnotation:keyPaths:options: is now called during drawing to allow more fine-grained updates. (Z#2315)
  • Changed
    Various improvements for the upcoming iPad Pro, including an annotation toolbar configuration set that better utilizes the additional space. (#4519)
  • Changed
    Updates our stylus drivers to the latest version. (only available for license holders, #4515, #4516)
  • Changed
    Sharing features that require annotation features are no longer displayed for licenses that don't include annotation features. (Z#2319, #4524)
  • Fixed
    Fixes an issue where line endings were not correctly exported in XFDF if they are set to none. (#3715)
  • Fixed
    Fixes an issue when documents with invalid or missing files are initialized. (#4455)
  • Fixed
    Fixes an issue where a document with > 1000 individual files could use too much memory. (#4455)
  • Fixed
    Fixes an issue where some presented views were missing a close button on iOS 8.2 and earlier. (#4492)
  • Fixed
    Fixes a crash when processing a document with a certain set of JavaScript. (#4483)
  • Fixed
    Fixes an issue where UIKit handled popovers + alert controllers in a way that could cut off the buttons. (#4537)
  • Fixed
    Fixes an issue where the document view was not always correctly reloaded when the PSPDFViewController was displayed within a popover. (#4538)
  • Fixed
    Fixes a potential assert on iOS 8 when using the text loupe with text glyphs that have a height of zero. (#4458)
  • Fixed
    Fixes an issue where glyph frames could be incorrectly calculated for documents with a non-null origin and rotation. (#4504, #4047)
  • Fixed
    Fixes an issue with fullscreen media playback. (#4429)
  • Changed
    Slightly reduced framework size.

5.0.1 - 28 Oct 2015

  • Changed
    Due to a recent change in the iTunes Submission Process we've slightly altered our version scheme. (from ios-5.x.x to just 5.x.x)
  • Changed
    The content opacity render option (PSPDFRenderContentOpacityKey) has been removed. This option is no longer supported. (#4337)
  • Changed
    Freehand drawing performance improvements and fixes for devices supporting touch prediction. (#4404)
  • Changed
    In case two page labels are active on a double-paged page, both are now correctly displayed. (#4342)
  • Changed
    Improves behavior when parsing partly corrupt documents. (Z#2199)
  • Changed
    The selection knobs now animate when running iOS 9 to better match system behavior.
  • Added
    Add workaround for a Swift compiler issue when using PSPDFAESCryptoDataProvider with a string-based data provider. (Z#2223, rdar://23285766)
  • Fixed
    Fixes an issue with editable annotation types on the annotation toolbar. (#4407)
  • Changed
    Improves layout of the thumbnail overview controller.
  • Changed
    Improves text selection and highlight annotation creation.
  • Changed
    Improves font picker search bar appearance. (#4100)
  • Changed
    Various updates to the new render engine.

5.0.0 - 23 Oct 2015

PSPDFKit 5 is a major new version, introducing our own renderer and focusing on improving performance. It requires Xcode 7.1 and is compatible with iOS 8.0 - 9.1. This release is a huge usability improvement with Swift but also Objective-C, as we annotated all headers with generics. This release now shares our new core with our Android SDK to further improve quality and performance.

  • Changed
    PSPDFKit now uses its own PDF renderer and no longer uses Apple's Core Graphics renderer, which means better performance, stability and quality. (#3737)
  • Changed
    Undo and redo now remember individual lines drawn instead of the previous behavior where undo removed the whole annotation, once committed. (#2825)
  • Changed
    The tabbed bar has been completely redesigned and now supports animations and reordering, not to mention it being much prettier. (#665)
  • Changed
    View controllers are now presented using UIPresentationController and are much easier to handle and dismiss. (#3519)
    • Changed
      We removed the popoverController and halfModalController properties, as these are now custom presentation styles.
  • Changed
    Popovers are no longer dismissed on rotation. (#3519)
  • Changed
    iOS 8 adaptivity is fully supported: view controllers swap between being popovers, half modal or full screen depending on context. (#3743)
    • Changed
      A new presentation option has been added to prevent view controllers from adapting their presentation style: PSPDFPresentationNonAdaptiveKey.
  • Changed
    The default presentation style has changed for presentViewController:options:animated:sender:completion: from PSPDFViewController and PSPDFPresentationActions. The default is now to use the presented view controller’s modalPresentationStyle, similar to the old PSPDFPresentationStyleForceModal style, which has been removed.
    • Changed
      To restore the equivalent of PSPDFKit’s previous default behavior (using either a popover or full screen, depending on the space available), set the presented view controller’s modalPresentationStyle to UIModalPresentationPopover.
  • Changed
    The annotation toolbar now automatically adapts its items depending on the available screen real estate. This change comes with a new API that allows setting multiple toolbar configurations amongst which the toolbar picks the optimal layout. (#3950)
  • Changed
    The free text input accessory view has been updated to show popover pickers whenever possible, with a fallback to the half modal inspector, if vertical space is tight. (#3987)
    • Changed
      Note: We noticed some input accessory view resizing issues on iPad Air 2 Simulator. We could not reproduce the same problems on actual devices.
  • Changed
    We’re using UIAlertController and UISearchController everywhere, replacing the older deprecated API for further view controller unification. (#3381)
  • Changed
    Automatic double page mode is smarter, comparing the aspect ratios of the view and the document and only showing two pages if they fit without too much shrinking. Automatic mode is now the default on iPhone too, but since two pages are only shown in large views the behavior will be similar.
  • Changed
    By default, page thumbnails are now sized adaptively to comfortably fill the available space.
  • Changed
    Instead of CGPDFDataProvider we now have a new PSPDFDataProvider protocol, which finally allows writing as well. (#3690)
    • Changed
      PSPDFAESCryptoDataProvider has been updated to allow writing annotations back into the secure storage.
  • Changed
    Safari view controller is used instead of PSPDFWebViewController on iOS 9.
  • Changed
    PSPDFScrobbleBar has been renamed to PSPDFScrubberBar to better express its purpose.
  • Changed
    Querying for the annotation author name has been moved to before the annotation toolbar is displayed. (#3544)
  • Changed
    Annotation creation can now be prevented on select PDF pages by adding a boolean key to the page dictionary (see allowAnnotationCreation on PSPDFPageInfo). (#4308)
  • Changed
    PSPDFAnnotationStateManager now supports multiple delegates and the delegate protocol gained some new methods. (#3607)
  • Changed
    The color menu is now represented visually, and uses the style manager color presets. (#2802, #2890)
  • Changed
    Switching between regular and callout styles for text annotations now produces better results and has been made easier with a redesigned UI. (#3664 and #3859)
  • Changed
    The annotation stream now gets properly reset when an annotation is modified, preventing stale content from being rendered on screen. (#3817)
  • Changed
    PSPDFDocumentActionExecutor’s presentationController has been renamed to sourceViewController to better describe its purpose and avoid confusion with UIPresentationController.
  • Changed
    The prefersStatusBarHidden property in the PSPDFStyleable protocol has been renamed to forcesStatusBarHidden to be distinct from the closely related UIViewController method of the same name.
  • Changed
    It is now possible to show color presents on PSPDFAnnotationStyleViewController, even if color and opacity settings are disabled. Color presets can still be hidden by adjusting typesShowingColorPresets. (#4108)
  • Changed
    Accessibility and voice over support has been improved on some of our key UI elements. (#3834)
  • Changed
    The author username is now requested earlier and managed via the new PSPDFUsernameHelper class.
  • Changed
    The border radius of PSPDFSearchHighlightView is now dynamically calculated based on the current zoom level and can be configured via cornerRadiusProportion.
  • Changed
    PSPDFImageInfo is now much more reliable and detects more image formats.
  • Changed
    PSPDFActions nextAction is now an array to correctly reflect the PDF spec, and the whole tree is iterated as required upon execution.
  • Changed
    PSPDFRenditionAction now also exposes optional attached javascripts.
  • Changed
    The hooks for markedContentStack and shouldParseCharacter: in the PSPDFTextParser have been removed since they were very rarely used but caused a noticeable slowdown for all text extraction. If there's demand, we'll look into ways to reintroduce a similar feature with less performance impact.
  • Changed
    prefersStatusBarHidden in PSPDFStyleable has been renamed to forcesStatusBarHidden to not confuse this with properties that UIKit recently introduced.
  • Changed
    Several annotation classes have new parent types to unify certain features, such as PSPDFAssetAnnotation and PSPDFAbstractShapeAnnotation.
  • Changed
    Small UI updates across the board. (For example, dark colors are easier to see in menus.)
  • Changed
    Various lesser-used API has been redesigned or removed for better clarity.

4.4.18 - 28 Oct 2015

  • Changed
    Due to a recent change in the iTunes Submission Process we've slightly altered our version scheme. (from ios-4.x.x to just 4.x.x)

4.4.17 - 15 Oct 2015

  • Fixed
    Fixes an issue where the first thumbnail in scrollable thumbnail mode could be skipped under iOS 9. (#4270)
  • Removed
    Removes our LZ4 dependency since Apple sometimes wrongly flagged that as private API. (Z#2097) If you're using PSPDFLibrary with glyph position saving, make sure to delete the cache files before updating.

4.4.16 - 6 Oct 2015

  • Fixed
    Fixes an issue where some documents couldn't be parsed correctly to write annotations back in. (#4182)
  • Fixed
    Fixes an issue where document content was cut off with the toolbar enabled. (#4152)
  • Changed
    Improves symbol visibility in new dynamic framework. (Z#1966)

4.4.15 - 25 Sep 2015

  • Fixed
    Fixes an issue where the PSPDFDocumentPickerController wasn't correctly updated when a document was deleted. (Z#1882)
  • Changed
    Prevents an exception from getting thrown while writing ink annotations into XFDF. (Z#1889)
  • Fixed
    Fixes an issue where executed JavaScript from forms could trigger an assertion. (#3872)

4.4.14 - 11 Sep 2015

This release will be one of our last v4 releases, while v5 for iOS 9/8 is steadily nearing completion with a huge list of updates/improvements. We backported the new bezier path calculation code, so ink annotations are quite a bit faster now. There's a lot more coming soon!

  • Changed
    When invoking search, we now prioritize the current visible pages before searching the rest. Search results will show up significantly faster on complex documents. (Z#1829)
  • Fixed
    Fixes an issue where resetting choice form elements didn't always reset all properties. (Z#1813)
  • Fixed
    Fixes an issue when applying a PSPDFRenderFiltersKey on rotated documents. (#3892)
  • Fixed
    Fixes a rare floating point precision issue that could cause pages to show up distorted. (#3882)
  • Fixed
    Fixes an issue where rotation caused ill–positioned pages when switching from single–page to two–page layout. (#3878)

4.4.13 - 28 Aug 2015

  • Changed
    Improves rendering during annotation selection, decreasing the possibility of stale content. (#3488)
  • Changed
    Improves behavior for the go to page dialog when invalid numbers are entered. (#3662)
  • Changed
    Performance improvements for complex bezier path calculation, speeding up ink annotations. (#3778)
  • Fixed
    Fixes a rare exception when the page curl controller is used in unusual view controller configurations. (#3624)
  • Fixed
    Fixes a regression that was affecting performance in continuous scroll mode. (Z#1748)
  • Fixed
    Fixes a potential issue with rendering the color picker. (#3729)
  • Fixed
    Fixes an issue where PSPDFViewState could end up being nil for certain points between two pages. (#3782)
  • Changed
    -[PSPDFViewController setViewState:animated:] supports animation for continuous scrolling and per–page scrolling again. Page curl mode has limited support: regardless of animation restoring the viewport is unsupported. (#3777)

4.4.12 - 10 Aug 2015

  • Added
    Adds Slovenian translation.
  • Changed
    Improves compatibility exporting file attachment in XFDF with certain less standard compliant readers. (Z#1610)
  • Fixed
    Fixes an issue when exporting XFDF polyline annotations with border style set to cloudy. (#3608)
  • Fixed
    Fixes a regression related to StrikeOut annotations. (Z#1642)
  • Fixed
    Fixes a crash when a file attachment annotation references a missing file which then is exported via XFDF. (#3620)

4.4.11 - 31 Jul 2015

  • Added
    Adds Czech, Greek and Finnish translations and updates various other localization details.
  • API
    The rotationLock has been removed. Subclass PSPDFViewController and override the rotation methods and/or implement supportedInterfaceOrientationsForWindow: to lock rotation. Since PSPDFKit doesn't own the application, yet this requires hooks to your app delegate, the previous implementation was flawed and subsequently removed.
  • Changed
    Allow rendering the page to larger sizes when aspect ratio is preserved. (#3528)
  • Fixed
    Fixes an issue where links that also have QuadPoints defined might be offset. (#3331)
  • Fixed
    Fixes an issue related to bundle path resolution on relative linked files. (#3539)
  • Fixed
    Fixes an issue where PSPDFCryptor would report an error for files with a size that is dividable by 4096. (#3547)
  • Fixed
    Fixes a compatibility issue with the XFDF API version. (Z#1610)
  • Fixed
    Fixes an issue where the annotation toolbar's position couldn't always be set before it was initialized. (#3575)
  • Fixed
    Fixes an issue where the continuous scroll mode could result in a NaN exception under high load in split screen mode. (#3577)
  • Fixed
    Fixes a tiny memory leak when exporting XFDF files.

4.4.10 - 24 Jul 2015

  • Changed
    Improves document parsing for certain documents that are invalid according to the PDF 1.7 specification, yet work with Adobe Acrobat. (#Z1534)
  • Changed
    Improves text placing logic for callout free text annotations. (#3476)
  • Changed
    Improves compression for embedded images in stamps if they don't contain alpha data. (#3494)
  • Fixed
    Fixes an issue where the keyboard would not hide in all cases after dismissing the modal search controller. (#3449)
  • Fixed
    Fixes a race condition that could lead to a deadlock when forms are parsed and JavaScript processed concurrently. (Z#1546)
  • Fixed
    Fixes a rare assertion when the scrobble bar bins pages in landscape. (#3504)

4.4.9 - 17 Jul 2015

  • Changed
    Update OpenSSL to 1.0.2d.
  • API
    Expose PSPDFPageScrollViewController and PSPDFPagingScrollView. (Z#1489)
  • Changed
    Feature: Text selection is smarter on selecting words and better filters out commas or quotation marks. (#1954)
  • Changed
    Performance: Greatly improved document parsing speed with a large set of annotations that need named destination resolving. (>10.000) (Z#1339)
  • Changed
    Performance: Improvements for parsing forms on complex documents with more than 1000 pages. (Z#1422)
  • Changed
    Improves parsing accuracy when page arrays contain invalid entries. (Z#1477)
  • Changed
    Improves the UI/inspector flow when inserting free text annotations. (#3335)
  • Changed
    Ensures that the inspector updates in all cases on alpha updates. (#3336)
  • Changed
    Improves the HUD layout logic when changes are happening while the PSPDFViewController is off-screen. (#3361)
  • Changed
    Improves calculation of the selection border for non-editable note annotations when zoomed in. (#3155)
  • Fixed
    Fixes issues with page centering while zooming. (#3340, #3419)
  • Fixed
    Fixes an issue with XFDF serialization of forms with parent/child relationships. (#3138)

4.4.8 - 6 Jul 2015

  • Changed
    Now using and requires Xcode 6.4 to build. Xcode 6.3.2 is unsupported but still works fine - however this might change in future updates. It's always a good idea to use the latest available tools.
  • Changed
    Various performance improvements when parsing documents with a large amount of complex, nested form elements. (Z#1339)
  • Changed
    Improves the thumbnail transition when multiple transitions are being executed concurrently. (#3248)
  • Changed
    PSPDFModel can be serialized via NSCoder again. (Z#1394)
  • Changed
    Ensures that highlight annotations don't have a border by default. (#3277)
  • Changed
    Improves text field formatting to be more consistent with the way Acrobat handles formatting. (#2548)
  • Changed
    Improves the combination of long press & PSPDFLinkActionAlertView. (#3289)
  • Changed
    Improves PSPDFHUDViewAnimationSlide under iOS 8. (#2951)
  • Changed
    Improves automatic thumbnail size calculation for certain edge cases in iOS 8. (#3045)
  • Changed
    Decreases memory usage when trying to parse corrupted documents to ensure we are below certain memory limitations. (#3314)
  • Fixed
    Fixes an issue where customizable choice form elements sometimes didn't retain the correct selection. (#2919)
  • Fixed
    Fixes an issue where certain font styles in annotations could be lost when converting documents via PSPDFProcessor. (#3147)
  • Fixed
    Fixes an issue where invoking the image picker via javascript immediately dismissed the picker. (#3274)
  • Fixed
    Fixes a potential crash when autodetectLinkTypes is enabled and a phone number that is overlaid with custom annotations is detected. (Z#1402)
  • Fixed
    Fixes a potential crash related to a change in NSDictionary on iOS 9.0b2.
  • Fixed
    Fixes an issue where the email sheet sometimes is not presented if options are preselected. (#3137)

4.4.7 - 24 Jun 2015

WWDC week! We're hard at work to make sure PSPDFKit is a good citizen on iOS 9 and also grilled the UIKit engineers in San Francisco. This release features various first updates for the iOS 9.0b1 and Xcode 7. As usual, our strategy is to keep a stable PSPDFKit 4.4.x that works with SDK 8 (Xcode 6.3.2), supporting iOS 7, 8 and 9 (with some exceptions, like multitasking) - while at the same time we are also working on PSPDFKit 5, made for Xcode 7 and iOS 8+9. Expect PSPDFKit 5 some time in September before the iOS 9 GM.

  • Changed
    Updates OpenSSL to 1.0.2c. (None of the security updates affects PSPDFKit, but it's a good habit to keep things up-to-date)
  • API
    pathShadowForView: now returns an UIBezierPath object instead of a CGPathRef object.
  • API
    showsScrollIndicators has been split into showsHorizontalScrollIndicator and showsVerticalScrollIndicator for a more fine-grained control. (#3191)
  • Changed
    Improve custom font attribute support for outline. (#3111)
  • Changed
    Exporting XFDF now writes the 'f' file tag. (Z#1335)
  • Changed
    Serializing documents via NSKeyedArchiver now stores relative paths, so that objects can be properly restored even after app updates on iOS 8/9. (#2651)
  • Fixed
    Fixes issues with certain passwords with non-ascii characters and PDF 1.7 files. (#3166)
  • Changed
    If annotation rendering is disabled, we hide these options from the share menu. (print/mail/open in) (#3202)
  • Changed
    Text handling for zoomed in pages is now a lot better, thanks to an unnamed UIKit engineer in the labs. (#2763)
  • Changed
    Ensures that popup annotations don’t get a default border. (#3214)
  • Changed
    Improves search performance and layout related to UI updating when using the popover/modal view. (#3190, #3212)
  • Changed
    Improves animation for gesture-based view controller dismissal and the HUD. (#3109)
  • Changed
    Various performance improvements related to multiple gallery items when zooming/mirroring. (Z#938)
  • Changed
    Improves child view controller usage detection and contentInset calculation for certain edge cases. (#2998)
  • Changed
    Hiding the annotation toolbar no longer automatically dismisses any visible popover. (Z#1366)
  • Changed
    Resizing annotation as a set (multiselect) now better handles free text annotations. (#1982)
  • Changed
    Improves the logic that positions signatures and better deals with edge cases like incorrect PDF coordinates. (#3113)
  • Changed
    Ensures that upon PSPDFViewController dismissal, the HUD is always visible. (#3227)
  • Changed
    Works around an UIKit bug that causes the backdrop blur to produce incorrect results under certain conditions. (#3162)
  • Changed
    Works around an UIKit issue related to nested scroll views that could make text view scrolling flaky when zoomed in. (rdar://21180283, #2830)
  • Fixed
    Fixes an issue where cut/copy was enabled for readonly text fields. (#3156)
  • Fixed
    Fixes issues related to printing and popover management. (#3186, #3187)
  • Fixed
    Fixes a few edge cases found with Xcode 7 related to nullability.
  • Fixed
    Fixes a potential null pointer dereference when a document with a corrupt page array is being parsed. (#3235)
  • Changed
    Various updates to improve compatibility with iOS 9.0b1.

4.4.6 - 5 Jun 2015

  • Changed
    Improves performance with re-building the scrobble bar; noticeable when the frame is changed with animation. (#3007)
  • Added
    Adds a workaround for an UIKit issue where viewWillLayoutSubviews would not always be sent when the PSPDFViewController is set as the rootViewController under iOS 8. (#3031)
  • Changed
    Improves the way we position the document label to cover more corner cases. (#3049)
  • Changed
    Improves annotation toolbar placement in certain edge cases. (#3044)
  • Changed
    Improves free text placement when resizing via anchoring to the bottom left. (#2177)
  • Changed
    If a document contains multiple files, a RemoteGoTo action will be rewritten to a regular GoTo action if the target file is part of the multi-file-document. (Z#1018)
  • Changed
    Improves the flow when changing the free-text annotation results in a different bounding box. (#2246)
  • Changed
    Improves thumbnail rendering logic to ensure newly created annotations are always rendered. (#3054)
  • Changed
    UIModalPresentationPageSheet is now used instead of the FormSheet presentations style to work around an issue with the mail controller. (Z#1176, Z#1270)
  • Changed
    Improves half modal view logic to automatically dismiss a visible controller before a new one is presented. (Z#1271)
  • Fixed
    Fixes an encoding issue with certain chinese characters. (#3100)
  • Changed
    Improves the HUD/page placement logic for certain edge cases (#3103, Z#1254)
  • Fixed
    Fixes an issue where UIKit could send tap events in the wrong order, resulting in a timer not being invalidated on font size changes. (#3009)
  • Fixed
    Fixes a rare race condition that could result in pages not being rendered in full resolution when a note annotation is selected programmatically. (#2621)
  • Fixed
    Fixes an issue where widget annotation actions could be parsed incorrectly in multi-document setups. (#2803)
  • Fixed
    Fixes a rare mutation issue when selecting a free text annotations while another one is selected in continuous scrolling mode on an iPhone. (Z#1214)
  • Added
    Adds a workaround for an issue in Xamarin iOS 8.10 (https://bugzilla.xamarin.com/show_bug.cgi?id=30766)

4.4.5 - 31 May 2015

  • Changed
    Improves annotation border support. Add support for the legacy /Border definition, improves dash array writing and more. (#2953, #2964, #2982, #2987)
  • Changed
    Improves menu positioning for line annotations, reduce likelihood of menu covering the resize knobs. (#2732)
  • Changed
    Improves back animation when the thumbnail filter view is visible while the view controller is popped, working around an issue with UIKit's topLayoutGuide. (#2948)
  • Changed
    Resizing of free text annotations with saved appearance streams now triggers a re-render. (#2895)
  • Changed
    Better handles situations where the PSPDFViewController has an empty frame. (#2986)
  • Changed
    Works around an iOS 7 UIKit issue where the contentInset was not always correctly set in the outline view controller. (#2717)
  • Changed
    Improves error handling around image extraction. (Z#1215)
  • Changed
    Update simple font picker example and ensures the designated initializer for PSPDFFontPickerViewController is always called. (Z#1201)
  • Changed
    Using PSPDFProcessor with the same input and output URL is documented as an unsupported operation. PSPDFKit will now detect this and return an error instead of potentially corrupting the output file. (#2985)
  • Changed
    Workaround for an UIKit issue where UIPrintInteractionController could call into an released object. (rdar://20963891)
  • Changed
    Files with multiple data sources can now also use the fallback annotation store. (#2804)
  • Fixed
    Fixes a rare crash when using the color picker from the half modal controller. (Z#1220)
  • Fixed
    Fixes an issue where the UIActivityViewController would not close automatically under iOS 7. (#2999)
  • Fixed
    Fixes an issue where font styles were not always correctly saved when changed via the popover inspector. (#3004)
  • Fixed
    Fixes an issue where certain line endings were not rendered correctly. (Z#1192)
  • Fixed
    Fixes an issue where re-creating documents via PSPDFProcessor with embedded annotations that contain appearance streams could result in incomplete AP streams. (#2985)

4.4.4 - 26 May 2015

We're now using Xcode 6.3.2 to build PSPDFKit.

  • Changed
    Greatly improves view state handling and view port stability, especially when rotating the device. (#2808, #2871, #2873)
  • Changed
    Improves search bar handling for the outline view controller. (Z#1075)
  • Changed
    Improves form tab order parsing and better deals with broken PDFs that have cyclic references. (#2903, #2817)
  • Added
    Adds a workaround for a tabbar gap issue on the half modal controller. (#2883, rdar://21036145 and rdar://21036226)
  • Changed
    Improves color preset handling for highlight ink drawings by saving additional metadata into the PDF. (#2726)
  • Changed
    The HUD no longer hides when page is programmatically changed with pageCurl transition mode. (#2898)
  • Changed
    The HUD can now be hidden, even when the annotation toolbar is visible. (#2789)
  • Changed
    UIModalPresentationPageSheet is now used instead of the FormSheet presentations style to work around an issue with the mail controller. (Z#1176)
  • Changed
    Improves color preset detection for annotations that are saved/loaded from the PDF directly. (#2915)
  • Changed
    No longer creates highlight annotations with empty rects when using the highlight annotation tool without selecting text. (Z#1178)
  • Changed
    Improves font size calculation in multi-line text fields. (#2921)
  • Changed
    The pdfViewController:didSelectAnnotations:onPageView: delegate is now called after the annotationSelectionView has been configured. (Z#1166)
  • Changed
    The Catalog contains new examples how to lock specific annotations (PSCLockedAnnotationsExample.m) and how to add new pages (PSCAddBlankPageExample.m)
  • Changed
    Preserves custom protocol strings when unlocking a document with a password and improves documentation around this case. (#2652)
  • Fixed
    Fixes an issue with granting recording rights for sound annotations. (Z#1190)
  • Fixed
    Fixes a race condition when multiple PSPDFDocument objects saved to the same external data file. (#2904)
  • Fixed
    Fixes an issue where documents that mix relative and absolute file paths render incomplete on devices. (Z#1177)
  • Fixed
    Fixes an issue where radio button form elements were not always correctly highlighted. (#2833)
  • Fixed
    Fixes an issue with the bottom content inset when the search view controller is displayed modally. (#868)
  • Fixed
    Fixes an issue when the thumbnail animation is cancelled externally. (#2893)

4.4.3 - 15 May 2015

We're now using Xcode 6.3.2(gm seed) to build PSPDFKit.

  • API
    PSPDFTextSearch has a new cancelOperations: parameter to control if previous operations should be cancelled. Since the previous behavior might be unexpected for some, we choose to not have a deprecated call.
  • API
    Some refinements on calls in PSPDFAnnotationStateManager, removing a redundant "From:" from various methods.
  • Changed
    Improve compatibility when the PSPDFViewController is embedded inside an UITabBarController with transparent bottom bar. (#2794)
  • Changed
    Make sure using setAnnotations: doesn’t trigger registering undo actions. (Z#1092)
  • Changed
    Ensures the HUD stays visible when pages are changed via HUD controls in page curl mode. (Z#1077)
  • Changed
    Declares fieldName nullable since some PDFs incorrectly don't declare this name. (Z#1097)
  • Changed
    Improves text view management for free text annotations and forms when zoomed into a page (#2763)
  • Changed
    Improves integration of the print controller. (Z#1102)
  • Changed
    Implements writing of PDF actions of type PSPDFActionTypeGoTo. (#2682)
  • Added
    Adds a workaround for an issue where UIPrintInteractionController could access a deallocated object. (rdar://20963891, #2828)
  • Changed
    Improves status description text when search is finished. (#2826)
  • Changed
    Improves keyboard navigation and handling for forms. (#2818, #2819)
  • Changed
    Further improvements to zoom/scroll behavior for zoomed in text fields. (#2758)
  • Fixed
    Fixes an issue where shouldAutomaticallyAdjustScrollViewInsets in PSPDFConfiguration might change to NO for certain configurations. (#2800)
  • Fixed
    Fixes an issue where creating annotations on the right side in double page mode could end up inserting them on the left side instead. (Z#1076)
  • Fixed
    Fixes an issue where annotation background could turn black instead of transparent when the inspector is used. (#2813)

4.4.2 - 7 May 2015

  • Changed
    Improves default placement of annotation toolbar icons for the iPhone 6 Plus. (#1653)
  • Changed
    Ensures all dangling "special" popovers (like UIInteractionViewController) are dismissed before the PSPDFViewController is dismissed. (Z#1022)
  • Changed
    Improves status bar handling when the annotation toolbar is visible. (#2745)
  • Changed
    Improves performance in the text parser for certain deep cyclic XObject references. (#2786)
  • Changed
    Reduces memory usage when parsing deep PDF XObject hierarchies. (#2786)
  • Changed
    Improves logic that updates the "Clear" button for form fields. (#2815)
  • Changed
    Various localization updates and corrections.
  • Fixed
    Fixes an issue where a pan gesture recognizer on a split view controller could end up staying disabled. (#2683)
  • Fixed
    Fixes a rounding error on the iPhone 6 Plus that resulted in a non-exact sized HUD overlay. (#2788)
  • Fixed
    Fixes an issue where the HUD could end up in a state that requires two taps to show, if configured in a particular, non-standard way. (#2765)
  • Fixed
    Fixes an regression that resulted in no action when using PSPDFPKCS12SignerViewController. (#2774)
  • Fixed
    Fixes an issue where "Bundle" path resolution would resolve to the dynamic framework. (#2767)
  • Fixed
    Fixes an issue with the Open In... feature on iPhone under iOS 8 when options are displayed prior. (Z#1022)
  • Fixed
    Fixes an issue with popovers displaying as form sheets on the iPhone 6 Plus since iOS 8.3.

4.4.1 - 1 May 2015

  • API
    logLevel is now a property on the PSPDFKit shared object.
  • Changed
    Showing the inspector on iPhone now hides optional HUD components for a clearer editing focus.
  • Changed
    Improves scrolling behavior for text field forms when zoom position is larger than the element itself. (#2677)
  • Fixed
    Fixes a regression that would modify the scroll view port imperfectly when using the inspector on iPhone.
  • Fixed
    Fixes an issue with the embedded version information being blank.

4.4.0 - 29 Apr 2015

PSPDFKit is now fully compatible with iOS 8.3 and requires Xcode 6.3. We've annotated all public headers with the new nullability declarations, which is especially convenient if you use PSPDFKit with Swift. We also now ship a dynamic framework for iOS 8. This is the better choice if you've already dropped iOS 7.

  • API
    PSPDFDocumentPickerController's numberOfSearchPreviewLines has been renamed to maximumNumberOfSearchPreviewLines to better indicate what it does - we also improved cell height calculation and layout.
  • API
    We did a large header audit and removed various headers that should not be required. If you have any issues, contact us at https://pspdfkit.com/support/request.
  • Changed
    The PSPDFScrobbleBar now supports vertical modes. (see scrobbleBarType = PSPDFScrobbleBarTypeVerticalRight) (#2613)
  • Changed
    Introduces UI for line dash styles and allows to customize these presets. (#2612)
  • Changed
    Color preset support for additional annotation types. (see typesShowingColorPresets) (#2604)
  • Changed
    Matches the flexible toolbar landscape height to the system bar height on iPhone 6+. (#2629)
  • Changed
    Color picker: Improves color checkmark display for clear colors. (#2628)
  • Changed
    Improves cleanup code for PSPDFDrawView to make it easier to use as standalone class. (Z#747)
  • Changed
    Ensures no PDF rect box is larger than the media box. (Z#792)
  • Changed
    When using the tabbed view controller, the back/forward stack is cleared when switching documents. (#2615)
  • Changed
    Using hide actions to trigger annotation visibility no longer marks the annotation as dirty. (#2637)
  • Added
    Adds a new addBookmark: method to add a custom named bookmark object next to addBookmarkForPage:. (#2577)
  • Changed
    Works around a potential 3rd-party compatibility issue with the AirWatch SDK. (#Z872)
  • Added
    Adds support for transparent line end fills (#2690)
  • Changed
    Improves the activity title for the bookmark action. (#2718)
  • Changed
    Various accessibility improvements around the annotation inspector. (#2668)
  • Changed
    Improves thumbnail <-> page view animation when triggered while the animation is already running. (#2699)
  • Changed
    The page/document label views and the back/forward buttons now have a blurEffectStyle property to customize this via UIAppearance. (#2707)
  • Changed
    Ensures that, while using the inline search bar, the text field keeps focus when selecting form elements. (#2734)
  • Changed
    Exposes a PSPDFCollectionReusableFilterViewCenterPriority to make it easier to customize the segmented control filter via AutoLayout. (#2714)
  • Changed
    Undo/Redo is now enabled by default on iPad 2. (Z#957)
  • Fixed
    Fixes an issue where a view controller was not dismissed correctly on iPhone when a UISearchController was displayed on top. (#2729)
  • Fixed
    Fixes a potential race condition in combination with custom annotation providers. (#2708)
  • Fixed
    Fixes an issue where computed form fields could stop working after a save. (#2676)
  • Fixed
    Fixes an issue where sometimes lines could disappear while drawing really fast due to issues with touch handling on iOS. (#2703)
  • Fixed
    Fixes an issue when showing the outline controller via a document activity (#2700)
  • Fixed
    Fixes an issue when pressing undo while editing free text annotations. (#2660)
  • Fixed
    Fixes an issue where after manually invoked saving the undo button state wasn't always correctly updated. (#2644)
  • Fixed
    Fixes an issue when the PSPDFThumbnailBar was used in a certain configuration without a document set. (#2638)
  • Fixed
    Fixes an issue where lines created programmatically with lineWidth = 1.f didn't always trigger bounding box calculation. (#2620)
  • Fixed
    Fixes an issue when a JavaScript action is invoked on a field which has an invalid/missing fileName. (Z#970)
  • Fixed
    Fixes a configuration issue where a popover would not be anchored to a bar button item in some cases on iOS 8. (#2611)
  • Fixed
    Fixes a potential crash when flattening documents in low-memory situations. (Z#784)

4.3.5 - 28 Mar 2015

  • Changed
    Update nullability declarations to more classes and changed syntax to be compatible with Xcode 6.3 Beta 4.
  • Changed
    Improves status bar handling in iOS 8 when search is invoked in landscape mode on iPhone. (#2531)
  • Changed
    Link preview popovers are now correctly placed in double-page-mode. (Z#742)
  • Changed
    Hide actions now reset invisible and noview flags to match Adobe Acrobat’s behavior, next to toggling the hide flag. (#2588)
  • Added
    Adds various safeguards for class overriding to detect API usage issues early. (#2553)
  • Added
    Adds a workaround for a memory retainment regression based on rdar://20272376. (Z#722)
  • Added
    Adds a workaround for an issue where rotation sometimes stopped working on iPhone under iOS 7 when using activities. (#2578)
  • Changed
    Improves handling of erasing annotations that are manually set to overlay = YES. (#2582)
  • Changed
    Improves picker placement when a picture is added via iPad on iOS 8. (Z#775)
  • Fixed
    Fixes an issue where under certain conditions using bookmarks would not switch the page on iPhone. (#2589)
  • Fixed
    Fixes an issue when an outline entry doesn't define any action element and then is tapped. (Z#776)

4.3.4 - 23 Mar 2015

  • Changed
    Update to OpenSSL 1.0.2a.
  • Added
    Adds a second invert color mode that creates color correct images. (#2128)
  • Changed
    The document sharing view controller has a new delegate method for custom status reporting. (Z#684)
  • Changed
    When using search and highlighting, we automatically scroll to the page area where the result is highlighted. (#2209)
  • Changed
    Further classes gained nullability declarations.
  • Changed
    Improvements for Russian localization. (#2550)
  • Changed
    Improves rendering for annotations when they are in selected state.
  • Changed
    Improves hit testing for ink annotations when minDiameter is set. (#2570)
  • Changed
    Works around an issue where custom stamps sometime would not serialize the image because of a NSCoding-related bug in UIKit. (rdar://20256585, #2539)
  • Fixed
    Fixes an issue where setPage: would jump to an incorrect page in certain rare configuration combinations. (#2547)
  • Fixed
    Fixes a rare crash where UIKit was expecting accessibility categories on a proxy object. (Z#689)
  • Fixed
    Fixes an issue where using additional actions in annotations didn't always execute such action.
  • Fixed
    Fixes an issue where the outline view controller was not in all cases overridable.
  • Fixed
    Fixes a regression where the scrollable thumbnail bar was not always correctly hidden when switching to the thumbnail controller. (#707)

4.3.3 - 15 Mar 2015

  • Changed
    Various performance improvements, especially for cases where multiple PSPDFViewController instances are on screen at the same time. (#2527)
  • Changed
    Hit testing for line annotations is now purely path-based, which makes working with lines a lot simpler. (#2481)
  • Changed
    The default username alert now disables the save button when there is no text entered.
  • Fixed
    Fixes an issue where editing checkboxes could set other checkboxes from the group disabled in 3rd-party readers. (#2514)
  • Fixed
    Fixes an regression where modal presentation would not always invoke save. (#2523)

4.3.2 - 12 Mar 2015

  • Changed
    Security: allowCopying on PSPDFDocument is now readonly.
  • Changed
    Adjusts selection to whole words only if needed. (#2505)
  • Changed
    Dashed lines now correctly render the dash line pattern while they are being selected. (#2480)
  • Changed
    Ensures that annotations saved to an external file are also marked as saved in the isDirty flag. (#2408)
  • Fixed
    Fixes a regression that could prevent documents from being set if the PSPDFViewControllerDelegate method isn't implemented.
  • Fixed
    Fixes a race condition on old iOS devices related to image resizing in the cache. This also removes allowImageResize in PSPDFCache. (Z#625)

4.3.1 - 10 Mar 2015

  • Changed
    Updated for Xcode 6.2 and iOS 8.2.
  • Changed
    Annotate further class headers for nullability.
  • Fixed
    Fixes an issue that could cause an invalid memory access on certain malformed PDF documents (Z#608)
  • Fixed
    Fixes an issue where custom UIActivity subclasses couldn't be set in PSPDFConfiguration. (Z#562)
  • Fixed
    Fixed an out of bounds exception in cases where the entire annotation group is filtered out due to editable annotation types. (#2485)

4.3.0 - 6 Mar 2015

In PSPDFKit 4.3 we focussed on improving our headers with additional documentation and nullability declarations and added many detail improvements touching all parts of the framework. On the feature side, we added a new global back/forward list that greatly improves navigation, especially for large documents. It is a highly recommended update.

  • Changed
    We've started to annotate classes with Xcode 6.3's new nullable attributes, for better interoperability with Swift and more compile-time warnings in ObjC. This is still a work-in-progress and the API might change, as Xcode 6.3 is still in beta, however we also see it as a great improvement to documentation.
  • Changed
    With PSPDFBackForwardActionList there is now a view controller-global back/forward list that allows a more efficient navigation in PDFs. (#744)
  • Changed
    Examples: We added a separate Swift example for Swift 1.2 which is included in Xcode 6.3b2.
  • Changed
    PSPDFGalleryConfiguration now includes a allowPlayingMultipleInstances property to control playback of multiple audio/video files at once. (#2386)
  • Changed
    The play button in the gallery PSPDFMediaPlayerCoverView can now be customized via UIAppearance. (#2411)
  • Changed
    The gallery now uses appearance stream images from Screen/RichMedia annotations if set. (#2400)
  • Changed
    The coverImage parameter for multimedia elements now resolves URLs with custom blocks. (#2409)
  • Changed
    When a video is presented on an external screen, fullscreen is disabled for the gallery item. (#2390)
  • Changed
    Automatically set background to clear for certain gallery types. #(2381)
  • Changed
    Improves the way the gallery handles looping; disables looping for <= 2 items. (#939, #2319)
  • Changed
    Improvements to PSPDFViewState to allow a more accurate state restoration (#101).
  • Changed
    Documents with an invalid internal structure that can't be correctly rendered no longer throw an exception. (#2294)
  • Changed
    Custom stamp annotations no longer enforce the all-caps rule. (Z#453)
  • Changed
    While the inline search bar is visible, the HUD visibility can no longer be changed. (#2341)
  • Changed
    File names can now be customized via subclassing PSPDFMailCoordinator. See PSPDFCatalog for an example. (#2416)
  • Changed
    If Widget is not in editableAnnotationTypes, don’t make a form editable. (#2431)
  • Changed
    Using the autodetectTextLinkTypes data detectors is now much faster for most documents.
  • Changed
    Action objects in many cases now offer an improved description. (#2465)
  • Added
    Adds support for right/center-aligned text field form elements. (#2473)
  • Changed
    The PSPDFAnnotationTableViewController now changes pages via an implicit created PSPDFGoToAction so it's easy interceptable. (#2463)
  • Changed
    PSPDFWebViewController now lazily creates the bar button items, so they can be accessed before the view is loaded. (#2467)
  • Changed
    Improved the render status indicator to act like a table header, staying visible during zooming. (#2334)
  • Changed
    Improves scrolling in continuous scroll so that a single page doesn't scroll out of the centered area when manually calling setPage:. (#2295)
  • Changed
    Improves logic where to place the HUD, to make sure it doesn't overlap with the document. (#2353)
  • Changed
    Improves HUD handling for edge cases where the navigation bar doesn't match up with the status bar. (#2455)
  • Changed
    Improves keyboard handling for PSPDFNoteAnnotationViewController when using delete and for rotation events. (#2365)
  • Changed
    Improves text extraction engine to deal with more cases of unusual XObject placement. (#2254)
  • Changed
    Improves view controller animations when page curl mode is enabled. (#2336)
  • Changed
    Improves the signing process and compatibility with Adobe Acrobat when a document is signed multiple times. (#2055)
  • Changed
    Improves Form JavaScript validation error message handling. (#2442)
  • Changed
    Improves text parsing speed, especially for documents with deep XObject hierarchies. (#2399)
  • Changed
    Works around an UIKit regression in iOS 8 where rotation callbacks could be send twice when embedded in a split view controller. (rdar://problem/19810773)
  • API
    We moved several class methods/initializers that should not be called by users into private headers to simplify the exposed API.
  • Fixed
    Fixes an issue where checkboxes end up not editable after saving. (#2451)
  • Fixed
    Fixes an issue where the PSPDFBookmarkActivity did not always correctly update the bookmark status. (#2327)
  • Fixed
    Fixes a potential assertion while building the page info cache if pageRange was modified right after triggering caching. (#2424)
  • Fixed
    Fixes an issue where the scrobble bar sometimes didn't correctly re-bin. (#2425)
  • Fixed
    Fixes an issue where the applicationActivities setting was ignored. (#2401)
  • Fixed
    Fixes a regression related to printing. (#2404)
  • Fixed
    Fixes a regression where changing points in a line annotation would not properly capture state when performing undo. (#2378)
  • Fixed
    Fixes an issue where pushing PSPDFViewController onto navigation stack could show the 'X' button instead of the native back one. #(2367)
  • Fixed
    Fixes an issue where the scrollable thumbnail bar would sometimes not re-appear after hiding the HUD. (#2361)
  • Fixed
    Fixes an issue where non-committed annotations don't get resized/moved correctly when frame changes. (#2068)
  • Fixed
    Fixes a regression in iOS 8 that could cause the render-thread to freeze for certain documents. (Z#452, rdar://problem/19865091)
  • Fixed
    Fixes an issue where setting showColorAndIconOptions late in PSPDFNoteAnnotationViewController could be ignored under iOS 7.
  • Fixed
    Fixes an issue where a checkbox did not toggle like a radio button when configured that way. (#2227)
  • Fixed
    Fixes an issue where the item toolbar button is not correctly positioned in landscape. (#2322)
  • Fixed
    Fixes a potential nullpointer dereference when using the gallery and multiple PSPDFViewController instances. (Z#261)

4.2.2 - 11 Feb 2015

  • Changed
    Improves binning behavior in the scrobble bar for large documents.
  • Fixed
    Fixes an issue where the PSPDFViewController could be leaked when view controller containment was called with an incomplete call order.
  • Fixed
    Fixes a timing-related issue where searching via selected text could leave search results not highlighted initially.
  • Fixed
    Fixes an issue where embedded files were not always correctly previewed.
  • Fixed
    Fixes an issue related to document sharing.

4.2.1 - 10 Feb 2015

  • Changed
    Improves the way we store search text in PSPDFDocumentPickerController.
  • Changed
    Improves tiling for the continuous scrolling mode.
  • Changed
    Improves writing custom appearance streams for form fields when the value is encoded as UTF-16BE.
  • Changed
    Improves the animation when adding/removing highlight annotations.
  • Changed
    Improves audio session management; the code is now smarter when switching sessions is required to minimize background music stops.
  • Changed
    Improves HUD showing/hiding logic when scrollMode is set to page curl.
  • Changed
    Improves selection behavior for callout free text annotations.
  • API
    Changes the options settings in PSPDFDocumentInfoCoordinator to strings to make them simpler to customize.
  • Fixed
    Fixes an issue that could cause some thumbnails to not load in the scrobble bar until the view was rotated under certain rare conditions.
  • Fixed
    Fixes an issue with missing symbols in the OpenSSL-free build.
  • Fixed
    Fixes an issue where some URL actions would not open the inline browser.
  • Fixed
    Fixes an issue where the UIMenuController would ignore taps when the menu was displayed and then reloadData called manually.
  • Changed
    Works around an issue where the framework could trigger objc_trap() in rare occasions. (rdar://problem/19029811)

4.2.0 - 5 Feb 2015

We're proud to release PSPDFKit 4.2, which is the result of more than 2 months of hard work. Highlights are the new text editing toolbars, support for secure libraries via SQLCipher and a resizable inspector on iPhone. The gallery learned how to deal with web content and we now use the modern WKWebView internally whenever possible and is a lot faster for pages with many multimedia views.

  • Changed
    Greatly improved handling for free text annotations with a new editing toolbar for both iPhone and iPad.
  • Changed
    The half modal inspector on iPhone is now resizable and automatically adapts to the required content size.
  • Added
    Adds support for SQLCipher to have optionally encrypted search indexes with PSPDFLibrary.
  • Changed
    The gallery can now deal with web content, replacing the PSPDFWebAnnotationView.
  • Changed
    The gallery subsystem is now a lot more efficient, especially noticeable in cases where pages have > 10 different video/audio views (minor API changes due to the performance improvements)
  • Changed
    PSPDFWebViewController now uses WKWebView by default, increasing browsing performance and scrolling speed.
  • Changed
    The completion block for popover dismissal is now invoked after the popover is completely dismissed when animated is set to YES.
  • Changed
    Security: Password protected documents now automatically disable the disk cache.
  • Changed
    Natural drawings can now be exported/imported via XFDF.
  • Changed
    Various improvements to annotation resizing.
  • Changed
    Text field form elements that are configured as multi-line elements with auto-sized font are now better handled.
  • Changed
    The Edit/Clear All buttons in the PSPDFAnnotationTableViewController are now hidden if there are no types set in `editableAnnotationTypes.
  • Changed
    Sound annotations are now paused when the page is changed.
  • Changed
    Sound annotations are now rendered into the thumbnail view.
  • Changed
    The animation to toggle between thumbnails and the full page view now smoothly fades content and no longer blocks the UI while animating.
  • Changed
    Performance improvements for documents with complex or deep form annotation trees.
  • Changed
    Improves search preview to deal with content that has many newlines.
  • Changed
    The editor for choice form fields no longer shows the form element title.
  • Changed
    The PSPDFOutlineViewController now better deals with long page labels and will correctly calculate the height to show them completely.
  • Added
    Adds XFDF serialization/deserialization support for PSPDFEmbeddedGoToAction.
  • Changed
    Updates the JotTouchSDK driver to 2.6.4 and fixes an issue with flipped touch points.
  • Changed
    Ignore annotation types in the long tap menu that are set in createAnnotationMenuGroups but are not set in editableAnnotationTypes.
  • Changed
    Various improvements and enhanced support for JavaScript actions and events.
  • Changed
    Improves "Sign" arrow rendering for very small form elements.
  • Changed
    Improves scrobble bar touch handling for certain cases when in double page mode.
  • Changed
    Various cleanups and modernization for the PSPDFCache subsystem.
  • Changed
    Rotating while drawing now correctly animates unsaved shapes as well.
  • Changed
    Improved behavior of the "sticky header" thumbnail layout mode and greatly improves performance for large documents.
  • Changed
    Closing a tab in PSPDFTabbedViewController now autosaves the document. (if the autosave configuration is enabled)
  • Changed
    Exposes a new updateAnnotationSelectionView subclassing hook in PSPDFPageView to customize the innerEdgeInsets of the annotation selection view.
  • Changed
    Various improvements in how the HUD handles the showing/hiding animation of the UINavigationBar.
  • Changed
    Images embedded in PDFs now have a slightly higher default JPG compression to reduce file size.
  • Changed
    Selecting stamp annotations now requires less memory and is more performant, especially on high zoom scales.
  • API
    All PSPDFBarButtonItem classes have been replaced by plain bar buttons. There is a new PSPDFDocumentActionExecutor and various coordinators (e.g. PSPDFMailCoordinator) which better replace this functionality + allow you to call such actions without a PSPDFViewController around. Settings (applicationActivities, printSharingOptions, ...) have been moved to PSPDFConfiguration.
  • API
    Removed PSPDFMinimumSearchLength. The default is now always one character to provide instant feedback and better support CJK languages.
  • API
    PSPDFHUDView now exposes new insets for child views: pageLabelInsets, documentLabelInsets, thumbnailBarInsets and scrobbleBarInsets. This supersedes and replaces the more inflexible pageLabelDistance and documentLabelDistance.
  • API
    Renamed PSPDFSecurityAuditor to PSPDFApplicationPolicy.
  • API
    Moves centerRenderStatusView from PSPDFPageView to renderStatusViewPosition in PSPDFConfiguration.
  • API
    PSPDFFormSubmissionDelegate now returns the PSPDFFormSubmissionController as first parameter instead of the PSPDFViewController.
  • API
    PSPDFThumbnailViewFilter has been changed from an enum to strings, to make it both simpler to configure and easier to extend with custom filters.
  • API
    PSPDFThumbnailViewController has been modernized; properties have been moved to either PSPDFConfiguration or simply edit the layout directly.
  • API
    Exposes various new subclassing hooks.
  • Changed
    Works around an UIKit issue where accessing popoverPresentationController could lead to a retain cycle. (rdar://problem/19167124)
  • Changed
    Works around an UIKit regression in iOS 8 related to the status bar and presenting UIImagePickerController in a popover. (rdar://problem/19079532)
  • Changed
    Works around an UIKit regression in iOS 8 where preferredInterfaceOrientationForPresentation was not honored under certain conditions. (rdar://problem/19096083)
  • Changed
    Works around an UIKit regression in iOS 8 where the autocorrect selection didn't properly update when scrolling (rdar://problem/19564341)
  • Changed
    Works around an UIKit regression in iOS 8 where a particular combination of popovers and table view cells could lead to a layout loop (rdar://problem/19556505)
  • Changed
    Works around an UIKit regression in iOS 8 where setting preferredContentSize doesn't always correctly update the size if navigationBarHidden changes. (rdar://problem/19175472)
  • Changed
    Works around an UIKit regression in iOS 8 where rotation settings are not always recognized with multiple windows. (rdar://problem/19592583)
  • Changed
    Works around an UIKit issue related to non-integral contentInset that led to gesture recognizer failures on the iPhone 6+.
  • Fixed
    Fixes a potential race condition when creating annotations that could lead to an object over-release in custom annotation providers.
  • Fixed
    Fixes an issue where inline search would find text within a note and open the popover, but not close it when jumping to the next result.
  • Fixed
    Fixes an issue where search highlights sometimes did not animate correctly in iOS 8.
  • Fixed
    Fixes an issue where the (annotation) menu was not displayed when a popover was visible in iOS 8.
  • Fixed
    Fixes an issue where calling search with a nil string would cause an exception.
  • Fixed
    Fixes an issue related to overriding firstObject via a category and our detection/repair attempt. This now works when symbols are stripped as well.
  • Fixed
    Fixes an issue where a malformed PDF date string could cause an assertion while parsing.
  • Fixed
    Fixes an issue where shadowOpacity in PSPDFConfiguration could be ignored in some cases.
  • Fixed
    Fixes an issue where parsing extended text style attributes didn't work with font names with spaces.
  • Fixed
    Fixes an issue that prevented entering Japanese or using the auto correct feature within the free text annotation text view.
  • Fixed
    Fixes a rare issue that could save sound annotations in a way not compatible with Adobe Acrobat.
  • Fixed
    Fixes an issue where choosing erase mode, then switching pages could result in a different draw color than what was selected.
  • Fixed
    Fixes an issue where the first digital signature was rendered invalid by Adobe Acrobat when the document was signed a second time.

4.1.2 - 23 Nov 2014

  • Changed
    Improves performance for documents with a large number of annotations by moving more work to background threads.
  • Changed
    Introduces a new textSelectionMode and an optional textSelectionShouldSnapToWords to better customize the text selection behavior.
  • Changed
    Improves various edge cases on type image preview in the annotation view controller.
  • Changed
    Exposes the stylus manager in the PSPDFKit shared object.
  • Changed
    Hook up all significant places that access network for the new PSPDFNetworkActivityIndicatorManager.
  • Changed
    Improves drawing view transform handling for certain edge cases.
  • Changed
    Improves zooming performance when annotations are selected.
  • Changed
    Various improvements to the natural drawing path generation and bounding box algorithm.
  • Changed
    Improves the animation when the view controller is popped but the annotation toolbar is still visible.
  • Changed
    Improves tab bar placement in PSPDFTabbedViewController when the navigation bar has a custom image set via UIAppearance.
  • Changed
    Works around a runtime issue when using weakly referenced objects during dealloc. (rdar://problem/19029811)
  • Changed
    Works around an UIKit issue with presenting an UIAlertController while a popover is dismissed. (rdar://problem/19045528)
  • Changed
    Works around an UIKit regression where automaticallyAdjustsScrollViewInsets doesn’t always work on iOS 8. (rdar://problem/19053416)
  • Changed
    Works around an UIKit regression where dismissing a popover with a double-tap could also dismiss the modal parent on iOS 8. (rdar://problem/19067761)
  • Fixed
    Fixes an edge case where the gallery could display wrong content during paging.
  • Fixed
    Fixes an issue with changing choice form elements values on iPhone.
  • Fixed
    Fixes an issue where indexing single-page documents could have reported an invalid status.
  • Fixed
    Fixes an issue where changing the filter on the thumbnails with sticky header enabled would not reset the view port on iOS 8.
  • Fixed
    Fixes an issue where a selected annotation could end up slightly blurry when zoomed in due to an incorrectly set contentScale.
  • Fixed
    Fixes an issue where annotations loaded from XFDF could trigger an assertion.

4.1.1 - 11 Nov 2014

  • API
    Removes PSPDFAlertView and PSPDFActionSheet. If you used them, get a local copy here: https://github.com/steipete/PSAlertView We're now using a new wrapper to unify these and UIAlertController, and also made it open source! https://github.com/steipete/PSTAlertController
  • API
    Various smaller updates and refinements, including a new network activity manager.
  • Changed
    Improves ink signature handling and saving, especially when natural drawing is enabled or pages are rotated.
  • Changed
    Improves bundle image loading code to better deal with situations where the bundle is in unusual places; improves compatibility with Extensions.
  • Changed
    The loop setting in the gallery is now also propagated if the gallery is already loaded.
  • Changed
    Annotations and Form Elements can now be found and read using UIAccessibility.
  • Changed
    Better detection for invalid 3rd-party code that overrides Apple methods with different behavior.
  • Changed
    Improves aspect ratio correct resizing when an additional margin for annotations is configured.
  • Changed
    Slightly updates the note icons to better match with the rest of the annotation icon set.
  • Changed
    Signatures in the keychain store now are strongly validated and empty signatures are thrown away on load.
  • Changed
    Works around an UIKit regression in iOS 8.1 where a new window incorrectly rotated. This affected the fullscreen view of the gallery. (rdar://problem/18906964)
  • Changed
    Works around an UIKit bug where an action sheet would not show up in iOS 8, instead showing constraint errors. (rdar://problem/18921595)
  • Changed
    Works around a problem where the Swift compiler can't parse headers with strongly retained dispatch objects. (radar pending)
  • Fixed
    Fixes an issue where Open In... could take very long or completely get stuck when form elements were saved.
  • Fixed
    Fixes an assertion (UID nil) when the last tab in the tabbed controller was removed.
  • Fixed
    Fixes a potential crash when using accessibility to read the contents of the PDF.

4.1.0 - 5 Nov 2014

PSPDFKit now requires Xcode 6.1 with SDK 8.1. (iOS 7.0 is still supported)

If you use HockeyApp, Crashlytics or a similar crash reporting tool, we would love to hear from you. We're working hard to further reduce our already very low issue rate and appreciate your feedback. (support+crashreports@pspdfkit.com)

PSPDFKit will now assert if you change annotation properties on threads other than the main thread. This behavior was unsupported before and was a cause for issues that were very hard to track down. Read more about the annotation object model at https://github.com/PSPDFKit/PSPDFKit-Demo/wiki/The-annotation-object-model.

  • Changed
    Natural Drawing! You'll love this new default. Your drawings will look much more realistic, and are still fully backwards compatible to 3rd-party apps.
  • Changed
    Various optimizations and improvements for iOS 8.1
  • API
    PSPDFSpeechSynthesizer has been renamed to PSPDFSpeechController.
  • API
    PSPDFActivityBarButtonItem now forwards the iOS 8-style completionHandler.
  • API
    wantsSelectionBorder is now an instance method to customize this per object.
  • API
    The PSPDFPresentationStylePopover has been removed in favor of the iOS 8 variant UIModalPresentationPopover.
  • API
    The interface around PSPDFStream and PSPDFStampAnnotation has been modernized.
  • API
    The PSPDFSignatureStore is now a protocol with a default implementation that can be changed via configuring PSPDFConfiguration.
  • API
    Various annotation classes have gained a convenience initializer.
  • API
    The gallery is now configurable via PSPDFGalleryConfiguration in PSPDFConfiguration.
  • API
    Various annotation enum values now have appropriate transformer objects for better JSON export. (PSPDFBorderStyleTransformerName, PSPDFBorderEffectTransformerName, PSPDFFreeTextAnnotationIntentTransformerName)
  • API
    Many singletons have been moved to the global PSPDFKit object and various smaller class refinements.
  • Changed
    Writing documents now uses NSFileCoordinator for better compatibility with iCloud Drive and Extensions.
  • Changed
    If the size class on iOS 8 is UIUserInterfaceSizeClassCompact, the status bar will now be hidden.
  • Changed
    The inline search manager now automatically focuses the first search result.
  • Changed
    The inline search manager now shows the current search status with a slight delay to be more visually pleasing.
  • Changed
    Absolute paths, while discouraged, are now properly detected in the gallery on iOS 8.
  • Changed
    The gallery now automatically resolves URL endpoints that have no pre-set type. (video/image/etc)
  • Changed
    Makes sure the PSPDFViewController always correctly reloads, even when the document is changed while the controller is off-screen.
  • Changed
    Various stylus drivers have been updated to be compatible with their API changes.
  • Changed
    Search previews generated via PSPDFLibrary now also support text containing diacritics.
  • Added
    Adds support for bended arrows created in Yosemite's Preview.app.
  • Changed
    Public C functions are now wrapped so they don't get name mangled if ObjC++ is used.
  • Changed
    The annotation user name is now requested as soon as a annotation style mode is entered, not when the annotation is committed.
  • Changed
    The interactive pop gesture is now disabled when the HUD is hidden to not accidentally invoke it during scrolling.
  • Changed
    Improves robustness when PSPDFLibrary is called from multiple threads.
  • Changed
    Improves reliability of sound annotations, especially on iOS 8 and 64 bit.
  • Changed
    Improves code paths around setting a default line width when a border is set.
  • Changed
    Improves compatibility with a certain set of annotations with appearance streams that uses custom transforms.
  • Changed
    Improves reported frame when calling the shouldShowMenuItems: delegate in annotation sub-menus. (e.g. Highlight->Color)
  • Changed
    Improves menu placement for annotations that can't be resized or moved.
  • Changed
    Improves gallery error handling while the manifest is loaded.
  • Changed
    Various improvements and better error detection/logging for the digital signing process.
  • Changed
    Reduces memory pressure for older devices such as the iPad 2, the iPhone 4S and older iPod Touch devices.
  • Changed
    The creationDate is now set for new user-created annotations and lastModified is updated on every change.
  • Changed
    The text editing for bookmark names is now committed before a cell reorder is started, to ensure the changed text gets saved to the correct item.
  • Changed
    When the device switches to single/double page mode due to rotation, we now will restore the last page instead of the left page from the double page mode.
  • Changed
    Ensures all popover dismissal code paths go through the workaround for rdar://problem/18500786 on iOS 8.
  • Changed
    Complex ink annotations are now processed much faster.
  • Changed
    The move button no longer overlaps the signature display in the PSPDFSignatureSelectorViewController.
  • Changed
    Ensures the signature creation buttons in PSPDFSignatureViewController are pixel-aligned.
  • Changed
    Various improvements to digital signature handling. PSPDFPKCS12Signer now exposes signFormElement for non-interactive signing.
  • Changed
    Various functional and performance improvements when parsing forms with JavaScript.
  • Changed
    PSPDFKit now uses various iOS 8 QoS classes where appropriate to better deal with important/background related tasks.
  • Changed
    Updates OpenSSL to 1.0.1j and SQLite to 3.8.7.1 (optional)
  • Changed
    Works around a potential deadlock in the Apple PDF renderer when called during the application did load event. (rdar://problem/18778790)
  • Changed
    Works around an issue where UIDocumentInteractionController sometimes would print extremely long log statements (rdar://problem/18568591)
  • Fixed
    Fixes an issue with certain missing headers in the OpenSSL-free build.
  • Fixed
    Fixes an issue where drawings created during one operation in multiple pages could be collected to a single page on commit.
  • Fixed
    Fixes a small UI issue where on iOS 8 the current page of the color inspector could be wrong.
  • Fixed
    Fixes a set of crashes that could happen on more complex views when they were laid out with a CGRectNull.
  • Fixed
    Fixes an issue when the activeFilter of thePSPDFThumbnailViewController` is set manually.
  • Fixed
    Fixes a potential deadlock when PSPDFPerformBlockWithoutUndo was used manually in a large-scale way.
  • Fixed
    Fixes an issue related to the pageRange feature and HUD scrollable thumbnail updating.
  • Fixed
    Fixes a potential stack overflow if extremely complex PDF forms were saved using NSCoder.
  • Fixed
    Fixes an issue where tapping the annotation button quickly could result in an incorrect selection.
  • Changed
    Many of the more obscure bugs and crashes have been squashed.
  • Changed
    Various localization updates and improvements. PSPDFKit now uses the stringsdict file format to define language plural rules.

4.0.3 - 3 Oct 2014

  • Added
    Add API on PSPDFViewController to check if a search is running isSearchActive and to cancel a running search cancelSearchAnimated:.
  • Changed
    Improves various animation effects under iOS 8.
  • Changed
    Updates the optional SQLite library to 3.8.6.
  • Changed
    Reduced the default speak rate in PSPDFSpeechSynthesizer from fast to normal.
  • Changed
    Enables many new warnings to improve code quality and keeps our headers warning free in -Weverything environments.
  • Added
    Adds support for loading the PSPDFKit.bundle from unusual locations which improves compatibility with dynamic frameworks.
  • Changed
    Improves annotation moving/resizing logic to be more pixel accurate.
  • Changed
    The PSPDFInlineSearchManager instance is now exposed inside the PSPDFViewController, when used.
  • Changed
    The PSPDFViewController now shows page labels if set for search results cells.
  • Changed
    The play button in the gallery component will no longer zoom in but always stay at the optimal size.
  • Changed
    PSPDFKit now emits a log warning if UIViewControllerBasedStatusBarAppearance is set to NO.
  • Changed
    PSPDFKit will now assert if the license is set on a background thread. This is a very fast operation and needs to be done on the main thread.
  • Changed
    PSPDFEraseOverlayLayer has been refactored to PSPDFEraseOverlay to allow property customization via UIAppearance.
  • Changed
    The navigation bar will no longer be modified if PSPDFKit is embedded via child view controller containment and useParentNavigationBar is set to NO.
  • Changed
    Free text annotations are now always rendered aspect ratio correct.
  • Changed
    Various improvements to the undo/redo feature.
  • Changed
    Trying to show the print or open in sheet now no longer throws a popover exception if the PSPDFViewController is not visible.
  • Changed
    Works around a regression in iOS 8.1b1 related to UIAppearance with (rdar://problem/18501844)
  • Changed
    Works around a regression in iOS 8 where dismissing a popover controller could result in accessing a deallocated object on iOS 8. (rdar://problem/18500786)
  • Changed
    Works around a regression in iOS 8 where dismissing a popover could dismiss the parent modal controller. (rdar://problem/18512973)
  • Changed
    Works around an issue where UIKit throws an unexpected exception when accessing the image in the general pasteboard. (rdar://problem/18537933)
  • Changed
    Works around an issue where UIKit forwards _UIPhysicalButton objects when we expect UITouch objects. (rdar://problem/18537814)
  • Fixed
    Fixes an issue with a non-standard-conforming PDF not defining "Subtype" in the font dictionary.
  • Fixed
    Fixes an issue where the PSPDFPopoverController could be presented rotated on landscape under iOS 8.
  • Fixed
    Fixes an issue that would indicate "No page text" on the whole document after a search if the last document page contained no text.
  • Fixed
    Fixes an issue where in some cases RichMedia/Screen annotation video content was cached but not re-fetched if the cache was deleted by the system.

4.0.2 - 26 Sep 2014

  • Changed
    The UID generation in PSPDFDocument now works better with new app container locations in iOS 8. (See https://developer.apple.com/library/ios/technotes/tn2406/_index.html)
  • Changed
    Improves video scrubbing behavior and the animation when the gallery is displayed in fullscreen.
  • Changed
    FreeText Callout annotations now support dashed borders and better deal with different border/text colors.
  • Changed
    Various smaller improvements related to the HUD visibility and thumbnail grid on the iPhone 6 Plus.
  • Changed
    License is now validated later to allow setting the PSPDFViewController via Storyboards.
  • Changed
    Improvements to the search animation in PSPDFOutlineViewController.
  • Changed
    Digital Signatures now support up to 10k of payload data.
  • Changed
    Works around an issue with extremely large image tiling on 64-bit devices.
  • API
    Rename searchStyle to searchMode to keep it consistent with the enum name.
  • API
    searchForString:options:animated: in PSPDFViewController now has an additional sender parameter to control popover placement.
  • Fixed
    Fixes an issue where fitToWidth didn't work as expected.
  • Fixed
    Fixes an issue where the software brightness dimming would not fill the whole screen on iOS 8 in landscape.
  • Fixed
    Fixes an issue where the stylus selection controller would hide other stylus options after one stylus has been chosen.
  • Fixed
    Fixes a small issue with calculating the content scroll view offset.
  • Fixed
    Fixes an issue where reordering apps in the “Open In” menu did not work. (iOS 8 only)
  • Fixed
    Fixes an issue where the actions in the moreBarButtonItem sometimes wouldn’t invoke under iOS 8 because they were committed while the action sheet was still dismissing.
  • Fixed
    Fixes an array overflow issue when a certain (corrupt) PDF was parsed.

4.0.1 - 23 Sep 2014

  • Changed
    Various improvements to the PSPDFCatalog examples.
  • Changed
    The PSPDFSearchViewController now always remembers the last used search string.
  • Fixed
    Fixes a minor rendering artifact on the iPhone 6 Plus.
  • Fixed
    Fixes an issue in the gallery image tiler that is specific to the iPhone 6.
  • Fixed
    Fixes an issue with detecting gallery URLs that are scaled (@2x, @3x)
  • Fixed
    Fixes an issue with link annotation options that contain an URL parsed from an XFDF.

4.0.0 - 22 Sep 2014

PSPDFKit 4 is a major new release. Please study the migration guide: https://github.com/PSPDFKit/PSPDFKit-Demo/wiki/PSPDFKit-4.0-Migration-Guide

Important: For your own security, invalid licenses now abort the app immediately, instead of silently showing a watermark. PSPDFKit now requires a demo license for evaluation in your own app. Download it from the website and we'll automatically deliver the demo key via email.

Core Viewer:

  • Changed
    PSPDFKit 4 is now fully compatible with iOS 8 and requires Xcode 6 with SDK 8.
  • Changed
    Resources and loading support for @3x resources required for the iPhone 6 Plus have been added and various image resources have been refreshed for iOS 8.
  • Changed
    The binary ships with armv7, arm64, i386 and x86_64. Following Apple's new defaults, we removed the slice for armv7s (which brought little benefits anyway).
  • Changed
    All headers have been updated to use Modules for faster compile times.
  • Changed
    Several properties that were no longer in line with iOS 7 have been removed: tintColor, shouldTintPopovers and minLeft/RightToolbarWidth. Use UIAppearance to customize colors and tint throughout PSPDFKit instead.
  • Added
    Adds a new shouldHideStatusBar property to globally control the status bar setting from the PSPDFViewController.
  • Changed
    We no longer support the legacy UIViewControllerBasedStatusBarAppearance setting. Use view controller based status bar appearance.
  • Changed
    The PSPDFViewController is now configured via an immutable PSPDFConfiguration object. See the migration guide for details.
  • Changed
    Clear the web view state between PSPDFWebAnnotationView reuse.
  • Changed
    Many classes, including PSPDFTabBarButton and PSPDFScrobbleBar have been enabled for UIAppearance.
  • Changed
    Greatly improved and faster JavaScript Form support, using JavaScriptCore instead of UIWebView.
  • Changed
    The embedded PSPDFWebViewController now uses the faster WKWebView when available on iOS 8.
  • Changed
    Various improvements to the caching and rendering infrastructure. The limitation for super long/wide PDFs has been removed. PSPDFKit can now render documents no matter how long they are - we tested documents up to 5000px long/500px wide.
  • Changed
    The thumbnail bar and the thumbnail controller now support a new layout that will group pages together for double-page layouts. (see thumbnailGrouping)
  • Changed
    Many improvements to the multimedia gallery (PSPDFGallery), including better fullscreen-support and error handling.
  • Changed
    PSPDFAESDecryptor now checks the HMAC for additional security.
  • Changed
    The PSPDFAESCryptoDataProvider now returns an autoreleased object when accessing dataProvider.
  • Changed
    Open/Close page triggers are now supported (see PSPDFPageInfo).
  • Changed
    The new PSPDFMessageBarButtonItem allows sharing content via iMessage/SMS.
  • Changed
    Various UI widgets now better deal with keyboards that change the frame after being displayed (especially relevant for iOS 8)
  • Changed
    Annotation action URL parsing is now smarter and will trim the string and replaces inline spaces with %20, instead of just filtering them all.
  • Added
    Adds various view optimizations that lead to faster page display and less internal reloads.
  • Changed
    Color/Text attributes for outlines are now supported and parsed in PSPDFOutline and properly displayed in PSPDFOutlineViewController.
  • Changed
    Form text is now always auto-sized to match Adobe Acrobat's behavior.
  • Changed
    Thew new, faster UIVisualEffectsView is used for blur whenever available on iOS 8.
  • Changed
    OpenSSL has been updated to OpenSSL 1.0.1i.
  • API
    Various keys for PSDPFObjects* 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 now allows to 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 allows to select colors during signing.
  • Changed
    PSPDFViewController now fully respects isAutosaveEnabled and will no longer save the document on view did appear when this is set to NO.
  • Changed
    PSPDFFontDescriptor has been removed in favor of the new UIFontDescriptor introduced in iOS 7.
  • Changed
    Various code is now faster thanks to the toll-free-bridging of UIFont and CTFontRef.
  • Changed
    Support for the old, legacy PSPDFKit 2 annotation save format has been removed.
  • Changed
    Image annotations now have better support for EXIF rotations when clipped via the internal editor.
  • Fixed
    Fixes an issue where the inspector could re-use the wrong cells and mixing up sliders or other control items.
  • Fixed
    Fixes an issue that would sometimes not allow to draw at the very borders of the screen on iPhone.
  • Fixed
    Fixes an issue where the annotation menu would not show up after scrolling the page.
  • Fixed
    Fixes an issue with very large animated gifs.
  • Changed
    Includes all bug fixes and improvements made in the PSPDFKit 3.7.x branch.
  • Fixed
    Fixes an issue related to search highlighting and annotation moving. The highlights are now cleared before objects can be moved.
  • Fixed
    Fixes an issue where the popover wasn't correctly moved when a new PSPDFNoteAnnotation is created via the PSPDFNoteAnnotationViewController.

3.7.14 - 16 Sep 2014

PSPDFKit 4.0 will be released on Monday, September 22, 2014 with full support for Xcode 6 with iOS 8 while also supporting iOS 7. The PSPDFKit 3.7.x branch will remain compatible with Xcode 5.1.1 and iOS 6+.

  • Fixed
    Fixes an issue where the Camera/Image Picker UI sometimes wouldn’t show up on iPad/iOS 8.

3.7.13 - 11 Sep 2014

  • Changed
    Works around a rare PDF rendering crash in iOS 8.
  • Changed
    Using fillColor on PSPDFButtonFormElement now respects the alpha property.
  • Fixed
    Fixes an issue in the text extraction logic when converting the contents of glyphs from unknown/not loadable fonts.
  • Fixed
    Fixes an issue where entering erase mode could hide the annotation toolbar.
  • Fixed
    Fixes an issue where the progress HUD would sometimes not correctly reposition when the keyboard appears in landscape.
  • Fixed
    Fixes an issue where the note annotation popover could become visible when deleting multiple annotations (including a note) at the same time.
  • Fixed
    Fixes an issue where the signature view controller failed to display on iPhone/iOS 8.

3.7.12 - 1 Sep 2014

  • Changed
    The predefined stamps now use the system locale instead of en_US.
  • Fixed
    Fixes an issue where the scrollable thumbnail bar could get into a state where it is not correctly displayed.
  • Fixed
    Fixes an issue with creating custom stamp annotations on iPad.
  • Fixed
    Fixes an issue with writing annotations into files that have unusual and non-standard compliant object headers.
  • Fixed
    Fixes a caching issue with extremely long file names.

3.7.11 - 20 Aug 2014

  • Changed
    Improves user name guessing for the annotation creation user.
  • Fixed
    Fixes an issue where saving notes multiple times within the same session could cause a duplication.
  • Fixed
    Fixes an issue with handling umlauts during a save in certain text field form elements.
  • Fixed
    Fixes a minor logging issue where in rare cases NSScanner could complain about nil string arguments.

3.7.10 - 17 Aug 2014

  • Changed
    Rendering the audio annotation preview no longer pauses background music.
  • Changed
    Makes sure the signature image in the signature view controller is the same regardless of the device orientation.
  • Fixed
    Fixes an issue with rendering right-aligned free text annotations in too small bounding boxes.
  • Fixed
    Fixes a few minor issues when exporting/importing from/to XFDF for stamp and ink annotations.
  • Fixed
    Fixes an issue where alert view actions could be executed twice under iOS 8.

3.7.9 - 6 Aug 2014

  • Fixed
    Fixes handling of nested form check boxes that are used as radio boxes.
  • Fixed
    Fixes an issue that could truncate text from a choice form element.
  • Fixed
    Fixes a rare UI issue with duplicated ink elements during erasing.
  • Fixed
    Fixes an issue where in landscape the keyboard could appear unexpectedly when using radio button form elements.
  • Fixed
    Fixes an issue where the page indicator in the scrobble bar sometimes was not correctly updated.
  • Fixed
    Fixes an issue on iOS 6 when showing the signature selector view controller.

3.7.8 - 1 Aug 2014

  • Changed
    Popup annotations, when written, now by default have the same bounding box as the parent annotation.
  • Changed
    Improves handling of link annotations with an empty URL.
  • Changed
    Continuous scroll mode now chooses the current pages based on the largest visible page, not the first visible page.
  • Changed
    Path resolving now also resolves "Caches" instead of just "Cache".
  • Changed
    Improves protection against manually calling commonInitWithDocument:.
  • Changed
    Improves placement of free text annotations that are close to the right page border.
  • API
    The interface for the PSPDFXFDFAnnotationProvider changed to reflect the possibility of stream recreation. Instead of setting the inputStream and outputStream directly, use createInputStreamBlock and createOutputStreamBlock.
  • Fixed
    Fixes a UI issue where the separators for the signature chooser could end up not visible on iOS 7.
  • Fixed
    Fixes an issue where cropping images could end up in black bars on parts of the image.
  • Fixed
    Fixes an issue where the text selection knobs could be slightly offset after a device rotation.
  • Fixed
    Fixes an issue with the fullscreen gallery transition on an iPhone.
  • Fixed
    Fixes a rare condition where a selected annotation would not hide the un-selected one, leaving two copies on the screen until the page changed.
  • Fixed
    Fixes a race condition that could result in rendering issues for form objects with auto-resizing text.
  • Fixed
    Fixes an issue where PSPDFKit would print a warning for KVO'ing weak properties that was not actually declared as weak.
  • Fixed
    Fixes an issue where the scrobble bar would not properly update itself after a rotation change.

3.7.7 - 21 Jul 2014

  • Changed
    Videos in the gallery are now reset if they are played till the end and the page changes.
  • Changed
    The 'hidden' flag for annotation objects is now also honored for the gallery. (including audio)
  • Fixed
    Fixes an issue when the device is being rotated while in erase mode.
  • Fixed
    Fixes an issue where the pen tool can't draw up to the edge for certain configurations on an iPhone.
  • Fixed
    Fixes an issue where quickly destroying/recreating libraries for indexed search could result in partial indexes.
  • Fixed
    Fixes an issue in PSPDFResizableView related to unusual view controller configurations where the view could overlap the parent view and subsequently no longer correctly responding to touch events.
  • Fixed
    Fixes an issue related to rotation when the gallery is moved to fullscreen from within a popover.
  • Fixed
    Fixes an issue where missing fields in the digital signature validation code could result in a (null) output.
  • Fixed
    Fixes an issue related to multiple saving via the same XFDF annotation provider.
  • Fixed
    Fixes an issue related to early-reloading of the thumbnail bar that could result in missing bar button items for special configurations.
  • Fixed
    Fixes an issue where the navigation bar could disappear after the annotation toolbar has been moved to a different position.

3.7.6 - 4 Jul 2014

  • Changed
    Simplifies usage of PSPDFMediaPlayerCoverModeClear in the gallery.
  • Changed
    Updates the Vimeo integration to use the new API endpoint.
  • Changed
    Improves efficiency and memory usage for parsing large outlines with invalid named destination tables.
  • Changed
    When using the text selection tool, we want to make sure no annotation is selected anymore.
  • Changed
    The state of the PSPDFWebAnnotationView is now cleared upon reuse to prevent flashes of previous used content.
  • Fixed
    Fixes an issue related to the scrobble bar and PSPDFThumbnailBarModeScrollable on iOS 6.
  • Fixed
    Fixes a potential issue where the HUD layout code could loop.
  • Fixed
    Fixes a potential crash related to the Wacom stylus driver.

3.7.5 - 16 Jun 2014

  • Added
    New Localizations: Indonesian, Malaysian, Polish, Chinese Traditional, Thai, Turkish and Ukrainian.
  • Changed
    Updates the WACOM stylus driver to no longer eagerly initialize, which could present a bluetooth disabled alert view.
  • Changed
    Annotations added to a PSPDFDocument programmatically now always get the isDirty flag set to ensure that they are being saved.
  • Changed
    PSPDFResizableView now correctly deals with UIAppearance and makes it easier to customize individual knobs. See PSCCustomSelectionKnobsExample for details.
  • Added
    Adds resilience / asserts form missing views in unusual (child view controller) configurations for the annotation toolbar.
  • Changed
    Improved JavaScript-calculation-support, adds AFMakeNumber to the list of supported JS functions and improves hide action annotation resolving.
  • Changed
    Improves compatibility to parse image stamps from 3rd-party software.
  • Changed
    Outlines where the page reference is missing are now displayed to be consistent with Adobe Acrobat.
  • Changed
    PSPDFLibrary learned exact sentence matching via the PSPDFLibraryMatchExactPhrasesOnlyKey option.
  • Changed
    Improves support for named hide actions that are bound to form elements.
  • Changed
    Allow to hook into PSPDFMenuItem action for analytics.
  • Changed
    Scrolling or zooming will no longer re-show the note popover. Moving the annotation while the popover being open will still re-show the popover. This behavior change does not effect other annotations that use a UIMenuController or note on iPhone.
  • Changed
    The annotation toolbar will now be hidden automatically if the last tab on the tabbed view controller is closed.
  • Changed
    The font picker blacklist now uses regular expressions for matching, to allow more special cases like blocking “Courier” but still allowing “Courier New”. The old behavior was a simple prefix check.
  • Changed
    The tables in PSPDFLibrary is now lazily created on first use, improving speed and delaying the unicode61 tokenizer check until the library is actually used.
  • API
    Removes the thumbnailSize property on PSPDFCache. This should be set in the PSPDFViewController instead.
  • API
    Hide thumbnailCellClass in PSPDFThumbnailBar. Use the standard class override mechanism instead.
  • API
    Removes the skipMenuForNoteAnnotationsOnIPad property on PSPDFViewController. Use the new shouldInvokeAutomatically on PSPDFMenuItem instead. (See PSCOpenNoteOnPhoneWithSingleTapExample)
  • Fixed
    Fixes an issue related to copying sound annotations.
  • Fixed
    Fixes an issue where UIImagePickerController would sometimes not cancel correctly on iOS 7.0.
  • Fixed
    Fixes an crash related to accessibility support and page reading.
  • Fixed
    Fixes an issue where a picked image was added after pressing “Cancel” on the size popover.
  • Fixed
    Fixes an issue where the thumbnail bar wouldn’t update correctly the first time it is displayed when it was hidden initially.
  • Fixed
    Fixes an issue related to annotation fetching when the pageRange feature is enabled.
  • Fixed
    Fixes a potential issue related to cancelling index requests in PSPDFLibrary.
  • Fixed
    Fixes a potential issue in the vector separation code of the ink eraser.
  • Fixed
    Fixes an incompatibility with the NewRelic framework.

3.7.4 - 26 May 2014

Note: With WWDC imminent and the upcoming release of iOS 8, we plan to finally drop support for iOS 6. Let us know your thoughts about this change: support@pspdfkit.com.

  • Changed
    Clip drawings to bounds. Improves experience when drawing in double page mode.
  • Changed
    The metadata dictionary of PSPDFDocument now also contains PDF Portfolio data, if detected.
  • Added
    Add new option to the PSPDFAnnotationTableViewController to show/hide the clear all button. showDeleteAllOption.
  • Changed
    Allow initialization of sound annotations from custom URL.
  • Changed
    Don’t allow to copy the contents of text markup annotations if the document disallows copying.
  • Changed
    Document parser: Add support for direct AcroForm dictionaries.
  • Changed
    Improves compatibility with certain rich text formats for free text annotations in 3rd-party XFDF files.
  • Changed
    Extremely complex ink annotations will now render much faster with only minimal reduced quality.
  • Changed
    We no longer manually draw a border if the free text annotation is backed by an AP stream.
  • Added
    Adds support for the mailDoc and launchURL JS functions to invoke the email/browser controller via JavaScript.
  • Changed
    PSPDFProcessor: PSPDFProcessorStripEmptyPages now also works for regular document rendering and performs a more sophisticated page analysis.
  • API
    The PSPDFPageRenderer can now be replaced at runtime, there's a new setSharedPageRenderer: instead of the class setter.
  • Changed
    Various localization improvements.
  • Fixed
    Fixes an issue where certain JavaScript calculations could end up as NaN's.
  • Fixed
    Fixes an issue where the “Reset Form” feature would sometimes not clear all form elements.
  • Fixed
    Fixes an issue where the pageRange property could be calculated incorrectly for password protected files.
  • Fixed
    Fixes an issue where adding/removing the same overlay annotations within the same runloop could lead to an incorrect view representation.
  • Fixed
    Fixes an issue where the bookmark indicator was not always correctly displayed when pages are filtered using the pageRange feature.
  • Fixed
    Fixes an issue where persisting choice form elements that were split in child/parent relationships could sometimes result in only the initial index value being set.

3.7.3 - 12 May 2014

  • Changed
    The search preview text is now stripped of control characters like carriage return or newlines, which improves preview for various documents.
  • Changed
    Improves error handling for inline PDF videos that can't be played. (most likely because they are in .flv flash video format)
  • Changed
    The cover image capture time for the video now defaults to second 2 instead of 0 to give a more meaningful default, and is also configurable via JSON.
  • Changed
    PSPDFStampViewController: Adds dateStampsEnabled property to control if date stamps are added or not.
  • Changed
    Improves handling around flexible toolbar dragging and the half modal sheet on the iPhone.
  • Changed
    Improves compatibility when the 'Spark Inspector' framework is linked with PSPDFKit.
  • Added
    Add selectedOptions to PSPDFDocumentSharingViewController to allow easier changing of the defaults.
  • Changed
    Changes the selected default for the print sheet to print with annotations if this is allowed.
  • Added
    Add new option to PSPDFAnnotationStateManager to allow setting the allowed image qualities allowedImageQualities for image annotations. Fixes #989.
  • API
    Make PSPDFOutlineElement immutable. Use the initializer to create.
  • Changed
    Various localization improvements.
  • Fixed
    Fixes a potential issue with manually creating PSPDFLineAnnotation objects without properly initializing the points array.
  • Fixed
    Fixes a potential formatting issue when writing sound annotations into the PDF.

3.7.2 - 6 May 2014

  • Added
    Add support for actions that are invoked on entering/exiting annotation focus.
  • Added
    Add support for GoToE embedded actions. This allows linking to PDFs that are saved inside the PDF.
  • Added
    Add support for relatively linked files without file handler. Will open QuickLook for such files.
  • Changed
    PSPDFDocument now automatically detects and converts PDF-Date-Strings (D:...) to NSDate objects when accessing the metadata property.
  • Changed
    Note annotations will now always get the correct style applied. (which includes alpha, if set)
  • Changed
    The method updatePage:animated: now also discards any current selection to make sure everything is updated.
  • Changed
    PSPDFWebViewController: add new property shouldUpdateTitleFromWebContent to control if the title should be updated dynamically.
  • Changed
    Improved security handling based on Veracode static analyzer feedback.
  • Changed
    An embedded file with the 'pdf' filetype will now be previewed using a new PSPDFViewController instead of the generic QuickLook. QuickLook will still be used for all other file types.
  • Changed
    Various improvements to Form-JavaScript validation, actions and handling.
  • Changed
    Various smaller improvements to the flexible annotation toolbar related to tintColor handling.
  • Changed
    A new render option named PSPDFRenderDrawBlockKey allows to add a global drawing handler above the page renderer.
  • Changed
    Improves performance of the internal download manager with moving some Apple-API that is potentially slow to a background thread.
  • Changed
    The allowBackgroundSaving property of the PSDPFViewController now defaults to YES. Make sure you can deal with async saving or revert this to NO.
  • Changed
    Single-page documents no longer allow bouncing, unless alwaysBouncePages is enabled.
  • API
    The watermark drawing block has been changed and now includes more types. See PSPDFRenderDrawBlock for the new type.
  • API
    The X-Callback-URL registration is now handled by the PSPDFKit global configuration object.
  • API
    Removes the mailComposeViewControllerCustomizationBlock. Use the pdfViewController:shouldShowController:embeddedInController:options: delegate.
  • API
    executePDFAction:inTargetRect:forPage:actionContainer now has an additional animated: property.
  • API
    Some logic from PSPDFSoundAnnotation has been extracted into PSPDFSoundAnnotationController.
  • Fixed
    Fixes a regression when adding images via the annotation toolbar on an iPad.
  • Fixed
    Fixes a regression that could reduce ink annotation width to 1.
  • Fixed
    Fixes an issue where PSPDFStatusHUD would not always correctly update when a new title was set while it was already visible.
  • Fixed
    Fixes an issue where sound annotation data was sometimes not correctly loaded and wasn't properly exported as JSON.
  • Fixed
    Fixes a very rare potential for a deadlock when the JavaScript runtime is being initialized from a background thread.

3.7.1 - 25 Apr 2014

  • Added
    Adds Dutch translation.
  • Changed
    The PSPDFGallery now supports parsing and embedding Vimeo URLs, next to YouTube.
  • Changed
    Improvements for the flexible annotation toolbar on the iPhone.
  • Changed
    Calling undo/redo will now scroll to the page where the annotation is being changed.
  • Changed
    Small visual tweaks for the ink preview icon in the flexible annotation toolbar.
  • Changed
    Allow to subclass PSPDFFreeTextAccessoryView, PSPDFFormInputAccessoryView and expose the bar button items.
  • Changed
    Additional improvements and checks to better guard against low-memory situations and to improve the Veracode score.
  • Changed
    Performance improvements when a large amount of updates are being processed for undo/redo.
  • Changed
    The document label is no longer displayed on iPhone when the document doesn't has a label.
  • Changed
    The PSPDFDrawView is now reused when possible and state aware. (improves drawing polylines/polygons)
  • Changed
    The XFDF parser now correctly parses the lastModified property of annotations.
  • Changed
    Improve palm detection when using a stylus.
  • Fixed
    Fixes an issue when converting line annotations to JSON.
  • Fixed
    Fixes various issues when using updateAnnotations:animated: from the PSPDFAnnotationManager.
  • Fixed
    Fixes an issue related to search in the font picker controller.
  • Fixed
    Fixes an issue when using the streaming encryption/decryption with empty XFDF files.

3.7.0 - 19 Apr 2014

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.
  • Changed
    The gallery learned different cover modes, including a transparent one: https://github.com/PSPDFKit/PSPDFKit-Demo/wiki/adding-a-gallery-to-your-document
  • Changed
    Multimedia links can now be activated via button and the gallery can be displayed as popover or modally: https://github.com/PSPDFKit/PSPDFKit-Demo/wiki/adding-a-gallery-to-your-document
  • Changed
    The gallery will now correctly scale @2x images from remote servers.
  • Changed
    The gallery now automatically pauses other instances when play is pressed.
  • Changed
    The gallery now allows UIAppearance for blur and background colors.
  • Changed
    The blur algorithm used for the gallery are now over 4x faster and also support live fullscreen blur.
  • Changed
    The speech synthesizer (PSPDFSpeechSynthesizer) now auto-detects the best language by parsing the current document page.
  • Changed
    Greatly improved AcroForm JavaScript validation support.
  • Changed
    Improves support for custom controllers that don't define a preferred content size when used with PSPDFContainerViewController.
  • Changed
    Empty ink signatures are no longer saved.
  • Added
    Add confirmation sheet for the "Clear All" button in the annotation table view controller.
  • Changed
    It's now possible to correctly override PSPDFAnnotationCell from PSPDFAnnotationTableViewController.
  • Changed
    The PSPDFAnnotationTableViewController now automatically reloads the content if the visibleAnnotationTypes property has been changed.
  • Changed
    The PSPDFLibrary now optionally allows exact word matching with supplying the PSPDFLibraryMatchExactWordsOnlyKey parameter.
  • Changed
    The XSigner attribute is now parsed and displayed as the signer name if no other name is defined in the digital signature. (PSPDFKit Complete feature)
  • Added
    Adds support for orphaned form elements that are not referenced in the AcroForm dictionary.
  • Changed
    Reloading a document while the keyboard is up will no longer lead to the page animating back to center.
  • Added
    Add some additional safeguards/asserts and developer warnings that help to detect wrong use of certain methods.
  • Changed
    Improve support for custom PSPDFFlexibleAnnotationToolbar configuration or when used manually without an UINavigationController.
  • Changed
    PSPDFKit has been tested with Veracode (http://www.veracode.com/) and we've improved and hardened several code paths.
  • Added
    Add PSPDFThumbnailFilterSegmentedControl to enable UIAppearance rules on the thumbnail overview filter segment.
  • Added
    Add basic support for URL actions that are actually JavaScript actions.
  • Changed
    Support loading images from asset catalogs via the pspdfkit:// image loading system.
  • Changed
    The flexible annotation toolbar now better adapts to status bar changes on iOS 7.
  • Changed
    Allow to manually force-load all annotations from the PSPDFXFDFAnnotationProvider.
  • Added
    Add support for embedded CMap streams for the text parsing engine.
  • API
    The PSPDFAction objects and the PSPDFPageInfo objects are now immutable.
  • API
    The toolbar now longer auto-hides when invoked via the context menu. This also removes the hideAfterDrawingDidFinish property.
  • API
    Removed setTextViewCustomizationBlock: as it is inconsistent with what we do everywhere else in the framework. Use overrideClass:withClass: or the pdfViewController:shouldShowController:embeddedInController:options:animated delegate instead. To change the font, instead of textViewFont, simply change it in updateTextView.
  • API
    The bookmarkQueue is now exposed via a property and not via an ivar in PSPDFBookmarkParser.
  • API
    A few methods in the digital signature code have been renamed to be more clear about their intent.
  • API
    Adds a new pageTextFound parameter to didFinishSearch: and now shows "Document has no content" if a document without text content is being searched.
  • API
    setGlobalBorderColor on PSPDFLinkAnnotationView has been removed. The recommended API is to use UIAppearance on borderColor instead.
  • API
    Remove explicit close button management inside PSPDFContainerViewController as the PSPDFViewController (via PSPDFPresentationManager) already provides this feature.
  • Fixed
    Fixes an issue where certain pre-encoded URLs with non-ascii characters could end up being encoded twice.
  • Fixed
    Fixes a potential stability issue in the accessibility support for line-based page reading.
  • Fixed
    Fixes an issue that could add overlay-based annotations to the wrong page when a redo action is invoked with soft-deleted annotations.
  • Fixed
    Fixes an issue related to text extraction font caching with different widths.
  • Fixed
    Fixes various rare issues when analyzing the document or writing annotations with partial UTF16-LE encoding, invalid document IDs or missing object references.
  • Fixed
    Fixes a rare crash issue related to missing languages and the PSPDFSpeechSynthesizer.

3.6.5 - 31 Mar 2014

  • Changed
    Some internal improvements to prepare for the upcoming stylus support.
  • Changed
    Improves section styling of the annotation inspector under iOS 7.

3.6.4 - 30 Mar 2014

  • Changed
    The flexible annotation toolbar now automatically consolidates buttons if space becomes too short.
  • Changed
    The image/video gallery now loops content by default, unless it's just a single item. (This is controllable by the new loopEnabled flag)
  • Changed
    Improve documentation around gallery-usage and proper removal from full-screen.
  • Changed
    The percent driven back animation of the inspector now animates the current selected cell out or restores it based on the animation progress.
  • Changed
    Changes the HMAC format for the PSPDFCryptor from SHA1 to SHA256 to be more consistent with the RNCryptor data format.
  • Changed
    The moreBarButtonItem action sheet is now dismissed when tapped on the button while it being open (instead of showing it again).
  • Changed
    Allows to add global processor options via a new delegate to PSPDFDocumentSharingViewController.
  • Changed
    PSPDFProcessor now has a new drawing hook (PSPDFProcessorDrawRectBlock) which can be used to watermark documents on exporting.
  • Fixed
    Fixes an issue that could prevent showing some search highlights if there are multiple on the same page.
  • Fixed
    Fixes a regression where sometimes the original view port wasn't correctly restored when the keyboard is dismissed after free text editing.

3.6.3 - 26 Mar 2014

  • Changed
    Improves placement precision of draft ink annotations when the device is rotated while in drawing mode.
  • Changed
    Improves popover placement for the flexible annotation toolbar in vertical mode.
  • Changed
    Multiple performance and memory improvements, especially for searching and scrolling large documents, and for usage on an iPhone 4.
  • Changed
    Various cosmetic updates (improved thumbnail scroll bar, better support for iPhone 4 which doesn't support live-blur)
  • Changed
    Improves search highlighting accuracy for certain document types.
  • Fixed
    Fixes an issue that could move the scroll view for keyboard events that were not inside the scroll view.
  • Changed
    Small localization updates.

3.6.2 - 21 Mar 2014

  • Changed
    Improves appearance customization options for the new PSPDFFlexibleAnnotationToolbar.
  • Changed
    The new PSPDFFlexibleAnnotationToolbar is easier to customize and also has an additionalButtons property to add custom actions.
  • Changed
    Makes sure the PSPDFFlexibleAnnotationToolbar is always removed from the view hierarchy as the PSPDFViewController disappears.
  • Changed
    The PSPDFGallery now better deals with custom quality properties for YouTube videos.
  • Changed
    Ensures that the status bar doesn't change on iOS 7 with view controller based status bar appearance enabled when the PSPDFStatusHUD is displayed.
  • Changed
    Improves the XFDF writer/parser to deal with more action types (PSPDFRenditionAction, PSPDFRichMediaExecuteAction, PSPDFSubmitFormAction, PSPDFResetFormAction, PSPDFHideAction).
  • Changed
    Improves popover positioning logic, especially for the search popover.
  • Changed
    Improves stability when using the new container annotation provider class.
  • API
    Removes aspectRatioEqual and aspectRatioVariance from PSPDFDocument. Other performance improvements made this option no longer useful.
  • API
    Clarifies usage of the PSPDFGalleryViewController by renaming the allowFullscreen property to displayModeUserInteractionEnabled.
  • Fixed
    Fixes a potential issue with an over-release of NSError when printing a single page with PSPDFKit Viewer.
  • Fixed
    Fixes a stability issue when serializing annotations for certain PDF AcroForm buttons with icons in the appearance characteristics dictionary.
  • Fixed
    Fixes an issue where changing the page via the annotation table view controller could end up on a page that wasn't correctly centered.
  • Fixed
    Fixes a small selection issue with handling multiple equal grouped annotations on the same page.

3.6.1 - 17 Mar 2014

  • Changed
    Before a document is saved, we now set the annotation state mode to nil, which commits any open annotations like inks.
  • Changed
    Reverted the use of @import with modules. Apple's module feature seems to have issues with projects that also use C++.
  • Fixed
    Fixes an issue with saving annotations in certain PDFs with corrupted page IDs.

3.6.0 - 16 Mar 2014

We're proud to ship the next milestone of PSPDFKit. Version 3.6 features a completely new annotation toolbar, search within annotation text, note annotations that show up in the thumbnails and countless other improvements. This release has been fully tested with Xcode 5.1 and iOS 7.1. We now require at least Xcode 5.0.2 and SDK 7 to compile and have dropped support for Xcode 4.6 (Apple no longer accepts apps built with SDK 6/Xcode 4.6) Applications built with PSPDFKit will still run and work great under iOS 6.

  • Changed
    Fully compatible and tested with iOS 7.1 and Xcode 5.1.
  • Changed
    God dag! We've added Swedish to the list of presupplied localization files.
  • Changed
    All-new flexible annotation toolbar (PSPDFFlexibleAnnotationToolbar) that can be dragged to be vertical or horizontal. See PSPDFAnnotationToolbarType in the PSPDFAnnotationBarButtonItem to optionally keep using the old annotation toolbar.
  • Changed
    PSPDFKit Complete can now create digital signatures. This feature is still in beta - we need more documents to test all possible conditions. If you're having issues with this, please contact us so we can further increase the test coverage.
  • Changed
    Text selection now supports text-to-speech on iOS 7+. See PSPDFSpeechSynthesizer for details and options to customize the language.
  • Changed
    Forms on iPhone/iOS 7 now have an automatic zoom feature that makes it a lot easier to enter text.
  • Changed
    Search now also includes annotation and form element contents. This is especially useful for note annotations and forms. (PSPDFKit Basic/Complete)
  • Changed
    Search results are now hidden on page tap (unless that tap finds an action like selecting an annotation.)
  • Changed
    Note annotations are now always rendered at the same size and also visible in the thumbnails.
  • Changed
    PDF annotation writing will now be faster and produce a more compact trailer, reducing target file size.
  • Added
    Adds support for mailto: links with multiple email addresses (also for CC and BCC).
  • Changed
    Saving will now use the correct z-index for annotations and forms in the same ordering as they are added. Saving changed objects will no longer change the z-ordering.
  • Changed
    Simple JavaScript actions like printing, alert boxes or adding form values now work. If you have a use case for that, please contact us at support@pspdfkit.com.
  • Changed
    The XFDF parser now parses basic rich text strings as used in Acrobat and keeps color and font informations.
  • Changed
    Increases contrast for the selection color on form choice list-boxes.
  • Changed
    PSPDFTextSelectionView now allows UIAppearance to customize selectionColor and selectionAlpha.
  • Changed
    The PSPDFActivityViewController now checks if printing is allowed for the document before even showing the print option.
  • Changed
    No longer ends the text view edit mode when zooming on iOS 7 (flat mode) and above.
  • Changed
    File annotations are now evaluated lazily, which improves startup performance for documents with many such annotations.
  • Changed
    Note annotations now also create popup annotation on PDF saving. These are optional but increase compatibility with certain less standard-compliant 3rd-party software.
  • Changed
    The behavior of the pdfViewController:didTapOnPage:View:atPoint: has been updated when no PSPDFPageView was hit to return nil here, and coordinates relative to the current PSPDFViewController.
  • Changed
    The PSPDFThumbnailBar has a new parameter to optionally enable the page labels: showPageLabels (defaults to NO).
  • Changed
    Many improvements related to PDF AcroForm handling and input validation.
  • Changed
    Calls to didHidePageView: and didShowPageView: of views with the PSPDFAnnotationViewProtocol are now properly balanced.
  • Changed
    The text parser now has a more sophisticated text shadow/overlay detection, which improves search results by removing duplicated glyphs.
  • Changed
    The gallery has a new mode that enables live-blur behind the content (see blurEnabled on PSPDFGalleryViewController).
  • Fixed
    Fixes an issue where the popover might open at an unexpected location when using the inline multimedia system with the popover:true parameter.
  • Changed
    Font annotations are now rendered with their AP stream for greater document accuracy.
  • Changed
    Annotations now support the additional action mouse up event.
  • Changed
    Greatly improves speed for the XFDF image deserialization process.
  • API
    PSPDFKit now requires the Accelerate.framework. If you're using the PSPDFKit.xcconfig file, you don't need to change anything.
  • API
    Search related methods are now in the new searchHighlightViewManager property of PSPDFViewController.
  • API
    The HUD and related views have been reorganized. You might have to update some calls (some views are now within HUDView)
  • API
    PSPDFProgressHUD has been replaced with the all-new PSPDFStatusHUD, which features a modern iOS 7 design and an improved API.
  • API
    PSPDFDocument should be treated as an immutable object (apart from settings). Thus, the files and fileURL properties have been made readonly, and appendFile: has been removed. Create a new document with the new files/data objects instead. Use the new helper documentByAppendingObjects: to create a modified document with a new file or data objects.
  • API
    The PSPDFAnnotationManager now supports various protocol strings, thus the property protocolString has been renamed to protocolStrings and is now an NSArray that takes NSStrings. We've added embed:// as a second, neutral protocol format.
  • API
    The textSearch class has been moved from PSPDFDocument to PSPDFViewController.
  • API
    PSPDFNoteAnnotationViewFixedSize has been removed. Notes are now drawn with a fixed size, however you can define the bounding box to whatever you like. We recommend using 32px, but this value is being ignored by both PSPDFKit and Adobe Acrobat. Other, less capable renderers like Apple Preview.app might use the value, so 32px is a good value - but also depends how large or small your document is.
  • API
    The PSPDFSignatureViewController no longer dismisses itself. Dismiss the controller in the delegate callbacks.
  • API
    Code and subclassing hooks that could be used to change the PSPDFScrobbleBar frame have been moved to PSPDFHUDView.
  • API
    Removes various deprecated code.
  • Fixed
    Fixes an issue related to YouTube video parsing - now compatible with even more video subtypes.
  • Fixed
    Fixes a weird scrolling behavior for some form elements.
  • Fixed
    Fixes an issue where the free text tool wouldn't work if highlighting was selected before that.
  • Fixed
    Fixes an issue where PDF form values could become corrupted because of insufficient escaping in some PDF files.
  • Fixed
    Fixes an issue where drawings could be created on multiple pages if the page is changed while in drawing mode.
  • Fixed
    Fixes multiple issues related to forms on rotated pages.
  • Fixed
    Fixes an issue related to annotation fetching and the pageRange feature of PSPDFDocument.
  • Fixed
    Fixes multiple issues related to the ink eraser.

3.5.2 - 21 Feb 2014

  • Changed
    PSPDFYouTubeAnnotationView has been removed in favor of the newer PSPDFGallery. Te gallery is a much better user experience for embedding YouTube videos.
  • Added
    Adds a workaround to prevent unwanted UIPopoverController animations that might appear under certain conditions on iOS 7.0.
  • Added
    New property highlightColor on PSPDFPageView to control the color used for link/form touch feedback.
  • Changed
    Improves reload behavior with an external animation block.
  • Changed
    The play button for the PSPDFGallery is now always white and configurable via UIAppearance.
  • Changed
    Improves fade animation of the page label under iOS 7, especially for the new blur-page label setting on iOS 7.
  • Changed
    The PSPDFDocumentPickerController now uses a dynamic size when displayed as a popover.
  • Changed
    Various smaller improvements related to the new sidebar example in PSPDFCatalog.
  • Changed
    defaultColorOptionsForAnnotationType now returns an NSArray of string, color tuples.
  • Changed
    Allows to use UIAppearance to change the default search view highlight color.
  • Changed
    The note popover now will be dismissed on tap if the annotation state manager is used for highlight mode, just as it does when using the annotation toolbar.
  • Changed
    The allowsCopying property in PSPDFDocument no longer controls if the "Copy" option for annotations is displayed. This property only controls text.
  • Changed
    Makes sure that the ink width while drawing and rotating is always the correct one.
  • API
    padding of PSPDFViewController is now of type UIEdgeInsets and also works with PSPDFPageTransitionScrollContinuous.
  • Changed
    Stamps now more closely resemble the look of Adobe Acrobat.
  • Changed
    Improves content type detection in the gallery.
  • Changed
    Various localization improvements.
  • Changed
    The XFDF parser can now write images within appearance streams to Adobe Acrobat.
  • Fixed
    Fixes an issue where the text rect could be CGRectZero if the shouldSelectText: delegate was not set.
  • Fixed
    Fixes an positioning issue related to custom scopes in PSPDFSearchViewController.
  • Fixed
    Fixes an issue where the PSPDFMultiDocumentViewController would not work as expected if the delegate was not set.
  • Fixed
    Fixes an issue where the PSPDFMultiDocumentViewController would only show the thumbnails for the first document.
  • Fixed
    Fixes a stability issue related to the "Clear All" feature and the XFDF annotation provider.

3.5.1 - 15 Feb 2014

  • Added
    New property in the PSPDFStyleManager to control if changes to annotations should be saved as the new defaults: shouldUpdateDefaultsForAnnotationChanges.
  • Changed
    Expose cornerRadius in PSPDFResizableView to customize the border appearance.
  • Changed
    Behavior Change: Setting the annotationSaveMode to PSPDFAnnotationSaveModeDisabled will no longer disable annotation editing features. To disable annotation editing, set the editableAnnotationTypes property of the PSPDFDocument to nil instead.
  • Added
    Adds a new delegate "pdfDocument:provider:shouldSaveAnnotations:" to allow a more fine-grained control over the saving process.
  • Changed
    No longer removes unknown views from PSPDFPageView. Use prepareForReuse to manually clean up if you subclass PSPDFPageView.
  • Changed
    Improves compatibility with embedded PDF files.
  • Changed
    Ensures that document metadata is preserved after writing annotations or forms.
  • Changed
    Improves compatibility with annotation or form writing for certain less commonly used PDF subformats.
  • Changed
    Improves several UI details for iOS 7 legacy mode. (UIUseLegacyUI or compiled with SDK 6. This mode is not recommended, but will work.)
  • Changed
    The PSPDFGallery can now display YouTube videos. This will most likely replace PSPDFYouTubeAnnotationView in future versions.
  • Changed
    The XFDF parser can now load images within appearance streams from Adobe Acrobat.
  • Fixed
    Fixes an issue on iOS 6 where the gradient background for the page position label could be too small.
  • Fixed
    Fixes a stability issue on iOS 6 related to PSPDFBarButtonItem tint color updating.
  • Fixed
    Fixes an issue that prevented to hide the thumbnail bar in PSPDFThumbnailBarModeScrollable unless PSPDFHUDViewAnimationSlide was also set.
  • Fixed
    Fixes some tiny memory leaks on error situations.
  • Fixed
    Fixes an issue related to re-using PSPDFSearchViewController. Thus only happened in custom code, as PSPDFKit recreates this controller as needed.
  • Fixed
    Fixes an issue where subclasses of PSPDFFileAnnotationProvider could encounter immutable objects where mutable objects were expected.
  • Fixed
    Fixes a stability issue related to autodetecting link types.
  • Fixed
    Fixes an issue related to exporting appearance streams via XFDF.
  • Fixed
    Fixes an issue where image stamp annotations in rotated documents could have an incorrect transform applied when saved via PSPDFProcessor.

3.5.0 - 10 Feb 2014

  • API
    The PSPDFAnnotationToolbar has been modularized and all state related code is now in PSPDFAnnotationStateManager, which is a property of PSPDFViewController. You might have to update your subclasses to reflect these changes. PSPDFAnnotationStateManager should now be used instead of a headless PSPDFAnnotationToolbar if you have your own toolbar.
  • Added
    New unified setBoundingBox:transform: method on PSPDFAnnotation. Adds a helper that transforms the font size on resizing.
  • Changed
    The Inspector is now sticky and will update itself for the new annotation if one is tapped while the inspector is visible. This simplifies editing and saves some taps.
  • Changed
    Various smaller animation tweaks.
  • Changed
    The PSPDFGallery now shows the already fetched parts of a video in the progress bar.
  • Changed
    Bookmarks now use the pageLabel, if one exists, instead of the logical page number.
  • Changed
    Embedding YouTube objects now support parameters in the URLs.
  • Changed
    Better handling of exporting annotations into rotated PDF pages via PSPDFProcessor.
  • Changed
    Improves several cases where phone numbers were not correctly detected before. (PSPDFTextCheckingTypePhoneNumber)
  • Changed
    Correctly displays border for forms that define the border color in the MK dictionary.
  • Added
    Adds initial support for text field form validation. (Currently, AFNumber_Format is supported.)
  • Added
    Adds limited support for drawing rich (formatted) free text annotations on iOS 7. Editing will convert them into plain text annotations.
  • Changed
    Greatly improves XFDF support for complex PDF Forms, now better matches the output of Acrobat.
  • Fixed
    Fixes an issue that could reset the ink annotation width to 1.
  • Fixed
    Fixes a crash when processing certain sound annotations using PSPDFProcessor.
  • Fixed
    Fixes an issue where tapping into the page when the half modal controller on iPhone was visible could result in a different selected annotation than tapped.
  • Fixed
    Fixes an issue that didn't correctly update the thumbnails when bookmarks were added/removed while displaying the grid.
  • Fixed
    Fixes an issue that could show the signature selector controller when adding the first signature on iPhone only.
  • Fixed
    Fixes an issue where the document label could be visible even though documentLabelEnabled was set to NO.

3.4.6 - 1 Feb 2014

This patch release includes various form related improvements, especially hardware keyboard support and performance tweaks for very complex forms.

  • Changed
    Tap-to-zoom now starts rendering the page instantly; this improves render performance quite a bit.
  • Changed
    Visual improvements for the form choice view controller.
  • Changed
    Multiline Form Text Fields are now vertically aligned to the top.
  • Changed
    Editable choice form elements now show touch down feedback and keep the keyboard for easier switching on iPad.
  • Changed
    Long-Pressing on form elements will no longer cancel the tap action.
  • Changed
    Form elements can now be navigated with a hardware keyboard via the arrow keys and escape/space/enter. (iOS 7 only)
  • Changed
    Form navigation with prev/next now includes choice form elements, and the value can be toggle with the space bar.
  • Changed
    Ensures that stamps never draw text outside their boundaries.
  • Changed
    Render/Update performance for pages with many annotations has been greatly improved.
  • Changed
    When using the PSPDFAnnotationTableViewController, form elements are not only selected but also brought into edit mode.
  • Changed
    Improves support for file:// links if linkAction is not set to PSPDFLinkActionInlineBrowser.
  • Changed
    Tweaks link type autodetection to work better on certain types of documents.
  • Changed
    Expose the completion handler for UIActivityViewController inside PSPDFActivityBarButtonItem.
  • API
    Remove long press support for bar button items. This was only used for the bookmark button and already defaulted to NO.
  • Changed
    PSPDFPageView now sends a PSPDFPageViewSelectedAnnotationsDidChangeNotification notification each time the selectedAnnotations property changes.
  • Changed
    Erasing is now faster with custom annotation providers, as change notifications are now queued and sent on touch end events only.
  • Fixed
    Fixes an issue that could hide the outline bar button in cases where annotations were in the document but no outline.
  • Fixed
    Fixes a potential use-after-free when a form with a editable choice field was edited on iPhone and then dismissed via the input accessory view on iOS 7.
  • Fixed
    Fixes an issue where certain form checkboxes were not checked if appearance streams were missing from the PDF.
  • Fixed
    Fixes an issue where form buttons with named actions sometimes failed to change the page.
  • Fixed
    Fixes an issue where saving certain form objects could hide these form objects in Acrobat.
  • Fixed
    Fixes an issue where manual bookmark reordering wasn't saved in some situations.
  • Fixed
    Fixes a rare recursion issue on iOS 6 when using the old toggle-style for the viewMode bar button item.
  • Fixed
    Fixes an issue where the bookmark bar button not always reflected the actual bookmark state.
  • Fixed
    Fixes a potential over-release with certain rarely used CMaps definitions that include other CMaps.

3.4.5 - 24 Jan 2014

  • Changed
    Better handles resizing for rotated stamps.
  • Changed
    The Open In... activity is now displayed for NSData-based documents.
  • Changed
    Improve availability filtering for the PSPDFOutlineBarButtonItem, no longer presents an empty controller if no content is available.
  • Changed
    Small localization updates.
  • Changed
    Improve XFDF action writing for non-standard types like GoToR.
  • Changed
    Improvements to word/new line detection in the text parser for certain documents.
  • Changed
    Improves rendering performance, especially for more complex PDF forms.
  • Changed
    Form updates are now more snappy and no longer animate.
  • Changed
    Various smaller improvements for the inline web view. (PSPDFWebAnnotationView)
  • Fixed
    Fixes an issue where annotations could end up at a different location when rotated documents were re-saved using PSPDFProcessor.
  • Fixed
    Fixes an issue where viewControllers of the PSPDFContainerViewController could return nil.
  • Fixed
    Fixes an issue where annotations saved via PSPDFProcessor could end up on a different page.
  • Fixed
    Fixes an issue where the target page of a document/page action sometimes wasn't correctly saved when using the XFDF format.

3.4.4 - 22 Jan 2014

  • Added
  • Changed
    The PSPDFGallery now shows an AirPlay button if AirPlay sources are available.
  • Changed
    Stamp annotations no longer have distorted text.
  • Changed
    Update OpenSSL to OpenSSL 1.0.1f.
  • Changed
    Forms: Checkboxes with the same name and parent form a mutually exclusive group.
  • Changed
    zoomToRect:page:animated: now honors the animated option and compensates for the x/y origin depending on the scroll direction for PSPDFPageTransitionScrollContinuous.
  • Fixed
    Fixes an regression in the annotation toolbar related to tap handling.
  • Fixed
    Fixes an issue where the PSPDFOutlineViewController could display stale data if the outline is complex and documents are switched before the outline parsing operation was done. This basically only happened if the controller was displayed as a side-bar, not when in a popover or modal.

3.4.3 - 21 Jan 2014

  • Changed
    Code updated to be warning-free with iOS 7.1b4 and Xcode 5.1b4.
  • Changed
    Extracted all possible PSPDFMenuItem identifiers to PSPDFPageView.
  • Changed
    PSPDFProcessor's generatePDFFromURL: and generatePDFFromHTMLString: methods now support embedding annotations if set via the options dictionary.
  • Changed
    PSPDFMultiDocumentViewController no longer tries to persist NSData- or CGDataProviderRef-based documents. Only file-based documents are persisted between sessions.
  • Changed
    Improves search animation for the PSPDFOutlineViewController.
  • Changed
    Various small localization updates.
  • API
    PSPDFProcessor's generatePDFFromHTMLString: methods have gained a new error parameter.
  • API
    PSPDFAESDecryptor's init methods have gained a new error parameter.
  • Fixed
    Fixes a regression where two-finger-scrolling in highlight mode no longer worked.
  • Fixed
    Fixes a rare timing issue where a mutation error could be thrown if reloadData is called within page loading delegate methods.
  • Fixed
    Fixes an issue where exported annotation via the share sheet could end up on different pages if a document with multiple provider sources is used.

3.4.2 - 19 Jan 2014

  • Changed
    Improved defaults for the status bar and the activity controller.
  • Changed
    The document and page label now use blur on iOS 7.
  • Changed
    Full-page-ads with links now no longer highlight the whole page.
  • Changed
    The bookmark activity now shows the current bookmarked state.
  • Changed
    The thumbnail cells use the active tintColor on iOS 7 as their selection border color.
  • Added
    New property to control if the HUD should be visible on viewWillAppear. (shouldShowHUDOnViewWillAppear:)
  • Changed
    Slightly darker default background for the PSPDFViewController on iOS 7.
  • Fixed
    Fixes an regression with the loupe view and UIInterfaceOrientationLandscapeLeft.
  • Fixed
    Fixes an issue where annotations could be missing when exporting single pages that are backed by XFDF via email.
  • Fixed
    Fixes an issue where the internal web browser wasn't correctly dismissed when an App Store link was detected.
  • Fixed
    Fixes an issue where the contentInset could become too large when using the PSPDFStampViewController.

3.4.1 - 18 Jan 2014

  • Fixed
    Fixes an issue with UIActivityViewController on iOS 7.1b3.

3.4.0 - 18 Jan 2014

  • Changed
    The PSPDFVideoAnnotationView has been completely removed as the new PSPDFGallery takes over all of this functionality. PSPDFKit finally allows to play multiple videos and/or audio at the same time. (The total number of concurrent video streams is hardware dependent and is usually 4)
  • Changed
    Ink annotations can now be merged via the multiselect tool. This will discard all different styles and use the style of the first object if used.
  • Changed
    Various annotation changes and page updates are now animated (most visible when using undo/redo).
  • Changed
    Various improvements and fixes for PDF Forms.
  • Changed
    Improves the activity bar button item, actions will forward to the bar button items if possible.
  • Changed
    The annotation toolbar will now attempt to merge highlights if they overlay each other and have the same color.
  • Changed
    Improves hit testing for smaller annotation types like note annotations.
  • Changed
    The PSPDFPrintBarButtonItem now uses the PSPDFDocumentSharingViewController to make it consistent with the Email and Open In action and thus has also new option parameters. (API-Change). This now allows printing the annotation summary.
  • Changed
    The annotation summary now generates an attributed string when printing or sending via email.
  • Added
    Add PSPDFAnnotationIgnoreNoteIndicatorIconKey to optionally disable the note indicator rendering.
  • Changed
    Improves support for links to different documents via URI action type.
  • Changed
    Adding a signature will now make it smaller and more appropriate for large documents.
  • Changed
    The PSPDFSignatureSelectorViewController is now stateful, has a minimum size and will show "No Signatures" if the last signature was deleted while being open.
  • Changed
    The use of the outline in the search preview is now configurable via useOutlineForPageNames in the PSPDFSearchViewController. It defaults to YES.
  • Added
    New iPhone popover controller that better fits into iOS 7.
  • Changed
    The annotation type image in the annotation table view is now colored in the same color as the annotation itself.
  • Added
    Adds a workaround for an issue where iOS would change the status bar when showing an UIAlertView without setting it back to the previous setting.
  • Changed
    Exposes filteredPagesForType: to customize what the thumbnail controller displays, and increases the touch target of the thumbnail filter.
  • Fixed
    Fixes an issue when certain annotation types were manually overridden to be displayed as overlay, they could be initially visible until moved on page load.
  • Fixed
    Fixes an UI regression where the PSPDFProgressHUD would be rotated wrongly on device rotation.
  • Fixed
    Fixes an issue where YouTube videos were no longer being paused automatically in iOS 7 when in thumbnail mode.
  • Fixed
    Fixes a timing issue when multiple galleries were loaded at a page on the same time.
  • Fixed
    Fixes an issue in PSPDFTabbedViewController that could move pages off center when using iOS 7 when the HUD fades out.
  • Fixed
    Fixes an issue with embedding forms into documents with a invalid trailer ID.
  • Fixed
    Fixes an issue where dismissing the half-modal form choice picker could dismiss the current view controller on the iPhone.
  • Fixed
    Fixes an issue with extracting font glyph rect data, especially for CJK documents that use 'usecmap' to link to other CMaps.
  • Fixed
    Fixes a potential assertion in the text parser with certain malformed PDF documents that have invalid font descriptors. PSPDFKit will now try to extract as much as possible and not assert, even if the document is partly broken or contains invalid descriptors or font references.

3.3.5 - 9 Jan 2014

  • Changed
    The gallery now supports more options like autostart, cover views or control customizations.
  • Changed
    Improved the highlightedString feature by narrowing down the target rect. Reduces the chance to extract text above/below the marked text.
  • Changed
    The render activity view now has a slight delay and animates in and out, making it less disruptive.
  • Changed
    Extends support for iOS 7 dynamic type to more controls and cells.
  • Changed
    Localization has been streamlined and requires less entries. If you rely in a specific identifier for PSPDFMenuItem checks, remove the "..." from the strings.
  • Changed
    The option view in PSPDFNoteAnnotationViewController now uses blur on iOS 7 instead of plain transparency.
  • Added
    Adds further workarounds for issues in UITextView on iOS 7 which improves caret scrolling and visibility when using external keyboards.
  • Changed
    The "Clear All" action on PSPDFAnnotationTableViewController is now a single undo step instead of one per annotation.
  • Fixed
    Fixes an issue where the redo action of the PSPDFAnnotationToolbar would always prefer drawing redos, potentially preferring the wrong actions first.
  • Fixed
    Fixes an issue that blocked moving annotations if they are above a form field.
  • Fixed
    Fixes an issue that could select the wrong annotations when sending a single extracted page from a document via email.

3.3.4 - 7 Jan 2014

  • Changed
    The annotation table view has been redesigned and also shows the creation user and the last modification date, if available.
  • Added
    New property: skipMenuForNoteAnnotationsOnIPad to control how the note controller is displayed.
  • Changed
    Update selection style for the saved annotation cells to better match the iOS 7 design.
  • Changed
    Improves logic for popover resizing of the container controller.
  • Changed
    Various tweaks to the stamp controller and the text stamp controller. Now adds default date stamps, automatically shows keyboard once the PSPDFTextStampViewController appears and more.
  • Changed
    Various localization updates, including localization for stamps.
  • Changed
    The localizedDescription for PDF Form Fields is now smarter and won't create strings like Button: Button.
  • Changed
    The PSPDFAnnotationToolbar has a new backButtonItem hook to replace the default "Done" back button.
  • Changed
    Some more icon tweaks: delete now better fits into the iOS 7 UIMenuController and sound now is a microphone instead of a note.
  • Fixed
    Fixes an issue with saving custom pspdfkit:// prefixed links via the XFDF provider.

3.3.3 - 6 Jan 2014

  • Changed
    Re-enables the Clear button in the new PSPDFFreeTextAccessoryView after text has been changed.
  • Changed
    Don't show the ".pdf" file ending in the PSPDFDocumentPickerController.
  • Changed
    The inspector now repositions itself if the annotation changes the boundingBox.
  • Changed
    Saving annotations into the PDF has been optimized and creates a smaller PDF.
  • Changed
    Form objects no longer are deletable when using the PSPDFAnnotationTableViewController but will be cleared instead.
  • API
    Removed PSPDFInitialAnnotationLoadDelay. This is no longer a performance problem and has thus been removed and optimized.
  • Changed
    Improves styling in PSPDFWebViewController for iOS 6 when the navigation bar style is dark.
  • Changed
    The activity button in PSPDFWebViewController is now always enabled, not only after the page finished loading.
  • Changed
    PSPDFWebViewController now offers to load the page in Google Chrome, if installed.
  • Fixed
    Fixes an UI issue where the document title label could be offset under iOS 7/iPhone if the HUD was hidden when a modal VC is invoked.
  • Fixed
    Fixes an issue that prevented forms from saving correctly when saved via the Send via Email/Open In feature from a readonly source.
  • Fixed
    Fixes multiple issues with building/preserving the appearance string for certain PDF form elements.

3.3.2 - 4 Jan 2014

  • Added
    Adds new accessory view for free text annotations to quickly access the inspector.
  • Changed
    The font size in PSPDFNoteAnnotationViewController now adapts to iOS 7 content size.
  • Changed
    The gradient calculation used in PSPDFNoteAnnotationViewController now simply returns a default yellow if the base is white.
  • Changed
    The delete note icon in PSPDFNoteAnnotationViewController is now dynamically enabled/disabled depending if there's text in the UITextView.
  • Changed
    Improves the animation and various design details in PSPDFSearchViewController, especially on iOS 7.
  • Changed
    Improves the annotation summary to now repeat type and description if that's the same. (Ink, Ink)
  • Changed
    Various smaller design updates for the annotation inspector.
  • Changed
    API Update: generatePDFFromDocument: now accepts pageRanges as NSArray, which allows to easily re-order document pages (compared to a single NSIndexSet)
  • Fixed
    Fixes an UI issue where the text view wouldn't properly adapt in PSPDFNoteAnnotationViewController on iPhone.
  • Fixed
    Fixes an UI issue where the "No Bookmarks" label could be not exactly centered on first load.
  • Fixed
    Fixes an issue where the annotation bar button item would be disabled with PSPDFAnnotationSaveModeExternalFile.
  • Fixed
    Fixes an issue where the document sharing controller would sometimes not extract pages out of the PDF if only a subset of the pages are selected.
  • Fixed
    Fixes an issue where wrong options could end up being used if PSPDFDocumentSharingViewController was preconfigured so it is invoked without showing the UI.

3.3.1 - 2 Jan 2014

  • Changed
    PSPDFKit now displays note indicators for annotations with note content.
  • Changed
    Annotations that can't be erased are no longer hidden while in erase mode.
  • Changed
    The view controller order in PSPDFOutlineBarButtonItem and in PSPDFThumbnailViewController has been changed - bookmark is now the last entry.
  • Changed
    PSPDFSearchViewController now has support for custom scopes with a new optional delegate method.
  • Changed
    On iOS 7 we now support shouldAutomaticallyAdjustScrollViewInsets with PSPDFPageTransitionScrollContinuous & PSPDFScrollDirectionVertical.
  • Changed
    The scroll-to-top feature when the status bar is tapped no longer breaks when showing/hiding the thumbnail controller.
  • Fixed
    Fixes an issue with glyph position calculation for certain rotated documents that had a non-nil origin.
  • Fixed
    Fixes an issue that prevented linking the precompiled PSPDFKit.framework with Xcode 4.6.
  • Fixed
    Fixes a timing issue where the annotation menu wasn't always displayed wen selecting an annotation via the PSPDFAnnotationTableViewController on iPhone.
  • Fixed
    Fixes a small issue where the PSPDFNoteAnnotationViewController could fail to show the keyboard when presented manually with a certain timing.
  • Fixed
    Fixes an issue that could have kept a total 1-2 instances of PSPDFPageView around, even when the PSPDFViewController was deallocated.
  • Fixed
    Fixes a potential retain cycle in the PSPDFDocumentSharingViewController on iOS 7.

3.3.0 - 29 Dec 2013

Happy holidays!

PSPDFKit now requires iOS 6+ and Xcode 5. Keep using PSPDFKit 3.2.x if you're still building with Xcode 4.6 or need to support iOS 5. Apple will enforce usage of Xcode 5 starting February 1st. (https://developer.apple.com/news/index.php?id=12172013a) Removing iOS 5 resulted in deleting almost 10.000 lines of code - which will give you a smaller, faster and more efficient binary.

The binary is now again fully universal including armv7, armv7s, arm64, i386 and x86_64. The separate iOS 7 only (64 bit) library variant has been removed.

PSPDFKit Complete now supports PDF form signature validation and thus links with OpenSSL. There is an optional build without OpenSSL that disables these cryptographic signature checks.

  • Changed
    Localization! PSPDFKit now ships with English, Chinese, Korean, Japanese, French, Spanish, Russian, Italian, Danish, German, Portuguese and Brazilian Portuguese.
  • Added
    Adds preliminary compatibility with Xcode 5.1 and iOS 7.1b2.
  • Changed
    Refreshed visuals for both iOS 6 and iOS 7. The icons are now much more polished and can be better customized. The remaining icons that were drawn in code are now all inside the PSPDFKit.bundle.
  • Changed
    PSPDFKit Complete/Enterprise can now validate cryptographic signatures (unless you use the build without OpenSSL)
  • Changed
    PSPDFAESCryptoDataProvider now supports the popular RNCryptor data format: https://github.com/rnapier/RNCryptor/wiki/Data-Format (It autodetects the legacy format and supports that as well)
  • Changed
    Finally fully supports the new UIViewControllerBasedStatusBarAppearance. (we now support both modes in iOS 7)
  • Changed
    The PSPDFAnnotationToolbar now displays the style picker for text markup annotations (highlights).
  • Changed
    The PSPDFGalleryViewController now supports local/remote video and audio files next to images.
  • Changed
    The internal PSPDFWebViewController now shows a progress bar, much like Safari on iOS 7.
  • Changed
    Improves automatic font resizing for single line text field form entries.
  • Changed
    Improved support for additionalActions and nextAction to add actions to all annotation types.
  • Changed
    API Change: PSPDFTextSelectionMenuActionWikipediaAsFallback has been renamed to PSPDFTextSelectionMenuActionWikipedia. Since checking for a word in UIReferenceLibraryViewController can be unpredictably slow as of iOS 7.0.3, we had to remove this feature. Define will now always be displayed and you can optionally enable Wikipedia as well. The new default will omit Wikipedia by default.
  • Changed
    Don't show the PSPDFWebViewController bottom toolbar on iPhone if there are no availableActions defined.
  • Changed
    Allow detection for a PSPDFKit signature and blocks the "Copy" feature if detected. Will also be saved into the PDF as proprietary extension.
  • Changed
    If there's no signature saved and customer signature is disabled, we'll show the new signature controller instantly.
  • Added
    Adds a new property: shouldCacheThumbnails to suppress thumbnail cache generation.
  • Added
    Adds a new property: shouldHideHUDOnPageChange to fine-tine when the HUD is hidden.
  • Changed
    Highlight etc is no longer offered on text selection if the document can't be saved.
  • Changed
    Improves Form Element description in the annotation table view.
  • Changed
    Allow "Clear Field" for Choice Form Elements with editable text.
  • Changed
    Improve support for hidden form elements or choices that are neither editable nor have options.
  • Added
    Add hitTestRectForPoint: on PSPDFPageView that allows to customize the rect that is used for tap hit testing to select annotations.
  • Changed
    Make document parsing more robust to allow dealing with files that have incorrect XRef tables.
  • Changed
    The text selection handles now have the proper hit test size when zoomed in - improves your ability to interact with other content.
  • Changed
    YouTube: Add support for http://youtu.be short-form URLs for embedding.
  • Changed
    The note icon name is now properly serialized when using the XFDF annotation provider.
  • Changed
    The XFDF provider now only saves if an annotation is changed. Deserialized annotations are set to be not dirty by default now.
  • Changed
    Annotation and outline classes have been optimized to require less memory and reuse more objects internally.
  • Changed
    Lots of code cleaning, improved documentation and some reorganization. The binary is now smaller and compiles faster.
  • Changed
    Moves document parsing to a background thread, improves initial startup time for complex, large documents.
  • Changed
    GoToR actions with target named destinations are now supported.
  • Changed
    FreeText annotations are now correctly rendered and displayed even when their bounding box is too small for the text.
  • Changed
    Audio recordings can now be time limited and the default encoding/bitrate can be customized in PSPDFAudioHelper.
  • Changed
    The default set of stamps is now localizable and localized by default.
  • Changed
    The Edit button in the annotation table view controller and the bookmark controller is now only enabled if there is content, and edit mode is automatically disabled when there's no more content.
  • Changed
    Improved touch handling when resizing/moving annotations.
  • Fixed
    Fixes an UX issue that wouldn't deselect the current toolbar state if a saved signature is added via the annotation toolbar while customerSignatureFeatureEnabled is disabled in the signature store.
  • Changed
    Page scroll animations are reduced to allow faster navigation.
  • Changed
    Annotation overlay views are now loaded and added to the view hierarchy as soon as the page is set up, removing the previous delay that was especially noticeable with note annotations.
  • Changed
    No longer shows the bounding box when selecting/resizing line annotations.
  • Changed
    The undo/redo stack is now consolidated - no more difference or disabled undo while in drawing mode.
  • Changed
    Properly coordinate print controller popover to close when other popovers are activated.
  • Changed
    Use blurry background for UIPopoverController in the stamp section.
  • Changed
    The annotation creation menu now only shows the most important annotation types; customize via createAnnotationMenuTypes in the PSPDFViewController.
  • Removed
    Removes the IDNSDK to get a smaller binary.
  • Changed
    When saving text form elements, the AP stream is now included in the PDF. This fixes issues with Acrobat where the content would only be visible when the text field is active.
  • Fixed
    Fixes a rare crash in (poly)line point calculation if the points are on top of each other.
  • Fixed
    Fixes an edge case where the text field would loose focus after the note annotation controller has been dismissed because of tapping into another text field.
  • Fixed
    Fixes a regression where the selected annotation for multiple potentials was reversed.
  • Fixed
    Fixes an issue where annotations with appearance stream could be rendered at the wrong position and/or size.
  • Fixed
    Fixes an issue where annotations could be returned from the last page when forms are in the document, even if a different page was requested.
  • Fixed
    Fixes an issue with the label parser when encountering offset pages.
  • Fixed
    Fixes an issue where when trying to copy a webpage link in the internal web browser, the system could throw a NSInvalidArgumentException if the link was nil.

3.2.3 - 28 Nov 2013

  • Changed
    Improves custom text stamp creation layout and fixes an issue where the text wasn't always displayed within the table view.
  • Changed
    Form text fields are now no longer clipped when the zoom scale is very low.
  • Changed
    Border on a form is now only rendered when defined so in the dictionary for widget/form annotations.
  • Changed
    Signatures now use PSPDFAnnotationStringSignature as style key, instead of the PSPDFAnnotationStringInk that was used before.
  • Changed
    Improves support with Microsoft Outlook by making sure we always send the .pdf file ending when sharing via email.
  • Changed
    Any open menus will now be dismissed before PSPDFKit is presenting a popover. This fixes a behavior change in iOS 7 where UIMenuController sometimes stayed visible.
  • Changed
    Choice form elements now have a click-through-able popover and are highlighted when active.
  • Changed
    Next/Prev now works across multiple pages and also includes choice form elements.
  • Changed
    The form highlightColor is now a property on PSPDFFormElement and thus configurable.
  • Changed
    Works around a bug in iOS 7 where the UITextView wouldn't properly scroll to a new line when entering text in a PDF Form.
  • Changed
    The PSPDFOutlineViewController now shows the empty state if the document has no outline set but the controller is still displayed.
  • Changed
    Improves compatibility with parsing invalid URLs in link actions - will correct more variants.
  • Fixed
    Fixes an issue where certain form choice elements with partial dictionaries could be incorrectly parsed/rendered.
  • Fixed
    Fixes an issue that could prevent form choice elements from being saved correctly back into the PDF.
  • Fixed
    Fixes a rare collection mutation regression when erase mode was active while annotation changes for visible inks were processed.
  • Fixed
    Fixes an issue where allAnnotationsOfType: sometimes could miss certain annotations when an internal save file was used.
  • Fixed
    Fixes an regression where hasDirtyAnnotations could report YES when we really don't have any unsaved changes.
  • Fixed
    Fixes some localization issues with line endings in the Inspector.

3.2.2 - 24 Nov 2013

  • Changed
    The gallery now allows image zooming when in full screen and requires less memory when loading remote images.
  • Changed
    The gallery is now more customizable, allows custom background colors and recognizes @2x images when they are local.
  • Changed
    The PSPDFDocumentSharingViewController will now use a temporary directory to save annotations into the PDF if it's in a non-writable location.
  • Changed
    The password view now automatically shows the keyboard.
  • Changed
    If annotations can't be embedded, the new annotation menu will not be displayed anymore (to be consistent with the PSPDFAnnotationBarButtonItem)
  • Changed
    The runtime now better deals with multiple annotation subclasses that both change the behavior of a parent class. Use overrideClass:withClass: on PSPDFDocument to register such subclasses.
  • Changed
    Set the default ink line width to 3, unless a default is already set.
  • Changed
    Using undo/redo while in eraser mode will now also allow adding/removing of ink annotations.
  • Changed
    The undo system will now commit expired actions that are coalesced. This fixes an issue where certain actions would appear undo-able quite late (e.g. first erase action)
  • Changed
    If the named destination of a link can't be resolved we will ignore the action and no longer scroll to page 0.
  • Changed
    Improve selection contrast in the PSPDFAnnotationToolbar.
  • Changed
    The PSPDFSearchResult class is now immutable and has a new initializer for creation.
  • Changed
    PSPDFSearchViewController now supports iOS 7 dynamic font size and allows a multi-line text preview. The new default are two lines instead of one.
  • Changed
    Various warning/error messages are now printed with the code location instead of a generic PSPDFError trace.
  • Changed
    Annotation management now uses equality checks instead of memory-based checks, this makes the code more robust when objects are recreated in the annotation providers.
  • Changed
    Text field form elements now resize as we are typing and better render multi-lined text.
  • Changed
    PDF Signature Form elements are now tappable and will offer to add a ink annotation as signature.
  • Changed
    API change: Renamed showNewSignatureMenuAtPoint:animated: with showNewSignatureMenuAtRect:animated:. Use a rect with size zero to get the previous behavior.
  • API
    Some subclassing hooks that have been declared but weren't called have been properly removed.
  • Changed
    Undo/Redo is disabled by default on old devices to improve performance. (Notably, the iPad 1 with iOS 5.)
  • Changed
    Improves error handling for corrupt or missing PDFs.
  • Changed
    Using the HSV color picker while brightness is set all the way to 0% (black) will do the smart thing to switch to the pure color with 100% brightness.
  • Fixed
    Fixes an issue where ink annotations could change position for PDF documents with non-nil origin points.
  • Fixed
    Fixes an issue where some text in form elements could render incorrectly when the page was rotated.
  • Fixed
    Fixes a potential recursion when parsing malformed documents.
  • Fixed
    Fixes an issue where annotationsFromDetectingLinkTypes: could throw an exception if a page returns nil as body text. (e.g. corrupt or password protected files)
  • Fixed
    Fixes an issue where the gallery component could throw an UIViewControllerHierarchyInconsistency when used in combination with PSPDFPageTransitionCurl.
  • Fixed
    Fixes an issue where we incorrectly detected a regular password protection as custom encryption filter.

3.2.1 - 13 Nov 2013

  • Changed
    Improved a few cases where the PSPDFDocumentSharingViewController was displayed with practically no options to choose.
  • Changed
    Improves the thumbnail <-> page(s) animation so it even looks great when the thumbnail button is toggled really fast.
  • Changed
    The PSPDFNoteAnnotationViewController no longer shows the 'copy' button by default, the toolbar looked too cramped.
  • Fixed
    Fixes an issue with UID generation when the document isn't inside the app bundle.
  • Fixed
    Fixes an issue where larger XFDF ink annotations could degrade when being parsed.
  • Fixed
    Fixes an issue where the initial call for annotationsForPage: in the PSPDFXFDFAnnotationProvider could return an empty array.
  • Fixed
    Fixes an issue with UIKit legacy mode and the PSPDFAnnoationToolbar in certain setups.
  • Fixed
    Fixes an issue where 'Finish Recording' on sound annotations wouldn't work if the recording was still active but currently paused.
  • Fixed
    Fixes an rare issue with writing annotations if inline UTF-16 (the special Adobe flavor) is used within the /Pages root object.
  • Changed
    Titanium: Exposes printOptions, sendOptions and openInOptions from the corresponding PSPDF*BarButtonItems.

3.2.0 - 10 Nov 2013

  • Changed
    Lots of improvements around sound annotations! Serialization, better selection, context menus, customization.
  • Changed
    PSPDFAnnotationTableViewController: Dynamically calculate cell height and show multiple lines of description per cell.
  • Changed
    YouTube and Web views now automatically reload themselves when a reachability change is detected.
  • Changed
    Long-Pressing on text markup will now allow text selection and not select the markup (highlight) annotation. This allows to sub-select text that is already selected in another way.
  • Changed
    Greatly improves handling of (rotated) FreeText annotations and rotated pages.
  • Changed
    The search bar is now attached to the top on iPhone, to better match iOS 7 style.
  • Changed
    Rendered images are now more more likely to be cached to disk, resulting in less work overall.
  • Changed
    Improves thumbnail scroll performance, especially on the iPad 1.
  • Changed
    Improvements to the text parser, now can parse another category of documents that use Font Programs to define their glyphs.
  • Changed
    Form Check Box Elements now render the AP stream by default and fall back to internal rendering if no stream was found.
  • Changed
    Form background colors are now dynamically parsed and displayed instead of the default light blue.
  • Changed
    Improves support for various Forms that define the form element across multiple objects.
  • Changed
    Improves the touch-down-highlight for form elements.
  • Changed
    Allows overriding of PSPDFTextSelectionView.
  • Changed
    Improves text extraction for highlight annotations when there are multiple overlapping rects.
  • Fixed
    Fixes an issue where the text selection wasn't properly updated on rotation.
  • Fixed
    Fixes a potential deadlock when async saving was called manually while the view controller was popped from the screen which also invokes a save.
  • Fixed
    Fixes an issue where the tab controls of PSPDFTabbedViewController wouldn't respect the minTabWidth property.
  • Fixed
    Fixes an issue with rendering annotations with overlapping fill-areas in UIKit legacy mode.
  • Fixed
    Fixes an issue where certain UIActionSheets on iOS 6 could be mis-placed.
  • Fixed
    Fixes an issue with getting images for iOS 6 when the PSPDFKit.bundle is in a non-standard location.
  • Fixed
    Fixes a potential exception when a PDF contained an annotation with a malformed bounding box.
  • Fixed
    Fixes a potential exception when a free text annotation of size zero was created and subsequently edited.
  • Fixed
    Fixes an issue with saving annotation in certain documents that previously produced warnings.
  • Fixed
    Fixes a potential crash when loading annotations from the disk store while a save filter is active.
  • Fixed
    Fixes an issue where under rare conditions flattened notes could be rendered mirrored.
  • Fixed
    Fixes a rare condition where the cache could get into a state where it no longer pre-renders document pages.
  • Changed
    Titanium: The plugin is now simply named com.pspdfkit (from com.pspdfkit.source)
  • Changed
    Titanium: editableAnnotationTypes can now be set in documentOptions.

3.1.4 - 3 Nov 2013

  • Changed
    Improves rendering of line endings in the selected state.
  • Changed
    Don't show an "external application" dialog if our own app responds to the URL scheme in question.
  • Changed
    The PSPDFGallery can now better deal with a single image and will auto-generate the appropriate manifest if a PSPDFLinkAnnotation points to the image.
  • Changed
    Allows overriding of PSPDFColorSelectionViewController from within the inspector.
  • Changed
    Allows fine-tuning of the dictionary lookup via PSPDFTextSelectionView's new dictionaryHasDefinitionForTerm: method.
  • Changed
    Enabling/Disabling the eraser feature no longer flickers the ink annotations.
  • Changed
    The eraser now respects alpha settings of the ink annotations.
  • Changed
    While erasing, Undo/Redo now work as expected.
  • Changed
    Special-cased clearColor for the fillColor annotation property when using PSPDFStyleManager. (fill can't have alpha; so previously this would give you a black fill - now it's transparent)
  • Changed
    Allow parsing for less common color definitions in appearance strings (k and g)
  • Changed
    Forms: Don't draw background when we have an AP stream for form buttons.
  • Changed
    Forms: Buttons that define an AP-Stream no longer also have a blue background.
  • Changed
    Forms: Buttons(Check boxes, radio buttons) now show a touch-down state when tapping them.
  • Changed
    Forms: No longer flickers when the element is deselected.
  • Fixed
    Fixes a potential crash in the selection view when we select a free text annotation with zero width.
  • Fixed
    Fixes an infinite loop when searching certain characters.

3.1.3 - 24 Oct 2013

  • Changed
    PSPDFKit now requires the CoreTelephony.framework (this will be added automatically if you use the PSPDFKit.xcconfig file)
  • Changed
    The autodetectTextLinkTypes feature is now faster and will detect more types of phone numbers and URLs, including those that contain spaces/newlines between them.
  • Changed
    Pressing the delete icon in the note annotation controller will only clear the note, except for note annotations where it will delete the whole annotation.
  • Added
    Adds a versioning system for PSPDFKit.bundle. Make sure you always use the bundle we ship with PSPDFKit.
  • Added
    Adds a boxRect:forPage:error: method to PSPDFDocument to easily get a different box rect for the defined page.
  • Changed
    Gallery now supports animated GIFs and downloads images even when the app is in background.
  • Changed
    Improves default header color for the mail view controller.
  • Fixed
    Fixes an issue where the bounding box for FreeText annotation could be too long when they are edited while zoomed in on iOS 7.
  • Fixed
    Fixes an issue where "Inspector..." was displayed for non-editable annotation types.
  • Fixed
    Fixes an issue where "Clear All" deleted all annotations, even those not displayed in the annotation table view.
  • Fixed
    Fixes an issue where flattened note annotations would sometimes be drawn rotated on rotated documents.
  • Fixed
    Fixes an issue where Free Text annotations added from the toolbar could end up being rotated on rotated documents.
  • Fixed
    Fixes a very rare over-release of a PSPDFPageView object when lots of PSPDFViewControllers are rapidly created/destroyed. (you should always reuse this heavyweight object)

3.1.2 - 21 Oct 2013

  • Changed
    Faster scrolling, new default page rendering strategy: PSPDFPageRenderingModeThumbnailIfInMemoryThenFullPage
  • Changed
    Improves text selection drawing and text selection menu placing. The few cases where the menu could overlap the selection have been fixed.
  • Added
    Add more sophisticated warnings if the PSPDFKit.bundle is missing.
  • Changed
    PSPDFViewController will now auto-save annotations when the view is dismissed while contained in a child view controller.
  • Added
    Add verticalTextAlignment to PSPDFFreeTextAnnotation. This is not defined in the PDF spec; so it will be a code-only option for now. PSPDFKit will save this into the PDF as a proprietary extension.
  • Fixed
    Fixes an issue with single page documents, forced two-page-mode and pageCurl.
  • Fixed
    Fixes an issue where under certain conditions the navigationBar was not displayed initially.

3.1.1 - 19 Oct 2013

  • Changed
    Restores compatibility when compiling with Xcode 4.6.
  • Changed
    Various smaller improvements to the new image gallery.
  • Changed
    Various smaller performance improvements, moved some more work off the main thread.
  • Changed
    API cleanup for PSPDFDocumentProvider.
  • Changed
    No longer blocks the UI when annotations are still loading during a touchDown event.
  • Fixed
    Fixes an UX issue where dismissing the activity popover in the web view controller via a touch on the dimming view sometimes required a second touch on the action button to re-show.
  • Fixed
    Fixes an issue when adding annotation views for invalid rects.

3.1.0 - 18 Oct 2013

  • Changed
    Brand-new image gallery (define a region in the pdf to be covered by a smooth gallery). Allows configuration via inline-pdf or external JSON.
  • Changed
    Use menu-based annotation manipulation for text markup annotations.
  • Changed
    The way how the document UID is generated has been changed. Previously, for files it used the full app path. However since the app UID could change after an upgrade, we had to change this behavior. This is only important if you used bookmarks or allowed annotations saving into the internal storage - not for embedded annotation data. Set the global variable PSPDFUseLegacyUIDGenerationMethod to YES to continue using the old path. Those files are in Library/PrivateDocuments. You might want to write a custom migration step to rename the custom data paths from the old UID to the new UID system. The PSPDFUseLegacyUIDGenerationMethod can be changed at any time to switch between old and new UID (generate a new PSPDFDocument instance to force UID regeneration).
  • Changed
    The file-based annotation backing store by default no longer saves link annotations but instead merges the saved annotations and the links from the file. This improves performance for PDFs that have lots of internal links (our current way of saving starts to get slow once there are more than 10.000 objects). In most cases, you don't need to care and your save file will be migrated automatically. If you rely on custom link annotations being saved/deleted, you need to set the new saveableTypes property of the fileAnnotationProvider back to the old default PSPDFAnnotationTypeAll.
  • Changed
    The undo/redo buttons are now updated immediately after adding annotations.
  • Changed
    The interactivePopGesture (new on iOS 7) is now disabled while we're drawing to prevent accidental usage.
  • Changed
    The PSPDFViewController will now properly clean up state from the annotation creation when dropped from user code while the toolbar is in drawing mode.
  • Changed
    The outline controller now properly shows page destinations above page 10.000.
  • Changed
    Hides a harmless log warning when PSPDFKit tried to render an annotation with an empty width/height.
  • Changed
    When undo is disabled, the undo/redo buttons are now properly hidden when leaving the drawing mode.
  • Changed
    No longer draws the arrow when flattening choice form elements.
  • Changed
    Restores sound annotations that were added via the pspdfkit:// protocol.
  • Changed
    Improves compatibility with UIViewControllerBasedStatusBarAppearance. (ongoing project, still not recommended.)
  • Changed
    Greatly improves scrolling performance with large outline tables.
  • Fixed
    Fixes placement of the search bar in the outline controller.
  • Fixed
    Fixes a crash when pressing undo while adding free text annotations.
  • Fixed
    Fixes a call to a not implemented method in the file annotation provider when manually replacing annotations.
  • Fixed
    Fixes a crash in arm64 when parsing certain malformed PDF documents.
  • Fixed
    Fixes an issue where the password view wasn't correctly updated when the document was changed while it was displayed.
  • Fixed
    Fixes an issue where one could get stuck in the eraser mode when choosing it from the toolbar when that one was displayed via the long-press annotation menu.
  • Fixed
    Fixes a timing issue where the text parsing could crash in rare cases.
  • Fixed
    Fixes an off-by-one error that could cut off long lists of ink points when parsing XFDF files.

3.0.11 - 10 Oct 2013

  • Fixed
    Fixes another issue related to UISearchDisplayController and iOS 6/7.

3.0.10 - 10 Oct 2013

  • Changed
    The search controller header is now sticky on iPhone (especially improves display on iOS 7)
  • Changed
    Greatly improves text selection performance when a large number of glyphs is selected.
  • Changed
    Improves eraser mode - faster, and no longer changes the view port when enabling/disabling.
  • Added
    Adds a new convenience method (sortedGlyphs:) when glyphs are manually selected in PSPDFTextSelectionView.
  • Changed
    Improve various details in the XFDF writer.
  • Changed
    Allow pspdfkit:// URLs within the PSPDFXFDFAnnotationProvider.
  • Removed
    Remove confusing search controller animation when it's first presented on iOS 7.
  • Changed
    Improves outline searching on iOS 7 / iPhone.
  • Changed
    Various other smaller tweaks related to iOS 7.
  • Changed
    Don't show the PSPDFDocumentSharingViewController if there are no options available.
  • Changed
    Ensure the annotation style picker closes when the annotation mode changes.
  • Changed
    Improves type detection when pspdfkit:// links are used within URLs that have query parameters.
  • Added
    Adds a workaround for documents with invalid /Pages structure which previously prevented annotation saving.
  • Added
    Add missing localization for "Choose Fill Color".
  • Changed
    The text selection end handle is now prioritized, makes it easier to extend selection for small text.
  • Fixed
    Fixes an issue where changing the position of a note annotation could fail on the first try.
  • Fixed
    Fixes an issue with calling the didCreateDocumentProviderBlock for multiple files.
  • Fixed
    Fixes a 20-pixel offset in the annotation inspector on iPhone/iOS 7.
  • Fixed
    Fixes updating the thumbnail button state.
  • Fixed
    Fixes an issue when showing the annotation toolbar from the bottom.
  • Fixed
    Fixes an issue where popovers could have a width/height of 0 when presented from a bottom toolbar on iOS 7.
  • Fixed
    Fixes a crash on iOS 5 related to the font picker, rotation and early dismissal.

3.0.9 - 4 Oct 2013

  • Changed
    Greatly improves compatibility with text extraction/search, especially for Chinese/Japanese/Korean fonts.
  • Changed
    The autosave feature of the PSPDFViewController can now be controller via the 'autosaveEnabled' property. Defaults to YES.
  • Changed
    Improves the transition between stamps and saved annotations for iOS 7 legacy mode.
  • Changed
    Hide the downloadable fonts section if there are no fonts to download.
  • Changed
    Disables an unwanted implicit animation in the annotation style inspector for iOS 7 legacy mode.
  • Changed
    The "Paste" menu is now more clever and will check if creating the new annotations is allowed before it's displayed instead of failing silently.
  • Changed
    Re-enables search for the outline controller on iOS 7.
  • Fixed
    Fixes an issue in the PSPDFMultiDocumentViewController when the array of documents was set to nil.
  • Fixed
    Fixes a potential crash when parsing invalid PDFs with AcroForm data.

3.0.8 - 2 Oct 2013

  • Changed
    Use a background task to save annotations when the application enters the background to make sure it finishes before the app gets killed.
  • Changed
    Thumbnail page label is now re-enabled by default. (Control this via subclassing PSPDFThumbnailGridViewCell and setting the pageLabelEnabled property.)
  • Changed
    Ensure the status bar is visible if it was originally visible when showing the note view controller on iPhone.
  • Changed
    Improves various details for the note controller, bookmark controller, annotation controller and outline controller related to iOS 7 tinting.
  • Fixed
    Fixes an issue where saved note annotations sometimes were not correctly removed from the page view until the page was changed.
  • Fixed
    Fixes an issue where ink annotations could end up on the wrong page when using multiple document providers.
  • Fixed
    Fixes an issue that could prevent the grouping menu from appear in the annotation toolbar.
  • Changed
    Updated some graphics in the PSPDFKit.bundle.

3.0.7 - 1 Oct 2013

  • Changed
    Improves compatibility with resolving named actions.
  • Changed
    Ensures that the PDF outline is hidden if no page action targets could be resolved.
  • Changed
    Reenable undo/redo by default.
  • Fixed
    Fixes a tiny memory leak.

3.0.6 - 1 Oct 2013

  • Changed
    Always updates bar button items on a document change. Fixes conditions where a button could be in an disabled state if not used in the main toolbar.
  • Changed
    The status bar state captured at viewWillAppear is now only restored when the PSPDFVC is popped from the stack, not on every disappear.
  • Changed
    Makes it easier to disable undo/redo. (new undoEnabled property on PSPDFDocument)
  • Changed
    Improves error return code when saving annotations.
  • Fixed
    Fixes an issue where unsaved annotations could be lost during an low memory event when using the tabbed view controller.
  • Fixed
    Fixes a potential non-main-thread call while preparing for saving.
  • Fixed
    Fixes an issue with saving certain documents.

3.0.5 - 30 Sep 2013

  • Changed
    Font picker now is searchable and shows downloadable fonts.
  • Changed
    The eraser UI properties can now be changed via UIAppearance proxies.
  • Changed
    The form text field update logic is now more clever and won't change form objects if they are only tapped.
  • Changed
    Improves styling of the mail sharing view controller on iOS 7.
  • Changed
    Improves interoperability with Objective-C++.
  • Changed
    Improves support for a white global tintColor on iOS 7. (check boxes are no longer white)
  • Changed
    Improves spacing for the half-modal annotation style inspector on iPhone/iOS 7.
  • Changed
    The annotation manager now continues to look into other providers if the previous one returns nil.
  • Changed
    Prevent a case where the HUD could be hidden while we're in the thumbnail transition.
  • Changed
    Changes 'basePath' to 'baseURL' to fix an API inconsistency in PSPDFDocument.
  • Changed
    Creating a large set of PSPDFDocument objects is now much faster (e.g. while using PSPDFDocumentPickerController)
  • Fixed
    Fixes an issue that could prevent saving annotations into certain documents.
  • Fixed
    Fixes an issue where rotating the signature controller would increase the line thickness.
  • Fixed
    Fixes an issue that prevented committing the rename action in the PSPDFBookmarkViewController.
  • Fixed
    Fixes a potential crash related to the annotation selection view.

3.0.4 - 25 Sep 2013

  • Changed
    Further tweaks and changes how tintColor is handled on iOS 7.
  • Changed
    Improve detection code for checked state of radio/checkboxes in the AcroForm parser.
  • Changed
    Improve search controller animation.
  • Changed
    Improve status bar face/slide animations for iOS 7.
  • Changed
    Better protect the undo controller against mis-use.
  • Added
    Add a new option to PSPDFProcessor: PSPDFProcessorStripEmptyPages. This will post-process the HTML-to-PDF result to remove any blank pages there might be.
  • Changed
    The 'contentView' of the PSPDFViewController is now always above the PDF content and below the HUD.
  • Fixed
    Fixes an issue where the scrollable thumbnail bar could sometimes disappear.
  • Fixed
    Fixes an issue where the changes of a open note annotation where not saved when tapping on the note again while the popover was already visible.
  • Fixed
    Fixes various smaller potential crashes for malformed PDF documents.
  • Removed
    Removes support for the optional alertViewTintColor (was iOS 5/6 only)

3.0.3 - 22 Sep 2013

  • Changed
    The default PSPDFKit binary is now again compatible with iOS 5. We added a new 64-bit enabled binary for apps that are already iOS 7 exclusive.
  • Changed
    Greatly improve tintColor handling on iOS 7.
  • Changed
    Support FDF, XFDF and PDF Form submission methods (next to the existing HTTP)
  • Changed
    Improves speed for the memory image cache internals.
  • Changed
    Increase the allowed handle size for the text selection knobs on iOS 7 to make it easier to change the selection.
  • Changed
    Improves the placement for the page label view on iPhone.
  • Changed
    Ensure toolbar is set for the PSPDFSavedAnnotationViewController when used standalone.
  • Added
    Adds missing localization in various places.
  • Changed
    Improve animation when a popover resizes on iOS 7.
  • Changed
    No longer draws the form field background when forms are flattened.
  • Changed
    Optimized handling of documents that take a huge amount of memory to render.
  • Changed
    Parsing performance for annotation saving is now up to 3x faster for certain complex documents.
  • Changed
    Improve localizedDescription for form elements.
  • Fixed
    Fixes an issue where the color picker in the half-modal controller on iOS 7 could be sized too small.
  • Fixed
    Fixes an issue where adding annotations could hide the page contents when annotations were added directly to the page dictionary.
  • Fixed
    Fixes an issue where partial label matching was too eager and sometimes picked non-optimal matches.
  • Fixed
    Fixes various rare crashes.

3.0.2 - 14 Sep 2013

  • Changed
    Exposes some additional helpers in PSPDFDocument.
  • Changed
    Improves the document sharing controller UI for legacy UIKit mode.
  • Changed
    Improves support for RichMedia extraction of PDF documents created with Adobe XI 11.0.04.
  • Fixed
    Fixes an issue with rotation when annotations are selected.

3.0.1 - 13 Sep 2013

  • Fixed
    Fixes an issue with the demo.

3.0.0 - 12 Sep 2013

PSPDFKit 3 is a major new milestone with several new features and countless improvements.

Some of the highlights are:

  • Changed
    Full support for iOS 7, Xcode 5 including new icons and default styles to fully match the new iOS 7 appearance, while also maintaining full backwards compatibility for iOS 5/6.
  • Changed
    The prebuilt binary is now ready for 64 bit and includes 5 architecture slices: armv7, armv7s, arm64, i386 and x86_64.
  • Changed
    Support for filling out Adobe AcroForm PDF forms. (PSPDFKit Complete/Enterprise only)
  • Changed
    Full-Text-Indexed-Search across all available PSPDFDocuments via PSPDFLibrary. (PSPDFKit Complete/Enterprise only)
  • Added
    New PSPDFDocumentPickerController for easy selection and search within your documents.
  • Changed
    Support of the XFDF (XML Forms Data Format) Adobe standard for saving/loading/sharing annotations and forms.
  • Changed
    Completely redesigned annotation toolbar that groups common annotation types together.
  • Added
    New annotation inspector for faster and more convenient annotation editing.
  • Changed
    Global Undo/Redo for annotation creation/editing.
  • Changed
    Drawing no longer locks the view, you can scroll and zoom with two fingers without any drawing delay.
  • Added
    New PSPDFDocumentSharingViewController to unify annotation flattening from email and open in feature and allow a better page selection.
  • Changed
    Record and play back sounds from sound annotations (fully compatible with Adobe Acrobat)
  • Changed
    FreeText annotations autoresize as you type.
  • Changed
    Squiggly text highlighting.
  • Changed
    Draw and edit Polygon/Polyline annotations.
  • Changed
    Stamp annotations are now added aspect ratio correct.
  • Changed
    Improved PDF generation support in PSPDFProcessor (website/office conversion)
  • Changed
    Improves handling for very small annotations.
  • Changed
    Support for non-default locations for PSPDFKit.bundle.
  • Changed
    The delays for adding/removing annotations has been removed.
  • Changed
    Link/Widget annotations can now be tapped instantly.
  • Changed
    The logic for the keyboard avoidance code has been greatly improved.
  • Changed
    Additional Actions and Action Chains are now properly supported.
  • Changed
    Supports various new touch actions like Hide, Submit Form, Reset Form and adds support for more Named Actions.
  • Changed
    Countless performance improvements and bug fixes across the whole framework.

Important! Currently PSPDFKit 3 requires that you set the key UIViewControllerBasedStatusBarAppearance to false in your project Info.plist file. We're working on supporting view controller based status bar appearance in a future update.

Note: Several methods and constants have been updated and renamed to make the API cleaner. Read the PSPDFKit 3.0 Migration Guide if you're updating from version 2.

Important: PSPDFKit 3 requires a serial number and will run in demo-mode by default. Visit https://customers.pspdfkit.com to register your app bundle ID and get the serial. If you are a PSPDFKit 2 customer with a license that includes a free PSPDFKit 3 update, please contact support@pspdfkit.com with your PET* purchase number to get an invite.

PSPDFKit 3 still supports iOS5, however we plan to drop support for it later this year. We already see less than 5% usage and expect this number to drop further in the future.

With the release of PSPDFKit 3 we will focus development on this version and won't be able to offer support for version 2 anymore. Most customers who bought PSPDFKit after January 14th are eligible for a free update, if your update window is still open (6 months for Binary/Viewer, 12 months for Source/Enterprise) Contact us with your PET* purchase number (or invoice ID) for details on your status.

2.14.22 - 1 Oct 2013

  • Fixed
    Fixes a crash when parsing certain documents with invalid font references.

2.14.21 - 12 Sep 2013

  • Added
    Adds a workaround for a bug where thumbnail icons could disappear in iOS 7 legacy mode.
  • Changed
    Ensures we always have a document UID set. Fixes an assert for conditions where this was missing.
  • Fixed
    Fixes a rare crash related to an over-release in certain high-load conditions.
  • Fixed
    Fixes the logic that checks and filters glyphs that are outside of the visible page area.

2.14.20 - 29 Aug 2013

Note: This will likely be the last update of PSPDFKit 2. We're very close to release version 3: our next major version. Try the demo here: http://customers.pspdfkit.com/demo.

  • Fixed
    Fixes an issue where scroll to page doesn't work for zoom levels < 1 in continuous scrolling mode.
  • Fixed
    Fixes an initializer issue in PSPDFOrderedDictionary.
  • Fixed
    Fixes a very rare crash on enqueuing render jobs.

2.14.19 - 6 Aug 2013

  • Changed
    Ensure didShowPageView is called on the initial display of the controller.
  • Changed
    Ensure we don't create multiple PSPDFMoreBarButtonItems while creating the toolbar.
  • Changed
    Ensure 'fileName' only ever uses the last path component. Fixes an issue where the full path would be used in the email send feature.
  • Fixed
    Fixes an issue when using the bookmark filter in the thumbnail controller with a pageRange filter set.

2.14.18 - 28 Jul 2013

  • Fixed
    Fixes an issue with setting certain status bar styles.
  • Fixed
    Fixes a regression that could result in a crash "cannot form weak reference" on iOS5.

2.14.17 - 26 Jul 2013

  • Changed
    Improves memory handling and search performance for very large documents. (> 10.000 pages)
  • Changed
    Improve URL encoding handling for link annotations, fixing various encoding issues.
  • Fixed
    Fixes an issue where the scrollable thumbnail bar wouldn't properly update when a new document was set.
  • Fixed
    Fixes an exception when the tabs of the container view controller change after being presented (e.g. outline parser detects that there's no outline to show)
  • Fixed
    Fixes a rare crash in PSPDFHighlightAnnotation's highlightedString.

2.14.16 - 19 Jul 2013

  • Changed
    Further improves text extraction performance (faster searching).
  • Changed
    Enables to subclass PSPDFAnnotationCell in the PSPDFAnnotationTableViewController.
  • Fixed
    Fixes an issue where logging the PSPDFDocumentProvider within dealloc could lead to resurrection.
  • Fixed
    Fixes an issue with managing certain PDF caches.

2.14.15 - 12 Jul 2013

  • Changed
    Allow PSPDFMoreBarButtonItem to be subclassable.
  • Changed
    Improve text parser compatibility with PDFs that have deeply nested XObject structures.
  • Fixed
    Fixes an issue where font metrics could be too small/too large within XObjects when the font key had the same name between global resources and XObject resources.
  • Fixed
    Fixes an issue where the word boundaries could be off-by-one due to manually inserted spaces at the wrong index.
  • Fixed
    Fixes an issue where annotation views were not properly cached when a different view was returned via the annotationView: delegate.

2.14.14 - 2 Jul 2013

  • Changed
    Improve compatibility of the PSPDFMenuItem image support on iOS7.
  • Fixed
    Fixes a compile issue when the Dropbox SDK is linked in combination with PSPDFKit.
  • Fixed
    Fixes an assert when a link action is long-pressed and no action is set.
  • Fixed
    Fixes an issue when the internal webview receives a NSURLErrorCancelled from an async operation.
  • Fixed
    Fixes an issue when annotation notifications are generated from threads other than main.
  • Fixed
    Fixes a crash in the Titanium proxy for certain link annotation actions.

2.14.13 - 27 Jun 2013

  • Fixed
    Fixes an issue where the tab bar views could be placed inside the navigation bar in PSPDFTabbedViewController when rotated without the HUD being visible.
  • Fixed
    Fixes an issue where the thumbnail bar could show stale information when the document changes.
  • Fixed
    Fixes an assertion when an empty action is evaluated through a long-press.
  • Fixed
    Fixes an issue where under certain conditions the note annotation controller could show redundant toolbar buttons.
  • Fixed
    Fixes a potential crash for documents with weird glyph indexes when moving the text selection handles.
  • Fixed
    Fixes a potential recursion crash while supportedInterfaceOrientations is evaluated.
  • Fixed
    Fixes a potential empty context log warning for iOS7.

2.14.12 - 24 Jun 2013

  • Changed
    Improves thumbnail animations on device rotation.
  • Changed
    Improves the efficiency of the memory cache.
  • Changed
    When adding an image and the size picker is dismissed on iPad, we now use high quality instead of throwing away the image.
  • Changed
    Be more conservative about memory when kPSPDFLowMemoryMode is enabled. (Enable this if you have complex PDFs and/or memory related issues)
  • Fixed
    Fixes a potential recursive call problem when editing link annotations.
  • Fixed
    Fixes an issue where certain glyph frames could be calculated too small if the PDF is encoded incorrectly.
  • Fixed
    Fixes an issue with generating JSON from stamp annotations.
  • Fixed
    Fixes an issue where images could be rendered upside down/incorrectly when they have certain EXIF rotation settings.
  • Fixed
    Fixes an UI issue when annotations couldn't be fully restored from the Copy/Paste action and created an zero-sized object.

2.14.11 - 19 Jun 2013

  • Changed
    Allow subclassing of the UIImagePickerController used within PSPDFKit for special use (e.g. to block portrait display for landscape-only apps). Use overrideClass:withClass: for that.
  • Changed
    Ensure the outline page label frame is properly update in landscape mode.
  • Fixed
    Fixes an issue where the annotation table view controller didn't check the editableAnnotationTypes array before offering a delete.
  • Fixed
    Fixes an issue where highlightedString on PSPDFHighlightAnnotation could return incorrect results.
  • Fixed
    Fixes an issue with text extraction.

2.14.10 - 13 Jun 2013

  • Fixed
    Fixes an issue where the outline controller could hang in the "Loading..." state on older devices.
  • Fixed
    Fixes an issue where in rare cases the stamp annotation text could be larger than the stamp itself.
  • Fixed
    Fixes an issue where search could throw an out of range exception for specific PDF encodings.

2.14.9 - 11 Jun 2013

  • Changed
    Various smaller fixes for iOS7. The source code now again compiles without any warnings.
  • API
    change delegate to annotationToolbarDelegate for the PSPDFAnnotationToolbar because UIKit now added a delegate property on the toolbar.
  • API
    The setDefaultStampAnnotations method in PSPDFStampViewController is now a class method.
  • Fixed
    Fixes an issue where the thumbnail controller could mis-place the filter header after a frame resize.
  • Fixed
    Fixes a potential crash when the search view controller was both scrolled and the search keyword changed at the same time.

2.14.8 - 3 Jun 2013

  • Changed
    Improves glyph word space detection.
  • Fixed
    Fixes a potential crash on a yet unreleased future version of iOS.

2.14.7 - 31 May 2013

  • Changed
    Improved memory management for older devices like iPad1 or when kPSPDFLowMemoryEnabled is set. This helps against possible memory exhaustion on very complex documents.
  • Fixed
    Fixes an issue where the play button of an embedded video sometimes would not change to its actual state (playing) when pressed.
  • Fixed
    Fixes an issue with draw mode restoration after showing a modal view controller while in draw mode when using pageCurl transition.
  • Changed
    Further tweaks to the text extraction engine.

2.14.6 - 29 May 2013

  • Changed
    It's now easier than ever to change the link border color: [PSPDFLinkAnnotationView setGlobalBorderColor:[UIColor greenColor]].
  • Changed
    Thumbnail loading in the scrobble bar is now higher prioritized, loads faster.
  • Changed
    The bounding box calculation for line annotation now correctly calculates the size for line endings. Line ending size has also been increased to better match Adobe Acrobat. (Thanks Tony Tomc!)
  • Changed
    The PSPDFRenderStatusView is now a public class that allows to customize the loading spinner displayed while rendering a PDF page.
  • Changed
    Annotation resizing when zoomed in deeply has been greatly improved.
  • Changed
    Further improves text parsing speed and word boundary detection.
  • Fixed
    Fixes an issue where in some cases annotation resizing could fail when changed via the menubar directly before the resize action.
  • Fixed
    Fixes a potential one-pixel rendering bug that could result in thumbnails for certain aspect ratio combinations having white lines at one end of the image.
  • Fixed
    Fixes an issue that would sometimes mark certain PDF links to localhost as "webview" when they in fact only are regular links.

2.14.5 - 27 May 2013

  • Changed
    PSPDFWebViewController will now use UIActivityViewController on iOS6 by default.
  • Changed
    Support new "loop" option for video annotations.
  • Changed
    Use images for the text alignment setting.
  • Changed
    Improve HSV color picker brightness style.
  • Changed
    Improve word detection for PDF types that already have spaces added and also improves word-break-behavior for ligatures.
  • Changed
    PSPDFKit will now attempt to render even unknown annotation as long as they define an appearance stream.
  • Changed
    Improve search and glyph extraction performance.
  • Fixed
    Fixes an issue that could result in the HUD being in a hidden state after adding line/ellipse annotations from the annotation menu while the annotation toolbar is visible.
  • Fixed
    Fixes a potential crash when the PSPDFDocument was deallocated early.
  • Fixed
    Fixes a rare crash with a malformed PDF in the text extractor.

2.14.4 - 23 May 2013

  • Changed
    The annotation resize control now shows guides for aspect ratio and square resizing.
  • Changed
    The outline controller now shows the target page and properly highlights the outline button.
  • Changed
    Improves rendering of rotated stamps/images on rotated pages.
  • Changed
    Allow class overriding for PSPDFSearchResultCell and PSPDFSearchStatusCell.
  • Changed
    The grid control now loads faster for huge documents on iOS5.
  • Added
    Adds some additional safeguards that will now warn if methods of UIViewController/PSPDFViewController are overridden without calling super.
  • Removed
    Removes legacy PSPDFResolvePathNamesEnableLegacyBehavior.
  • Fixed
    Fixes a small memory leak related to stamp annotations.
  • Fixed
    Fixes an issue where the search controller could get into an "empty" state without showing the search bar.

2.14.3 - 21 May 2013

  • Changed
    Allow to override PSPDFOutlineCell via overrideClass:withClass:.
  • Fixed
    Fixes a nasty issue with one-pixel white thumbnail borders on certain page aspect rations.
  • Fixed
    Fixes an edge case where the menu could appear while the PSPDFViewController is being popped from the navigation stack.
  • Fixed
    Fixes an issue with multiple calls to overrideClass:withClass:
  • Fixed
    Fixes a parsing bug with remote GoToR actions that have a page destination set. The page destination is now evaluated correctly.

2.14.2 - 19 May 2013

  • Changed
    PSPDFViewController now unloads its views when not visible on a memory warning even on iOS6. This saves memory especially when multiple stacks of viewControllers are used in a navigationController.
  • Changed
    Improves the thumbnail quality.
  • Changed
    Polyline/Polygon how shows boundingBox resize knobs + knobs for each line end point. Inner points are green.
  • Changed
    When no fillColor is defined, color will be used instead of black. This is not defined in the PDF Reference, but more closely matches Apple's Preview.app and looks better.
  • Changed
    Glyph ligature breaks (e.g. ffi) now no longer are marked as WordBreaker.
  • Changed
    Improves default boundingBox calculation for new annotations on rotated PDF documents.
  • Changed
    PSPDFPageRenderer can now be subclassed/changed.
  • Changed
    Improves bounding box calculation for small FreeText annotations.
  • Changed
    Stamps are now properly rendered on rotated pages.
  • Changed
    If a stamp annotation is an appearance stream, PSPDFKit now tries to extract the image when using Copy/Paste.
  • Changed
    Font variant picker now shows font in title and filters name for better display, e.g. 'Helvetivca-Bold' becomes just 'Bold'.
  • Changed
    Several improvements to the PSPDFMultiDocumentController.
  • Changed
    The thumbnail selection background now properly sizes itself based on the negative edgeInsets of the thumbnail cell (= looks better for non-portrait documents)
  • Changed
    Dashed border now factors in lineWidth.
  • Changed
    Improves parsing of certain GoToR Actions.
  • Changed
    Made the color preview in UITableViewCell pixel perfect.
  • Changed
    Improves title detection to filter out white space, now correctly handles cases where the title is missing but ' ' is set instead.
  • Changed
    PSPDFKit is now compiled with -O3 (instead of -Os) and and uses link-time optimization to further improve performance.
  • Fixed
    Fixes placement of the image and signature picker for rotated documents.
  • Fixed
    Fixes a rare issue where a annotation could stuck in an invisible state because of a bug in the trackedView when selecting + scrolling happened at the same time.
  • Fixed
    Fixes a regression where thumbnail images could become sized wrongly in their aspect ratio under certain conditions for non-uniformly sized documents.
  • Fixed
    Fixes an offset by one error when resolving named destinations for a specific outline action destination type when there are > 500 outline entries.
  • Fixed
    Fixes a potential crash related to the color picker.
  • Fixed
    Fixes a crash related to parsing invalid outline elements.

2.14.1 - 15 May 2013

  • Added
    Add write support for Polygon/Polyline annotations. (In the API, there's no UI for creating yet, but editing the points works)
  • Added
    Add new PSPDFThumbnailBar to display scrollable thumbnails as an alternative to the scrobbleBar. The thumbnail bar is a preview and might change API/Featureset in the next releases. We have some big plans for this but couldn't wait to get it out of the door!
  • Changed
    The PSPDFOutlineViewController now no longer shows a title on iPad if no modes are set. As a detail, its search bar now is named as "Search Outline" instead of just "Search".
  • Changed
    FreeText annotation is now correctly rotated on rotated PDF pages and also respects the annotation rotation setting (0, 90, 180, 270).
  • Fixed
    Fix password view state positioning when the keyboard is up and the parent resizes itself.
  • Fixed
    Fixes a potential regression/assertion when the PSPDFViewController was used without a navigationController.
  • Fixed
    Fixes an regression where words with ligatures (like the ffi liagure glyph) would be split into two words with certain encodings.
  • Fixed
    Fixes a race condition that could lead to a warning named ' deallocated while still in use'.
  • Fixed
    Fixes a line annotation serialization issue where line endings would only be serialized if both are set.
  • Fixed
    Fixes an issue for Copy/Paste where preexisting annotations could disappear after they have been copied and edited.
  • Fixed
    Fixes an exception in the PDF parser if a PDF with a corrupt stream object is analyzed.

2.14.0 - 12 May 2013

  • Added
    Add support to Copy/Paste annotations. This creates a global UIPasteboard and will work for all apps that use the PSPDFKit framework with 2.14 and up. Alternatively a JSON object is created as well, so that other applications can add support to parse and support PSPDFKit-style-annotations as well.
  • Changed

    Paste also supports general pasteboard types like Text, URL or Image and will create the appropriate annotations (if this is allowed)

  • Changed

    New global PSPDFStyleManager that saves various annotation properties and applies them to new annotations. For example, if you change the color of a highlight to red, all future annotations are created red until you change the color back. This already worked in the PSPDFAnnotationToolbar before but is now unified and applied globally (will also save properties like fillColor or fontName). You can disable this with nilling out the styleKeys property of PSPDFStyleManager.

  • Changed

    The PSPDFFreeTextAnnotationView is now always sharp, even when zoomed in. Because we have to work around the broken contentsScale property, the API has changed a bit. If you previously had textView overridden, you now need to subclass PSPDFFreeTextAnnotationView and change the textViewForEditing method to apply your custom textView.

  • Changed

    PSPDFStampViewController is now more flexible and will evaluate the new PSPDFStampAnnotationSuggestedSizeKey key for the default annotations. Images in default annotations are now supported as well and the checkmark and X annotation are now added with the correct aspect ratio size. With the new setDefaultStampAnnotations: a different set of default annotations can be set.

  • Changed

    Various smaller UX fixes inside the PSPDFNoteViewController.

  • Changed

    Improves memory usage with very large documents (1000 pages and up)

  • Changed

    Various smaller performance improvements in the cache.

  • Changed

    Tinting has been improved for various view controllers.

  • Changed

    The global "Text..." option has been renamed to "Note..." to make its function more clear.

  • Changed

    The global "Appearance..." has ben renamed to "Style..." because this is more concise and better fits the iPhone.

  • Changed

    Fixes an issue where unless controls:YES was set the wrong default was used for web links in the internal browser.

  • Changed

    Fixes an edge case where the PSPDFPasswordView would not adapt itself correctly if the keyboard was already up before the controller has been pushed.

  • Changed

    Fixes an issue with opening external URLs via dialog where the preview of the URL could fail.

2.13.2 - 10 May 2013

  • Changed
    The text selection delegate pdfViewController:didSelectText:withGlyphs:atRect:onPageView: is now also called for deselection.
  • Fixed
    Fixes an issue where PSPDFProcessor would flatten AND add annotations if kPSPDFProcessorAnnotationAsDictionary was used.
  • Fixed
    Fixes an issue with annotation drawing on iPhone on iOS5 where views could be reloaded after a memory warning and then the current drawing was missing.
  • Fixed
    Fixes a small memory leak.

2.13.1 - 9 May 2013

  • Added
    Adds read support for Polygon/Polyline annotations, including support for all line ending types.
  • Changed
    The tinted UIPopoverController subclasses now look much better and now very closely resemble the original including gradients and alpha value.
  • Changed
    PSPDFTextParser now fully complies to NSCoding, so search results can be persisted and cached. (Thanks to ForeFlight!)
  • Fixed
    Fixes an unbalanced locking call when a page was requested that couldn't be rendered.

2.13.0 - 7 May 2013

PSPDFKit now requires QuickLook.framework, AudioToolbox.framework and sqlite3. Please update your framework dependencies accordingly.

  • Changed
    Initial support for 'Widget' annotations, supports action and rendering. (not yet writable)
  • Changed
    Support for 'File' annotations. Will offer QuickLook support on touch.
  • Changed
    Basic read support for 'Sound' annotations.
  • Added
    Add support for 'Rendition' and 'RichMediaExecute' actions that can control Screen/RichMedia annotations. (video/audio. JavaScript is not supported.)
  • Changed
    Ink/Circle/Ellipse/Line now each save their last used color independently.
  • Changed
    FreeText and other annotation types inside the annotation toolbar now remember the last used color.
  • Added
    Add missing translation for "%d Annotations" and added special case for "%d Annotation" (singular).
  • Added
    Add missing "No Annotations" and "Loading..." state text for the PSPDFAnnotationTableViewController.
  • Changed
    For text selection, the text knob is now prioritized over near annotations.
  • API
    cacheDirectory in PSPDFDocument has been renamed to dataDirectory, so that won't be confused with the cache directory setting of PSPDFCache.
  • Changed
    Improves text parser to properly detect word boundaries for documents that use invalid characters for word separation.
  • Changed
    For pspdfkit:// based videos controls are now enabled by default if the option is not set.
  • Changed
    PSPDFProgressHUD now checks if the keyWindow is visible before restoring, fixes an edge case with multiple windows that have rootViewControllers attached.
  • Changed
    PSPDFSearchViewController now has a protocol to communicate with PSPDFViewController instead of owning that object directly.
  • Changed
    PSPDFViewController no longer will change the viewMode to document when the view will disappear.
  • Fixed
    Fixes a rare crash when moving the text selection handle.
  • Fixed
    Fixes an issue with writing the page annotation object on malformed PDFs which could lead to annotations being written but not being displayed.
  • Fixed
    Fixes an issue with where sometimes fillColor was set on FreeText annotations even though there shouldn't be one set.

2.12.12 - 4 May 2013

  • Changed
    The note view controller now will detect links.
  • Changed
    pdfViewController:shouldSelectAnnotation: is now also honored for long press actions.
  • Fixed
    Fixes an issue where annotations sometimes were not parsed correctly with password protected PDFs.
  • Fixed
    Fixes an issue related to checking the annotation cache receipt.
  • Fixed
    Fixes an encoding issue with annotation links that contained spaces.
  • Fixed
    Fixes a potential crash with an PSPDFActionURL with an nil URL.

2.12.11 - 30 Apr 2013

  • Added
    Add new styles for HUD showing/hiding: PSPDFHUDViewAnimationSlide (in addition to the default fade)
  • Changed
    Tapping in the previous/next range on first/last page will now toggle the HUD instead of force-showing it.
  • Fixed
    Fixes a UI issue where the document label view could be slightly offset under certain conditions on iPhone after a rotation from portrait to landscape with hidden HUD.
  • Fixed
    Fixes an issue with text extraction for certain PDF encodings.

2.12.10 - 30 Apr 2013

  • Changed
    Improves the Loading... state when there's already content in PSPDFTableAnnotationViewController.
  • Fixed
    Fixes an issue with adding/removing bookmarks.
  • Fixed
    Fixes an issue where fixedVerticalPositionForFitToWidthEnabledMode could lead to off-centered pages.
  • Fixed
    Fixes an issue with search and certain PDF encodings that only happened on release builds.
  • Changed
    PSPDFCatalog: Fixes the map view example with a map:// annotation link.

2.12.9 - 28 Apr 2013

  • Fixed
    Fixes an issue with text selection handle dragging.

2.12.8 - 28 Apr 2013

  • Changed
    Huge performance and memory improvements for text extraction/search.
  • Changed
    Performance improvements at serializing annotations.
  • Changed
    Memory improvements, especially for large documents. (>5000 pages)
  • API
    useApplicationAudioSession in PSPDFVideoAnnotationView has been removed, since the underlying property is deprecated by Apple. Subclass and change this on the MPMoviePlayerController directly if you rely on the old behavior, but note that this might be gone as of iOS7.
  • Added
    New brightnessControllerCustomizationBlock in PSPDFBrightnessBarButtonItem.
  • Fixed
    Fixes an issue that could lead to a crash on deallocating certain objects when OS_OBJECT_USE_OBJC was enabled. (Sourcecode, iSO6 only ARC builds)
  • Fixed
    Fixes an issue where PSPDFKit was sometimes too slow freeing up memory with lots of background task running on low memory situations.

2.12.7 - 24 Apr 2013

  • Changed
    Major performance improvements on annotation parsing.
  • Changed
    Outline and annotation parsing has been moved to a thread, the controller has now a loading state until parsing is complete.
  • Changed
    The bookmark controller now supports the pageRange feature, hiding bookmarks that are not accessible.
  • Changed
    Bookmark cells now allow copy.
  • Changed
    Bookmark now also uses the PSPDFAction system to execute actions. (allows links, etc)
  • Changed
    Improves the text parser to better deal with malformed PDF font encodings.
  • Changed
    Improves accessibility localization in the thumbnail grid view cell. (thanks to Dropbox for providing this patch!)
  • Added
    Adds missing localization for text alignment property of free text annotations.
  • Fixed
    Fixes a regression where search table view updates with rapid cancellation could lead to an exception.

2.12.6 - 22 Apr 2013

  • Changed
    FreeText annotations now have a text alignment property (compatible with both Preview.app and Adobe Acrobat)
  • Changed
    Ink annotations now allow setting a fill color (this is an extension to the PDF spec but works fine because we emit an appearance stream)
  • Changed
    Allows subclassing of PSPDFStampViewController.
  • Changed
    Expose the drawView of the PSPDFSignatureController.
  • Changed
    FreeText annotations: Improve parsing of style strings.
  • Changed
    Don't do expensive (xpc) dictionary lookups on older devices. (iPad1)
  • Fixed
    Fixes an issue where the outline controller could show menu items from the text selection view on iPad.
  • Fixed
    Fixes a crash with a missing selector (didReceiveMemoryWarning) on PSPDFDrawView.
  • Fixed
    Fixes a rare crash with parsing certain malformed PDF documents.

2.12.5 - 21 Apr 2013

  • Changed
    FreeText annotations now support fill color (Note: This is only partially implemented in Apple's Preview.app but works fine in Adobe Acrobat)
  • Changed
    FillColor settings now includes transparent (useful for shapes, free text, lines)
  • Changed
    Improves color parsing for FreeText annotations.
  • Added
    Add basic support for Caret annotations.
  • Changed
    Improves rendering of rotated stamps.

2.12.4 - 19 Apr 2013

  • Changed
    Performance improvements for page scrolling.
  • Changed
    Improves support for UIAppearance (e.g. navigation bar images)
  • Changed
    Bookmark and annotation controller now fully respect the tintColor property.
  • API
    PSPDFDocument convenience constructors have been renamed from PDFDocumentWith... to simply documentWith....
  • Changed
    Improves compatibility with certain GoToR PDF actions that don't define a target page.
  • Fixed
    Fixes an issue where pausing a video without controls could fail on iOS5.
  • Fixed
    Fixes an issue where showing multiple videos with autostart enabled could lead to a crash on iOS5.
  • Fixed
    Fixes a small memory leak when drawing stamp annotations.

2.12.3 - 19 Apr 2013

  • Changed
    The setDidCreateDocumentProviderBlock and the didCreateDocumentProvider method will now be called after the documentProviders are fully created, fixing recursion issues if methods are called that require the documentProvider from within that block.
  • Changed
    Setting a different annotationPath in the PSPDFFileAnnotationProvider will remove all current annotations and try to load new annotations from that path.
  • Fixed
    Fixes an issue where in PSPDFTextSearch didFinishSearch: was always called, even when the search was cancelled (instead of didCancelSearch:)
  • Fixed
    Fixes an issue where changing the note icon could result in restoring the previously set note text.
  • Changed
    Titanium: Fixes a bug where under certain conditions useParentNavigationBar would not work on the first push of the view controller.
  • Changed
    Titanium: Add setAllowedMenuActions (document setting)

2.12.2 - 18 Apr 2013

  • Changed
    PSPDFTabbedViewController learned openDocumentActionInNewTab, opens a document in a new tab if set to YES (new default)
  • Changed
    pdfViewController:documentForRelativePath: now gets the original path from the PDF action for resolvement.
  • Changed
    Respect alpha for fillColor for FreeText annotations.
  • Changed
    Disable iOS "Speak Selection" menu entries since this does not work. A DTS for this feature is ongoing.
  • Fixed
    Fixes rendering of textAlignment for FreeText annotations.
  • Fixed
    Fixes an issue when pageRange is set with multiple documents and retain documents are completely blocked through it.
  • Fixed
    Fixes PDF generation for different-sized PDFs.
  • Fixed
    Fixes missing update when "Clear All" is used.
  • Fixed
    Fixes a rare race condition on freeing document providers.
  • Fixed
    Fixes a rare issue that could lead to an empty view on loading a document.

2.12.1 - 12 Apr 2013

  • Changed
    Uses a sensible default for allowedMenuActions in PSPDFDocument.
  • Fixed
    Fixes an issue with Appcelerator.

2.12.0 - 11 Apr 2013

  • Added
    New class cluster: PSPDFAction. This unifies action between PSPDFOutlineElement, PSPDFBookmark and PSPDFLinkAnnotation. Now you can create outline elements and bookmark that have the same flexibility as links in PSPDFLinkAnnotation, supporting pspdfkit:// style URLs. The parsing code has been unified as well with the best of both worlds (e.g. the 'Launch' action is now supported universally). This improvement required deprecating certain methods - update your code if you used one of those classes directly)
  • Added
    Add support for GoBack/GoForward named annotations.
  • Added
    Add basic support for JavaScript actions that link to another page.
  • Changed
    PSPDFNoteAnnotationController now honors the allowEditing state also for the textView and blocks editing if set to NO.
  • Added
    New helper to better override classes: overrideClass:withClass: in both PSPDFViewController and PSPDFDocument.
  • Changed
    Annotation types in the annotation table view are now localized.
  • Added
    New delegates in PSPDFViewControllerDelegate to get notified on page dragging and zooming.
  • Changed
    PSPDFViewState no longer saves the HUD status (this should be handled separately and was confusing for the tabbed controller)
  • Removed
    Removed legacy coder support for data models that were serialized before 2.7.0.
  • Removed
    Removes deprecated API support in PSPDFTextSearch and PSPDFAnnotationParser.
  • Fixed
    Fixes an issue in the label parser where page label prefixes were defined without style.
  • Fixed
    Fixes an issue where hiding the progress HUD could make the wrong window keyWindow (if at that time there is more than one visible), thus leading to keyboard problems.
  • Fixed
    Fixes an issue in the document parser that could lead to a recursion for cyclic XRef references for certain PDF documents.
  • Fixed
    Fixes a situation where touch handling could become sluggish when a crazy amount of link annotation is on a page (>500!)
  • Fixed
    Fixes a annotation text encoding issue that could result in breaking serialization of certain character combinations like 小森.
  • Fixed
    Fixes a UI issue where invoking the draw action from the menu while at the same time having the annotation toolbar visible could lead to a hidden toolbar if that one is transparent.
  • Fixed
    Fixes an issue with the text extraction engine for certain PDF files.
  • Changed
    Appcelerator: Allow setting size properties like thumbnailSize: [300,300]
  • Changed
    Appcelerator: Add support to set outline controller filter options (outlineControllerFilterOptions = ["Outline"])

2.11.2 - 4 Apr 2013

  • Changed
    Drawing annotations is now always sharp, even when the document is zoomed in. (This required changes to the public API of PSPDFDrawView, check your code if you use that class directly)
  • Changed
    Annotation flattening now shows a circular progress indicator instead of the default spinning indicator.
  • Changed
    PSPDFProcessor now has a new progressBlock property that calls back on each processed page.
  • Added
    New delegates: pdfViewControllerWillDismiss: and pdfViewControllerDidDismiss: to detect controller dismissal.
  • Added
    Add allowedMenuActions property to PSPDFDocument to allow easy disabling of Wikipedia, Search, Define text selection menu entries.
  • Changed
    Internal locking of PSPDFDocument and PSPDFRenderQueue has been improved and is now faster in many situations.
  • Changed
    Getting all annotations of a document is now faster in some situations.
  • Changed
    Titanium: setEditableAnnotations: is now exposed (PSPDFKit Basic upwards)
  • Fixed
    Fixes an issue with line annotation selection where sometimes a selection knob was not visible.

2.11.1 - 3 Apr 2013

  • Added
    Add switch to globally enable/disable bookmarks (bookmarksEnabled in PSPDFDocument)
  • Changed
    annotationsEnabled in PSPDFDocument now also enabled/disables the annotation menus.
  • Changed
    The thumbnail view now listens for annotation changes/bookmark changes and updates accordingly.
  • Fixed
    Fixes an issue where the toolbar in the new PSPDFContainerViewController was sometimes not displayed initially.
  • Fixed
    Fixes an issue where the delegate didLoadPageView: was called multiple times with the pageCurl transition.

2.11.0 - 1 Apr 2013

  • Changed
    Allows to create Rectangle, Ellipse and Line annotations.
  • Changed
    Line thickness can now be chosen from the drawing toolbar.
  • Changed
    Improvements to line annotation drawing.
  • Changed
    Line annotation endings can now be customized (Square, Circle, Diamond, Arrow, ...)
  • Changed
    Drawing is now instantly smoothened.
  • Added
    New annotation list controller (PSPDFAnnotationListViewController) to quickly see all annotations, zoom onto them or delete them.
  • Changed
    Renamed Table of Contents to Outline.
  • Changed
    OutlineBarButton now can show both the new annotation list and the bookmarks. Both are enabled by default.
  • Changed
    The outline is now searchable.
  • Changed
    Several menu items have been reorganized to both fit better on iPad and iPhone.
  • Changed
    The long-press to show the bookmark view controller is now disabled by default.
  • Changed
    The PSPDFKit folder has been restructured.
  • Changed
    The pageRange feature if PSPDFDocument now works across multiple data sources. (This allows more flexibility for PSPDFProcessor and faster document creation)
  • Changed
    It's now easier to disable the PDF page label feature with the new property pageLabelsEnabled in PSPDFDocument. (enabled by default, disable if you see 'weird' page labels)
  • API
    PSPDFAnnotationView has been deprecated and renamed into PSPDFAnnotationViewProtocol.
  • Fixed
    Fixes an issue where small text on free text annotations was not rendered at all when the boundingBox was too small for it.
  • Fixed
    Fixes a potential crash on iOS5.

2.10.2 - 27 Mar 2013

  • Changed
    PSPDFCache is even smarter and faster when using PDF documents that are very slow to render.
  • Changed
    PSPDFCache no longer deadlocks if you remove the delegate while the delegate is being called.
  • Changed
    If a new PSPDFViewController is created based on a PDF action that links to a new document modally, all important settings are copied over to the new controller.
  • Changed
    PSPDFKit will no longer create empty highlight annotations when using the annotation toolbar and tapping on a point without text.
  • Changed
    No longer retains the view controller while the document background cache is being build (less memory pressure)
  • Added
    Adds some more safeguards against abuse of certain methods.
  • Changed
    The render queue now retains the document while rendering. This fixes cases where image requests never returned because the document disappeared before.
  • Fixed
    Fixes a regression from 2.10 where through an event optimization sometimes the text of a note annotation was not properly saved. PSPDFDocument now sends out a PSPDFDocumentWillSaveNotification before a save will be made to give all open editors a chance to persist it's last state in time.
  • Fixed
    Fixes an issue where the contentRect was calculated wrong for uncommon view embedding use cases.
  • Fixed
    Fixes an issue where the thumbnail filter values were hardcoded.
  • Fixed
    Fixes a potential timing-related crash on iOS5 when the search controller was shown too fast.
  • Changed
    Titanium: Add thumbnailFilterOptions property.

2.10.1 - 26 Mar 2013

  • Changed
    Shape annotations border and fill color can now be customized.
  • Changed
    Clearing the memory cache will now also clear any open document references.
  • Added
    Add white color to common color picker colors (except for highlights, replacing purple)
  • Changed
    PSPDFRenderQueue now has a cancelAllJobs to clear any running requests.
  • Changed
    The render queue now better prioritizes between cache requests and user requests (zooms) to allow even faster rendering.
  • Changed
    FreeText annotations can now no longer be created outside boundaries.
  • Added
    Add support for text alignment for FreeText annotations. (It seems that Adobe Acrobat has a bug here and ignores this property - other Applications are compliant to the PDF spec and do display this, e.g. Apple's Preview.app)
  • Changed
    Edit mode now directly hides the HUDView.
  • Changed
    API change: The color picker now has a context: flag to allow state storage. Update your delegates if you use this class directly.
  • Fixed
    Fixes some minor issues with the new cache.
  • Fixed
    Fixes a UI weirdness where the scrollview had a slow scroll-back animation when text was edited at the very top.
  • Changed
    Titanium: Add new linkAnnotationHighlightColor property.

2.10.0 - 22 Mar 2013

PSPDFKit 2.10 is another major milestone. The cache has been rewritten from the ground up to be both faster and more reliable. Annotations are now cached, they are no longer an "afterthought" and will show up in the thumbnails and even the scrobble bar. The disk cache now limits itself to 500MB (this is customizable) and cleans up the least recently used files. The memory cache is now also smarter and better limits itself to a fixed number of pixels (~50MB of modern devices in the default setting). Loading images from the cache is now more logical and highly customizable with PSPDFCacheOptions. The two render code paths have been unified, PSPDFRenderQueue now does all rendering and can now render multiple requests at the same time and also prioritizes between low priority cache requests and high priority user zoom requests. In this process some very old code has been completely reworked (PSPDFGlobalLock) and is now much more solid. Several methods have been renamed, upgrading will require a little bit of effort to adapt to the new method names. It's definitely worth it. If you find any regressions or missing features for your particular use case, contact me at peter@pspdfkit.com.

  • Changed
    Completely rewritten cache that now renders all screen sizes and shows annotations.
  • Changed
    PSPDFThumbnailViewController now has a new filter to only show annotated/bookmarked pages. See filterOptions for details. http://twitter.com/PSPDFKit/status/314333301664006144/photo/1
  • Changed
    PSPDFViewController has a new setting: showAnnotationMenuAfterCreation to automatically show the menu after an annotation has been created. (disabled by default)
  • Changed
    Text loupe no longer fades zoomed content. (looks better for text scope loupe)
  • Changed
    Prevent too fast tableView updates (and thus flickering) in PSPDFSearchViewController.
  • Changed
    Increases loupe magnification on iPhone to 1.6 and make kPSPDFLoupeDefaultMagnification customizable at runtime.
  • Changed
    A UISplitViewController in the hierarchy is automatically detected and the pan gesture will be blocked while the PSPDFViewController is in drawing mode (else this would interfere with drawing).
  • Changed
    The note annotation controller now no longer generates change events per typed key, but will wait for a viewWillDisappear/app background event to sync the changed text back into the annotation object.
  • Changed
    Expose availableLineWidths and availableFontSizes in PSPDFPageView to customize menu options.
  • Changed
    On iPhone, scrolling down the search results will now automatically hide the keyboard.
  • Changed
    Improves performance for overlay annotation rendering.
  • Changed
    Improves annotation selection, especially drawings are now pretty much pixel perfect.
  • Changed
    Disables the long press gesture (and the new annotation menu) when a toolbar annotation mode is active.
  • Changed
    Use PSPDFAnnotationBorderStyleNone instead of PSPDFAnnotationBorderStyleSolid when the border style is undefined (to match Adobe Acrobat)
  • Changed
    The annotation selection border is now independent of the zoomScale.
  • Changed
    FreeText annotations no longer "jitter" when resizing.
  • Changed
    The stamp controller now dismisses the keyboard when changing switches or pressing return on the keyboard.
  • Changed
    Allow note annotations outside the page area (to match Adobe Acrobat behavior).
  • Changed
    Allow overrideClassNames for PSPDFDocument when it's created from within PSPDFViewController (e.g. when an external annotation link target is touched)
  • Added
    Add workaround against rdar://13446855 (UIMenuController doesn't properly reset state for multi-page menu)
  • Changed
    The selectionBackgroundColor of PSPDFSearchHighlightView can be updated after it's displayed now.
  • Changed
    PSPDFTabBarView of PSPDFTabbedViewController can now be overridden with the overrideClassNames dictionary.
  • Changed
    API change: The renderBackgroundColor, renderInvertEnabled, renderContentOpacity methods have been removed from PSPDFViewController. Please instead update the dictionary in PSPDFDocument to set these effects. (e.g. document.renderOptions = @{kPSPDFInvertRendering : @YES}).
  • Changed
    API change: PSPDFViewController's renderAnnotationTypes has been deprecated and will update the renderOptions in PSPDFDocument instead.
  • Changed
    API change: renderPage: and renderImageForPage: will now automatically fetch annotations if the annotations array is nil. To render a page without annotations, supply an empty array as the annotations array (as soon as an array is set, auto-fetching will be disabled).
  • Changed
    API change: PSPDFCacheStrategy is now PSPDFDiskCacheStrategy, the enum options have been updated as well.
  • Fixed
    Fixes some minor problems and deprecation warnings when compiling PSPDFKit with iOS6 as minimum deployment target and autoretained GCD objects.
  • Fixed
    Fixes an issue where some annotations got set to overlay and were not properly restored.
  • Fixed
    Fixes an issue with centering after returning from thumbnails in continuous scrolling mode.
  • Fixed
    Fixes an issue where a thumbnail could be animated that was not visible.
  • Fixed
    Fixes an UIAccessibility mistake where Undo was labeled Redo in the drawing toolbar.
  • Fixed
    Fixes encoding issues with localization files.
  • Fixed
    Fixes some potential crashes when parsing certain PDF documents.
  • Fixed
    Fixes several non-critical log warnings when opening continuous scrolling with an invalid document.
  • Fixed
    Fixes various potential crashes around screen annotations and stream extraction.

2.9.0 - 9 Mar 2013

  • Changed
    The loupe has been improved, it's now fast in every zoom level and now 100% matches UIKit's look. Developers can now easily update the magnification level.
  • Changed
    Greatly improved UIAccessibility support. Reading mode is now line-based and reading column-based layouts works much better.
  • Added
    New feature: PSPDFScrobbleBar can control tap behavior outside the page area with allowTapsOutsidePageArea.
  • Changed
    Improved PDF rendering speed for pageCurl mode.
  • Changed
    RichMediaAnnotations (directly embedded video) now support autoplay set directly via Adobe Acrobat (Both page visibility modes will enable autoplay)
  • Removed
    Removes deprecated methods from PSPDFViewController and PSPDFPageView.
  • Changed
    NSNull entries are now properly filtered out from the PDF metadata.
  • Changed
    Greatly improves outline parsing speed. In some cases parsing of extremely complex outlines went down from 120 seconds to 2 seconds (in a ~5000 pages document)
  • Added
    Add progress while data is transferring when using the "Open In…" feature.
  • Changed
    PSPDFAnnotation model version is now at 1, boundingBox is now serialized as string and no longer as NSValue (fixes JSON serialization)
  • Changed
    Improves animation when adding/removing bookmarks while the popover controller is resizing at the same time.
  • Added
    Add support for long-press toolbar button detection when useBorderedToolbarStyle is enabled.
  • Changed
    useBorderedToolbarStyle is now also evaluated in PSPDFAnnotationToolbar.
  • Changed
    PSPDFOpenInBarButtonItem now has the option to directly add the 'print' action into the list of applications. Disabled by default. See 'showPrintAction'.
  • Changed
    UIMenuController is now smarter and no longer places the menu above the toolbar when there's space underneath as well.
  • Changed
    'allowTwoFingerScrollPanDuringLock' in PSPDFAnnotationToolbar now defaults to NO, since this delays drawing.
  • Changed
    API change: Refactored the thumbnail view out of PSPDFViewController into it's own controller: PSPDFThumbnailViewController. If your code relied on modifying the collection view delegates within PSPDFViewController, you must update your code to override PSPDFThumbnailViewController instead. PSPDFViewController' gridView has been deprecated. Use thumbnailController.collectionView instead.
  • Changed
    API change: Removed iPhoneThumbnailSizeReductionFactor. item size is now set conditionally during initialization. The best way to set this is in PSPDFCache.sharedCache.thumbnailSize.
  • Changed
    API change: The delegate didRenderPage:didRenderPage:inContext:withSize:clippedToRect:withAnnotations:options: has been moved over to PSPDFDocumentDelegate.
  • Changed
    Drawing Ink annotations now closely matches the line width when zoomed in.
  • Fixed
    Fixes a possible scrolling "freezing" issue when pageCurl is enabled.
  • Fixed
    Fixes a potential crash with extracting the page title of the PDF.
  • Fixed
    Fixes a potential crash when the Open In... action was invoked multiple times too quickly. (Thanks to Evernote for this fix)
  • Fixed
    Fixes a bug that could change the cursor position in the note annotation controller.
  • Fixed
    Fixes various potential crashes when parsing invalid PDF data.
  • Fixed
    Fixes an issue where thumbnails could not properly be selected with VoiceOver enabled.
  • Fixed
    Fixes an issue with image selection on rotated documents.
  • Fixed
    Fixes an issue with annotationViewClassForAnnotation: and the call ordering of defaultAnnotationViewClassForAnnotation.

2.8.7 - 22 Feb 2013

  • Changed
    Improved scrollview centering. Now allows to pan while bounce-zoomed out.
  • Changed
    PSPDFMultiDocumentController now can advance to next/prev document with tapping at the last page of the current one.
  • Changed
    Slightly increases the smart zoom border on iPad.
  • Added
    New helper in PSPDFNoteAnnotationController to allow easy customization: setTextViewCustomizationBlock.
  • Added
    New property in PSPDFViewController: scrollOnTapPageEndAnimationEnabled.
  • Added
    New property in PSPDFViewController: shouldRestoreNavigationBarStyle (via Dropbox request)
  • Fixed
    Fixes a rare scroll view locking issues that was triggered by an UIKit bug.
  • Fixed
    Fixes an off-by-one error in PSPDFOutlineParser's resolveDestinationNameForOutlineElement.

2.8.6 - 20 Feb 2013

  • Changed
    PSPDFShapeAnnotation now creates appearance stream data. This is needed to work around a bug in Adobe Acrobat for iOS. This behavior can be disabled with setting kPSPDFGenerateAPForShape to @NO in renderingOptions of PSPDFDocument. As a side effect, this also improves display of transparent shapes with Apple's Preview.app
  • Changed
    Improvements to smart zoom - text block choose method is now smarter.
  • Changed
    viewLock no longer locks the HUD (just the view state)
  • Changed
    Improves animation for the Table of Contents controller cells.
  • Changed
    Setting the pageRange now automatically invalidates the current document.
  • Changed
    PSPDFTabbedViewController has become more modular with the new superclass PSPDFMultiDocumentViewController.
  • Fixed
    Fixes a rare crash when using the drawing tool very quickly with only one resulting draw point.
  • Fixed
    Fixes a rendering issue with images added from the camera in pageCurl mode.
  • Fixed
    Fixes an issue where the scrobble bar could be displayed even though it's disabled.
  • Fixed
    Fixes a regression in the appearance stream generator.
  • Fixed
    Fixes a regression with updating the bookmark bar button status when the toolbar is transparent.
  • Changed
    Titanium: Fixes toolbar detection for annotation toolbar.

2.8.5 - 16 Feb 2013

  • Fixed
    Fixes a text glyph frame calculation bug when a font contains both a unicode map and an encoding array.
  • Changed
    Improves glyph shadow detection to be more accurate, less false positives.

2.8.4 - 16 Feb 2013

  • Changed
    Improves text block detection speed.
  • Fixed
    Fixes certain crashes when parsing malformed PDFs.
  • Fixed
    Fixes an issue where outline elements linked to the same named destination would not all be correctly resolved.

2.8.3 - 15 Feb 2013

  • Changed
    Allow UIAppearance for PSPDFRoundedLabel.
  • Added
    Added a mailComposeViewControllerCustomizationBlock in PSPDFEmailBarButtonItem to easily change the default email body text.
  • Added
    New property: thumbnailMargin in PSPDFViewController.
  • Changed
    Thumbnail view now dynamically updates the sectionInset if the HUD is hidden during thumbnail view.
  • Changed
    API change: Renamed siteLabel to pageLabel in PSPDFThumbnailGridViewCell.
  • Changed
    Replaces PSPDFAddLocalizationFileForLocale with the more flexible PSPDFSetLocalizationBlock.
  • Added
    Add double-tap to fullscreen for YouTube views.
  • Added
    Add fallback to use associated objects for annotation views that don't comply to PSPDFAnnotationView. (Fixes duplicate view adding)
  • Changed
    Disables the yellow block highlighting on a double-tap zoom.
  • Changed
    The Save To Camera Roll is now faster and no longer blocks the main thread during JPG compression.
  • Changed
    Certain smaller tweaks/improvements for the HUD.
  • Fixed
    Fixes a regression where on a long press the annotation menu would reappear then disappear for highlight annotations.
  • Fixed
    Fixes a regression that broke re-positioning of search highlights on a frame change.
  • Fixed
    Fixes an issue where the pdfController could be dismissed when using the "send via email" feature.
  • Fixed
    Fixes a rare condition in which the progressView (PSPDFProgressHUD) could get stuck.
  • Fixed
    Fixes an issue where videos that were set to autostart=NO could still autostart on iOS5.
  • Fixed
    Fixes an issue where CMYK encoded JPGs would be extracted inverted upon saving.
  • Fixed
    Fixes an issue where ink annotations could be added in the wrong size when the device directly rotates after finishing a drawing
  • Fixed
    Fixes a rounding error that made certain pages scroll-able in pageCurl mode.
  • Fixed
    Fixes a page blurriness issue because of rounding errors when zooming out/zooming in a lot.
  • Removed
    Removed deprecated options from PSPDFEmailBarButtonItem.

2.8.2 - 10 Feb 2013

  • Changed
    HUD visibility/transparency can now be set more fine-grained with the new properties transparentHUD, shouldHideNavigationBarWithHUD, shouldHideStatusBarWithHUD and statusBarStyle. Check your code and let me know if this breaks something. Setting statusBarStyleSetting will update all those properties.
  • Changed
    Resize view now snaps to aspect ratio on resizing. Middle knobs are hidden if space is low.
  • Changed
    Document link annotations now resolve symbolic links.
  • Changed
    After editing annotation properties (e.g. color) the menu will re-appear.
  • Changed
    Annotation menu is re-displayed after a rotation.
  • Changed
    Finishing a drawing no longer disappears/reappears because of the page rendering process.
  • Changed
    Search view controller cells now animate better and have better sized margins.
  • Changed
    PSPDFBarButtonItem's pdfController property is now weak. Update your code to use notifications if you previously relied on KVO.
  • Changed
    NavigationBar/ScrobbleBar are now rasterized before a fade out/fade in, which improves the fade animation (no more bleed-through)
  • Changed
    Annotation Toolbar now in all cases correctly adapts to statusbar frame size changes (calling, personal hotspot, ...)
  • Changed
    Improves compatibility with writing PDF trailer data with certain corrupt PDF files.
  • Added
    Adds new helper: PSPDFAddLocalizationFileForLocale, parses a localization text file.
  • Fixed
    Fixes an UX issue where the annotation tool could be deselected when using the two-finger scroll while the annotation toolbar is active and a tool (e.g. highlight is selected).
  • Fixed
    Fixes a touch inconsistency where a annotation deselection could be done without marking the touch as processed.
  • Fixed
    Fixes several entries in the localization table.
  • Fixed
    Fixes a regression introduced in 2.8.1, a potential crash when using the highlight annotation tool outside of a glyph.
  • Fixed
    Fixes a potential crash in the search view controller due to invalid state handling.
  • Fixed
    Fixes an issue where part of the drawing state was lost when opening a modal controller while in drawing mode. (e.g. iPhone/color picker)
  • Changed
    Various typos fixed, and some very minor API changes due to spelling corrections (thanks to Tony Tomc).

2.8.1 - 6 Feb 2013

  • Changed
    The highlight tool now matches full words. A single touch will highlight the complete word instead of just one character.
  • Changed
    A new syntax for link annotations to control UI. For now pspdfkit://control:outline is supported to open the TOC directly from the document.
  • Changed
    The signature controller now uses "Signatures" as title instead of "Choose Signature" on iPhone, since later was too long and got cut off.
  • Fixed
    Fixes an issue where setFileURL: could generate a new UID if one was already set.
  • Fixed
    Fixes an UI issue when resizing an annotation purely horizontally would result in no redraw.
  • Fixed
    Fixes an UI issue where the thumbnail indicator could move behind the thumbnail image in some cases.
  • Fixed
    Fixes an UI issue in PSPDFFixNavigationBarForNavigationControllerAnimated() that could potentially shift down the navigationBar for unusual view controller setups.
  • Fixed
    Fixes an UX issue where a second tap was sometimes required after using certain modes in the annotation toolbar.
  • Fixed
    Fixes an issue where an external PSPDFBarButtonItem would not update on iPhone.
  • Fixed
    Fixes an issue where videos played in a popover continued to play even after the popover was dismissed.
  • Fixed
    Fixes an issue where thumbnailSize could not be changed after the PSPDFViewController has been displayed.
  • Fixed
    Fixes an issue with incorrect view controller locking after switching from highlight to draw mode in the annotation toolbar.

2.8.0 - 5 Feb 2013

  • Changed
    Image annotations. PSPDFKit can now add images from the camera and the photo library and embed them as stamp annotations.
  • Changed
    Search / Text extraction is now more than twice as fast and reports the current page.
  • Changed
    The whole AP stream generation system has been improved and performance optimized to allow bigger streams like images.
  • Changed
    PSPDFKit will now require Xcode 4.6/SDK 6.1 to compile. (4.5 should still work fine, but we follow Apple's best practice with always compiling with the latest SDK available.)
  • Changed
    API change: editableAnnotationTypes is now an ordered set. Using a regular set to change this property will work for the time being, but please update your code. The order now will change the ordering of the buttons in the annotation toolbar and the new annotation menu.
  • Added
    Add experimental phone/link detection: detectLinkTypes:forPagesInRange: in PSPDFDocument. This will create annotations for phone numbers and links found in the document, if they are not linked already. This is the same that Preview/Mac and Adobe Acrobat do - they allow to click URLs even if they don't have any link set on them.
  • Changed
    Search now displays the current processed page.
  • Changed
    Further tweaks to PSPDFHighlightAnnotation highlightedString.
  • Added
    Add setting to enable/disable the "Customer Signature" feature. (customerSignatureFeatureEnabled in PSPDFSignatureStore)
  • Changed
    The signature controller has now landscape as preferred rotation under iOS6. (but still supports portrait)
  • Changed
    Controllers presented via the PSPDFViewController helper now use a custom PSPDFNavigationController that queries the iOS6 rotation methods of the topmost view controller. This makes it easier to customize rotation for PSPDF* controllers without hacks.
  • Changed
    Performance improvement: deleted annotations now are no longer serialized if the external annotation format is used.
  • Changed
    The "hide small links" feature now works better on iPhone.
  • Changed
    FreeText annotations now parse even more font definition styles.
  • Changed
    Improvements to the heuristic in PSPDFHighlightAnnotation highlightedString.
  • Changed
    Annotations added via a modal view (e.g. Signatures on iPhone) are now also selected. (annotation selection is preserved during reloadData)
  • Changed
    Smart zoom now uses less border when zooming into a text block, which looks better. (other columns usually are no longer visible)
  • Changed
    Taps that dismiss an annotation editing popover no longer modify the HUD state.
  • Changed
    The scrobble bar thumbnail size has been tweaked to be a little bigger. This now can also be fine-tuned, see PSPDFScrobbleBar.h.
  • Changed
    The font selector now selects the currently chosen font.
  • Changed
    Various performance improvements. (esp. search and the color picker)
  • Changed
    Thumbnails are now sharper and always aligned to pixel grid (fixes a bug in UICollectionViewFlowLayout)
  • Changed
    Text selection knobs are now pixel aligned as well.
  • Changed
    When thumbnails are loaded from scratch, they are loaded in order. (PSPDFCache's numberOfConcurrentCacheOperations has been set to 1)
  • Fixed
    Fixes an UX issue where PSPDFKit could end up displaying something like '1 (1 of 2)' for page labels.
  • Fixed
    Fixes an UX issue where a tap wasn't set to being processed when the delegate delegateDidTapOnAnnotation:annotationPoint:... was being used.
  • Fixed
    Fixes an UIKit bug that in some cases froze the UIScrollView when we zoomed out programmatically (e.g. a double tap after already zoomed in)
  • Fixed
    Fixes a potential crash when saving NSData-based PDFs with a corrupt XRef table.
  • Fixed
    Fixes a rendering issue where some landscape documents were incorrectly scaled when using renderImageForPage:withSize in PSPDFDocument.
  • Fixed
    Fixes a regression that stopped the [popover:YES] option form working properly. (A formsheet was presented instead)
  • Fixed
    Fixes a regression in the 2.7.x branch that caused movies loaded in the PSPDFWebViewController to fail with the error "Plugin handled load".
  • Fixed
    Fixes an issue when using Storyboard and setting the viewState to thumbnails initially.
  • Fixed
    Fixes an issue where the signature selector controller dismissed the whole pdfController under certain conditions.
  • Fixed
    Fixes an issue with annotations moving to other pages on a document with multiple document providers.
  • Fixed
    Fixes an issue where the note view controller would hide the close button on iPhone if edit was set to NO.
  • Fixed
    Fixes an issue with frame displacement under certain conditions on embedded UINavigationControllers.
  • Fixed
    Fixes an issue with zooming when in text edit mode and page centering.
  • Fixed
    Fixes an issue with searching for certain characters that are reserved regex characters (like *+).
  • Fixed
    Fixes an encoding issue with annotation content and certain Chinese characters.

2.7.5 - 25 Jan 2013

  • Changed
    Signatures are now securely saved in the Keychain and a list of signatures is presented. To disable this feature, set PSPDFSignatureStore.sharedSignatureStore.signatureSavingEnabled = NO in your appDelegate.
  • Changed
    While annotation mode is active (highlight, drawing, etc) scrolling is now enabled with using two fingers. The old behavior can be restored with setting allowTwoFingerScrollPanDuringLock in PSPDFAnnotationToolbar to NO.
  • Changed
    PSPDFKit now requires Security.framework.
  • Fixed
    Fixes an issue that could cause an initial "white page" when the controller is first loaded, even when there's cache data available.
  • Fixed
    Fixes an UX issue where, with creating a new note, the menu could be displayed on iPhone, stealing the keyboard from the newly created note controller.
  • Fixed
    Fixes a regression of 2.7.4 that broke some remote videos/audios.
  • Fixed
    Fixes a potential issue when reordering bookmarks.
  • Fixed
    Fixes an issue where the last letter was cut off when using PSPDFHighlightAnnotation highlightedString.

2.7.4 - 24 Jan 2013

  • Changed
    Line annotations are now writeable.
  • Changed
    A second tap now enables the edit mode in a free text annotation.
  • Changed
    Annotation selection is now properly pixel aligned, resulting in sharper border, drag points and content - especially on the iPad Mini.
  • Changed
    The drawing toolbar no longer forces the HUD to show before displaying itself.
  • Changed
    If enableKeyboardAvoidance is set to NO, the firstResponder won't be tampered with anymore.
  • Added
    New property: allowToolbarTitleChange on PSPDFViewController, controls it title is set or not.
  • Changed
    PSPDFOutlineParser now lazily evaluates named destinations if an outline has more than a specified threshold. (This is currently set to 500). This greatly improves loading times for documents with complex outlines.
  • Changed
    Allow audio file types for RichMedia/Screen annotations.
  • Added
    Add more audio file formats to the support list. (aiff, cif, ...)
  • Changed
    Ensure that addAnnotation:animated: in PSPDFPageView sets the page and documentProvider.
  • Changed
    Better workaround for MPMoviePlayer's problem with multiple audio/video views on the same window. (A play button is now displayed in those cases)
  • Changed
    Normalizes extracted text, allow searching within text that contains non-normalized ligatures.
  • Changed
    Opacity menu now draws a checked white background instead of using the menu background (now it's more like Photoshop, looks better)
  • Added
    Add spanish translation (thanks to Tony Tomc!)
  • Changed
    The maximum software dimming value is less dark.
  • Fixed
    Fixes a problem in PSPDFProcessor with NSData-based documents and adding annotation trailers.
  • Fixed
    Fixes a bug where the scrollview would update it's position when a UIAlertView with a TextField was visible.
  • Fixed
    Fixes a bug in the outline parser that resulted in the loop for (invalid) cyclid PDF referenced objects.
  • Fixed
    Fixes an issue where parsing certain PDF dates failed.
  • Fixed
    Fixes an issue with view state restoration and continuous scrolling.
  • Fixed
    Fixes a rare issue where the bookmark thumbnail view indicator could be behind the thumbnail image.
  • Fixed
    Fixes an issue with inline editing and the split screen keyboard.

2.7.3 - 20 Jan 2013

  • Changed
    FreeText annotations are now editable inline.
  • Changed
    Improves stamp and signature rect placement (no longer places the rect outside of page boundaries)
  • Changed
    Drawing overlay is now transparent. You can restore this behavior with subclassing PSPDFDrawView and setting the backgroundColor to [UIColor colorWithWhite:1.0 alpha:0.5].
  • Changed
    When changing the thickness of a drawing, the selection border will now automatically adapt itself to fit the new bounds.
  • Changed
    Renamed "Colors..." menu entry to "Color...".
  • Fixed
    Fixes a potential issue with annotation rotation handling.
  • Fixed
    Fixes a potential crash on stamp creation on iPhone.
  • Fixed
    Fixes an issue where the drawing toolbar was added behind the HUD toolbar.
  • Fixed
    Fixes an issue where PSPDFKit could end up displaying something like 'Page 2-3 of 2'.
  • Fixed
    Fixes an issue where certain pages could be skipped with scroll to prev/nextPage in double page mode (via touching the borders).
  • Fixed
    Fixes some typos and spelling mistakes.

2.7.2 - 18 Jan 2013

  • Changed
    PSPDFScrollView will now move up if a keyboard is displayed.
  • Changed
    Free Text annotation now have sensible defaults when created in code. (Helvetica, font-size 20)
  • Changed
    Several tweaks for PSPDFProcessor PDF from web/office files generation.
  • Fixed
    Fixes a potential crash in the iPhone popover controller.
  • Fixed
    Fixes in the annotation selection handling logic.
  • Fixed
    Fixes a minor UX issue where Open In... could result in a second tap needed to activate.

2.7.1 - 17 Jan 2013

  • Changed
    Note annotation flattening.
  • Changed
    Text selection is now always prioritized over image selection.
  • Changed
    For the continuous scrolling page transition, all visible pages are now animated when showing/hiding the thumbnail view.
  • Changed
    Improve PDF serialization of custom stamp annotations.
  • Fixed
    Fixes an animation issue with continuous scrolling.
  • Fixed
    Fixes an UI issue where under certain conditions a second tap was required on a toolbar button to hide the active popover.
  • Fixed
    Fixes an UI issue with creating note annotations.
  • Fixed
    Fixes an issue where annotation resizing was disabled when textSelectionEnabled was set to NO.
  • Fixed
    Fixes a rounding bug in continuous scrolling that could lead to a x AND y scrolling on zoomScale 1.0
  • Fixed
    Fixes several issues with certain RichMedia embedded video annotations.

2.7.0 - 16 Jan 2013

  • Changed
    PSPDFKit model classes now have a common base model class 'PSPDFModel' - allows to serialize/deserialize via JSON easily using externalRepresentationInFormat:. To get the JSON dictionary, use annotation externalRepresentationInFormat:PSPDFModelJSONFormat. (The old annotation serialization format is still supported for the time being)
  • Changed
    PSPDFKit now requires AssetsLibrary.framework - if you're using PSPDFKit.xcproj or the source distribution, this is already been taken cared of. If you added the frameworks manually and get a linker error, make sure you are linking sAssetsLibrary.framework.
  • Changed
    PSPDFMenuItem learned to show images in UIMenuController - this beautifies many of the annotation menus, images are now used for annotation types/colors where appropriate.
  • Changed
    PSPDFKit has learned to write appearance streams. Currently they are emitted for Stamp and Ink annotations. This will help to further improve annotation compatibility with some apps that behave less standard compliant (like Adobe Acrobat/iOS, last tested version is 10.4.4, which doesn't show Ink annotations if they do not have an attached AP stream, even if this is invalid behavior according to the PDF spec. (GoodReader/Preview.app/Adobe Reader on the Mac don't require an AP stream and work in compliance to the spec.))
  • Changed
    Annotation menus have been cleaned up a little, Opacity... has been moved into a submenu of Color for highlight annotations.
  • Changed
    PSPDFProcessor has learned to write annotations as dictionary, not only flatten. This will be used e.g. for Open In... when the original PDF is not writeable and thus annotations are saved in an external file.
  • Changed
    Open In... will now create a new file if there are annotations and the source PDF is not writeable itself.
  • Changed
    Stamp annotations now have limited support for appearance streams.
  • Changed
    Stamp annotations can now be added via the new PSPDFStampViewController.
  • Added
    Add experimental pageRange feature in PSPDFDocument to allow showing of a subset of the pages.
  • Changed
    Highlight annotation hit testing is now more accurate, checking the specific rects of the highlights, not the outer boundingBox.
  • Changed
    Annotation rendering now checks if the annotation will be visible at all and only then renders the annotation. This speeds up zooming on complex documents with many annotations.
  • Changed
    Improves search by ignoring certain whitespace characters like no-break-spaces.
  • Changed
    Allows to create password protected PDFs with PSPDFProcessor up to AES-128 (and mix other CGPDFContext properties like kCGPDFContextAllowsPrinting or kCGPDFContextAllowsCopying)
  • Changed
    Improves word detection with splitting words between a line of thought and adding special logic for non-default whitespace characters. to use the old behavior.
  • Changed
    Improves french translation.
  • Changed
    zIndex of annotation images is now below zIndex of links, so that links are always displayed before annotation images.
  • Changed
    Email sending using PSPDFEmailSendMergedFilesIfNeeded will not perform a merge if there is only one source document.
  • Changed
    Links are now handled even if they are overlapped or hidden underneath other views.
  • Changed
    Hides the page label and the scrobble bar if the document is password protected and not yet unlocked.
  • Changed
    PSPDFAnnotation now shows if an appearanceStream is attached.
  • Changed
    PSPDFAnnotation now as a userInfo dictionary to add any custom data.
  • Changed
    Annotations now have a creationDate.
  • Changed
    When note annotations are tapped, don't fade-animate the former annotation out.
  • Changed
    Page label will not be displayed if the page label is simply the real page number. (Prevent titles like 2 (2 of 10))
  • Changed
    The internal web browser will now display an error within the HTML, much like Safari on iOS: https://twitter.com/steipete/status/287272056524001280
  • Changed
    Selected images now have a (default iOS light blue) selection state, matching the selection behavior of glyphs.
  • Changed
    Brightness control now has indicator images for less/more brightness and a better icon.
  • Changed
    Improves performance for pages with many links by dynamically disabling the rounded corners in that case.
  • Changed
    External PDF links can now be opened modally in a new controller, use [modal:YES] in the option field, e.g. pspdfkit://[modal:YES]localhost/two.pdf#page=4.
  • Changed
    Video extension with a cover now no longer has a dark background and is transparent. If you set cover:YES it will simply show the play button without any background.
  • Changed
    API change: Words are now detected if they are completely within the rect specified. Use kPSPDFObjectsTestIntersection
  • Changed
    API change: OutlineElement.page is now 0-based, not 1-based.
  • Changed
    API change: Several PSPDFProcessor methods now have an additional error part.
  • Changed
    API change: PSPDFInkAnnotation has been simplified, will automatically recalculate bounding box and paths on line change.
  • Changed
    API change: Setting the annotation color will now also set the alpha value, if one is set in color.
  • Changed
    API change: objectsAtPoint: now automatically does an intersection test unless specified otherwise, but objectsAtRect will not, so you need to specify that. Also, in previous version the rect check was done incorrectly to check if the test rect is within the object, now we check if the object is within the test rect OR intersects with it, if intersection is set to YES.
  • Changed
    API change: Links to external files now reference the page, not page+1. (pspdfkit://localhost/two.pdf#page=4 will move to page 4, before it was page 5)
  • Added
    Add support for older PDF standard of defining Dest arrays for page links (for example those produced by LaTeX with PDF version 1.3)
  • Changed
    Annotation option parsing is now more robust and will tolerate whitespace.
  • Changed
    Annotation text (and thus the annotation menu) is now even displayed if editableAnnotationType is set to NO.
  • Added
    Adds a workaround for certain PDFs with large embedded videos that previously couldn't be parsed.
  • Changed
    PSPDFKit now uses OS_OBJECT_USE_OBJC instead of OS version checking to check of GCD objects are collected via ARC or not (This is iOS6 only and the new default, can be disabled by the compiler)
  • Changed
    Text in the password view is now viewable on iPhone in landscape.
  • Fixed
    Fixes an issue with font caching on search and certain documents.
  • Fixed
    Fixes an off-by-one error on writing link annotations that link to internal pages.
  • Fixed
    Fixes an issue with the "Save To Camera Roll" feature and iOS6 - the required rights are now checked fore before writing the image, and an error dialog is displayed for the user in case image saving failed.
  • Fixed
    Fixes an issue where PDF images in CMYK format could not be saved to the Camera Roll.
  • Fixed
    Fixes an issue where PSPDFTabbedViewController failed to show the tab bar if restoreState wasn't called and thus the documents array was nil.
  • Fixed
    Fixes an issue with opening internal html links on PDF link annotations on the device (worked fine on the Simulator)
  • Fixed
    Fixes an issue where the cancel button of the search controller was disabled sometimes (iPhone only)
  • Fixed
    Fixes an issue where under certain conditions link annotations were marked as dirty right after reading them from the PDF which could result in some slowdown when hiding the PSPDFViewController.
  • Fixed
    Fixes a crash with LifeScribe PDF documents when there's an embedded video annotation.
  • Fixed
    Fixes a weird potential crashing issue where setting the controlStyle of the MPMoviePlayerController could throw an exception (which is not documented and should not happen according to the MPMoviePlayer documentation).
  • Fixed
    Fixes a bug that prevented setting of the defaultColorPickerStyles.
  • Fixed
    Fixes an issue where the cover view of movie annotations showed outdated content in some cases.
  • Fixed
    Fixes a potential stack overflow when a PDF that had recursive XObjects with font informations was parsed.
  • Fixed
    Fixes an UIKit bug where the statusbar sometimes was placed above the navigationBar on certain occasions.
  • Fixed
    Fixes issue where certain isOverlay=YES annotations became unmovable after a save until the page had been changed.
  • Fixed
    Fixes issue where a highlight annotation was re-added to the backing store after a color change.
  • Fixed
    Fixes an issue where encryptImage:fromDocument: wasn't actually using the encrypted data.
  • Fixed
    Fixes an issue in the text extractor with parsing certain special formatted CMaps wit bfranges. This should especially help for text extraction errors in languages like turkish or chinese.
  • Fixed
    Fixes a missing setter for PSPDFLineAnnotation.
  • Fixed
    Fixes a retain cycle with PSPDFAnnotationToolbar because the delegate was retained.
  • Fixed
    Fixes a issue with AES-128 encrypted documents that failed to open with a "failed to create default crypt filter." error.
  • Fixed
    Fixes the delegate in the PSCAnnotationTestController (thanks to Peter Li)
  • Changed
    Titanium: Fixes several issues and adding compatibility for Titanium 3, also added new searchForString(string, animated) and setAnnotationSaveMode(1) functions.

2.6.4 - 21 Dec 2012

  • Changed
    Note annotations now adapt itself to the zoomScale and are no longer scaled when zooming in.
  • Changed
    Note annotation dragging has been unified with all other annotation types (Notes are now selectable as well)
  • Changed
    Text/Note annotation popover is now less modal and allows one-touch clickthrough to other annotations and UI.
  • Added
    New annotationContainerView container in PSPDFPageView makes it easier to coordinate the zIndex of annotation views with your own custom views.
  • Added
    Add encryption/decryption block helper for PSPDFCache. (PSPDFKit Annotate feature)
  • Changed
    Moved MFMailComposeViewControllerDelegate to PSPDFViewController (from PSPDFEmailBarButtonItem)
  • Changed
    Annotations now have a new isResizable that controls if they can be resized or not.
  • Changed
    With + (void)setDefaultColorPickerStyles: in PSPDFColorSelectionViewController the default color pickers can be configured easily. (e.g. disable the new HSV Picker)
  • Changed
    Better support for annotation borders.
  • Changed
    Improves performance for text extraction engine with cyclic XObjects.
  • Changed
    No longer breaks between a word after a font ligature.
  • Changed
    Properly sets the cropBox for each page in PSPDFProcessor.
  • Added
    Adds a fallback for weird URI encodings on link annotations.
  • Changed
    No longer sets the title for the internal web browser if that is nil (show URL instead)
  • Fixed
    Fixes a bug on toolbar building with correctly adding the moreBarButtonItem when the first button is filtered.
  • Fixed
    Fixes an issue where the signature jumped to a different page when added to the right page in landscape mode.
  • Fixed
    Fixes an issue with the initialization of the continuous scroll mode (especially when using it within a childViewController)
  • Fixed
    Fixes an issue with text extraction on fonts that don't define any base encoding.
  • Fixed
    Fixes an issue where custom bookmark names were not correctly saved.
  • Fixed
    Fixes an issue with video rotation and iOS 5 - current page state is now preserved in all states.
  • Fixed
    Fixes a potential crash when annotations were written back that do not define any color information.
  • Changed
    Titanium: Fixes issue with the didTapOnAnnotation callback and event.

2.6.3 - 17 Dec 2012

  • Added
    New font picker for FreeText annotations.
  • Changed
    Allow changing the text color of the free text annotation.
  • Changed
    FreeText annotations will now persist the color state.
  • Changed
    Supports more formats for textColor and fontName in free text annotation.
  • Changed
    Selected annotations are now rendered in full resolution and no longer appear blurry when zoomed in.
  • Changed
    Don't block double tap for selected annotations that are not movable (like text highlights)
  • Changed
    After creating a note or a freetext annotation, the toolbar will be set to none. (to match iPad behavior)
  • Fixed
    Fixes color picker placement for annotations when zoomed all the way in.
  • Fixed
    Fixes various minor issues with annotation menu showing/placement.
  • Fixed
    Fixes a UI issue where the Open In... menu didn't disappear on tapping the button a second time.

2.6.2 - 16 Dec 2012

  • Added
    New HSV color picker.
  • Changed
    Color picker now selects the page where the color is selected, or the generic picker if none of the palette colors matches.
  • Changed
    Brightness control is now properly displayed within a custom popover on iPhone.
  • Changed
    Highlight selection control now selects using the natural text flow, not just the selected rect. (Preview: https://twitter.com/PSPDFKit/status/279636900590006272)
  • Changed
    Further improve document shadow for non-equal sized documents.
  • Changed
    Undo/Redo buttons now have icons instead of text. (Annotation drawing toolbar)
  • Changed
    Open In... now asks for flattening.
  • Changed
    Print now optionally allows annotation printing.
  • Changed
    Ensure documentProvider is always added when annotations are added.
  • Added
    Add support for annotation links like tel://4343434 and generally improves handling of external URLs.
  • Added
    Add support for PDF labels that have a offset and are plain numbered labels.
  • Fixed
    Fixed a rare condition where menus within UIMenuController could fail to execute their block target.
  • Fixed
    Fixes an issue where PSPDFNoteAnnotation sometimes used the wrong overrideClassNames dict for lookup.
  • Fixed
    Fixes a situation where pdfViewController:didDisplayDocument: wasn't called correctly.
  • Fixed
    Fixes issue where in pageCurl mode after selecting a new color on iPhone the drawing overlay vanished.
  • Fixed
    Fixes crash when trying to change highlight annotation type on long-tap.
  • Added
    Adds a workaround for an UIKit bug that only appears on iOS 5 with videos that are playing inline and have a incorrect frame after exit from fullscreen.

2.6.1 - 10 Dec 2012

  • Changed
    Video annotations can now have a specified offset. (e.g. offset=10) in seconds. Optional parameter.
  • Changed
    PSPDFResizableView can now optionally be set in a way that it only allows moving, not resizing.
  • Added
    New toolbar style option in PSPDFViewController: useBorderedToolbarStyle. Will add regular bordered toolbar buttons. Optional.
  • Changed
    tintColor can now be changed after the PSPDFViewController has been displayed.
  • Fixed
    Fixes an issue where video was autostarted even if autostart was set to NO.
  • Fixed
    Fixes an issue where the last toolbar item on the right toolbar could vanish if the style is bordered.
  • Fixed
    Fixes some issues regarding the textParser. More documents are now supported (especially with multiple nested XObject streams)
  • Fixed
    Fixes an issue where PSPDFStatusBarDisable could sometimes trigger statusbar showing/hiding.

2.6.0 - 9 Dec 2012

  • Added
    New feature: Add signature. It's enabled by default. If you don't need it, set the editableAnnotationTypes on PSPDFDocument.
  • Added
    New Opacity... menu item for Ink and Highlight annotations. This can be disabled via the menu delegates (PSPDFViewControllerDelegate)
  • Added
    New Create Annotations menu after a long-tap on a space without text or image. This is now enabled by default. See createAnnotationMenuEnabled on PSPDFViewController.
  • Changed
    Improved text block detection (this also improves smart zoom)
  • Added
    New convenience method defaultAnnotationUsername in PSPDFDocument. You should set this to the user name if you're using annotations.
  • Changed
    DualPage display will now center pages vertically if they don't have the same aspect ratio, and will draw a nicer shadow spanning exactly both page rects.
  • Changed
    PSPDFProgressHUD now has support to show a circular progress status. (Try the new Dropbox upload sample)
  • Changed
    Exposes applicationActivities and excludedActivities in PSPDFActivityBarButtonItem.
  • Added
    Adds support for Web/Email URLs in the PDF Outline.
  • Added
    Adds a workaround for an UIKit bug that could result in an partly unresponsive scrollView when zooming out programmatically all the way to zoomLevel 1.0 (e.g. after tapping an already zoomed in text block, only affected the default pageTransition, only on device)
  • Changed
    If only Highlighting is allowed (and not Underscore or Strikeout), the Type... menu option will be hidden (since there is no point one could change it to)
  • Changed
    PSPDFScrobbleBar now has left/rightBorderMargin properties. (e.g. to make space to a custom button at one end)
  • Changed
    Allows subclassing of PSPDFThumbnailGridViewCell via overrideClassNames.
  • Changed
    Uses the shared alpha property for fillColor, to be compliant to the PDF standard. (mostly affects shape annotations)
  • Changed
    Ensure annotation selection is cleared before a pageCurl transition starts.
  • Changed
    Simplifies toolbar code by removing the copiedToolbar subclasses. (This should not affect your code at all, simply found a better way to trigger UIKit to refresh the image property)
  • Fixed
    Fixes a rare crash for parsing certain MMType1 PDF fonts.
  • Fixed
    Fixes an issue where the annotation toolbar could be overlaid by the underlying toolbar buttons when the toolbar (not navigationBar) was updated afterwards.
  • Fixed
    Fixes an issue where the search highlighting was incorrectly applied on certain rotated documents.
  • Fixed
    Fixes a bug where under certain conditions the initial page set on the PSPDFViewController was ignored.
  • Fixed
    Fixes an issue where not rendered annotations where still selectable.
  • Fixed
    Fixes a situation where the PDF annotation user wasn't written unless contents was set.
  • Fixed
    Fixes an issue where the page offset for document providers sometimes was calculated incorrectly, this showing the wrong page labels.
  • Fixed
    Fixes a crash on iOS6 when viewMode was set to PSPDFViewModeThumbnails before the controller was actually displayed.
  • Fixed
    Fixes an issue where a late view frame change could result in an incorrectly rendered PDF view (black borders, could happen under certain conditions with Storyboarding)
  • Fixed
    Fixes a bug with using brightnessBarButtonItem on iPhone.
  • Fixed
    Fixes a situation where one could initiate a pageCurl during adding an annotation.
  • Changed
    Titanium: Fixes an issue where setLinkAnnotationBorderColor would not work on the first page. Also adds support for "clear" color.

2.5.4 - 26 Nov 2012

  • Changed
    Makes PSPDFLinkAnnotation writeable and adds a new targetString method to customize the preview URL that is displayed on a long press annotation.
  • Changed
    PDF link annotations are now editable. This is not added by default. Enable this by adding PSPDFAnnotationTypeStringLink to the editableAnnotationTypes of PSPDFDocument.
  • Changed
    PSPDFAnnotation now parses and write the name (NM) property. (Optional, used to uniquely identify PDF annotations)
  • Changed
    Exposes some new methods in PSPDFNoteViewController.
  • Changed
    Expose PSPDFPageView's showLinkPreviewActionSheetForAnnotation:fromRect:animated to allow customization of the link preview sheet (invoked on long press)
  • Changed
    Ensures that the minimum size of annotations is not smaller than the current size (to prevent weird resizing)
  • Fixed
    Fixes a potential wrong private API detection issue where "visibleBounds" was incorrectly flagged.
  • Fixed
    Fixes an issue where the search controller was sometimes misplaced when search was directly invoked from the selected text.
  • Fixed
    Fixes an issue where scrolling was disabled when setting a document delayed in scrollperpage mode after no document was set before.
  • Fixed
    Fixes an UI glitch where the page label background was blurry for certain conditions.
  • Fixed
    Fixes a rare issue where the background color of a link annotation could get stuck when using inter-document links.

2.5.3 - 24 Nov 2012

  • Changed
    Allows to render certain annotations as always overlay and still preserve movement features.
  • Fixed
    Fixes for text selection handling, especially for -90/270 degree rotated documents.
  • Fixed
    Fixes image selection rects for rotated documents.
  • Fixed
    Fixes a crash with searching certain arabic documents.
  • Fixed
    Fixes a one-pixel-bleedthrough in between the pages in dualPage / pageCurl mode.

2.5.2 - 22 Nov 2012

  • Added
    New convenience helper: setUpdateSettingsForRotationBlock in PSPDFViewController. (e.g. to switch between pageCurl and scrolling on rotation)
  • Changed
    Moves the logic that returns the default classes for supported annotations out of PSPDFFileAnnotationProvider into PSPDFAnnotationProvider - so if the annotationProvider is customized to use only custom annotation providers, annotations will still work.
  • Changed
    Handles corrupt PDF more gracefully, failing faster (esp. important if you're using a custom CGDataProvider)
  • Changed
    Search no longer searches between words (but between lines)
  • API
    Renamed fixedVerticalPositionForfitToWidthEnabledMode to fixedVerticalPositionForFitToWidthEnabledMode.
  • Changed
    Turned on a lot more warnings (like missing newlines.) PSPDFKit is now warning free even under pedantic settings.
  • Fixed
    Fixes a UX issue where sometimes a second tap was needed to show the bookmark view controller.
  • Fixed
    Fixes a crash when deleting bookmarks that has a custom name.
  • Fixed
    Fixes the delegate call pdfViewController:annotationView:forAnnotation:onPageView: (wasn't called before due to a typo in the selector check)
  • Fixed
    Fixes an issue with generating link annotations in code using the initWithType initializer.
  • Fixed
    Fixes an issue where overrideClass wasn't checked for PSPDFWebViewController in one case.
  • Fixed
    Fixes an issue that could result in a non-rendered PSPDFPageView if the scrollView contentOffset was set manually without animation.
  • Fixed
    Fixes an issue where the text block detection could take a very long time on some documents.
  • Fixed
    Fixes an issue where a log warning was displayed when a highlight annotation was loaded from disk.
  • Fixed
    Fixes an issue where a low memory warning while editing annotation could lead to a non-scrollable document and/or a not saved annotation.
  • Fixed
    Fixes an issue where the keyboard was no longer displayed automatically for new text annotations on iPhone.
  • Fixed
    Fixes an issue where note/text annotations could be mis-placed when a document has a non-nil origin and a non-nil rotation value.

2.5.1 - 19 Nov 2012

  • Changed
    Dismisses the search bar keyboard at the same time the popover fades out, not afterwards.
  • Changed
    Exposes some more methods on PSPDFAnnotationToolbar.
  • Fixed
    Fixes an issue with text selection being offset/invalid for certain documents (this change fixes A LOT of documents that previously had problems)
  • Fixed
    Fixes an issue with text encoding on some PDFs.

2.5.0 - 17 Nov 2012

  • Changed
    Images can now be selected and copied to the clipboard or saved to the camera roll. There's a new delegate to customize this.
  • Changed
    A long-press on an annotation will switch over to edit-mode. Either moving if allowed, or showing the menu and cancelling the gesture if not.
  • Changed
    Changes the default PDF Box back to kCGPDFCropBox. You can customize this with using the "PDFBox" property on PSPDFDocument.
  • Changed
    Annotations can now be moved and resized, and the selection view is much sexier now (matches popular iOS apps like Pages)
  • Changed
    Words are highlighted as they are being highlighted using the annotation toolbar.
  • Changed
    Update color picker to include more colors and for better use space on iPhone 5 and iPad.
  • Changed
    Default drawing color is now blue.
  • Changed
    Highlight annotation color menu will now no longer show the currently used color and has a new option "Custom..." that will show the default color picker.
  • Changed
    The options in PSPDFEmailBarButtonItem have been changed to a bit field, it's more flexible now. The flattenedAnnotations parameter is gone and is is now a subset of the bit field.
  • Changed
    Annotation toolbar has now properties exposed for easy drawing color/width change.
  • Added
    Add initial implementation for stamp annotations (text and images are supported, no complex AP streams)
  • Changed
    Support for "Named" PDF link annotations. (like NextPage/PrevPage/FirstPage/LastPage)
  • Added
    Add "Key" image for note annotations.
  • Added
    Add support for dashed borders on various annotation types.
  • Changed
    PSPDFPageLabelView how shows a custom label for double page mode that displays all visible pages, not only the first. (2-3 of 42) instead of (2 of 42).
  • Changed
    Refactoring of the search subsystem. Some methods have been renamed/deprecated. The interface is now much cleaner.
  • Changed
    Search now search pages in the natural order, no longer visible pages first. You can revert this behavior change with setting searchVisiblePagesFirst to YES in PSPDFSearchViewController.
  • Changed
    Search now also finds words that are split up via newline and/or a hyphenations character. This is enabled by default. See PSPDFTextSearch.compareOptions.
  • Changed
    PSPDFSearchResult now has a PSPDFTextBlock as selection type (because it might have words on multiple lines). PSPDFSearchHighlightView now supports highlighting of multiple words.
  • Changed
    Search now is more tolerant on single/double quotation marks.
  • Changed
    Improves annotation toolbar animation for iPhone/landscape.
  • Changed
    PSPDFHighlightAnnotation has a new helper "highlightedString" to get the string value of the highlighted area. Here, the document content is evaluated, since the annotation just contains CGRect values.
  • Changed
    The annotation toolbar now remembers all last used colors per annotation type IF they are changed while the annotation toolbar is visible. (e.g. create yellow highlights, change annotation color to red, make new highlights -> red. But if you change color at a point where the annotation toolbar is closed, the color will not be remembered.)
  • Changed
    PSPDFGlyph/PSPDFWord/PSPDFTextBlock frame now needs to be converted using the convertViewRectToGlyphRect/convertGlyphRectToViewRect to get the correct results.
  • Added
    New helper: PSPDFBezierPathGetPoints to convert UIBezierPaths into the representation needed in PSPDFInkAnnotation.
  • Added
    Adds some missing annotation change events.
  • Changed
    A visible annotation toolbar will be removed when the viewController disappears.
  • Changed
    Improved the performance of outline parsing and animation.
  • Added
    New HUD mode: PSPDFHUDViewAutomaticNoFirstLastPage - similar to PSPDFHUDViewAutomatic but doesn't show the HUD on the first/last page automatically.
  • Changed
    Delegate didRenderPage:inContext: is now only called for current rendering. (not manual calls or cache)
  • Changed
    PSPDFAnnotationToolbar now exposes cancelDrawingAnimated/doneDrawingAnimated to manually cancel/confirm a open drawing.
  • Changed
    PSPDFSearchBarButtonItem, PSPDFOutlineBarButtonItem, PSPDFViewModeBarButtonItem can now also be overridden using overrideClassNames.
  • Changed
    PSPDFOutlineParsers's isOutlineAvailable now parses the outline and always returns the correct value.
  • Changed
    If the keyboard was displayed on a PDF password prompt, that is now hidden again after the viewController is removed from the view.
  • Changed
    A single paged document is now displayed centered on pageCurl transition mode (instead of right-aligned)
  • Added
    Adds the iPod touch (4G) to the list of old devices, because that one has Retina but only 256MB RAM.
  • Changed
    Allows click-through selection of annotations that are on different pages. (before, you needed sometimes one extra-touch to hide the current selection)
  • Changed
    PSPDFGlyph, PSPDFWord, PSPDFTextLine and PSPDFTextBlock can now be properly compared using isEqual.
  • Changed
    The text selection is now hidden before the callout menu hides, not afterwards (to match default iOS behavior)
  • Changed
    On the Thickness... menu, the option that is currently active is hidden.
  • Changed
    The link selection touch-down gray is now less dark to better match Apple's default look.
  • Changed
    The tinted popover background is now retina optimized and no longer draws an arrow outside of the rounded corner area.
  • Fixed
    Fixes a potential stack overflow when parsing really large PDF outlines (>3000 items).
  • Fixed
    Fixes an UI issue where the annotation toolbar active mode overlay wasn't updated on an annotation frame change.
  • Fixed
    Fixes an UI bug where note annotations could show with an outdated view (e.g. no color change visible on page change)
  • Fixed
    Fixes a rare crash when searching certain documents.
  • Fixed
    Fixes a rare crash regarding ink annotation saving.
  • Fixed
    Fixes an issue where tapping on an empty HUD space would sometimes wrongly zoom out the view.
  • Fixed
    Fixes some minor issues with video cover.
  • Fixed
    Fixes some settings where didLoadPageView: was not called anymore.
  • Fixed
    Fixes a rare UIKit crash in UIPageViewController by adding a workaround.
  • Fixed
    Fixes a potential crash when hot-swapping the document from/to a 1-page document while using UIPageViewController in dual page mode.
  • Fixed
    Fixes an issue where the text selection menu sometimes wasn't correctly displayed on the right site of a zoomed in page in pageCurl mode.
  • Fixed
    Fixes a potential crash when a document was hot-swapped during a render operation.
  • Fixed
    Fixes a rare rendering issue with certain PDF documents that have weird rotation values.
  • Fixed
    Fixes an issue with the CMap parser where the second part of font ligatures was ignored. (See http://en.wikipedia.org/wiki/Typographic_ligature for details)
  • Fixed
    Fixes PSPDFProcessor's output of generatePDFFromDocument on rotated PDFs (documents had white border).
  • Fixed
    Fixes a issue where parsed text coordinates were offset on some non-standard PDFs that had both rotation and a non-null CropBox origin.
  • Changed
    Makes custom implementations of isEqual: commutative when called with an instance of the superclass as the argument. (#7893)

KNOWN ISSUE: Annotations can't yet be moved between pages. This feature is on our roadmap.

2.4.0 - 2 Nov 2012

PSPDFKit now requires iOS 5.0+ and Xcode 4.5+ (iOS SDK 6.0) to compile. (Support for iOS 4.3/Xcode 4.4 has been removed, support for iOS 6.1 and Xcode 4.6b1 has been added.)

2.4 is a big release and a great new milestone of PSPDFKit. If you upgrade, make sure to read through the full header diffs to make sure methods you were calling/overriding still exist and are not moved. Common methods like pageScrolling will always get a compatibility method for the time being. Methods/Properties are are deeper within the framework won't get a compatibility method, but it's usually pretty easy to figure out what the property was named before. I am planning on working on PSPDFKit for a long time, and as the API evolves, it's sometimes necessary to clean up and rename things so that the API stays clean and logical.

  • Changed
    Huge refactoring of PSPDFAnnotationParser. It's now much easier to add custom annotation providers (see PSPDFAnnotationProvider). If you have subclassed saving/loading or other parts of PSPDFAnnotationParser, you most likely need to change this over to the new PSPDFFileAnnotationProvider.
  • Changed
    Page scrolling is now even smoother. And finally removes the slight stuttering when pushing the PSPDFViewController - now animates like butter.
  • Changed
    PSPDFShapeAnnotation can now be saved into the PDF.
  • Changed
    Ink drawings can now customize the Thickness. Select an annotation and use the new "Thickness..." menu item.
  • Changed
    Ink drawings and shape annotations can now also contain comment text.
  • Changed
    Annotations now support the title/user "T" flag. Change the default user name by changing the property in PSPDFFileAnnotationProvider.
  • Added
    Add support for embedded and external RichMedia and Screen (Video) annotations of any size.
  • Changed
    PSPDFBarButtonItem now has longPress-support. Long-Press on the bookmarkBarButtonItem to see the new PSPDFBookmarkViewController. Bookmarks can now also be renamed/reordered.
  • Changed
    If there's no searchButton visible, the search invoked from the text selection menu now will originate from the selection rect.
  • Changed
    The Open In... action now also works on multi-file documents and/or data/cgdocumentprovider based documents (will merge the document on-the-fly, shows a progress window if it'll take some time)
  • Changed
    PSPDFBarButtonItem now also accepts a generic UIView as sender on presentAnimated:sender:. (makes it easier to manually call menu items from custom code)
  • Changed
    Better support when barButtonItems are added to custom UIToolbars.
  • Changed
    The internal used BarButtonItem subclasses are now exposed, so that they can be overridden and their icon changed.
  • Added
    New activityBarButtonItem to share pages to Facebook/Twitter on iOS6.
  • Changed
    Double-Tapping on a video now enables full-screen (instead of zooming the page. This does not apply to YouTube movies)
  • Changed
    Greatly improves handling of multiple video views on one page/screen.
  • Changed
    Annotation views now have a optional xIndex. Video has a high index by default, so link annotations won't overlap a video anymore.
  • Changed
    No longer allowing text selection above video annotations.
  • Changed
    PSPDFDocument now has a new property 'PDFBox' to customize the used PDF box (ClipRect/MediaRect/etc).
  • Changed
    PSPDFPositionView has been renamed to PSPDFPageLabelView. PSPDFPageLabelView and PSPDFDocumentLabelView are now easier skinable with the common superclass PSPDFLabelView.
  • Changed
    PSPDFLabelView has now a second predefined style (PSPDFLabelStyleBordered)
  • Changed
    PSPDFPageLabelView can now show a toolbar item. Check out the "Settings for a magazine" example how to enable this.
  • Changed
    PSPDFLinkAnnotationView and the other multimedia annotation views can now be subclassed via overrideClassNames.
  • Changed
    The Edit button for the text editor on note annotations can now be hidden. (showColorAndIconOptions)
  • Changed
    UI: Moved the Edit button of the PSPDFNoteAnnotationController to the left side. (only visible for PSPDFNoteAnnotation)
  • Changed
    Improves annotation parsing speed.
  • Changed
    Shape/Circle annotations now correctly display their fillColor.
  • Changed
    Improved color parsing for PSPDFFreeTextAnnotation (now honoring the default style string setting)
  • Changed
    The icons in the viewModeBarButtonItem now have the same shadow as the toolbar icons (iPhone for now).
  • Changed
    No longer displays annotation menus when they can't be saved (PSPDFKit Basic)
  • Changed
    Expose outlineIntentLeftOffset and outlineIndentMultiplicator as properties on PSPDFOutlineViewController and PSPDFOutlineCell.
  • Changed
    Exposes firstLineRect, lastLineRect and selectionRect on PSPDFTextSelectionView.
  • Changed
    The text loupe now fades our correctly when in drag-handle-mode.
  • Changed
    Improved caching of external resources like annotations/text glyphs on page init. Caching now won't overflow the dispatch queues anymore if A LOT of pages are loaded at the same time.
  • Changed
    PSPDFWord now has a lineBreaker property to detect line changes.
  • Changed
    PSPDFPageInfo now regenerates the pageRotationTransform when the pageRotation is changed manually.
  • Changed
    PSPDFKit now checks if a URL can be handled by the system and weird/nonrecognizable URLS no longer open the "Leave Application" alert.
  • Changed
    The PSPDFAnnotationBarButtonItem is now smart enough to choose the right animation depending if the toolbar is at the top/bottom (slide in/out from top/bottom)
  • Changed
    Setting the UIPopoverController no longer removes preexisting passthroughViews.
  • Changed
    The renderQueue now no longer renders the requested image if the delegate has been released in the mean time. (The delegate is now weak instead of strong)
  • Changed
    UI: Undo/Redo buttons on the drawing toolbar are better placed on iPhone.
  • Changed
    UI: The color selection button is now smaller on iPhone/Landscape.
  • API
    PSPDFPageInfo is not calculated in PSPDFDocumentProvider. If you've overridden methods that affect PSPDFPageInfo in PSPDFDocument, you should move that code to a PSPDFDocumentProvider subclass.
  • API
    "realPage" has been renamed to "page" and is now set-able. The old "page" has been renamed to "screenPage". This finally cleans up the confusion that has been around page and realPage. In 99% of all cases, you're just interested in page and can ignore screenPage. Please update your bindings accordingly. If you formerly did KVO on realPage, change this to page too. (There's a deprecated compatibility property for realPage, but not for the KVO event)
  • API
    additionalRightBarButtonItems has been renamed to additionalBarButtonItems.
  • API
    pageScrolling has been renamed to scrollDirection. A deprecated compatibility call has been added.
  • API
    handleTouchUpForAnnotationIgnoredByDelegate has been moved to PSPDFAnnotationController.
  • API
    pdfViewController has been renamed to pdfController on PSPDFTabbedViewController.
  • API
    Warning! If you've used pspdf_dispatch_sync_reentrant in your own code, you now absolutely must create your dispatch queues with pspdf_dispatch_queue_create. Apple has deprecated dispatch_get_current_queue(), so we're now using a different solution. This will most likely affect you if you're using the "Kiosk" sample code of PSPDFCatalog.
  • Changed
    Titanium: The pdfView now has a hidePopover(true) method so PSPDF popovers can better be coordinated with appcelerator code popovers.
  • Fixed
    Fixes the lag introduced in 2.3.x when tapping on the screen and the textParser hasn't been finished yet.
  • Fixed
    Fixes a potential crash when the view was removed on PSPDFKit Basic Titanium.
  • Fixed
    Fixes a potential crash when parsing the text of malformed PDFs.
  • Fixed
    Fixes a race condition during PSPDFFreeTextAnnotation drawing that could lead to a crash.
  • Fixed
    Fixes some issues with PSPDFPageScrollContinuousTransition when the document is invalid or view size is nil.
  • Fixed
    Fixes an issue where the background color of link annotations could get stuck.
  • Fixed
    Fixes an issue where PSPDFTabbedViewController did not properly align the tab bars in fullscreen mode.
  • Fixed
    Fixes an issue with creating PSPDFShapeAnnotation in code.
  • Fixed
    Fixes an issue where the isEditable flag on a PSPDFAnnotation was not honored when dragging note annotations.
  • Fixed
    Fixes an issue where the page could disappear on strong scrolling in pageCurl mode under iOS6.
  • Fixed
    Fixes an issue where scrolling on the tab bar (PSPDFTabbedViewController) sometimes didn't work.
  • Fixed
    Fixes an issue where the color picker was not properly displayed on bottom UIToolbars.
  • Fixed
    Fixes an UI issue where the selection and drawing of annotations on rotated pages was handled incorrectly.
  • Fixed
    Fixes an UI issue where the tabbed controller tabs could be mis-placed when rotating without visible HUD.
  • Fixed
    Fixes an UI issue where the thumbnails could slightly overlap the toolbar if the statusbar is transparent/auto-hiding.
  • Fixed
    Fixes several conditions where the PSPDFViewController could be deallocated on a background thread.
  • Fixed
    Fixes new warnings that popped up with Xcode 4.6. (pretty much all false positives)

2.3.4 - 18 Oct 2012

  • Fixed
    Fixes a rare race condition that could lead to a deadlock on initializing PSPDFDocumentProvider and PSPDFAnnotationParser.

2.3.3 - 18 Oct 2012

Note: This will be the last release that supports iOS 4.3*. The next version will be iOS 5+ only and will require Xcode 4.5+ (iOS SDK 6.0) If you're having any comments on this, I would love to hear from you: pspdfkit@petersteinberger.com The binary variant is already links with SDK 6.0 and will not link with 5.1 anymore. (It still works down to iOS 4.3 though)

(*) There is no device that supports iOS 4.3 and can't be upgraded to iOS5, and PSPDFKit already dropped iOS4.2 and with it armv6 in 2.0.

  • Changed
    PSPDFShapeAnnotation and PSPDFLineAnnotation can now be created programmatically.
  • Added
    New flag: kPSPDFLowMemoryMode that combines a lot of settings to ease memory pressure for complex apps.
  • Changed
    Annotations now have a new flag: controls:false to hide browser/movie controls. If videos have controls disabled, they can be controlled via gestures. (tap=pause, pinch=full screen)
  • Changed
    Text loupe now also moves if it's not anchored on a PSPDFPageView. (fixes stuck loupe issue)
  • Fixed
    Fixes a regression on view point restoration that could restore the view point at a different position.
  • Fixed
    Fixes an issue where the annotation toolbar could lock up rotation even after being dismissed.
  • Fixed
    Fixes an issue where bookmarks were checked for pages that were not visible.
  • Fixed
    Fixes the needless log statement "Password couldn't be converted to ASCII: (null)".
  • Fixed
    Fixes a text loupe regression where the loupe was not rotated on modal controllers.
  • Fixed
    Fixes a issue where in rare cases the document label (default displayed on iPhone only) was offset by a few pixels.

2.3.2 - 17 Oct 2012

  • Changed
    The text loupe is now displayed above all other contents (navigation bar, status bar, …)
  • Added
    New status bar style: PSPDFStatusBarSmartBlackHideOnIpad, which now is also the new default (changed from PSPDFStatusBarSmartBlack). Will hide the HUD AND the statusbar on tap now both on iPhone and on iPad.
  • Changed
    Improves Website->PDF conversion. Now supports Websites, Pages, Keynote, Excel, Word, RTF, TXT, JPG, etc... (see PSPDFProcessor. This is a PSPDFKit Annotate feature)
  • Changed
    PSPDFKit now uses the MediaBox everywhere. Previously the CropBox was used for rendering, which can display areas that are only intended for printing. See http://www.prepressure.com/pdf/basics/page_boxes.
  • Added
    New additionalActionsButtonItem allows to mark where the additional actions menu should be placed on the toolbar. (Default is left next to the last rightBarButtonItem)
  • Added
    New initializer in PSPDFDocument that makes handling with single-file multiple-page documents much easier. (PDFDocumentWithBaseURL:fileTemplate:startPage:endPage:)
  • Added
    Add support for GoToR link annotations.
  • Added
    Add method to search for a specific page label. See PSCGoToPageButtonItem in PSPDFCatalog for an example how to use it. (DevelopersGuide.pdf has labels)
  • Changed
    The page popover now shows the page label if one is set in the PDF (e.g. to replace numbers with roman numbering)
  • Changed
    Links to the external applications (e.g. AppStore, Mail) are now detected and a alert view is displayed asking to open the application or not.
  • Added
    Add workaround for a UIKit issue in iOS5.x that would sometimes dismiss the keyboard when removing characters from the search view controller. (Issues has been fixed in iOS6)
  • Fixed
    Fixes a UI issue in search results. If a search result was found more than one time in a string, the first occurrence was marked bold. Now the actual result is marked bold. (This was mostly noticeable when searching for very small words)
  • Fixed
    Fixes a issue where too fast drawing could result in some lines now being displayed.
  • Fixed
    Fixes isLastPage/isFirstPage methods for landscape mode.
  • Fixed
    Fixes a issue where sometimes overrideClassNames for annotation was ignored.
  • Fixed
    Fixes a issue where the cache could return a wrong image in some rare cases.

2.3.1 - 11 Oct 2012

  • Fixed
    Fixes a potential memory corruption with PSPDFAESCryptoDataProvider.

2.3.0 - 11 Oct 2012

  • Changed
    Experimental features: Add support to create PDF documents from html string or even a website.
  • Changed
    Annotations now can be flattened before the document is sent via email. PSPDFEmailBarButtonItem has new options, and there is a new class PSPDFProcessor to generate new PDFs.
  • Changed
    Outline elements that have no target page now no longer redirect to page 1 and will expand/collapse a section if there are child outline elements.
  • Added
    Add minimumZoomScale and setZoomScale:animated: to PSPDFViewController.
  • Changed
    Glyphs that are outside of the page rect are now not displayed in the extracted text per default. You can restore the old behavior with setting PSPDFDocument's textParserHideGlyphsOutsidePageRect to YES.
  • Changed
    Further tweaks for the iOS5 YouTube plugin version, ensure it's always correctly resized.
  • Changed
    viewLockEnabled now also disables zooming with double tapping.
  • Changed
    Don't show outline on search result if it's just one entry (most likely just the PDF name)
  • Changed
    The keyboard of the note annotation controller now moves out at the same time as the popover dismisses (before keyboard animated out AFTER the popover animation)
  • Changed
    Software dimming view now also covers the status bar.
  • Changed
    Adding/Removing bookmarks now correctly hides any open popovers.
  • Changed
    PSPDFCatalog: can now receive PDF documents from other apps.
  • Changed
    PSPDFCatalog: added basic full-text-search feature across multiple documents.
  • Removed
    Removed kPSPDFKitDebugMemory and kPSPDFDebugScrollViews.
  • API
    renamed PSPDFSearchDelegate -> PSPDFTextSearchDelegate and added the PSPDFTextSearch class as parameter.
  • API
    removes certain deprecated methods.
  • API
    renamed kPSPDFKitPDFAnimationDuration to kPSPDFAnimationDuration.
  • Fixed
    Fixes possible inconsistency between displayed and used drawing color.
  • Fixed
    Fixes a race conditions when using appendFile: in PSPDFDocument and cacheDocument:startAtPage:size:.
  • Fixed
    Fixes a rotation issue when the annotation toolbar is displayed.
  • Fixed
    Fixes a issue where the popover of a ink annotation wasn't correctly sized.
  • Fixed
    Fixes a issue where the outline button was displayed when the document was invalid (instead of being hidden as expected)

2.2.2 - 5 Oct 2012

  • Changed
    Properly restore the PSPDFLinkAnnotationView backgroundColor.

2.2.1 - 4 Oct 2012

  • Changed
    The original backgroundColor of a PSPDFLinkAnnotationView is now preserved.
  • Changed
    YouTube embedding now supported on iOS6.
  • Changed
    Video embeddings with a cover image now don't show the cover if play has already been pressed after a page change.
  • Changed
    Annotations now are cached much like UITableViewCells. (faster; preserve video state, etc)
  • Fixed
    Fixes a "sticky" scrolling issue that was introduced in 2.2.

2.2.0 - 4 Oct 2012

  • Added
    New scrolling mode: PSPDFPageScrollContinuousTransition (similar to UIWebView's default mode)
  • Changed
    Support text selection on rotated PDF documents.
  • Changed
    UIPopoverController is now styleable with a tintColor. This is enabled by default if tintColor is set. Use .shouldTintPopovers to disable this. As long as you use presentViewControllerModalOrPopover:embeddedInNavigationController:withCloseButton:animated:sender:options: your custom popovers will be styled the same way.
  • Added
    Adds support for adding annotations for double page mode on the right page. (Note: drawing still isn't perfect)
  • Added
    Add new property renderAnnotationTypes to PSPDFViewController to allow control about the types of annotations that should be rendered.
  • Added
    Add support for PDF Link Launch annotations (link to a different PDF within a PDF, see https://pspdfkit.com/guides/ios/current/annotations/link-annotations/)
  • Changed
    Annotation selection is now smarter and selects the annotation that's most likely chosen (e.g. a small note annotation now is clickable even if it's behind a big ink drawing annotation)
  • Changed
    It's now possible to properly select an annotation while in highlight mode.
  • Changed
    Allow changing the drawing color using the menu. (invokes the color picker)
  • Added
    Add a isEditable property to be able to lock certain annotations against future edits.
  • Added
    Add printing support for small CGDataProviderRef-based PSPDFDocuments.
  • Changed
    Improve OpenIn… feature, annotations are auto-saved before opening in another app and a log warning will be displayed for incompatible document compositions.
  • Changed
    The password in PSPDFDocument is now saved and will be relayed to any added file (e.g. when using appendFile)
  • Changed
    Improved performance for outline and annotation parsing (up to 400% faster, especially for large complex documents with huge outlines)
  • Changed
    Massively improved performance for search, especially for documents with many fonts.
  • Changed
    Text loupe is faster; less delays on the main thread when waiting for a textParser (more fine-grained locking)
  • Changed
    PSPDFViewController now saves any unsaved annotation data when app moves to background.
  • Added
    Add PSPDFBrightnessBarButtonItem and optional software-dimming to darken the screen all the way down to black.
  • Changed
    PSPDFDocuments objectsAtPDFRect:page:options: now can also search for annotations and text blocks.
  • Changed
    Smart Zoom is now even smarter and picks the most likely tapped text block if the detection shows multiple overlaying blocks.
  • Added
    Adds Italian translation.
  • Changed
    Restores PDF page label feature from version 1.
  • Changed
    removeCacheForDocument:deleteDocument:error: now also removes any document metadata files (bookmarks, annotations [if they were saved externally])
  • Changed
    The cancel button in PSPDFSearchViewController can now be localized.
  • Changed
    PSPDFKit now uses UICollectionView on iOS6, and PSTCollectionView on iOS4/5.
  • Changed
    When annotations are deserialized from disk, the proper annotation subclasses set in document.overrideClassNames will be used.
  • Changed
    Ensure annotation toolbar is closed when view controller pops.
  • Changed
    Thumbnails no longer are laid out behind the tab bar if PSPDFTabbedViewController is used. (they now correctly align beneath the bar)
  • Added
    Add workaround for a UIKit problem where a UIPopoverController could be resized to zero on iPad/landscape when it's just above the keyboard.
  • Changed
    Greatly reduced the black hair line that was visible in double page modes between the pages. Should now be invisible in most cases.
  • Changed
    The last used drawing color is now saved in the user defaults.
  • Changed
    The bookmark image is now saved proportionally to the thumbnail image.
  • Changed
    Ensures that for PSPDFTabbedViewController, tabs always have a title.
  • Changed
    The close button added when using the presentModal: api of PSPDFViewController now uses the Done-button style.
  • API
    bookmark save/load now exposes NSError object. Also new; clearAllBookmarks.
  • API
    willStartSearchOperation:forString:isFullSearch: in PSPDFSearchOperationDelegate is now optional.
  • API
    PSPDFDocument now implements PSPDFDocumentProviderDelegate and also is set as the default delegate.
  • API
    PSPDFDocumentDelegate now has methods for didSaveAnnotations and failedToSaveAnnotations.
  • API
    removeCacheForDocument:deleteDocument:waitUntilDone: is now removeCacheForDocument:deleteDocument:error: -
  • Fixed
    Fixes a rotation issue when the annotation toolbar is displayed use dispatch_async to make the call async..
  • API
    tabbedPDFController:willChangeVisibleDocument: has been renamed to tabbedPDFController:shouldChangeVisibleDocument:
  • Fixed
    Fixes a bug where annotations were not saved correctly on multi-file documents when saving into external file was used. You need to delete the annotations.pspdfkit file in /Library/PrivateDocuments/UID to update to the new saving version (PSPDFKit still first tries to read that file to be backwards compatible)
  • Fixed
    Fixes freezing if there are A LOT of search results. They are not limited to 600 by default. This can be changed in PSPDFSearchViewController, see maximumNumberOfSearchResultsDisplayed.
  • Fixed
    Fixes a issue where similar PDF documents could create a equal UID when initialized via NSData.
  • Fixed
    Fixes "jumping" of the annotation toolbar when the default toolbar style was used.
  • Fixed
    Fixes calling the shouldChangeDocuments delegate in PSPDFTabbedViewController.
  • Fixed
    Fixes issue with rotation handling under iOS6.
  • Fixed
    Fixes a bug that prevented selecting annotations for documents with multiple files on all but the first file
  • Fixed
    Fixes a bug where the text editor sometimes could have a transparent background.
  • Fixed
    Fixes a toolbar bug when using UIStoryboard and modal transitions to PSPDFViewController.
  • Fixed
    Fixes a rare placement bug with the document title label overlay on iPhone.
  • Fixed
    Fixes a regression of 2.1 where search on iPhone sometimes didn't jump to the correct page.
  • Fixed
    Fixes issue with certain unselectable words.
  • Fixed
    Fixes always-spinning activity indicator when internal WebBrowser was closed while page was still loading. ActivityIndicator management now also can be customized and/or disabled.
  • Fixed
    Fixes a page displacement issue with pageCurl and the app starting up in landscape, directly showing a PSPDFViewController. (workaround for a UIKit issue; has been fixed in iOS6)
  • Fixed
    Fixes invalid page coordinates sent to didTapOnPageView:atPoint: delegate on right page in landscape mode.
  • Fixed
    Fixes a race condition where annotations could be missing on display after repeated saving until the document has been reloaded.
  • Fixed
    Fixes issue with word detection where sometimes words were split apart after the first letter on the beginning of a line.
  • Fixed
    Fixes viewState generation. (Was always using page instead of realPage which lead to errors when using landscape mode)
  • Fixed
    Fixes missing background drawing for shape annotations.
  • Fixed
    Fixes a issue where certain link-annotations did not work when using the long-press and then tap on the sheet-button way.
  • Fixed
    Fixes a rare bug where pages could been missing when reloading the view of the PSPDFPerPageScrollTransition in a certain way.
  • Fixed
    Fixes issue where viewLockEnabled was ignored after calling reloadData.

Known Issues: * Dragging note annotations from one page to another doesn't yet work. * Drawing across multiple pages doesn't yet work.

2.1.0 - 17 Sep 2012

  • Changed
    New: PSPDFAESCryptoDataProvider. Allows fast, secure on-the-fly decryption of AES256-secured PDF documents. (PSPDFKit Annotate feature) Unlike NSData-based solutions, the PDF never is fully decrypted, and this even works with very large (> 100MB) documents. Uses 50.000 PBKDF iterations and a custom IV vector for maximum security. Includes the AESCryptor helper Mac app to properly encrypt your PDF documents.
  • Changed
    Allow to customize caching strategy per document with the new cacheStrategy property. This is automatically set to PSPDFCacheNothing when using PSPDFAESCryptoDataProvider.
  • Changed
    Annotations now have a blue selection view when they are selected.
  • Added
    Add Black and Red to general annotation color options.
  • Changed
    Font name/size for FreeText annotations is now parsed.
  • Added
    Added write support for FreeText annotations.
  • Changed
    Allow to show/edit the associated text of highlight annotations.
  • Changed
    Improves extensibility of the annotation system with adding a isOverlay method to PSPDFAnnotation. (Instead of hard-coding this to Link and Note annotations)
  • Changed
    Moves the clipsToBounds call in PSPDFPageView so that delegate can change this (of UIView ).
  • Added
    Adds static helper [PSPDFTextSelectionView isTextSelectionFeatureAvailable] to make runtime checks between PSPDFKit and PSPDFKit Annotate.
  • Added
    Adds new isWriteable static method to PSPDFAnnotation subclasses to determine what classes can be written back to PDF.
  • Added
    Add kPSPDFAllowAntiAliasing as optional render option.
  • Changed
    PSPDFOpenInBarButtonItem no longer performs a check for compatible apps. Checking this is pretty slow. An info alert will be displayed to the user if no compatible apps are installed (which is highly unlikely for PDF). You can restore the original behavior with setting kPSPDFCheckIfCompatibleAppsAreInstalled to YES.
  • Changed
    The viewState is now preserved when another controller is displayed/dismissed modally. This mostly happened with showing/hiding the inline browser or the note text controller on an iPhone. After that the zoom rate was reset; this is now properly preserved.
  • Changed
    The annotation toolbar now flashes if the user tries to hide the HUD while the bar is still active (and blocking that)
  • Changed
    Various performance optimizations; especially scrolling and initial controller creation.
  • Removed
    Removes sporadic vertical transition of the navigationController's navigationBar when HUD faded out.
  • Fixed
    Fixes "Persistent Text Loupe" when moving over a link annotation while selecting.
  • Fixed
    Fixes a memory leak when CGDataProviderRef is used to initialize a PSPDFDocument.
  • Fixed
    Fixes a issue where the UI could sometimes freeze for a while waiting for background tasks in low-memory situations.
  • Fixed
    Fixes a issue where the popover page display wasn't hidden after a rotation.
  • Fixed
    Fixes a issue where sometimes the page was not correctly restored after rotation (was +1).
  • Fixed
    Fixes a issue where, if email wasn't configured on the device, the internal web browser would be launched with a mailto: link. Now a alert is displayed.
  • Fixed
    Fixes a issue where a page could, under certain rare conditions, escape the page tracking and be "sticky" behind the new managed page views.
  • Changed
    Titanium: Add saveAnnotation method to manually save annotations (needed for createView, automatically called in showPDFAnimated).
  • Changed
    Titanium: Limit usage of useParentNavigationBar to iOS5 and above.
  • Changed
    Titanium: fixes a rare condition where using document.password to unlock sometimes resulted in an incorrect value for isLocked.

2.0.3 - 14 Sep 2012

  • Added
    Add a new "renderOptions" property to PSPDFDocument to fine-tune documents (e.g. fixes gray border lines in mostly-black documents)
  • Changed
    Reduces file size of PSPDFKit.bundle by about 50%; improves speed of certain helper plists parsing.
  • Fixed
    Fixes potential category clashing
  • Fixed
    Fixes a bug that sneaked in because PSPDFKit is now compiled with Xcode 4.5. This release now also works with 4.4 for binary.

2.0.2 - 13 Sep 2012

  • Changed
    Support for iPhone 5, Xcode 4.5, armv7s and the new screen resolution.
  • Changed
    Supports a new cover property to have a custom cover screen for videos (big play button; custom preview-images)
  • Changed
    Don't show browse popover/actionsheet for multimedia extensions during a long press.
  • Changed
    Don't allow long-press over a UIControl. (e.g. a UIButton)
  • Fixed
    Fixes a issue where sometimes multimedia annotations would be added multiple times to the document.
  • Fixed
    Fixes a issue where sometimes you get blank space instead of a page when PSPDFPageRenderingModeFullPageBlocking and PSPDFPageScrollPerPageTransition was combined and the scrobble bar used heavily. This is a workaround for a UIKit bug.
  • Removed
    Removes libJPGTurbo; Apple's own implementation has gotten faster (especially in iOS6)

2.0.1 - 12 Sep 2012

  • Changed
    Faster search (document pattern detection if delayed until needed, outline results get cached)
  • Changed
    Improved reaction time for complex PDF documents (e.g. annotations are only evaluated if they're already loaded; but won't lock the main thread due to lazy parsing)
  • Added
    Add additional checks so that even incorrectly converted NSURL-paths (where description instead of path has been called) work.
  • Fixed
    Fixes a issue where annotations were not saved with multiple-file documents on all but the first file.
  • Fixed
    Fixes problems where link annotations lost their page/link target after saving annotations into a file.
  • Fixed
    Fixes a problem where fittingWidth was always overridden when run on the iPhone.
  • Fixed
    Fixes a race condition in the new render stack that could lead to an assert in debug mode (non-critical)
  • Fixed
    Fixes the toolbar overlapping text issue in the PSPDFCatalog Kiosk Example; added comments how to work around that UIKit bug.
  • Changed
    Made the pageRotation property of PSPDFPageInfo writeable; useful for manually rotation PDF documents.
  • Fixed
    Fixes some issues with the Titanium module; adds support for NavigationGroups.
  • Changed
    Improved memory usage, especially on iPad1.

2.0.0 - 8 Sep 2012

PSPDFKit 2 is a major updates with lots of changes and a streamlined API. There are some API deprecations and some breaking changes; but those are fairly straightforward and well documented.

You need at least Xcode 4.4.1 to compile. (Xcode 4.4/4.5 both run fine on Lion, Mountain Lion is not needed but recommended) PSPDFKit 2 is compatible with iOS 4.3 upwards. (armv7, i386 - thus dropping iOS 4.2/armv6 from version 1)

The installation has been simplified. You now just drop the "PSPDFKit.embeddedframework" container into your project. Next, enable the PSPDFKit.xcconfig project configuration. Here's a screenshot: http://cl.ly/image/1e1I2Z2e1D3F (Select your project (top left), select project again in the PROJECT/TARGETS tree, select Info, then change in "Based on Configuration file" from None to PSPDFKit.)

If you have the sources and embed PSPDFKit as a subproject, don't forget to also add PSPDFKit.bundle.

MAJOR NEW FEATURES: * Text selection! (PSPDFKit Annotate) (Includes Copy, Dictionary, Wikipedia support) * Annotations! (PSPDFKit Annotate) Highlight, Underscore, Strikeout, Note, Draw etc. Annotations also will be written back into the PDF. There is a new annotationBarButtonItem that shows the new annotation toolbar. * Smart Zoom (Text blocks are detected and zoomed onto on a double-tap; much like Safari) The PDF is now also dynamically re-rendered at every zoom level for maximal sharpness and quality. * Customizable render modes (enable/disable use of upscaled thumbnails). PSPDFPageRenderingModeFullPageBlocking is great for magazines. * Greatly improved Search. Faster, parses more font styles, compatible with international characters (chinese, turkish, arabic, ...) * Site Bookmarks (see bookmarksBarButtonItem and PSPDFBookmarkParser) * Support for VoiceOver accessibility (yes, even within the PDF!)

Further, PSPDFKit has been improved in virtually every area and a lot of details have been tweaked.

  • Changed
    Inline password view. (Before, just a empty screen was shown when document wasn't unlocked.)
  • Changed
    Adobe DRM detection (They are just marked as not viewable, instead of showing garbage)
  • Changed
    PDF rendering indicator. (see pdfController.renderAnimationEnabled)
  • Changed
    Even better view reuse. PSPDFPageView is now reused, scrolling is even smoother.
  • Changed
    PSPDFDocument can now be initialized with a CGDataProviderRef or a dataArray.
  • Changed
    The search/outline controllers now dynamically update their size based on the content height.
  • Changed
    The Table of Contents/Outline controller now shows titles in multiple lines if too long (this is customizable)
  • Changed
    Support for Table Of Contents (Outline) linking to external PDF documents.
  • Changed
    Page Content/Background Color/Inversion can now be changed to modify rendering.
  • Changed
    On the iPhone, a new documentLabel shows the title. (the navigationBar is too small for this)
  • Changed
    PSPDFScrobbleBar now uses the small height style on iPhone/Landscape.
  • Changed
    PSPDFViewController can now programmatically invoke a search via searchForString:animated:.
  • Changed
    PSPDFViewController now has a margin and a padding property to add custom margin/padding on the pdf view.
  • Changed
    PSPDFViewController now has a HUDViewMode property to fine-tune the HUD.
  • Changed
    PSPDFTabbedViewController now has a minTabWidth property (defaults to 100)
  • Changed
    It's now possible to pre-supply even fully-rendered page images. PSPDFDocument's thumbnailPathForPage has been replaced with cachedImageURLForPage:andSize:.
  • Changed
    PSPDFDocument now has a overrideClassNames dictionary, much like PSPDFViewController.
  • Changed
    PSPDFDocument now has objectsAtPDFPoint/objectsAtPDFRect to return found glyphs and words.
  • Changed
    PSPDFDocument now has convenience methods to render PDF content. (renderImageForPage:withSize:.../renderPage:inContext:...)
  • Changed
    PSPDFDocument now exposes some more common metadata keys for the PDF metadata.
  • Changed
    PSPDFDocument now has convenience methods to add and get annotations (addAnnotations:forPage:)
  • Changed
    PSPDFDocument now has a property called annotationSaveMode to switch between PDF annotation embedding or an external file.
  • Changed
    Support for documents with multiple sources(files/dataArray/documentProvider) is now greatly improved due to the new PSPDFDocument/PSPDFDocumentProvider structure.
  • Changed
    PSPDFPageView now has convenience methods to calculate between PDF and screen coordinate space (convertViewPointToPDFPoint/convertPDFPointToViewPoint/etc)
  • Changed
    PSPDFPageView no longer uses CATiledLayer; this has been replaced by a much faster and better custom solution.
  • Changed
    PSPDFScrollView no longer accepts a tripple-tap for zooming out; this was a rarely-used feature in iOS and it increased the reaction time for the much more used double tap. Zooming in/out is now smarter (smart zoom) and does the right thing depending on the zoom position.
  • Changed
    PSPDFWebViewController now supports printing.
  • Changed
    A long-press on a PDF link annotation now shows the URL/Document/Page target in a popover.
  • Changed
    When switching between DEMO/FULL; the change is automatically detected and the cache cleared. (No more watermark problems)
  • Changed
    The image annotation view now properly displays and animates animated GIFs.
  • Changed
    GMGridView has been replaced by the new and better PSCollectionView, which is a API compatible copy of UICollectionView.
  • Changed
    Internal modernization; literals, subscripting, NS_ENUM, NS_OPTIONS.
  • Changed
    Better internal error handling; more functions have error parameters.

Fixes/API changes:

  • Changed
    The navigationBar title is no longer set on every page change.
  • Changed
    PSPDFDocument's PDFDocumentWithUrl has been renamed to PDFDocumentWithURL.
  • Changed
    Delegates are now called correctly (only once instead of multiple times) in pageCurl mode.
  • Changed
    pdfViewController:willShowController:embeddedInController:animated: has been changed to (BOOL)pdfViewController:*SHOULD*ShowController:embeddedInController:animated:
  • Changed
    tabbedPDFController:willChangeDocuments has been renamed to tabbedPDFController:shouldChangeDocuments.
  • Added
    New delegate: - (void)pdfViewController:(PSPDFViewController *)pdfController didEndPageDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset -> completes dragging delegates; zooming delegates were already available in PSPDFKit 1.
  • Changed
    Changed willShowController... delegate to shouldShowController... that returns a BOOL.
  • Fixed
    Fixes a problem in the annotation parser where some named page links failed to resolve properly.
  • Fixed
    Fixes a problem where the Cancel button of the additionalBarButtonItem menu wasn't fully touch-able on iPhone.
  • Fixed
    Fixes a problem with PSPDFBarButtonItem image updating.
  • Changed
    Lots of other minor and major changes.

1.10.5 - 1 Aug 2012

  • Added
    Add a workaround for unusable back button in a certain unreleased version of iOS. (This is most likely a temporal iOS bug)
  • Changed
    Improve PSPDFCloseBarButtonItem to be context-aware if we should close a modal view or pop from the navigation stack.
  • Fixed
    Fixes a issue where zooming was difficult on pages with lots of PDF link annotations.
  • Fixed
    Fixes two harmless warnings with Xcode 4.4.
  • Fixed
    Fixes the delete all tabs action sheet in the TabbedExample on iPhone.
  • Fixed
    Fixes a certain issue with embedding PSPDFViewController.
  • Fixed
    Fixes a rare memory leak when image decompression fails.

1.10.4 - 12 Jul 2012

  • Added
    New delegates: shouldScrollToPage, resolveCustomAnnotationPathToken.
  • Changed
    If annotation is set to a file and this file doesn't exist, annotation type will be set to undefined.
  • Changed
    Improve tap change speed and touch area of PSPDFTabbedViewController.
  • Changed
    Another possible bugfix for UIPageViewController rotation changes.
  • Changed
    Don't change navigationController if embedded into a parentViewController on default. (See useParentNavigationBar).
  • Changed
    Allow to subclass PSPDFPageView via the overrideClassNames property in PSPDFViewController.
  • Changed
    Allow parsing of PDF outlines with party invalid information.
  • Removed
    Removed preloadedPagesPerSide. Changing this turned out to not bring any noticeable performance benefits.
  • Fixed
    Fixes a case where some link annotations were not correctly parsed.

1.10.3 - 22 Jun 2012

  • Added
    New property in PSPDFCache: downscaleInterpolationQuality (to control the thumbnail quality)
  • Added
    Add some improvements to caching algorithm, adds cacheThumbnailsForDocument to preload a document.
  • Changed
    Ensures that email attachments will end with ".pdf".
  • Changed
    Clear annotation cache in low memory situations. Helps for documents with lots of embedded videos.
  • Fixed
    Fixes a UI issue where the transition between content and thumbnails was sometimes incorrect on zoomed-in content.
  • Fixed
    Fixes a bug where the the pageIndex on thumbnails are off-by-one.
  • Fixed
    Fixes a bug where annotationEnabled wasn't correctly restored when using NSCoding on PSPDFDocument.
  • Fixed
    Fixed a problem where delegates where called too often for the initial reloadData event.
  • Fixed
    Fixes a potential crash on low-memory situations.
  • Fixed
    Fixes a potential crash with pageCurl mode and device rotations.
  • Fixed
    Fixes a crash when using a NSData-provided PSPDFDocument with no metadata title and using the sendViaEmail feature.
  • Fixed
    Fixes a issue with MPMoviePlayer disappearing during fullscreen-animation.

1.10.2 - 5 Jun 2012

  • Added
    New controller delegates: willShowViewController:animated: and didShowViewController:animated:.
  • Added
    New HUD visibility delegates: shouldShowHUD/shouldHideHUD/willShowHUD:/didShowHUD:/willHideHUD:/didHideHUD:
  • Changed
    PageLabel on thumbnails is now width-limited to the maximal image size.
  • Changed
    The default linkAction is now PSPDFLinkActionInlineBrowser (changed from PSPDFLinkActionAlertView).
  • Changed
    The openIn action is now displayed in the iOS Simulator, but a UIAlertView shows that this feature only works on a real device.
  • Changed
    PSPDFOutlineElement now implements NSCopying and NSCoding.
  • Changed
    Page labels now work with documents containing multiple files.
  • Removed
    Removed the searchClassName property in PSPDFSearchViewController. Use the overrideClassNames in PSPDFViewController to change this.
  • Changed
    Renamed showCancel to showsCancelButton in PSPDFSearchViewController.
  • Changed
    searchBar in PSPDFSearchViewController is now created in init, not viewDidLoad (so you can easily customize it)
  • Added
    Added new API items for PSPDFTabbedViewController and changed the API to initialize the controller. (You can also just use init)
  • Changed
    On PSPDFDocument.title, the ".pdf" ending is now automatically removed.
  • Added
    New property in PSPDFViewController: loadThumbnailsOnMainThread. (Moved from PSPDFPageView, new default is YES)
  • Fixed
    Fixes a short black gap when loading the document under certain conditions w/o pageCurl-mode.
  • Fixed
    Fixes a bug where the new pdf path resolving function sometimes returned invalid strings.
  • Fixed
    Fixes a bug where changing left/rightBarButtonItems needed an additional call to updateToolbar to work. This is now implicit.
  • Fixed
    Fixes a bug where nilling out left/rightBarButtonItems after the controller has been displayed didm't correctly update the navigationBar.
  • Fixed
    Fixes a bug where the position of the initial page view could be smaller than the view in landscape mode.
  • Fixed
    Fixes a bug where the the titleView wasn't used to calculate the toolbarWidths.
  • Fixed
    Fixes a bug where the TabbedViewController's selected tab wasn't correctly updated when setting visibleDocument.
    • Fixed
      Fixes a bug where the TabbedViewController-preference enableAutomaticStatePersistance wasn't always honored.

1.10.1 - 29 May 2012

  • Changed
    Improvement: Better handle toolbar buttons when a too long title is set. (now exposing minLeftToolbarWidth, minRightToolbarWidth)
  • Changed
    Improvement: sometimes the NavigationBar was restored even if it wasn't needed.
  • Changed
    Improvement: Don't reload frame if we're in the middle of view disappearing.
  • Changed
    Improvement: Use default white statusBar with inline browser on iPhone.
  • Changed
    Improves the document<->thumbnail transition with certain non-uniformed sized documents and pageCurl mode.
  • Fixed
    Fixes a case where the PSPDFPositionView wasn't correctly laid out.
  • Fixed
    Fixes a problem where the close button was disabled when no document was set.
  • Fixed
    Fixes a regression regarding pageCurl mode and activated isFittingWidth.
  • Fixed
    Fixes a regression regarding the viewModeButtonItem not being displayed correctly on appcelerator.
  • Fixed
    Fixes a problem where under certain conditions a landscape->portrait rotation in pageCurl mode on the last page performed a scroll to the first page.
  • Fixed
    Fixes a leak in PSPDFActionSheet.

1.10.0 - 25 May 2012

This will probably be the last major release in the 1.x branch. Work on 2.x is already underway, with a focus on text selection and annotations.

This release has some API-breaking changes:

  • Added
    New toolbar handling (breaking API change) The properties searchEnabled, outlineEnabled, printEnabled, openInEnabled, viewModeControlVisible have been replaced by a much more flexible system based on the PSPDFBarButtonItem class.

For example, to add those features under the "action" icon as a menu, use this: self.additionalRightBarButtonItems = [NSArray arrayWithObjects:self.printButtonItem, self.openInButtonItem, self.emailButtonItem, nil]; If you're looking to e.g. remove the search feature, set a new rightBarButtonItems array that excludes the searchButtonItem.

Likewise, the functions additionalLeftToolbarButtons, magazineButton and toolbarBackButton have been unified to self.leftBarButtonItems. If you want to replace the default closeButton with your own, just create your own UIBarButtonItem and set it to self.leftBarButtonItems = [NSArray arrayWithObject:customCloseBarButtonItem];

  • Changed

    Resolving pdf link paths has changed. (breaking API change) Previously, if no marker like "Documents" or "Bundle" was found, we resolved to the bundle. This version changes resolving the link to the actual position of the pdf file. If you need the old behavior, you can set PSPDFResolvePathNamesEnableLegacyBehavior to YES or use a custom subclass of the PSPDFAnnotationParser.

  • Changed

    New class PSPDFTabbedViewController, to show multiple PSPDFDocuments with a top tab bar. iOS5 only. (includes new TabbedExample)

  • Changed

    New feature: PDF page labels are parsed. (e.g. roman letters or custom names; displayed in the PSPDFPositionView and the thumbnail label)

  • Changed

    New feature: send via Email: allows sending the pdf as an attachment. (see emailButtonItem in PSPDFViewController)

  • Changed

    New feature: PSPDFViewState allows persisting/restoring of a certain document position (including page, position, zoom level). See documentViewState and restoreDocumentViewState:animated: in PSPDFViewController.

  • Changed

    Add support for puny code characters in pdf URLs (like http://➡.ws/鞰齒). This uses the IDNSDK.

  • Changed

    New property: useParentNavigationBar, if you embed the PSPDFViewController using iOS5 containment and still want to populate the navigationBar.

  • Changed

    New property: pageCurlDirectionLeftToRight to allow a backwards pagination. (for LTR oriented documents)

  • Changed

    New delegate: delegateDidEndZooming:atScale to detect user/animated zooming.

  • Changed

    UI Improvement: Show URL in embedded browser title bar, until page is loaded with the real title.

  • Changed

    General: Add french localization in PSPDFKit.bundle.

  • Changed

    Core: PSPDFDocument now implements NSCopying and NSCoding protocols.

  • Changed

    Fixes a problem where links with hash bangs (like https://twitter.com/#!/) where incorrectly escaped.

  • Changed

    Fixes opening certain password protected files.

  • Changed

    Fixes unlockWithPassword always returning YES, even with an incorrect password.

  • Changed

    Fixes a crash regarding pageCurl and UpsideDown orientation on the iPhone.

  • Changed

    Fixes a problem where the search delegates where called after canceling the operation.

  • Changed

    Fixes a problem where the page wasn't re-rendered if it was changed while zoom was active.

  • Changed

    Fixes a problem where the tile wasn't updated after setting document to nil.

  • Changed

    Fixes a problem where under rare conditions a spinlock wasn't released in PSPDFGlobalLock.

  • Changed

    Adds support for Xcode 4.4 DP4. Due to an already acknowledged Apple linker bug. Xcode 4.4 DP5 is currently broken. (Xcode 4.3.2 is still recommended)

  • Changed

    Titanium: New min SDK is 2.0.1.GA2.

1.9.15 - 20 Apr 2012

  • Added
    New delegate: pdfViewController:didEndPageScrollingAnimation: to detect if a scroll animation has been finished. This will only be called if scrollToPage:animated: is used with animated:YES. (not for manual user scrolling)
  • Changed
    Additional safeguards have been put in place so that videos don't start playing in the background while scrolling quickly.

1.9.14 - 20 Apr 2012

  • Added
    Adds support for Xcode 4.4 DP3.
  • Changed
    Show document back button even if PSPDFViewController is embedded in a childViewController.
  • Changed
    Doesn't try to restore the navigation bar if we're the only view on the navigation stack.
  • Changed
    Allow PSPDFSearchHighlightView to be compatible with overrideClassNames-subclassing.
  • Changed
    Works around some broken annotations that don't have "http" as protocol listed (just www.google.com)
  • Changed
    PSPDFPageView now has convertViewPointToPDFPoint / convertPDFPointToViewPoint for easier annotation calculation.
  • Changed
    There are also some new PSPDFConvert* methods in PSPDFKitGlobal that replace the PSPDFTiledView+ categories. (API change)
  • Changed
    YouTube embeds finally support the autostart option. (Note: This might be flaky on very slow connections)
  • Fixed
    Fixes a big where some documents would "shiver" due to a 1-pixel rounding bug.
  • Fixed
    Fixes a regression with KVO-observing viewMode.
  • Fixed
    Fixes a UI glitch with animated pageScrolling on pageCurl if invoked very early in the view build hierarchy.
  • Fixed
    Fixes a problem where video was playing while in thumbnail mode.

1.9.13 - 7 Apr 2012

  • Changed
    Zooming out (triple tap) doesn't scroll down the document anymore, only moves the zoom level to 1.0.
  • Changed
    Better handling of light/dark tintColors.
  • Changed
    ScrobbleBar is now colored like the navigationBar. (check for HUD changes/regressions in your app!)
  • Changed
    The status bar now moves to the default color on the iPhone for ToC/Search views.
  • Fixed
    Fixes an alignment problem with the thumbnail animation.
  • Changed
    Disable user interaction for very small links, that are not shown anyway.
  • Changed
    YouTube videos now rotate and resize correctly.

1.9.12 - 2 Apr 2012

  • Changed
    Thumbnails now smoothy animate to fullscreen and back. (new setViewMode animation instead of the classic fade)
  • Changed
    Fullscreen video is now properly supported with pageCurl. (with the exception of YouTube)
  • Changed
    Annotation views are now reused -> better performance.
  • Changed
    The outline controller now remembers the last position and doesn't scroll back to top on re-opening.
  • Changed
    Hide HUD when switching to fullscreen-mode with videos.
  • Changed
    Don't allow touching multiple links at the same time.
  • Changed
    Transition between view modes are now less expensive and don't need view reloading. Also, zoom value is kept.
  • Changed
    The pageInfo view now animates. (Page x of y)
  • Changed
    The grid now properly honors minEdgeInsets on scrolling.
  • Changed
    Thumbnail page info is now a nice rounded label.
  • Fixed
    Fixes partly missing search highlighting on the iPhone.
  • Fixed
    Fixes a few calculation errors regarding didTapOnPageView & the PSPDFPageCoordinates variable.
  • Fixed
    Fixes a problem where caching sometimes was suspended and got stuck on old devices.
  • Changed
    Free more memory if PSPDFViewController is not visible.

1.9.11 - 28 Mar 2012

  • Added
    Add more control for pageCurl, allows disabling the page clipping. (better for variable sized documents)
  • Added
    New method on PSPDFDocument: aspectRatioVariance. Allows easy checks if the document is uniformly sized or not (might be a mixture of portrait/landscape pages) There is example code in PSPDFExampleViewController.m that shows how this can be combined for dynamic view adaption.
  • Changed
    Support for Storyboarding! You can create a segway to a PSPDFViewController and even pre-set the document within Interface Builder. There now is a new example called "StoryboardExample" that shows how this can be used. (iOS5 only)
  • Changed
    Note: if you use IB to create the document, you just use a String. Supported path expansions are Documents, Cache, Bundle. Leave blank for Bundle.
  • Changed
    Changes to navigationBar property restoration - now animates and also restores alpha/hidden/tintColor. Let me know if this breaks something in your app!
  • Fixed
    Fixes a potential crash with a controller deallocation on a background thread.
  • Fixed
    Fixes a potential crash when searching the last page in double page mode.
  • Fixed
    Fixes a regression introduced in 1.9.10 regarding a KVO deallocation warning.

1.9.10 - 26 Mar 2012

  • Changed
    Greatly improved performance on zooming with the new iPad (and the iPhone4).
  • Added
    Add support for printing! It's disabled by default. Use printEnabled in PSPDFViewController. (thanks to Cédric Luthi)
  • Added
    Add support for Open In...! It's disabled by default. Use openInEnabled in PSPDFViewController.
  • Changed
    Improved, collapsable outline view. (Minor API changes for PSPDFOutlineParser)
  • Changed
    Improved speed with using libjpeg-turbo. Enabled by default.
  • Changed
    PSPDFStatusBarIgnore is now a flag, so the status bar style (which infers the navigation bar style) can now been set and then marked as ignore.
  • Added
    New property viewModeControlVisible, that shows/hides the toolbar view toggle.
  • Removed
    Removes the UIView+Sizes category, that was not prefixed.
  • Removed
    Remove custom PNG compression, performance wasn't good enough.
  • Changed
    Internal GMGridView is now prefixed.
  • Changed
    Disable implicit shadow animation when grid cell size changes.
  • Fixed
    Fixes a bug regarding slow rotation on the new iPad.
  • Fixed
    Fixes a bug where sometimes a pdf document wasn't unlocked correctly.
  • Fixed
    Fixes a potential problem where search/table of contents doesn't actually change the page on the iPhone.
  • Fixed
    Fixes some problems with Type2 Fonts on search.
  • Fixed
    Fixes a rare crash when rotating while a video is being displayed.

1.9.9 - 15 Mar 2012

  • Changed
    Icons! (changed outline icon, and replaced "Page" and "Grid" with icons)
  • Changed
    Outline controller now has a title on the iPad.
  • Fixed
    Fixes a regression where the toolbar color was not correctly restored on the iPhone when modal controller were used.

1.9.8 - 14 Mar 2012

  • Fixed
    Fixed a minor regression regarding scrobble bar updating.
  • Fixed
    Fixed issue where frame could be non-centered in pageCurl mode with some landscape documents when the app starts up in landscape mode.

1.9.7 - 14 Mar 2012

  • Changed
    PSPDFKit is now compiled with Xcode 4.3.1 and iOS SDK 5.1. Please upgrade. (It is still backwards compatible down to iOS 4.0.)
  • Changed
    Allow adding the same file multiple times to PSPDFDocument.
  • Changed
    Links are now blue and have a higher alpha factor. (old color was yellow and more obtrusive)
  • Changed
    The animation duration of annotations is now customizable. See annotationAnimationDuration property in PSPDFViewController.
  • Changed
    Link elements are not shown with exact metrics, and touches are tested for over-span area. Also, over-span area is now 15pixel per default. (old was 5)
  • Changed
    Link elements now don't interfere with double/triple taps and only fire if those gestures failed.
  • Changed
    Link elements no longer use an internal UIButton. (they are now handled by a global UITapGestureRecognizer)
  • Changed
    Annotations are not size-limited to the actual document, no more "bleeding-out" of links.
  • Changed
    Minimum size for embedded browser is now 200x200. (fixes missing Done button)
  • Changed
    Inline browser can now also be displayed within a popover, using pspdfkit://[popover:YES,size:500x500]apple.com
  • Changed
    Text highlighting is still disabled by default, but can be enabled with the new property createTextHighlightAnnotations in PSPDFAnnotationParser.
  • Fixed
    Fixes an issue where the navigation bar was restored too soon. Let me know if this change breaks behavior on your app. (The navigationBar is now restored in viewDidDisappear instead of viewWillDisappear, and also will be set in viewWillAppear)
  • Changed
    Support tintColor property for inline browser.
  • Changed
    Better support for invalid documents (that have no pages.) HUD can't be hidden while a document is invalid. UI buttons are disabled.
  • Fixed
    Fixes problem where link taps were not recognized on the site edges, advancing to the next/prev page instead in pageCurl mode.
  • Fixed
    Fixes issue where scrollOnTapPageEndEnabled setting was not honored in pageCurl mode.
  • Fixed
    Fixes a problem where the embedded mail sheet sometimes couldn't be closed.
  • Fixed
    Fixes a problem where touch coordinates on annotations where always in the frame center instead of the actual tap position.
  • Fixed
    Fixes a problem where adding items to the cache would sometimes spawn too much threads.
  • Fixed
    Fixes a potential crash in the inline browser.
  • Fixed
    Fixes a potential crash with accessing invalid memory on pageCurl deallocation.
  • Fixed
    Fixes a issue where certain URLs within pdf annotations were not correctly escaped.
  • Fixed
    Fixes a situation where the thumbnail grid could become invisible when rapidly switched while scrolling.
  • Fixed
    Fixes an issue where the HUD was hidden after a page rotate (which should not be the case)
  • Fixed
    Fixes weird animation with the navigationController toolbar when opening the inline browser modally.

1.9.6 - 6 Mar 2012

  • Added
    New Inline Browser: PSPDFWebViewController. Annotations can be styled like pspdfkit://[modal:YES,size:500x500]apple.com or pspdfkit://[modal:YES]https://gmail.com.
  • Added
    New property in PSPDFViewController: linkAction. Decides the default action for PDF links (alert, safari, inline browser)
  • Added
    Add PSPDFStatusBarIgnore to completely disable any changes to the status bar.
  • Changed
    Automatically close the Table of Contents controller when the user tapped on a cell.
  • Fixed
    Fixes sometimes missing data in the pageView didShowPage-delegate when using pageCurl mode.
  • Fixed
    Fixes (another) issue where status bar style was not restored after dismissing while in landscape orientation.
  • Fixed
    Fixes a severe memory leak with pageCurl mode.

1.9.5 - 5 Mar 2012

  • Changed
    Further tweaks on the scrobbleBar, improves handler in landscape mode. (thanks to @0xced)
  • Fixed
    Fixes a problem with pageCurl and the animation on the first page (thanks to Randy Becker)
  • Fixed
    Fixes an issue where double-tapping would zoom beyond maximum zoom scale. (thanks to Randy Becker)
  • Fixed
    Fixes issue where status bar style was not restored after dismissing while in landscape orientation. (thanks to Randy Becker)
  • Fixed
    Fixes some remote image display issues in the PSPDFKit Kiosk Example.
  • Fixed
    Fixes a regression with opening password protected pdf's.

1.9.4 - 4 Mar 2012

  • Fixed
    Fixes a regression from 1.9.3 on single page documents.

1.9.3 - 1 Mar 2012

  • Changed
    Improves precision and stepping of the scrobbleBar. Now it's guaranteed that the first&last page are shown, and the matching between finger and page position is better.
  • Fixed
    Fixes a problem where sometimes page 1 should be displayed, but isn't in pageCurl mode.
  • Changed
    Hide warnings for rotation overflow that UIPageViewController sometimes emits.

1.9.2 - 1 Mar 2012

  • Changed
    pageCurl can now be invoked from the edge of the device, even if the file is smaller. Previously, the gesture was not recognized when it wasn't started within the page view.
  • Changed
    The incomplete support for text highlighting has been disabled.
  • Changed
    removeCacheForDocument now has an additional parameter waitUntilDone. The previous behavior was NO, so just set NO if you use this and upgrade from an earlier release.
  • Fixed
    Fixes a potential cache-loop, where the device would constantly try to load new images.
  • Added
    Adds a sanity check for loading images, fixes a rare issue with images not showing up.

1.9.1 - 17 Feb 2012

  • Changed
    Allow scrolling to a specific rect and zooming: see scrollRectToVisible:(CGRect)rect animated:(BOOL)animated and (void)zoomToRect:(CGRect)rect animated:(BOOL)animated;
  • Changed
    PSPDFAnnotationParser now allows setting custom annotations. (to complement or override pdf annotations)
  • Added
    New annotation type: Image. (jpg, png, tiff and all other formats supported by UIImage)
  • Changed
    Better handling of situations with nil documents or documents where the actual file is missing.
  • Changed
    Better alignment of the scrobble bar position image.
  • Added
    Add "mp4" as supported audio filetype.
  • Fixed
    Fixes ignored scrollingEnabled on PSPDFPageViewController.
  • Fixed
    Fixes event delegation in the Titanium module.
  • Fixed
    Fixes the method isFirstPage (checked for page = 1, but we start at page 0).
  • Changed
    Renamed kPSPDFKitDebugLogLevel -> kPSPDFLogLevel.

1.9.0 - 13 Feb 2012

  • Changed
    PageCurl mode. Enable via setting "pageCurlEnabled" to YES. iOS5 only, falls back to scrolling on iOS4.
  • Changed
    It's now possible to create a PSPDFDocument with initWithData! (thanks to @0xced)
  • Added
    Add support for pdf passwords! (Thanks to Steven Woolgar, Avatron Software)
  • Added
    Adds support for setting a custom tintColor on the toolbars.
  • Fixed
    Fixes a problem with PSPDFPageModeAutomatic and portrait/landscape page combinations.
  • Fixed
    Fixes various problems with __weak when the development target is set to iOS5 only.
  • Added
    Adds additional error checking when a context can't be created due to low memory.
  • Fixed
    Fixes flaky animations on the Simulator on the grid view.
  • Changed
    Improves usage of PSPDFViewController within a SplitViewController (thanks to @0xced).
  • Removed
    Removes a leftover NSLog.
  • Fixed
    Fixes a UID clashing problem with equal file names. Warning! Clear your cache, items will be re-generated in 1.9 (cache directories changed)
  • Fixed
    Fixes a bug with replacing local directory path with Documents/Cache/Bundle. (thanks to Peter)
  • Fixed
    Fixes a retain cycle in PSPDFAnnotationParser (thanks to @0xced).
  • Fixed
    Fixes a retain cycle on UINavigationController (thanks to Chan Kruse).
  • Fixed
    Fixes a problem where the scrobble bar tracking images were sometimes not updated.
  • Fixed
    Fixes a rare race condition where rendering could get stuck.
  • Changed
    Improves handling of improper PSPDFDocument's that don't have a uid set.
  • Changed
    Allow adding of UIButtons to gridview cells.
  • Added
    Added "Cancel" and "Open" to the localization bundle. (mailto: links)
  • Changed
    Setting the files array is now possible in PSPDFDocument.
  • Changed
    The cache now uses MD5 to avoid conflicts with files of the same name. (or multiple concatenated files)
  • Changed
    Better handling of rendering errors (error objects are returned)
  • Changed
    Search controller is now auto-dismissed when tapped on a search result.
  • Changed
    PSPDFPositionView more closely resembles iBooks. (thanks to Chan)
  • Changed
    PDF cache generation is no no longer stopped in the viewWillDisappear event (only on dealloc, or when document is changed)
  • Changed
    Titanium: Add ability to hide the close button.

Note: For pageCurl, Apple's UIPageViewController is used. This class is pretty new and still buggy. I had to apply some private API fixes to make it work. Those calls are obfuscated and AppStore-safe.

If you have any reasons to absolutely don't use those workarounds, you can add PSPDFKIT_DONT_USE_OBFUSCATED_PRIVATE_API in the preprocessor defines. (only in the source code variant) This will also disable the pageCurl feature as the controller will crash pretty fast when my patches are not applied.

Don't worry about this, I have several apps in the store that use such workarounds where needed, it never was a problem. Also, I reported those bugs to Apple and will keep track of the fixes, and remove my workarounds for newer iOS versions if they fix the problem.

1.8.4 - 27 Dec 2011

  • Fixed
    Fixes a problem where search highlights were not displayed.
  • Changed
    Updated git version scripts to better work with branches. (git rev-list instead of git log)

1.8.3 - 26 Dec 2011

  • Changed
    Update internally used TTTAttributedString to PSPDFAttributedString; prevent naming conflicts.
  • Changed
    Fallback to pdf filename if pdf title is set but empty.
  • Changed
    pageMode can now be set while willAnimateRotationToInterfaceOrientation to customize single/double side switching.
  • Fixed
    Fixes a problem with the document disappearing in certain low memory situations.

1.8.2 - 25 Dec 2011

  • Changed
    Uses better image pre-caching code; now optimizes for RGB screen alignment; smoother scrolling!
  • Fixed
    Fixes a regression with scrobble bar hiding after animation.
  • Fixed
    Fixes wrong toolbar offset calculation on iPad in landscape mode.
  • Changed
    Various performance optimizations regarding CGPDFDocument, HUD updates, thumbnails, cache creation.
  • Changed
    Lazy loading of thumbnails.

1.8.1 - 23 Dec 2011

  • Changed
    UINavigationBar style is now restored when PSPDFViewController is popped back.
  • Changed
    Annotation page cache is reset when protocol is changed.
  • Fixed
    Fixes Xcode Archive problem because of public header files in PSPDFKit-lib.xcodeproj
  • Fixed
    Fixes a regression with the Web-AlertView-action not working.

1.8.0 - 21 Dec 2011

  • Changed

    Search Highlighting! This feature is still in BETA, but already works with many documents. If it doesn't work for you, you can disable it with changing the searchMode-property in PSPDFDocumentSearcher. We're working hard to improve this, it just will take some more time until it works on every document. As a bonus, search is now fully async and no longer blocks the main thread.

  • Changed

    ARC! PSPDFKit now internally uses ARC, which gives a nice performance boost and makes the codebase a lot cleaner. PSPDFKit is still fully compatible with iOS4 upwards. You need to manually include libarclite.so if you are not using ARC and need compatibility with iOS4. Check the MinimalExample.xcodeproj to see how it's done. (You can drag the two libarclite-libraries directly in your project). If you use the PSPDFKit-lib.xcodeproj as a submodule, you don't have to think about this, Xcode is clever enough to not expose this bug here. See more about this at https://pspdfkit.com/guides/.

  • Changed

    New default shadow for pages. More square, iBooks-like. The previous shadow is available when changing shadowStyle in PSPDFScrollView. The shadow override function has been renamed to pathShadowForView.

  • Changed

    New: PSPDFDocument now uses the title set in the pdf as default. Use setTitle to set your own title. Title is now also thread-safe.

  • Changed

    New Thumbnail-Framework (removed AQGridView). Faster, better animations, allows more options. Thumbnails are now centered. You can override this behavior with subclassing gridView in PSPDFViewController.

  • Changed

    New: HUD-elements are now within hudView, hudView is now a PSPDFHUDView, lazily created.

  • Changed

    New: Page position is now displayed like in iBooks at the bottom page (title is now just title)

  • Changed

    Changed: Videos don't auto play per default. Change the url to pspdfkit[autoplay:true]://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 to restore the old behavior (or use delegates).

  • Changed

    Changed: viewMode does not longer animate per default. Use the new setViewMode:animated: to change it with animation.