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

Newest Release

2.3.0 - 12 Jan 2018

  • API
    Deprecates the baseURL property from PSPDFFileDataProvider. (#12525)
  • API
    Deprecates baseURL-based PSPDFFileDataProvider initializers. (#12525)
  • Added
    Adds PSPDFImageDocument for simple annotating of image files using PSPDFKit. (#13538)
  • Added
    Adds form field values to Instant JSON. (#13335)
  • Added
    Adds a new log level (PSPDFLogLevelCritical), that is enabled by default. (#13212)
  • Added
    Adds support for PEM-encoded certificates in PKCS#7 files. (#13698)
  • Changed
    Improves file coordination update notifications, by ignoring cases that do not represent content changes. (#13394)
  • Changed
    Improves the detection of digital signatures in third-party PDF readers. (#13593)
  • Changed
    Improves the stability of the digital signing process with some certificate authorities with missing fields. (#13694)
  • Changed
    Improves locking during document cache reset. (#10984)
  • Fixed
    Fixes an issue where zooming in on large free text annotations, stamps, or form fields could use a lot of memory, which could result in crashing. (#13685, #13686)
  • Fixed
    Fixes missed search terms which span over a newline without a hyphen. (#11862)
  • Fixed
    Fixes an issue with stamp annotations not being rendered when using XFDF. (#13330)
  • Fixed
    Fixes an issue with sound annotations losing sound data when using XFDF. (#13324)
  • Fixed
    Fixes specific issue where previous xref has the same object number as a newly created object. (#13183)
  • Fixed
    Fixes an issue where PSPDFGalleryManifest could override a link annotation's url in some cases. (V#1084)
  • Fixed
    Fixes an issue where image stamp annotations appeared scaled up. (#13703)
  • Fixed
    Fixes a problem where signed documents loaded using a data provider may incorrectly warn about changes when validated. (#13549)
  • Fixed
    Fixes file coordination issues that could occur while the application is backgrounded. (#13652)
  • Fixed
    Fixes an issue where a signed document may show a warning if inspected with a PDF lint tool. (#13719)
  • Fixed
    Fixes an issue where PSPDFFile could in some cases return stale data for a file. (#13614)
  • Fixed
    Fixes an issue where the opacity was not applied to the callout of a PSPDFFreeTextAnnotation. (#13576)
  • Fixed
    Fixes an issue where some annotation widgets' appearance streams were not updated properly when the underlying form field's value changed. (#13344)
  • Changed
    Improves performance when fetching document level JavaScript objects. (#13281)
  • Fixed
    Fixes an issue where an ink annotation's background (fill color) was incorrectly ignored. (#13216)
  • Fixed
    Fixes an issue where documents with links may not point to the correct destination after being exported. (#13341)
  • Fixed
    Fixes missed search terms which span over a newline without a hyphen. (#11862)
  • Fixed
    Fixes an issue with stamp annotations not being rendered when using XFDF. (#13330)
  • Fixed
    Fixes an issue with sound annotations losing sound data when using XFDF. (#13324)
  • Fixed
    Fixes incorrect glyph frames being returned from PSPDFTextParser for documents with vertical or rotated text. (#13423)
  • Fixed
    Fixes some crashes when undoing and redoing operations. (#12358)
  • Fixed
    Fixes a crash in PSPDFFileAnnotationProvider when the document has not been initialized properly. (#12358)
  • Fixed
    Fixes some crashes in PDFResourceProvider caused by a race condition. (#13413)
  • Fixed
    Fixes potential crashes when some classes are deallocating. (#13421)

Previous Releases

2.2.0 - 23 Nov 2017

  • API
    Deprecates PSPDFJSONSerializing in favor of Instant JSON (See PSPDFAnnotation+Instant.h). (#10516)
  • Added
    Adds Instant JSON support to PSPDFDocument and PSPDFAnnotation. (#10516)
  • Fixed
    Fixes a rare text extraction issue where some space characters are not correctly extracted. (#6273)
  • Fixed
    Fixes an issue where stamp annotations get blurry. (#12981)

2.1.0 - 17 Nov 2017

  • API
    Deprecates PSPDFAnnotationTriggerEventLooseFocus in favor of PSPDFAnnotationTriggerEventLoseFocus. (#13078)
  • Added
    Adds support for proper removal of PSPDFFormElements when calling removeAnnotations:. (#12797)
  • Added
    Adds support for transferring document level JavaScript when processing a document (#12769)
  • Changed
    Improves correctness for JavaScript util.printf call. (#12759)
  • Changed
    Improves reliability when saving documents with broken cross-reference tables. (#12212)
  • Changed
    Improves detection of RichMedia elements and always prefers to show controls for audio-only tracks. (#12986)
  • Changed
    Improves the performance of document outline parsing when the document is very big. (#11854)
  • Fixed
    Fixes the positioning of the underline on text when no ascending characters are present on the line. (#11489)
  • Fixed
    Fixes a problem where some PDF documents may not show every form field element. (#12998)
  • Fixed
    Fixes an rare crash in PSPDFLibraryFileSystemDataSource due to mutation of a set while enumerating it. (#12987)
  • Fixed
    Fixes a potential issue when trying to interact with a form whilst a PSPDFProcessor is in progress. (#12973)
  • Fixed
    Fixes an issue where some highlight annotations were rendered incorrectly in specific PDFs. (#12937)
  • Fixed
    Fixes missing document link action when destination is not defined. (#12917)
  • Fixed
    Fixes an issue with file size when flattening annotations. (#12749)
  • Fixed
    Fixes an issue in the bookkeeping of spread views which resulted in an assertion when looking for a specific page view. (#12654)
  • Fixed
    Fixes an issue where PSPDFProcessor didn't export some annotations in particular documents. (#11795)
  • Fixed
    Fixes an issue when saving a document that has been restored from a checkpoint. (#12890)
  • Fixed
    Fixes an issue with incorrect tab order in forms. (#12902)
  • Fixed
    Fixes an issue where some flattened documents may not show correctly in third party readers. (#12901)
  • Fixed
    Fixes an issue where actions weren't properly persisted. (#12884)
  • Fixed
    Fixes an issue when exporting XFDF with non-ascii characters. (#12892)
  • Fixed
    Fixes an issue when the appearance stream of form elements was not correctly reset when applying XFDF values. (#12892)
  • Fixed
    Fixes issues with font selection for non latin languages. (#12297, #11639)
  • Fixed
    Fixes issues when restoring from checkpoints. (#12669)
  • Fixed
    Fixes an issue where text in some form fields may be cut. (#12494 and #11287)
  • Fixed
    Fixes an issue rendering text while zoomed in specific documents. (#12392)
  • Fixed
    Fixes an issue where underline annotations and text extraction may not work correctly for some documents. (#12070)
  • Fixed
    Fixes an issue where the leading zero was not displayed when formatting a number. (#12565)
  • Fixed
    Fixes an issue where some annotations may not be shown even when they are present in a document. (#12295)

2.0.1 - 7 Oct 2017

  • Removed
    Removes unneeded files from PSPDFKit.framework.

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.