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

Newest Release

2.0.1 - 7 Oct 2017

  • Removed
    Removes unneeded files from PSPDFKit.framework.

Previous Releases

2.0.0 - 6 Oct 2017

  • API
    Removes most PSPDFDocument initializers and all class factory methods, in favor of just the flexible initWithDataProviders: and the convenient initWithURL:. A full list of migration strategies for each method can be found in the migration guide. (#12087)
  • API
    Removes the baseURL and files properties from PSPDFDocument. (#12087)
  • API
    Adds an options parameter to the PSPDFDocument save methods, which means the alwaysRewriteOnSave property has been replaced by PSPDFDocumentSaveOptionForceRewrite. See the Document Save Options section in the migration guide for more details. (#8297)
  • API
    Renames PSPDFProcessorSaveOptions to PSPDFDocumentSecurityOptions and renames related API. See the Document Save Options section in the migration guide for a full list of API changes. (#8297)
  • API
    Removes disk cache strategy and page index parameters from PSPDFCache caching methods. (#11669)
  • API
    Renames the PSPDFDataProvider protocol to PSPDFDataProviding and adds more specialized protocols for file-backed data providers. Custom data providers can cooperate with PSPDFKit to support file coordination. (#11199)
  • API
    The parameters of the PSPDFFileCoordinationDelegate methods now conform to PSPDFCoordinatedFileDataProviding instead of NSFilePresenter. (#11199)
  • API
    PSPDFXFDFParser and PSPDFXFDFWriter now use PSPDFDataProviding and PSPDFDataSink instead of a NSInputStream and NSOutputStream. (#11693)
  • API
    Prefix changes: Renames isAnnotationsEnabled to areAnnotationsEnabled, isBookmarksEnabled to areBookmarksEnabled, isPageLabelsEnabled to arePageLabelsEnabled and isFormsEnabled to areFormsEnabled on PSPDFDocument. (#9742)
  • API
    Renames PSPDFUndoProtocol to PSPDFUndoSupport. (#11237)
  • API
    Renames -[PSPDFDocument documentByAppendingObjects:] to documentByAppendingDataProviders: and this array can no longer contain instances of NSString, NSURL, or NSData. (#12087)
  • API
    Renames the dataProviderArray property on PSPDFDocument to dataProviders. (#12087)
  • API
    Removes the contentSignatures property from PSPDFDocument and adds a signature property to the PSPDFDataProviding protocol. (#12087)
  • API
    PSPDFRenderTask can now fail. There is a new delegate method renderTask:didFailWithError:, and the completionHandler is now passed either an image or an error. (#11500)
  • API
    Renames the class PSPDFAbstractTextOverlayAnnotations to PSPDFMarkupAnnotation. (#10182)
  • API
    Removes -[PSPDFAnnotation isFixedSize]. (#12007)
  • API
    Renames PSPDFileCoordinationDelegate to PSPDFFileCoordinationDelegate. (#11765)
  • API
    Removes -[PSPDFSignatureFormElement drawArrowWithText:andColor:inContext:] subclassing hook. (#12083)
  • API
    Removes document unrelated callback methods from PSPDFDocumentDelegate: pdfDocument:didRenderPageAtIndex:inContext:withSize:clippedToRect:annotations:options:, pdfDocument:provider:shouldSaveAnnotations:, pdfDocument:didSaveAnnotations:, pdfDocument:failedToSaveAnnotations:error:, pdfDocument:underlyingFileDidChange:. (#12178)
  • API
    Replaces -[PSPDFLibrary updateIndex] with -[PSPDFLibrary updateIndexWithCompletionHandler:]. (#11509)
  • API
    Removes metadata handling from PSPDFLibrary. (#12261)
  • API
    Replaces annotationsByDetectingLinkTypes:forPagesInRange:options:progress:error: with annotationsByDetectingLinkTypes:forPagesAtIndexes:options:progress:error:. (#11502)
  • Added
    Adds Document Checkpointing to recover changes to documents that may not have been saved. (#8471)
  • Added
    Adds new PSPDFSignatureAppearance class, which allows you to configure the appearance of digital signatures in a document. (#980)
  • Added
    Adds a PSPDFSignatureBiometricProperties class, which allows you to store and recover encrypted biometric information about a handwritten digital signature. (#980)
  • Added
    Adds signFormElement:withCertificate:writeToDataSink:withAppearance:completionBlock: to PSPDFSigner to allow signing documents to a generic PSPDFDataSink. (#8879 and #11267)
  • Added
    Adds creation methods for PSPDFFormField subclasses allowing you to create new form fields. (#12056)
  • Added
    Adds removeFormElements:error: and removeFormFields:error: to PSPDFFormParser. This allows removing of either form elements or form fields. (#11928)
  • Added
    Adds support for changing many PSPDFFormField properties that were read-only before. (#12157)
  • Added
    Adds support for setting any PDF as an appearance stream on an annotation using the PSPDFAppearanceStreamGenerator protocol. (#11428)
  • Added
    Adds PSPDFAnnotationProviderDelegate for callback methods related to annotation saving. (#12178)
  • Added
    Adds outline property to PSPDFDocument, used for getting the documents' outline. (#11801)
  • Added
    Adds support for AES encryption when saving or processing a document. (#4420)
  • Changed
    Improves how PSPDFLibrary deals with long running indexing tasks. See PSPDFLibrary.automaticallyPauseLongRunningTasks. (#12158)
  • Changed
    Improves progress handling by automatically canceling active document progress when all data provider progresses are canceled. (V#916)
  • Changed
    Improves library updates by making them completely asynchronous. (#11509)
  • Changed
    Improves exact phrase matching in PSPDFLibrary. (#12261)
  • Changed
    Improves XFDF performance and compliance. (#11693)
  • Changed
    Changes -[PSPDFDocument addAnnotations:options:] and -[PSPDFDocument removeAnnotations:options:] to accept options dictionaries with keys of type NSString. (#12008)
  • Changed
    Implements setMaxLength: for PSPDFFormElement. (#11834)
  • Changed
    The minimumSize property of PSPDFAnnotation has been changed from 32 to 16. (#11871)
  • Fixed
    Fixes an issue saving an original document after signing it. (#11911)
  • Fixed
    Fixes potential file coordinator races. (#11938, #11206)
  • Fixed
    Fixes an issue when rendering decomposed UTF-8 strings (#11985)
  • Fixed
    Fixes an issue in our KVO helper that could cause a recursive locking abort. This only was discovered with custom code and doesn't affect default usage. (rdar://34307466, #11990)
  • Fixed
    Fixes an issue that prevented modifications to compareOptions for manual text searching (#12047).
  • Fixed
    Fixes an issue where a digital signature field could not be properly deleted (#12082).
  • Fixed
    Fixes an issue where indexing wasn't stopped when the application gets terminated. (#12215)
  • Fixed
    Fixes a cosmetic issue where an ink signature field may show as unsigned (#12127).
  • Fixed
    Fixes an issue where flattening a document may generate warnings when it is open in third party readers. (#12066)
  • 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)
  • Fixed
    Fixes an issue with recreating AVPlayer and AVPlayerItem when it was in an error state. (#11864)
  • Fixed
    Fixes an infinite recursion when describing certain NSValueTransformer instances. (#11881)
  • Fixed
    Fixes a rare crash when saving. (#11861)
  • 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 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)
  • 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 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)

1.2.0 - 21 Jul 2017

  • 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)
  • Added
    Adds support for flattening signature annotations. (#11096)
  • 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)
  • Changed
    The global SQLite message logger now filters out irrelevant common known logs from iOS like cfurl_cache_response. (#10890)
  • 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 memory management when rendering forms. (#11176)
  • Changed
    Improves support for file presenter based document deletion notifications in multi data provider documents. (#10362)
  • Fixed
    Fixes very rare issue on saving files repeatedly. (#9477)
  • Fixed
    Fixes a problem while importing some kind of certificates for digital signatures. (#11120)
  • Fixed
    Fixes an issue where one PSPDFSignerError had an invalid error code. (#11186)
  • Fixed
    Fixes some crashes when signing a particular type of PDF documents. (#11285)
  • 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 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 fixed size class methods on PSPDFAnnotation in favor of instance properties. (#10931)
  • Removed
    Deprecates the undoEnabled property on PSPDFUndoController. (#11476)

1.1.0 - 26 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)
  • Changed
    Various refinements around nullability that have been discovered with Xcode 9's Undefined Behavior Sanitizer. (#10876)
  • Changed
    Improves support for form filling via JavaScript. (#10979)
  • Changed
    Improves documentation of the digital signatures feature. (#11027)
  • Fixed
    Fixes issue while saving PDF files. (#10849)
  • Fixed
    Fixes a leak when rendering a bitmap. (#10847)
  • 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 with digital signatures where a name and date was required. (#7892)
  • 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)

1.0.0 - 25 May 2017

  • Changed
    First public release.