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

Newest Release

2.6.0 - 31 May 2018

This version of PSPDFKit requires and is built with Xcode 9.4 (9F1027a). The new Image Documents component, which enables you to keep PSPDFImageDocuments editable even after saving, requires an updated license.

We prepared a migration guide to help you with some of the API changes in this version.

  • API
    The configuration builder blocks in PSPDFBaseConfiguration are now noescape for better Swift compatibility. (#15077)
  • API
    The constants in PSPDFAnnotationStyleManager have been renamed and now better map to Swift. (#15077)
  • API
    PSPDFDocument.annotationsForPageAtIndex:type: is now guaranteed to never return nil. (#15077)
  • Removed
    Deprecates PSPDFFileAnnotation’s appearanceName in favor of iconName. (#15319)
  • Removed
    Deprecates class-level methods on PSPDFProcessor and introduces new new instance-based API that allows for cancellation. (#10480)
  • Added
    Adds the ability to keep annotations on PSPDFImageDocuments editable even after saving. Requires the Image Documents feature to be enabled in your license. See https://pspdfkit.com/blog/2018/image-documents/ for more information. (#14894)
  • Added
    Adds an external file source option when adding new pages to a document with the document editor. (V##248)
  • Added
    Adds blend modes to Annotations. This improves rendering for appearance steams with different blend modes. (#15080)
  • Added
    Adds the ability to define arbitrary patterns for new pages when editing a document. (#14951)
  • Added
    Adds the ability to embed files to PSPDFFileAnnotation using -[PSPDFEmbeddedFile initWithFileURL:fileDescription:]. (#15210)
  • Changed
    Improves JavaScript support, including form formatting, calculation, and validation. (#9501)
  • Changed
    Improves XFDF output by omiting opacity if set to the default (1.0). (#15354)
  • Changed
    Improves rendering behavior for stamp annotations. Stamps are keeping their aspect ratio on resizing now. Stamps created with PSPDFKit now always use the same rendering, no matter if they were just created or after being saved in the document. The subject of stamps is now always rendered in uppercase characters. Custom stamps are now sized-to-fit before adding them to the document. (#1824)
  • Added
    Added annotation name to Instant JSON. Also renamed pspdfkit/file name to filename to prevent collisions. (#14856)
  • Added
    Added better detection for standard stamp subjects for Instant JSON. (#14919)
  • Changed
    Cancelling a PSPDFRenderTask now reduces further CPU usage more effectively. (#14218)
  • Changed
    PSPDFPageRenderer is now deprecated and will be removed in a later update. (#15189)
  • Fixed
    Fixes a crash which occurred when manually searching a protected document. (#15177)
  • Fixed
    Fixes a potential deadlock situation during document cache invalidation. (#15259)
  • Fixed
    Fixes an issue where glyph frames were larger than expected due to unexpected values in their fonts. (#14169)
  • Fixed
    Fixes an issue where newly created note annotations would require two taps for deselection. (#15221)
  • Fixed
    Fixes security vulnerability CVE-2018-9127 in Botan, where wildcard certificates could be accepted for invalid hostnames. (#15374)

Previous Releases

2.5.0 - 11 Apr 2018

  • API
    Deprecates PSPDFAnnotationOptionUserCreatedKey. (#14669)
  • API
    Renames PSPDFSignatureHashAlgorithmSHA386 to PSPDFSignatureHashAlgorithmSHA384 which is actually the correct name. (#13932)
  • API
    tryLoadAnnotationsFromFileWithError: has been removed from PSPDFFileAnnotationProvider. Use loadAnnotationsWithError: instead to customize annotation loading. (#14570)
  • API
    Deprecates PSPDFTextBlock.glyphs, PSPDFWord.glyphs, and PSPDFSelectionState.selectedGlyphs in favor of NSRange-based APIs. (#14606)
  • API
    Adds isGenerated to PSPDFGlyph to check if the glyph is an autogenerated filler. (#14606)
  • API
    PSPDFGlyph.indexOnPage is not -1 to indicate that it is a generated filler. Use PSPDFGlyph.isGenerated instead. indexOnPage can now be used to uniquely identify a glyph on a page, and is the index of the glyph in the PSPDFTextParser.glyphs array. (#14606)
  • Added
    Adds createdAt, updatedAt and creatorName to Instant JSON. (#14443)
  • Added
    Adds isReply and inReplyToAnnotation properties on PSPDFAnnotation. (#5721)
  • Added
    Adds properties for author-specific state on PSPDFNoteAnnotation. (#5721)
  • Added
    Adds PSPDFAESCryptoDataSink. (#13912)
  • Changed
    Improves cleaning up resources in PSPDFDocument's dealloc. (#14586)
  • Changed
    Improves performance when examining document permission features. (#14747)
  • Changed
    Improves text selection performance in documents with a lot of text. (#14516)
  • Changed
    Filters out invalid characters from a page's text. (#14516)
  • Changed
    Performance improvements for documents with many data sources. (#14651)
  • Changed
    Removing an annotation with removeAnnotations:options: on PSPDFAnnotationManager or PSPDFDocument now also removes replies to that annotation. (#14385)
  • Changed
    The relationship between PSPDFXFDFAnnotationProvider and PSPDFFileAnnotationProvider is now more explicit. If you use XFDF for form filling, you now need to keep around both providers. Furthermore, the annotation manager now only saves into the first annotation provider implementing the save method. Previously all were called, which could have led to incorrect results. (#14323)
  • Fixed
    Fixes a crash that could happen during application termination. (#14483)
  • Fixed
    Fixes a lock inversion when setting up the document providers. (#14525)
  • Fixed
    Fixes a potential crash when saving a document. (#14082)
  • Fixed
    Fixes a potential issue when removing annotations. (#14381)
  • Fixed
    Fixes an issue that prevented correct caching of rendered pages. (#14390)
  • Fixed
    Fixes an issue where -[PSPDFTextParser textWithGlyphs:] would exclude the last glyph. (#14636)
  • Fixed
    Fixes an issue where a flattened document shows a blank page in Preview. (#13708)
  • Fixed
    Fixes an issue where action destinations would not be found if sorted incorrectly. (#14412)
  • Fixed
    Fixes an issue where document checkpoints were not loaded for decoded document instances. (#14624)
  • Fixed
    Fixes an issue where image data wasn't properly removed after rewriting the PDF. (#14708)
  • Fixed
    Fixes an issue where searching for text in a document would return results with empty text blocks. (#14516)
  • Fixed
    Fixes an issue where some PSPDFDocumentSecurityOptions initializers would sometimes return nil. (#14646)
  • Fixed
    Fixes an issue where the documents features sometimes returned an incorrect value when called right after creating a PSPDFDocument. (#14574)
  • Fixed
    Fixes an issue where using a custom bookmark provider with readonly documents disabled adding and editing bookmarks. (#14574)
  • Fixed
    Fixes document corruption issue when document has a header and is incrementally saved. (#14249)
  • Fixed
    Fixes an issue where the deletion of an annotation could not be undone properly. Important: Calling removeAnnotations:options: on a PSPDFFileAnnotationProvider no longer posts PSPDFAnnotationChangedNotification! Deleted annotations are still being returned from dirtyAnnotations until the next save — like before. They are, however, not returned from annotationsForPageAtIndex: anymore. This behavior is also far less surprising. (#14305)
  • Fixed
    Fixes a document corruption bug when the document has a header and is incrementally saved. (#14249)
  • Fixed
    Fixes an animation glitch when rearrange pages with the document editor. (#14367)
  • Fixed
    Fixes an issue where PSPDFTextParser.glyphs could be incorrect for certain documents. (#10844)
  • Fixed
    Fixes an issue where dropdown arrow on combo boxes are not seen when box has a small width. (#14326)
  • Fixed
    Fixes an issue where dropdown arrows are still seen on combo boxes when document is flattened. (#9539)
  • Fixed
    Fixes issue where pdfId was required when importing a Instant JSON document. (#14494)
  • Fixed
    Fixes potential deadlocks during annotation rendering. (#14534)
  • Fixed
    Fixes an issue where opening large documents with marked content used very large amounts of memory. (#14415)
  • Fixed
    Fixes potential deadlocks when opening a lot of documents. (#14503)
  • Fixed
    Fixes an issue where PSPDFFile.fileData did not lazily memory map the file data when being called from user code. (#14539)
  • Fixed
    Fixes an issue with lossy cached images quality. (#13897)

2.4.0 - 2 Mar 2018

  • API
    -[PSPDFContainerAnnotationProvider clearNeedsSaveFlag] now asserts that it is called inside a write block! For more details, please refer to the documentation of PSPDFContainerAnnotationProvider(SubclassingHooks). (#14181)
  • API
    Certain types in Swift have been renamed to improve interoperability. (#10491)
  • API
    Deprecates encryptionAlgorithm in PSPDFPrivateKey, in favor of signatureEncryptionAlgorithm, which is enum-typed. (#13940)
  • API
    PSPDFDocumentSecurityOptions initializers may return error instead of assert. (#10491)
  • Added
    Adds PSPDFDocumentFeatures as a central place for checking the availability of various features. (#9107)
  • Added
    Adds a PSPDFCatalog example illustrating how to generate a PDF document on a mobile device without any server use. (#13776)
  • Added
    Adds a new protocol, PSPDFExternalSignature, that can be used to provide a digital signature for a document externally. (#13940)
  • Added
    Adds an example UpdateConfigurationWhenRotatingExample.swift for changing the configuration when rotating the device. (#13820)
  • Added
    Adds support for automatic access tracking for security scoped URLs. (#13863)
  • Added
    Adds the shouldTrackDeletions class property to PSPDFContainerAnnotationProvider to customize the effect of removeAnnotations:options: on dirtyAnnotations. See PSPDFContainerAnnotationProvider.h for more information. (#8839)
  • Changed
    Adjusts the gap between two pages in continuous scroll mode. (#13877)
  • Changed
    Changes the localized description of empty note annotations from Text to Note (localized). (#14057)
  • Changed
    Improve error messages when digitally signing a document failed. (#13741)
  • Changed
    Shows an error message when digitally signing failed instead of throwing an exception in some cases. (#13741)
  • Changed
    PSPDFTextParser now respects reading order of text blocks defined in the PDF using Marked Content. (#9677, #322)
  • Fixed
    Fixes FTS5 search on SQLite versions >= 3.20.0. (#14036)
  • Fixed
    Fixes a deadlock when calling removeAllAnnotationsWithOptions: on an instance of PSPDFContainerViewController or a subclass and clarifies locking requirements. (#14178)
  • Fixed
    Fixes an assertion when a non-specified named action was deserialized via Instant JSON. (#13804)
  • Fixed
    Fixes an issue saving a document with invalid PDF syntax (empty dictionary key). (#14009)
  • Fixed
    Fixes an issue where -[PSPDFAnnotation annotationFromInstantJSON:documentProvider:error:] attached the annotation to the document. (#14140)
  • Fixed
    Fixes an issue where some annotations in a custom annotation provider were not rendered properly. (#12762)
  • Fixed
    Fixes an issue where some form fields with custom FQNs may not be signed correctly. (#14309)
  • Fixed
    Fixes an issue where the hash of two equal PSPDFAnnotation objects could be different. (#13852)
  • Fixed
    Fixes an issue where the wrong font was selected. (#14027)
  • Fixed
    Fixes crashes on document unload when FormTabOrderCalculator is being processed. (#13976)
  • Fixed
    Fixes issue with text selection in certain cases. (#13803)
  • Fixed
    Fixes potential crash when saving files with irregular outlines. (#14116)
  • Fixed
    Fixes the issue where PSPDFDocument.hasDirtyAnnotations would return NO after removing an annotation from a custom annotation provider. (#8839, Z#5114)

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)

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.