Other Classes

The following classes are available globally.

  • This class allows a transparent decryption of AES256 encrypted files using the RNCryptor file format https://github.com/RNCryptor/RNCryptor-Spec/blob/master/RNCryptor-Spec-v3.md

    Legacy PSPDFKit old file format is also supported. Use the provided encryption tool to prepare your documents.

    Ensure your passphrase/salt are also protected within the binary, or at least obfuscated. Encryption marginally slows down rendering, since everything is decrypted on the fly.

    If saving annotations to a file managed by a PSPDFAESCryptoDataProvider, the whole file will be re-written.

    Note

    The initializers will return nil if the strong encryption feature is not enabled, or if you pass an invalid parameter configuration.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFAESCryptoDataProvider : NSObject <PSPDFFileDataProviding>

    Swift

    class AESCryptoDataProvider : NSObject, FileDataProviding
  • The data sink that works with PSPDFAESCryptoDataProvider

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAESCryptoDataSink : NSObject <PSPDFDataSink>

    Swift

    class AESCryptoDataSink : NSObject, DataSink
  • Declaration

    Objective-C

    
    @interface PSPDFAESCryptoInputStream : PSPDFCryptoInputStream

    Swift

    class AESCryptoInputStream : CryptoInputStream
  • Declaration

    Objective-C

    
    @interface PSPDFAESCryptoOutputStream : PSPDFCryptoOutputStream

    Swift

    class AESCryptoOutputStream : CryptoOutputStream
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAbstractFormAction : PSPDFAction

    Swift

    class AbstractFormAction : Action
  • Base class for Line, Polygon and PolyLine annotations.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAbstractLineAnnotation : PSPDFAbstractShapeAnnotation

    Swift

    class AbstractLineAnnotation : AbstractShapeAnnotation
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAbstractShapeAnnotation : PSPDFAnnotation

    Swift

    class AbstractShapeAnnotation : Annotation
  • Defines an action that is defined in the PDF spec, either from an outline or an annotation object. See the Adobe PDF Specification for more about actions and action types.

    Note

    The PDF spec defines both ‘destinations’ and ‘actions’. PSPDFKit will convert a ‘destination’ into an equivalent PSPDFActionTypeGoTo.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFAction : PSPDFModel <NSSecureCoding>

    Swift

    class Action : ModelObject, NSSecureCoding
  • Initialize with PSPDFDocument object as activityItems or directly with title/URL/NSData.

    Declaration

    Objective-C

    
    @interface PSPDFActivityViewController
        : UIActivityViewController <PSPDFOverridable>

    Swift

    class ActivityViewController : UIActivityViewController, Overridable
  • This is a PSPDFKit provided PSPDFAnalyticsClient implementation that dispatches events to all registered clients. Events are dispatched on a background queue.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnalytics : NSObject <PSPDFAnalyticsClient>

    Swift

    class PDFAnalytics : NSObject, PDFAnalyticsClient
  • PSPDFAnnotation is the base class for all PDF annotations and forms.

    Don’t directly make an instance of this class, use subclasses like PSPDFNoteAnnotation or PSPDFLinkAnnotation. This class will return nil if initialized directly, unless with the type PSPDFAnnotationTypeUndefined.

    PSPDFAnnotationManager searches the runtime for subclasses of PSPDFAnnotation and builds up a dictionary using supportedTypes.

    Note

    Thread safety: Annotation objects should only ever be edited on the main thread. Modify properties on the main thread only if they are already active (for creation, it doesn’t matter which thread creates them). Before rendering, obtain a copy of the annotation to ensure it’s not mutated while properties are read. Once the documentProvider is set, modifying properties on a background thread will throw an exception.

    Annotation properties are specified in normalized PDF coordinates: they take page rotation and CropBox offset into account. Prior to PSPDFKit 8 for iOS and PSPDFKit 3 for macOS properties were specified in PDF coordinates: not taking the page rotation and offset into account. After unarchiving annotations from NSCoder archives created with older versions of PSPDFKit, the properties will be untransformed, and will be modified to apply the page transform when the annotation is added to a document.

    Annotations contain internal state once they are attached to a document. Don’t take them and add them to another document. Instead, create a new annotation and set the properties relevant for you, and add this annotation.

    Warning

    Annotations are mutable objects. Do not store them in NSSet or other objects that require a hash-value that does not change.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotation : PSPDFModel <PSPDFUndoSupport, NSSecureCoding>

    Swift

    class Annotation : ModelObject, UndoSupport, NSSecureCoding
  • A PSPDFAnnotationAppearanceStream manages an image to include as part of an annotation appearance (ie. a handwritten signature). Supported filetypes are .JPG and .PDF. For PDF files, the first page of the document is used.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationAppearanceStream : NSObject
  • Displays information about an annotation.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationCell
        : PSPDFNonAnimatingTableViewCell <PSPDFOverridable>

    Swift

    class AnnotationCell : NonAnimatingTableViewCell, Overridable
  • Allows saving/loading of stored annotations. Annotations are stored securely in the keychain.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationGridViewController
        : PSPDFBaseViewController <PSPDFStyleable>

    Swift

    class AnnotationGridViewController : PDFBaseViewController, Styleable
  • Used to configure custom annotation groups for the annotation toolbar.

    [[PSPDFAnnotationToolbarConfiguration alloc] initWithAnnotationGroups:@[
    
    [PSPDFAnnotationGroup groupWithItems:@[
    [PSPDFAnnotationGroupItem itemWithType:PSPDFAnnotationStringInk variant:PSPDFAnnotationVariantStringInkPen
    configurationBlock:[PSPDFAnnotationGroupItem inkConfigurationBlock]]]],
    
    [PSPDFAnnotationGroup groupWithItems:@[
    [PSPDFAnnotationGroupItem itemWithType:PSPDFAnnotationStringLine],
    [PSPDFAnnotationGroupItem itemWithType:PSPDFAnnotationStringPolyLine]]]
    ]];
    
    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationGroup : PSPDFModel
  • An annotation group items defines one annotation type, optionally with a variant.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationGroupItem : PSPDFModel
  • Collects annotations from the various PSPDFAnnotationProvider implementations.

    Usually you want to add your custom PSPDFAnnotationProvider instead of subclassing this class. If you subclass, use overrideClass:withClass: in PSPDFDocument.

    This class will set the documentProvider on both annotation adding and retrieving. You don’t have to handle this in your annotationProvider subclass.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationManager
        : NSObject <PSPDFAnnotationProviderChangeNotifier, PSPDFOverridable>

    Swift

    class AnnotationManager : NSObject, AnnotationProviderChangeNotifier, Overridable
  • A fully KVO observable stand in for actual annotation content that is loaded on demand.

    Custom annotation providers may need to resolve certain annotation types using external sources. Instant, for example, only loads image annotations separately from the document and other annotations on demand, thus giving users the quickest possible time to display and sync, without sacrificing high fidelity for high bandwidth media.

    This, however, requires a mechanism to display placeholder content for annotations whose media is not readily available. PSPDFAnnotationPlaceholder fulfills that role by offering a state machine that tracks the process towards replacing a suitable placehoöder with the actual content.

    States and Allowed Transitions

    Each annotation placeholder starts in an idle state. Any PSPDFAnnotationPresenting view that implements the annotationPlaceholder property can use that object’s content to display a suitable placeholder until the actual content has become available.

    In order to provide feedback as to when the actual content will be available, it can observe the placeholder’s placeholderState, which will change to “progressing” or “failed” when the process of providing the actual content starts or has failed.

    Note

    Important: In the context of PSPDFAnnotationPlaceholder, cancellation is considered an error. It will be signaled by an NSUserCancelled error in combination with state “failed”.

    While the actual content for the placeholder instance is loaded, the object remains in state “progressing” until the process completes — which results in a transition to state “completed” — or fails — which results in a transition to state “failed”. Both of these states are final, meaning there will not be any further state transitions.

    Upon transition to state “completed”, any PSPDFAnnotationPresenting view tracking a placeholder should dispose of the object, and use its new content property instead.

    Upon transition to state “failed”, any such view should update based on the placeholder object’s error, which (in many cases) will provide a localizedRecoverySuggestion, alongside a recoveryAttempter.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationPlaceholder : NSObject

    Swift

    class AnnotationPlaceholder : NSObject
  • An annotation set may be used to add and position multiple annotations.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationSet : PSPDFModel <NSFastEnumeration, NSSecureCoding>

    Swift

    class AnnotationSet : ModelObject, NSFastEnumeration, NSSecureCoding
  • Annotation Set cell, displays an annotation set.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationSetCell
        : PSPDFSelectableCollectionViewCell <PSPDFOverridable>

    Swift

    class AnnotationSetCell : SelectableCollectionViewCell, Overridable
  • Shows multiple annotation sets within a table cell.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationSetsCell
        : PSPDFTableViewCell <UICollectionViewDelegate, UICollectionViewDataSource>

    Swift

    class AnnotationSetsCell : PDFTableViewCell, UICollectionViewDelegate, UICollectionViewDataSource
  • PSPDFAnnotationStateManager holds the current annotation state and configures the associated PSPDFViewController to accept input related to the currently selected annotation state. The class also provides several convenience methods and user interface components required for annotation creation and configuration.

    Interested parties can use KVO to observe the manager’s properties.

    You should never use more than one PSPDFAnnotationStateManager for any given PSPDFViewController. It’s recommended to use -[PSPDFViewController annotationStateManager] instead of creating your own one in order to make sure this requirement is always met.

    PSPDFAnnotationStateManager is internally used by PSPDFAnnotationToolbar and can be re-used for any custom annotation related user interfaces.

    Note

    Do not create this class yourself. Use the existing class that is exposed in the PSPDFViewController.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationStateManager
        : NSObject <PSPDFOverridable, UIPencilInteractionDelegate>

    Swift

    class AnnotationStateManager : NSObject, Overridable, UIPencilInteractionDelegate
  • Defines an annotation style.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationStyle : PSPDFModel <NSSecureCoding>

    Swift

    class AnnotationStyle : ModelObject, NSSecureCoding
  • The default implementation for the style manager.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDefaultAnnotationStyleManager
        : NSObject <PSPDFAnnotationStyleManager>

    Swift

    class PDFDefaultAnnotationStyleManager : NSObject, AnnotationStyleManager
  • An inspector that allows users to view and change the properties of annotations.

    Note

    The inspector currently only supports setting one annotation, but since long-term we want multi-select-change, the API has already been prepared for.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationStyleViewController
        : PSPDFStaticTableViewController <PSPDFFontPickerViewControllerDelegate,
                                          PSPDFStyleable, PSPDFOverridable>

    Swift

    class AnnotationStyleViewController : PDFStaticTableViewController, FontPickerViewControllerDelegate, Styleable, Overridable
  • Produces a summary of the annotations in a document.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationSummarizer : NSObject

    Swift

    class AnnotationSummarizer : NSObject
  • Shows an overview of all annotations in the current document.

    Note

    The toolbar/navigation items are populated in viewWillAppear: and can be changed in your subclass.
    See more

    Declaration

    Swift

    class AnnotationTableViewController : SearchableTableViewController, DocumentInfoController, SegmentImageProviding, Styleable, Overridable
  • The annotation toolbar allows the creation of most annotation types supported by PSPDFKit.

    To customize which annotation icons should be displayed, edit editableAnnotationTypes in PSPDFDocument. Further appearance customization options are documented in the superclass header (PSPDFFlexibleToolbar.h).

    PSPDFAnnotationToolbar needs to be used together with a PSPDFFlexibleToolbarContainerView just like its superclass PSPDFFlexibleToolbar.

    Note

    Directly updating buttons will not work. Use additionalButtons if you want to add custom buttons.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationToolbar
        : PSPDFFlexibleToolbar <PSPDFAnnotationStateManagerDelegate,
                                PSPDFOverridable>

    Swift

    class AnnotationToolbar : FlexibleToolbar, AnnotationStateManagerDelegate, Overridable
  • Specifies a list the toolbar annotation items and their grouping. The PSPDFAnnotationToolbar accepts multiple configurations and will use the most matching one.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationToolbarConfiguration : PSPDFModel

    Swift

    class AnnotationToolConfiguration : ModelObject
  • Helper for showing/hiding the toolbar on a view controller. Internally manages a PSPDFFlexibleToolbarContainer.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationToolbarController
        : PSPDFFlexibleToolbarController <PSPDFOverridable>

    Swift

    class AnnotationToolbarController : FlexibleToolbarController, Overridable
  • Generic annotation view that listens on annotation changes.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationView : UIView <PSPDFAnnotationPresenting>

    Swift

    class AnnotationView : UIView, AnnotationPresenting
  • Advanced appearance characteristics for a widget annotation. It contains additional information for constructing the annotation’s appearance stream

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAppearanceCharacteristics
        : PSPDFModel <NSSecureCoding, PSPDFOverridable>

    Swift

    class AppearanceCharacteristics : ModelObject, NSSecureCoding, Overridable
  • Coordinates appearance mode changes.

    On iOS versions prior to iOS 13, this class will update the PDF page rendering style, as well as the UI appearance of certain UI widgets when transitioning in and out of the dark interface style.

    On iOS 13 and later the this class will only change the PDF page rendering style. Any UI appearance changes should be instead handled by the host application via the delegate methods this class offers.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAppearanceModeManager : NSObject <PSPDFOverridable>

    Swift

    class PDFAppearanceModeManager : NSObject, Overridable
  • Allows the user to enable and disable the Apple Pencil.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFApplePencilController : PSPDFStaticTableViewController

    Swift

    class ApplePencilController : PDFStaticTableViewController
  • Tracks the state of use of the Apple Pencil.

    This class should not be instantiated manually but fetched from the PSPDFKitGlobal shared object.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFApplePencilManager : NSObject

    Swift

    class ApplePencilManager : NSObject
  • Default implementation that forwards calls to the app delegate.

    Declaration

    Objective-C

    
    @interface PSPDFDefaultApplication : NSObject <PSPDFApplication>

    Swift

    class DefaultApplication : NSObject, Application
  • Default extension implementation that interacts and requires an NSExtensionContext to work.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFExtensionApplication
        : PSPDFDefaultApplication <PSPDFApplication>

    Swift

    class ExtensionApplication : DefaultApplication, Application
  • The default security auditor simply returns YES for every request.

    Declaration

    Objective-C

    
    @interface PSPDFDefaultApplicationPolicy : NSObject <PSPDFApplicationPolicy>

    Swift

    class DefaultApplicationPolicy : NSObject, ApplicationPolicy
  • Abstract subclass that contains an asset from a link

    See more

    Declaration

    Objective-C

    
    @interface PSPDFAssetAnnotation : PSPDFLinkAnnotation

    Swift

    class AssetAnnotation : LinkAnnotation
  • Scroll view subclass that listens to keyboard and half modal events and moves itself up accordingly.

    Note

    delegate also queries methods listed in PSPDFAvoidingScrollViewDelegate.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFAvoidingScrollView : UIScrollView

    Swift

    class AvoidingScrollView : UIScrollView
  • Keeps track of executed Action instances, allowing us to navigate through the action history.

    Note

    This class is conceptually similar to WKBackForwardList.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFBackForwardActionList : NSObject <PSPDFOverridable>

    Swift

    class BackForwardActionList : NSObject, Overridable
  • Back and forward buttons, used for the action stack navigation.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFBackForwardButton : PSPDFStyleButton <PSPDFOverridable>

    Swift

    class BackForwardButton : StyleButton, Overridable
  • Used for various configuration options.

    See

    PSPDFConfiguration
    See more

    Declaration

    Objective-C

    
    @interface PSPDFBaseConfiguration<
        BuilderType : __kindof PSPDFBaseConfigurationBuilder *> : PSPDFModel

    Swift

    class BaseConfiguration<BuilderType> : ModelObject where BuilderType : BaseConfigurationBuilder
  • Base class for building a configuration object.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFBaseConfigurationBuilder : NSObject

    Swift

    class BaseConfigurationBuilder : NSObject
  • Abstract class for a controller that manages a table view. Adds support for hardware keyboard navigation, and automatically sizing popovers to fit the table view contents.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFBaseTableViewController : UITableViewController

    Swift

    class BaseTableViewController : UITableViewController
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFBaseViewController : UIViewController
    @end

    Swift

    class PDFBaseViewController : UIViewController
  • A PSPDFSignatureContents instance that returns zeroed data.

    Declaration

    Objective-C

    
    @interface PSPDFBlankSignatureContents : NSObject <PSPDFSignatureContents>

    Swift

    class BlankSignatureContents : NSObject, PDFSignatureContents
  • A bookmark encapsulates a PDF action and a name. It is managed by a document’s bookmark manager.

    See

    PSPDFBookmarkManager
    See more

    Declaration

    Objective-C

    
    @interface PSPDFBookmark
        : PSPDFModel <NSCopying, NSMutableCopying, NSSecureCoding, PSPDFOverridable>

    Swift

    class Bookmark : ModelObject, NSCopying, NSMutableCopying, NSSecureCoding, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFMutableBookmark : PSPDFBookmark

    Swift

    class MutableBookmark : Bookmark
  • Custom cell used for bookmarks.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFBookmarkCell
        : PSPDFThumbnailTextCell <UITextFieldDelegate, PSPDFOverridable>

    Swift

    class BookmarkCell : ThumbnailTextCell, UITextFieldDelegate, Overridable
  • Custom UIButton that sets the appropriate bookmark image based on imageType, and applies a shadow as well. The image will always have a tint applied to it, based on the normalTintColor and selectedTintColor properties These colors can be customised using regular UIAppearance APIs. To customise the appearance even further, your can use the custom image loading API to change the images.

    See

    PSPDFBookmarkIndicatorImageType
    See more

    Declaration

    Objective-C

    
    @interface PSPDFBookmarkIndicatorButton : UIButton <PSPDFOverridable>

    Swift

    class BookmarkIndicatorButton : UIButton, Overridable
  • The PSPDFBookmarkManager manages bookmarks for a given PSPDFDocument.

    You should not initialize a bookmark manager yourself but instead access it through the document’s bookmarkManager property.

    Bookmarks and PDF files

    The concept of bookmarks does not exist in a PDF document. Therefore all the bookmarks you add will be stored inside the PDF but are only read by PSPDFKit and Apple Preview. If you want to support other formats, you need to create your own bookmark provider and store them yourself.

    Subclassing

    You should not subclass PSPDFBookmarkManager. Instead attach a custom bookmark provider to achieve your desired behavior.

    Thread Safety

    PSPDFBookmarkManager is thread safe and can be accessed from any thread. To ensure multiple operations are executed as one serial block without other threads interfering, wrap you operations in performBlock: or performBlockAndWait: whenever you need to do complex operations.

    However, if you need to do something that can be achieved by calling a single method on this class (e.g. adding a bookmark or removing a known bookmark), call the appropriate method directly as it is more performant than wrapping calls in the above mentioned block calls.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFBookmarkManager : NSObject

    Swift

    class BookmarkManager : NSObject
  • Show list of bookmarks for the current document and allows editing/reordering of the bookmarks.

    See more

    Declaration

    Swift

    class BookmarkViewController : StatefulTableViewController, BookmarkTableViewCellDelegate, DocumentInfoController, SegmentImageProviding, Styleable, Overridable
  • PSPDFBrightnessManager can be used to manage the screen idle timer.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFBrightnessManager : NSObject

    Swift

    class BrightnessManager : NSObject
  • Controller to change the brightness and some related appearance options. In addition to mimicking the system brightness options it also supports additional software dimming and social appearance modes.

    Note

    Best presented as popover, configures the modalPresentationStyle accordingly at init time.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFBrightnessViewController
        : PSPDFStaticTableViewController <PSPDFOverridable>

    Swift

    class BrightnessViewController : PDFStaticTableViewController, Overridable
  • A collection of useful extensions to UIButton.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFButton : UIButton

    Swift

    class PDFButton : UIButton
  • Button Form Element (check boxes, radio buttons, regular form push buttons)

    See more

    Declaration

    Objective-C

    
    @interface PSPDFButtonFormElement : PSPDFFormElement <NSSecureCoding>

    Swift

    class ButtonFormElement : FormElement, NSSecureCoding
  • Buttons / choice form views.

    Declaration

    Objective-C

    
    @interface PSPDFButtonFormElementView : PSPDFFormElementView <PSPDFOverridable>

    Swift

    class ButtonFormElementView : PDFFormElementView, Overridable
  • Represents one button form field in a PDF form. They come in three variants:

    • A push button that can have a action attached to it.
    • A check box that can be independently checked or unchecked.
    • A radio button that are mutually exclusive.

    A PSPDFButtonFormField can be the parent of multiple buttons, like a RadioButton group.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFButtonFormField : PSPDFFormField

    Swift

    class ButtonFormField : PDFFormField
  • The PSPDFCache is responsible for managing the memory and disk cache of rendered images.

    Usually you do not access any methods of PSPDFCache directly but instead schedule a PSPDFRenderTask in a PSPDFRenderQueue which will then reach out to the cache and check if there are images available before rendering a new one.

    See

    PSPDFRenderTask
    See more

    Declaration

    Objective-C

    
    @interface PSPDFCache : NSObject

    Swift

    class PDFCache : NSObject
  • A caret annotation (PDF 1.5) is a visual symbol that indicates the presence of text edits, and share much similarity with note (text) annotations.

    Declaration

    Objective-C

    
    @interface PSPDFCaretAnnotation : PSPDFAnnotation <PSPDFOverridable>

    Swift

    class CaretAnnotation : Annotation, Overridable
  • Displays a view controller to offer selecting a signer for digitally signing a document.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFCertificatePickerViewController
        : PSPDFStatefulTableViewController <PSPDFOverridable>

    Swift

    class CertificatePickerViewController : StatefulTableViewController, Overridable
  • Choice Form Element.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFChoiceFormElement : PSPDFFormElement

    Swift

    class ChoiceFormElement : FormElement
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFChoiceFormElementView : PSPDFFormElementView <PSPDFOverridable>

    Swift

    class ChoiceFormElementView : PDFFormElementView, Overridable
  • Represents a choice form field in a PDF form. This allows the user to select one of the given options or, if isEdit is YES, enter their own option value.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFChoiceFormField : PSPDFFormField

    Swift

    class ChoiceFormField : PDFFormField
  • The PDF Circle annotations (PDF 1.3) shall display an ellipse on the page.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFCircleAnnotation
        : PSPDFAbstractShapeAnnotation <PSPDFOverridable>

    Swift

    class CircleAnnotation : AbstractShapeAnnotation, Overridable
  • A view that is suitable to display a (sticky) filtering interface for a collection view.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFCollectionReusableFilterView : UICollectionReusableView

    Swift

    class CollectionReusableFilterView : UICollectionReusableView
  • Button that shows a selected color. Highlightable.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFColorButton : PSPDFButton <PSPDFOverridable>

    Swift

    class ColorButton : PDFButton, Overridable
  • A color patch represents a single patch of colors in the UI. It contains of one or multiple colors that should be grouped together.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFColorPatch : NSObject

    Swift

    class ColorPatch : NSObject
  • A color palette is a set of color patches that are grouped together based on a specific look or theme.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFColorPalette : NSObject

    Swift

    class ColorPalette : NSObject
  • The factory used to create color pickers. Subclass this to customize your color pickers.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFColorPickerFactory : NSObject <PSPDFOverridable>

    Swift

    class ColorPickerFactory : NSObject, Overridable
  • Model class used to define custom color presets.

    See

    PSPDFStyleManager
    See more

    Declaration

    Objective-C

    
    @interface PSPDFColorPreset : PSPDFModel <PSPDFStylePreset>

    Swift

    class ColorPreset : ModelObject, PSPDFStylePreset
  • The configuration builder object offers all properties of PSPDFConfiguration in a writable version, in order to build an immutable PSPDFConfiguration object.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFConfigurationBuilder : PSPDFBaseConfigurationBuilder

    Swift

    class PDFConfigurationBuilder : BaseConfigurationBuilder
  • A PSPDFConfiguration defines the behavior of a PSPDFViewController. It uses the builder pattern via PSPDFConfigurationBuilder to create an immutable copy via a block.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFConfiguration
        : PSPDFBaseConfiguration <PSPDFConfigurationBuilder *>
    <PSPDFOverridable> @end

    Swift

    class PDFConfiguration : BaseConfiguration<PDFConfigurationBuilder>, Overridable
  • Handles conflict resolution UI presentation in response to a PSPDFDocumentUnderlyingFileChangedNotification. Invokes the delegate to perform the selected conflict resolution option when done.

    Warning

    This class manages UI and it’s methods should only be used on the main thread.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFConflictResolutionManager : NSObject <PSPDFOverridable>

    Swift

    class ConflictResolutionManager : NSObject, Overridable
  • Default container for annotations. It’s crucial that you use this class as your base class if you implement a custom annotation provider, because this class offers efficient undo/redo which otherwise is almost impossible to replicate unless you understand the PSPDFKit internals extremely well.

    This class conforms to the deprecated protocol PSPDFAnnotationProviderRefreshing. In a future release, this protocol will be removed. The reason is that this class handles refreshing internally. This class will continue to conform to PSPDFAnnotationProvider.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFContainerAnnotationProvider
        : NSObject <PSPDFAnnotationProviderRefreshing, PSPDFUndoSupport>

    Swift

    class PDFContainerAnnotationProvider : NSObject, PSPDFAnnotationProviderRefreshing, UndoSupport
  • A container view cannot draw content in itself.

    It uses a CATransformLayer as backing. This allows blend mode pass-through, and is more lightweight than a regular view.

    Note

    UIStackView uses the same trick for being a purely managing container.

    Declaration

    Objective-C

    
    @interface PSPDFContainerView : UIView

    Swift

    class PDFContainerView : UIView
  • Similar to UITabBarController but using a segmented control at the top to switch between child view controllers.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFContainerViewController
        : PSPDFBaseViewController <PSPDFStyleable, PSPDFOverridable>

    Swift

    class ContainerViewController : PDFBaseViewController, Styleable, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFContinuousScrollingLayout : PSPDFStackViewLayout

    Swift

    class ContinuousScrollingLayout : StackViewLayout
  • PSPDFConversionOperation is the base class for all PDF conversion operations.

    Warning

    Do not create instances of this class or its subclasses. They are intended to be initiated internally by PSPDFProcessor.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFConversionOperation : NSOperation

    Swift

    class ConversionOperation : Operation
  • Operation that converts a website or local URL to PDF. Needs to be executed from background thread.

    Note

    Requires the PSPDFFeatureMaskWebKitHtmlConversion feature flag.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFURLConversionOperation : PSPDFConversionOperation

    Swift

    class URLConversionOperation : ConversionOperation
  • Operation that converts a HTML string to PDF. Needs to be executed from background thread.

    Note

    Requires the PSPDFFeatureMaskWebKitHtmlConversion feature flag.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFHTMLConversionOperation : PSPDFConversionOperation

    Swift

    class HTMLConversionOperation : ConversionOperation
  • Operation that converts an attributed string to PDF. Needs to be executed from background thread.

    Note

    Requires the PSPDFFeatureMaskWebKitHtmlConversion feature flag.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFAttributedStringConversionOperation : PSPDFConversionOperation

    Swift

    class AttributedStringConversionOperation : ConversionOperation
  • Operation that converts a local Office document to PDF by sending it to a server.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFOfficeConversionOperation
        : PSPDFConversionOperation <NSProgressReporting>

    Swift

    class OfficeConversionOperation : ConversionOperation, ProgressReporting
  • An implementation of PSPDFDataProviding that acts upon a file. All file access is coordinated with file coordination (NSFileCoordinator). This class implements the optional conflict resolution methods of PSPDFCoordinatedFileDataProviding.

    Declaration

    Objective-C

    
    @interface PSPDFCoordinatedFileDataProvider
        : PSPDFFileDataProvider <PSPDFCoordinatedFileDataProviding, NSFilePresenter>

    Swift

    class CoordinatedFileDataProvider : FileDataProvider, CoordinatedFileDataProviding, NSFilePresenter
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFCryptoInputStream : NSInputStream
    
    /// Returns nil if the encryption feature is not enabled.
    - (nullable instancetype)initWithInputStream:(NSInputStream *)stream decryptionBlock:(nullable NSInteger (^)(PSPDFCryptoInputStream *superStream, uint8_t *buffer, NSInteger len))decryptionBlock;
    
    /**
     Set the decryption handler. If no decryption block is called, this input stream will simply pass the data through.
     Return the length of the decrypted buffer. This block is assuming you are decrypting inline.
    
     @note Set this property before the input stream is being used.
     */
    @property (nonatomic, copy) NSInteger (^decryptionBlock)(PSPDFCryptoInputStream *stream, uint8_t *buffer, NSInteger len);
    
    @end

    Swift

    class CryptoInputStream : InputStream
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFCryptoOutputStream : NSOutputStream
    
    /// Returns nil if the encryption feature is not enabled.
    - (nullable instancetype)initWithOutputStream:(NSOutputStream *)stream encryptionBlock:(NSData * (^)(PSPDFCryptoOutputStream *stream, const uint8_t *buffer, NSUInteger len))encryptionBlock;
    
    /**
     Set the encryption handler. If no encryption block is called, this output stream will simply pass the data through.
     
     @note Set this property before the output stream is being used.
     */
    @property (nonatomic, copy) NSData * (^encryptionBlock)(PSPDFCryptoOutputStream *stream, const uint8_t *buffer, NSUInteger len);
    
    @end

    Swift

    class CryptoOutputStream : OutputStream
  • Simple class that encrypts/decrypts files in a format compatible to PSPDFAESCryptoDataProvider.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFCryptor : NSObject

    Swift

    class Cryptor : NSObject
  • An implementation of PSPDFDataProviding that operates on a single NSData.

    This may be used to initialize PSPDFDocument with data.

    Warning

    You might want to set a custom UID otherwise the UID will be calculated from a part of the PDF contents, which might be the same if the files are similar.

    Note

    When using this data provider, PSPDFKit is unable to automatically save annotation changes back into the PDF. Keep in mind that iOS is an environment without virtual memory. Loading a large PDF will simply get your app killed by the iOS watchdog while you try to allocate more memory than is available.

    If you use NSData because of encryption, look into PSPDFAESCryptoDataProvider or a custom implementation of PSPDFDataProviding instead for a way to dynamically decrypt the needed portions of the PDF.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDataContainerProvider : NSObject <PSPDFDataProviding>

    Swift

    class DataContainerProvider : NSObject, DataProviding
  • Declaration

    Objective-C

    
    @interface PSPDFDataContainerSink : NSObject <PSPDFDataSink>

    Swift

    class DataContainerSink : NSObject, DataSink
  • The digital signature coordinator handles signing and presenting a digitally signed document. Signing a document with a certificate creates a readonly copy, as the file has to be completely re-written.

    Note

    Depending on your application logic you will want to choose where to store this new file. PSPDFKit suggests a randomized temporary folder + file name as default location.

    Register your subclass via overrideClass:withClass: on the configuration object. Don’t instantiate an object of this class yourself.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDigitalSignatureCoordinator : NSObject <PSPDFOverridable>

    Swift

    class DigitalSignatureCoordinator : NSObject, Overridable
  • Note

    Requires the PSPDFFeatureMaskDigitalSignatures feature flag.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDigitalSignatureReference : NSObject

    Swift

    class DigitalSignatureReference : NSObject
  • Represents a possible destination directory.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDirectory : PSPDFModel <NSSecureCoding>

    Swift

    class Directory : ModelObject, NSSecureCoding
  • The disk cache persists its metadata on disk together with the images and provides cached images even after the app restarts.

    The disk cache is designed to store and fetch images, including metadata, in a fast way. No actual images will be held in memory (besides during the time they are scheduled for writing to disk).

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDiskCache : NSObject

    Swift

    class DiskCache : NSObject
  • The PSPDFDocument class represents a set of PDF sources that are displayed as one document.

    The PDF sources are internally represented as data providers (implementations of the PSPDFDataProviding protocol). The typical use case is to initialize the document with a single fileURL, which creates an implicit PSPDFCoordinatedFileDataProvider by default. You can also opt to use NSData or custom implementations of PSPDFDataProviding as sources during initialization.

    This object can be created on any thread. Accessing properties is thread safe but might take some time, as the underlying PDF documents need to be processed to fetch data like pageCount or title. The document builds an internal cache, so subsequent access is faster. For this reason, ensure that document objects are not created/destroyed randomly for maximum efficiency.

    PSPDFDocument supports NSFastEnumeration by enumerating over its documentProviders. The document providers are internal wrappers around the data providers created during initialization.

    Note

    Not all state is archived with NSCoder.

    Note

    Ensure that a PSPDFDocument is only opened by one PSPDFViewController at any time. Also ensure that subclasses do not implement their own equality semantics, and instead use the UID property to check if two documents are equal.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocument
        : NSObject <PSPDFDocumentProviderDelegate, PSPDFOverridable, NSCopying,
                    NSSecureCoding, NSFastEnumeration,
                    PSPDFFileCoordinationDelegate>

    Swift

    class Document : NSObject, DocumentProviderDelegate, Overridable, NSCopying, NSSecureCoding, NSFastEnumeration, FileCoordinationDelegate
  • A checkpointer handles autosaving of annotations for recovery in case of a crash that occurs without saving. A checkpoint is a small file that contains all the changes made to the document that haven’t been saved. The checkpoint is created according to the strategy. On a save of the document, it is automatically deleted.

    Note

    Checkpoints are not supported for multi-provider PSPDFDocuments, or documents that are encrypted.

    Note

    This class is thread safe.

    Note

    You must not create instances of this class yourself, and instead use the checkpointer property on PSPDFDocument.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentCheckpointer : NSObject

    Swift

    class DocumentCheckpointer : NSObject
  • Manages document editing. Supports operations such as remove, move, rotate and add page.

    Note

    This class requires the Document Editor component to be enabled for your license.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentEditor : NSObject <PSPDFOverridable>

    Swift

    class PDFDocumentEditor : NSObject, Overridable
  • The thumbnail cell class used for the document editor.

    Declaration

    Objective-C

    
    @interface PSPDFDocumentEditorCell : PSPDFPageCell <PSPDFOverridable>

    Swift

    class DocumentEditorCell : PDFPageCell, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentEditorConfigurationBuilder
        : PSPDFBaseConfigurationBuilder
  • Configuration options for various document editor controllers.

    Note

    Set the configuration values before passing this object to view controllers for display.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentEditorConfiguration
        : PSPDFBaseConfiguration <PSPDFDocumentEditorConfigurationBuilder *>
  • Represents a page size option for new pages.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPageSize : PSPDFModel <NSSecureCoding>

    Swift

    class PageSize : ModelObject, NSSecureCoding
  • Define a compression used for image compression.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFCompression : PSPDFModel <NSSecureCoding>

    Swift

    class Compression : ModelObject, NSSecureCoding
  • A flexible toolbar with various document editing functions.

    Note

    This class requires the Document Editor component to be enabled for your license.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentEditorToolbar : PSPDFFlexibleToolbar <PSPDFOverridable>

    Swift

    class PDFDocumentEditorToolbar : FlexibleToolbar, Overridable
  • Manages the document editor toolbar state and presents various document editing controllers.

    Note

    This class requires the Document Editor component to be enabled for your license.
    See more

    Declaration

    Swift

    class PDFDocumentEditorToolbarController : FlexibleToolbarController, PDFDocumentEditorDelegate, PDFNewPageViewControllerDelegate, PDFNewPageViewControllerDataSource, SaveViewControllerDelegate, Overridable
  • The main view controller for document editing. Shows a collection view with page thumbnails that reflect the document editor changes. Selection is performed on this object and the selection state is then forwarded to toolbarController.

    Note

    This class requires the Document Editor component to be enabled for your license.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentEditorViewController
        : UICollectionViewController <
              PSPDFViewModePresenter, PSPDFDocumentEditorDelegate,
              PSPDFFlexibleToolbarContainerDelegate, PSPDFOverridable>

    Swift

    class PDFDocumentEditorViewController : UICollectionViewController, ViewModePresenter, PDFDocumentEditorDelegate, FlexibleToolbarContainerDelegate, Overridable
  • PSPDFDocumentFeatures provides the main interface for querying features and registering observers.

    It conforms to PSPDFDocumentFeaturesSource itself, but additionally to the document features source protocol it also guarantees that it implements all methods of this protocol. Therefore it is save to query every feature on an instance of this class without checking its availability for.

    Usually you access this class through PSPDFDocument‘s features property. So if you, for example, want to check if a document can be modified, you can check document.features.canModify.

    See

    -[PSPDFDocument features]

    Threading

    PSPDFDocumentFeatures is thread safe and can be used from any thread. This also means that your custom sources will be called from various threads and queues. Do not rely on being called on a particular thread in your custom sources.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentFeatures : NSObject <PSPDFDocumentFeaturesSource>

    Swift

    class PDFDocumentFeatures : NSObject, PDFDocumentFeaturesSource
  • Coordinates a common view controller for document metadata, such as outline, bookmarks or annotations.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentInfoCoordinator : NSObject <PSPDFOverridable>

    Swift

    class DocumentInfoCoordinator : NSObject, Overridable
  • Document Info View Controller.

    Present and allows to edit the most common PDF Document properties (metadata). Changes are applied to the document automatically.

    See more

    Declaration

    Swift

    class PDFDocumentInfoViewController : PDFStaticTableViewController, DocumentInfoController, SegmentImageProviding, Styleable, Overridable
  • This class allows you to modify a PDF document’s metadata. Metadata is defined in two ways in the PDF spec (§ 14.3):

    Info dictionary support

    All values specified in the Info dictionary are represented by the following types:

    • NSString
    • NSNumber
    • NSDate
    • NSArray<id>: can include any of the types mentioned.
    • NSDictionary<NSString*, id>: value can be any of the types mentioned.

    These types can be combined in any way you see fit and it will be converted into the proper PDF types.

    Note

    The PDF stream type is not yet supported.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentPDFMetadata : NSObject

    Swift

    class PDFMetadata : NSObject
  • UITableViewCell subclass representing a document. Used in PSPDFDocumentPickerController.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentPickerCell : PSPDFTableViewCell

    Swift

    class PDFDocumentPickerCell : PDFTableViewCell
  • Shows all documents available in the specified directory or the the documents set directly. By default this will enqueue all documents into the default PSPDFLibrary for FTS.

    Uses a UISearchController internally.

    Note

    This controller should be presented embedded in a UINavigationController. Failing to do so might lead to issues with the search UI.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentPickerController
        : PSPDFStatefulTableViewController <UISearchDisplayDelegate,
                                            UISearchBarDelegate>

    Swift

    class PDFDocumentPickerController : StatefulTableViewController, UISearchDisplayDelegate, UISearchBarDelegate
  • Shows status of indexing while we’re indexing or searching.

    Declaration

    Objective-C

    
    @interface PSPDFDocumentPickerIndexStatusCell : PSPDFSpinnerCell

    Swift

    class DocumentPickerIndexStatusCell : PDFSpinnerCell
  • A PSPDFDocument consists of one or multiple PSPDFDocumentProvider‘s. Each document provider has exactly one data source (file/data/dataProvider)

    Note

    This class is used within PSPDFDocument and should not be instantiated externally.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentProvider : NSObject <PSPDFOverridable>

    Swift

    class PDFDocumentProvider : NSObject, Overridable
  • This class describes the security options you want to use when saving a PDF file. Using a security options object overrides the default options of a file.

    A PDF file can have multiple security-related options set. The owner password generally controls the editing of a document and is required as soon as you want to encrypt a document of any kind. The user password prevents users from viewing the PDF. It is optional but if you specify it you also need to specify an owner password.

    You can also specify the key length of the encryption. This controls how large the key is that is used for actually encrypting the document. The key is derived from the passwords you specify. As soon as you specify at least an owner password you also need to decide on a key length to be used. You can also specify PSPDFDocumentSecurityOptionsKeyLengthAutomatic in all cases and let PSPDFKit decide on if and what key length to use.

    To specify what operations are allowed when opening the document with user privileges you can also set PSPDFDocumentPermissions. With user privileges you can always view the file in question and by specifying PSPDFDocumentPermissions you can grant further rights that otherwise would only be available when the user has owner privileges.

    PSPDFKit supports two encryption algorithms: RC4 and AES. RC4 is a proprietary encryption algorithm of RSA Security Inc. It is a symmetric stream cipher, ie. the same algorithm is used for both encryption and decryption, and the algorithm does not change the length of the data. AES support was introduced with PDF 1.6. It is a symmetric block cipher, ie. the same algorithm is used for both encryption and decryption, and the length of the data when encrypted is rounded up to a multiple of the block size, which is fixed in this implementation to always be 16 bytes.

    Note

    In order to use this class, you need a license that enables you to use the Document Editor. If you want to process a file while keeping the options of the original file, simply pass nil for security options.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentSecurityOptions : NSObject
  • Document Security and Permissions View Controller.

    Present and allows to edit the PDF Document permissions and passwords.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentSecurityViewController
        : PSPDFStaticTableViewController <PSPDFDocumentInfoController,
                                          PSPDFStyleable, PSPDFOverridable>

    Swift

    class PDFDocumentSecurityViewController : PDFStaticTableViewController, DocumentInfoController, Styleable, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentSharingConfigurationBuilder
        : PSPDFBaseConfigurationBuilder

    Swift

    class DocumentSharingConfigurationBuilder : BaseConfigurationBuilder
  • A PSPDFDocumentSharingConfiguration instance configures how the sharing view controller behaves, and what options it lets the user customize.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentSharingConfiguration
        : PSPDFBaseConfiguration <PSPDFDocumentSharingConfigurationBuilder *>

    Swift

    class DocumentSharingConfiguration : BaseConfiguration<DocumentSharingConfigurationBuilder>
  • Displays an interface that allows the user to pick a set of options that determine how a set of PDF files should be processed before being shared to a destination. By default, the user can choose the file type, the page range, and how annotations should be handled.

    Documents can be shared to different Destinations specified by the PSPDFDocumentSharingDestination enumeration. By default, the PSPDFDocumentSharingViewController will share toPSPDFDocumentSharingDestinationActivity, which will let the user pick the ultimate action for the generated documents via a UIActivityViewController instance (which can be customized via the -activityViewControllerForSharingItems:sender: method.).

    A single PSPDFDocumentSharingViewController instance can offer multiple destinations to share the documents to to the user — they will be represented on a segmented control on the navigation bar of the sharing view controller. However, a Share can only be performed to a single destination at a time. To add Destinations to the list the user can choose from, create a PSPDFDocumentSharingConfiguration object and set the appropriate value on its builder’s destination property, then add that configuration to the sharingConfigurations property on the sharing view controller.

    Please note that Destinations are exclusive per sharing view controller instance, so you can’t have 2 or more configurations with the same destination set.

    Once the instance has been configured appropriately, call -presentFromViewController:sender: on it to present the UI.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentSharingViewController
        : PSPDFStaticTableViewController <PSPDFStyleable, PSPDFOverridable>

    Swift

    class PDFDocumentSharingViewController : PDFStaticTableViewController, Styleable, Overridable
  • The document view controller is the starting point for visualizing a document on screen. It groups all the UI that deals with showing documents on screen and controls the view hierarchy and the layout.

    The Layout

    The main way of controlling how a layout looks is through PSPDFDocumentViewLayout. While PSPDFKit provides you with a set of default layouts such as a continuous scrolling layout, a paginated scroll per spread layout and a curl based layout, layouts are meant to be fully customizable so you can adopt PSPDFKit to your design perfectly.

    To customize a design you can start by changing properties on a design provided by PSPDFKit. If this is not enough, PSPDFDocumentViewLayout and its subclasses provide various levels of entry points to best fit what your desired outcome is.

    You can either subclass PSPDFContinuousScrollingLayout or PSPDFScrollPerSpreadLayout if you want a layout similar to these two but only need a couple of tweaks. If you want to have more control but your layout still follows the general idea of a layout that scrolls in a single direction, either vertically or horizontally, PSPDFStackViewLayout, gives you a lot of control while covering the basics and a couple of convenience methods that make your life easier. This should be enough control for almost all designs. However if your design is very specific, we also give you the same base class all of our own layouts use: PSPDFDocumentViewLayout. With this layout you need to do everything on your own but there should be pretty much no limitations on what to do with it.

    To get you started with implementing your own layout, check out the documentation for PSPDFDocumentViewLayout.

    The Hierarchy

    The document view hierarchy can be seen in the following diagram.

    ╔═══════════════════════════╗         ┌───────────────────────────┐
      DocumentViewController              PSPDFDocumentViewLayout  
                               ║────────▶│                           
    ╚═══════════════════════════╝         └───────────────────────────┘
    ┌───────────────────────────┐
           UIScrollView        
       (scrolling & zooming)   │◀───┐            Depending on
    └───────────────────────────┘         spreadBasedZooming either
    ┌───────────────────────────┐    ├──── one of these scroll views
           UIScrollView                 is responsible for zooming
             (zooming)         │◀───┘            the content.
    └───────────────────────────┘
    ╔═══════════════════════════╗
            SpreadView         
                               
    ╚═══════════════════════════╝
    ╔═══════════════════════════╗
             PageView          
                               
    ╚═══════════════════════════╝
    
    ┌─────────────────────────────────────────────────────────────────┐
                   ─── Public, ═══ Public & Subclassable             
    └─────────────────────────────────────────────────────────────────┘
    

    Continuous Spread Index

    Usually you should prefer the integer based spreadIndex APIs. The spreadIndex is less complex and does the necessary conversion to the continuous spread index for you. However there are usecases where you need floating point precision for the current scrolling position.

    The continuousSpreadIndex maps the spreads of the document on to the viewport in a size independent way. That means that no matter what size a spread is displayed on and also no matter what other spread sizes are already known of a document, the continuous spread index remains stable. E.g. a continuous spread index of 2.5 will always refer to the center of spread 2.

    In the places where a continuous spread index is related to a certain position in the view hierarchy, it is related to the center of the current viewport. So if you call continuousSpreadIndex you will receive the continuous spread index that is currently shown at the center of the document view controller’s view.

    If you implement your own custom layout and this layout does not build on top of PSPDFStackViewLayout, you may need to deal with the continuous spread index though and do calculations between the continuous spread index and the content offset yourself. For that it is important how the function of the continuous spread index looks. It is a monotonically increasing function over all spreads of a document. Its valid range is [0, spreadCount). Note that it is monotonically, but not strictly monotonically increasing. The spaces between spread are not considered to be a part of a spread, therefore in this area, the continuous spread index does not change. E.g. spread 2 has a range of [2, 3), then there is the interitem spacing between spread 2 and 3 where the continuous spread index is 3 and only when you start scrolling into spread 3, the continuous spread index starts increasing again in the range of [3, 4) for this spread.

    3.0 ─│               
                       
                            This diagram shows how the continuous spread index
                            is calculated over the spreads. In the gap between
    2.0 ─│         ╱─╱        two spreads, the continuous spread index is not
                            changing.
                
                            Inside each spread, the continuous spread index is
    1.0 ─│   ╱─╱              linear in the range [i, i+1).
           
          
         │╱
         ╳────────────────
         ┌───┐ ┌───┐ ┌───┐
                    
          0   1   2 
                    
         └───┘ └───┘ └───┘
    
    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentViewController : UIViewController <PSPDFOverridable>

    Swift

    class PDFDocumentViewController : UIViewController, Overridable
  • Undocumented

    Declaration

    Objective-C

    @interface PSPDFDocumentViewLayoutInvalidationContext : UICollectionViewLayoutInvalidationContext @end

    Swift

    class PSPDFDocumentViewLayoutInvalidationContext : UICollectionViewLayoutInvalidationContext
  • A document view layout controls how a document is visualized on screen. It controls where a spread (a set of pages) is placed on the screen and how scrolling and zooming behaves.

    Subclassing

    PSPDFDocumentViewLayout is an abstract base class meant for subclassing. You can either subclass PSPDFContinuousScrollingLayout or PSPDFScrollPerSpreadLayout if you want a layout similar to these two but only need a couple of tweaks. If you want to have more control but your layout still follows the general idea of a layout that scrolls in a single direction, either vertically or horizontally, PSPDFStackViewLayout, the superclass of the two aforementioned layouts, gives you a lot of control while covering the basics and a couple of convenience methods that make your life easier. This should be enough control for almost all designs. However if your design is very specific, we also give you the same base class all of our own layouts use: PSPDFDocumentViewLayout. With this layout you need to do everything on your own but there are almost no limitations on what to do with it.

    Spreads

    The main thing that a document view layout cares about is a spread; this is what it calculates the position of. A spread is a collection of pages that are always viewed together. If you have the most basic layout, a layout with its spread mode set to single, every spread corresponds to a single page in the document, which means the amount of spreads is equal to the amount of pages. However you can also have a double paged layout or a book layout. To convert between pages and spreads, PSPDFDocumentViewLayout provides you with helper methods. To make your layout work with all spread modes, it is important that you use these methods for conversion and, in case you want to implement your own spreading algorithms, override these methods and make them do the proper conversion, otherwise your layout may not work correctly in all cases.

    UICollectionViewLayout

    It is very important to keep in mind that a document view layout is based on UICollectionViewLayout and that this is what is used to calculate the position of a spread on the screen in the end. PSPDFDocumentViewLayout and especially its subclass PSPDFStackViewLayout offer you convenience methods that hide a lot of the complexity of collection views but depending on how the layout you are building should look, keep in mind that all the collection view layout methods can be used as well.

    While the collection view layout works with index paths as its item identifying object, the document view layout does not need multiple levels of indexes. Each layout only needs to deal with one section. The important identifier for a document view layout is the spread index an item is representing. Therefore all the methods a PSPDFDocumentViewLayout and its subclasses offer refer to the spread index instead of an index path. For most layouts you will not come into contact with any of the index path based methods, but in case you do need them, PSPDFKit offers you two new methods on NSIndexPath to easily convert between index paths and spread indexes: +[NSIndexPath pspdf_indexPathForSpreadAtIndex:] and -[NSIndexPath pspdf_spreadIndex]. You should always use these methods to convert back and forth between spread indexes and index paths and not make any assumptions about how an index path maps to a spread index.

    Additional APIs

    Aside from the collection view layout, a document view layout also offers a few additional things that the document view controller and its views use to determine other behaviours, such as how zooming behaves (spreadBasedZooming), how spreads map to pages, and how the actual view hierarchy is positioned in relation to the view controller’s view (scrollViewFrameInsets).

    Make sure to use the methods PSPDFDocumentViewLayout and its subclasses offer instead of just implementing everything by overriding the collection view layout methods. If you override one of the collection view layout methods, it is up to you to make sure that other methods such as spreadIndexForPageAtIndex:, pageRangeForSpreadAtIndex:, continuousSpreadIndexForContentOffset:, or contentOffsetForContinuousSpreadIndex: don’t return conflicting values or otherwise you might get unexpected results.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentViewLayout : UICollectionViewLayout

    Swift

    class PDFDocumentViewLayout : UICollectionViewLayout
  • This class allows you to modify a PDF document’s metadata. Metadata is defined in two ways in the PDF spec (§ 14.3):

    XMP support

    This class implements limited XMP support. You can only set and retrieve simple strings.

    Namespaces

    Each key in the XMP metadata stream has to have a namespace set. You can define your own namespace or use one of the already existing ones. PSPDFKit exposes two constants for common namespaces:

    When setting a value, you also have to pass along a suggested namespace prefix, as this can’t be automatically generated.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDocumentXMPMetadata : NSObject

    Swift

    class XMPMetadata : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFDownloadManager : NSObject
    
    PSPDF_EMPTY_INIT_UNAVAILABLE
    
    #pragma mark Configuration
    
    /// The maximum number of concurrent downloads. Defaults to 2.
    /// If `enableDynamicNumberOfConcurrentDownloads` is enabled, this property will change dynamically
    /// and must be considered readonly.
    @property (nonatomic) NSUInteger numberOfConcurrentDownloads;
    
    /// Enable this property to let `PSPDFDownloadManager` decide what the best number of concurrent downloads
    /// is depending on the network connection. Defaults to YES.
    @property (nonatomic) BOOL enableDynamicNumberOfConcurrentDownloads;
    
    /// The `PSPDFDownloadManager` delegate.
    @property (nonatomic, weak) id<PSPDFDownloadManagerDelegate> delegate;
    
    /// Controls if objects that are currently loading when the app moves to the background
    /// should be completed in the background. Defaults to YES. iOS only.
    @property (nonatomic) BOOL shouldFinishLoadingObjectsInBackground;
    
    #pragma mark Enqueueing and Dequeueing Objects
    
    /// See enqueueObject:atFront:. Enqueues the object at the end of the queue.
    - (void)enqueueObject:(id<PSPDFRemoteContentObject>)object;
    
    /// Enqueues an `PSPDFRemoteContentObject` for download. If the object is already downloading,
    /// nothing is enqueued. If the object has been downloaded previously and has failed, it will be
    /// removed from the failedObjects array and re-enqueued.
    ///
    /// @param object The object to enqueue.
    /// @param enqueueAtFront Set this to YES to add the object to the front of the queue.
    - (void)enqueueObject:(id<PSPDFRemoteContentObject>)object atFront:(BOOL)enqueueAtFront;
    
    /// Calls enqueueObject:atFont: multiple times. Enqueues the object at the end of the queue.
    ///
    /// @param objects need to implement the `PSPDFRemoteContentObject` protocol.
    - (void)enqueueObjects:(NSArray<id<PSPDFRemoteContentObject>> *)objects;
    
    /// Calls enqueueObject:atFont: multiple times.
    ///
    /// @param objects need to implement the `PSPDFRemoteContentObject` protocol.
    - (void)enqueueObjects:(NSArray<id<PSPDFRemoteContentObject>> *)objects atFront:(BOOL)enqueueAtFront;
    
    /// Cancels the download process for the given object.
    ///
    /// @param object The object to be cancelled.
    - (void)cancelObject:(id<PSPDFRemoteContentObject>)object;
    
    /// Calls `cancelObject:` for all objects in `pendingObjects`, `loadingObjects`, and `failedObjects`.
    - (void)cancelAllObjects;
    
    #pragma mark State
    
    /// The current reachability of the device.
    @property (nonatomic, readonly) PSPDFReachability reachability;
    
    /// Contains all objects waiting to be downloaded.
    @property (nonatomic, copy, readonly) NSArray<id<PSPDFRemoteContentObject>> *waitingObjects;
    
    /// Contains all currently loading objects.
    @property (nonatomic, copy, readonly) NSArray<id<PSPDFRemoteContentObject>> *loadingObjects;
    
    /// Contains all objects that have failed because of a network error and are scheduled for retry.
    @property (nonatomic, copy, readonly) NSArray<id<PSPDFRemoteContentObject>> *failedObjects;
    
    /// Helper that iterates loadingObjects, waitingObjects and failedObjects (in that order) and returns all matches.
    - (NSArray<id<PSPDFRemoteContentObject>> *)objectsPassingTest:(BOOL (^)(id<PSPDFRemoteContentObject> obj, NSUInteger index, BOOL *stop))predicate;
    
    /// Checks if the given object is currently handled by the download manager.
    ///
    /// @param object The object.
    /// @return YES if the download manager handles the object, that is if it is either pending, loading or failed.
    - (BOOL)handlesObject:(id<PSPDFRemoteContentObject>)object;
    
    /// Checks and returns the current state of a given object. If the object has never been enqueued,
    /// `PSPDFDownloadManagerObjectStateNotHandled` will be returned.
    ///
    /// @param object The object.
    /// @return The state of the object.
    - (PSPDFDownloadManagerObjectState)stateForObject:(id<PSPDFRemoteContentObject>)object;
    
    @end

    Swift

    class DownloadManager : NSObject
  • This configuration builder offers all properties of PSPDFDragAndDropConfiguration in a writable version.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDragAndDropConfigurationBuilder : PSPDFBaseConfigurationBuilder

    Swift

    class DragAndDropConfigurationBuilder : BaseConfigurationBuilder
  • Used to configure various drag and drop options, on how and where it should work. Set the object you create here on PSPDFConfiguration.dragAndDropConfiguration.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDragAndDropConfiguration
        : PSPDFBaseConfiguration <PSPDFDragAndDropConfigurationBuilder *>

    Swift

    class DragAndDropConfiguration : BaseConfiguration<DragAndDropConfigurationBuilder>
  • PSPDFDrawView allows drawing or erasing on top of a PSPDFPageView and handles new annotation creation.

    Unless otherwise noted, boxed points need to be of type PSPDFDrawingPoint.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDrawView
        : PSPDFContainerView <PSPDFAnnotationPresenting, PSPDFOverridable>

    Swift

    class DrawView : PDFContainerView, AnnotationPresenting, Overridable
  • The default appearance stream generator.

    Calls -[PSPDFAnnotation drawInContext:options:] and transforms it into an appearance stream.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDrawingContextAppearanceStreamGenerator
        : NSObject <PSPDFAppearanceStreamGenerating>

    Swift

    class DrawingContextAppearanceStreamGenerator : NSObject, AppearanceStreamGenerating
  • Represents a change that was performed by PSPDFDocumentEditor.

    See

    PSPDFDocumentEditor
    See more

    Declaration

    Objective-C

    
    @interface PSPDFEditingChange : PSPDFModel

    Swift

    class PDFEditingChange : ModelObject
  • Represents an embedded file.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFEmbeddedFile : PSPDFModel

    Swift

    class EmbeddedFile : ModelObject
  • Undocumented

    Declaration

    Objective-C

    
    @interface PSPDFEmbeddedFileCell
        : PSPDFNonAnimatingTableViewCell <PSPDFOverridable>

    Swift

    class EmbeddedFileCell : NonAnimatingTableViewCell, Overridable
  • Shows a list of all embedded files.

    See more

    Declaration

    Swift

    class EmbeddedFilesViewController : StatefulTableViewController, DocumentInfoController, SegmentImageProviding, Overridable
  • An embedded go-to action (PDF 1.6) is similar to a remote go-to action but allows jumping to or from a PDF file that is embedded in another PDF file.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFEmbeddedGoToAction : PSPDFGoToAction

    Swift

    class EmbeddedGoToAction : GoToAction
  • Draws a circle shape representing the user touch during erasing.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFEraseOverlay : UIView <PSPDFOverridable>

    Swift

    class EraseOverlay : UIView, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFile : PSPDFModel

    Swift

    class File : ModelObject
  • PDF File Attachment Annotation (see 12.5.6.15, “File attachment annotations”). A file attachment annotation (PDF 1.3) contains a reference to a file, which typically shall be embedded in the PDF file (see 7.11.4, “Embedded file streams”).

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFileAnnotation : PSPDFAnnotation <PSPDFOverridable>

    Swift

    class FileAnnotation : Annotation, Overridable
  • An implementation of the PSPDFAnnotationProvider protocol that uses the PDF document as source/target to load/save annotations. You almost always want to use the PSPDFFileAnnotationProvider in your PSPDFAnnotationManager. You can also use this class inside a custom annotation provider, to parse PDF annotations once and then manage them in your custom database.

    Note

    Subclassing PSPDFFileAnnotationProvider will lead to slower PSPDFProcessor performance and is strongly discouraged. This will be blocked in future versions.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFFileAnnotationProvider
        : PSPDFContainerAnnotationProvider <PSPDFOverridable>

    Swift

    class PDFFileAnnotationProvider : PDFContainerAnnotationProvider, Overridable
  • An appearance stream generator that takes an NSURL to any PDF file and returns it as the appearance stream.

    Custom appearance streams are only intended to be used with stamp annotations to create a vector stamp. Using this class with other annotation types is not supported.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFileAppearanceStreamGenerator
        : NSObject <PSPDFAppearanceStreamGenerating>

    Swift

    class FileAppearanceStreamGenerator : NSObject, AppearanceStreamGenerating
  • An implementation of PSPDFDataProviding that acts upon a file.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFileDataProvider : NSObject <PSPDFFileDataProviding>

    Swift

    class FileDataProvider : NSObject, FileDataProviding
  • A data sink backed by a file on disk

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFileDataSink : NSObject <PSPDFDataSink>

    Swift

    class FileDataSink : NSObject, DataSink
  • This class encapsulates the metadata associated with a document used in the PSPDFLibraryFileSystemDataSource

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFileIndexItemDescriptor : NSObject <NSSecureCoding>

    Swift

    class FileIndexItemDescriptor : NSObject, NSSecureCoding
  • The default file manager implementation is a thin wrapper around NSFileManager.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFDefaultFileManager : NSObject <PSPDFFileManager>

    Swift

    class DefaultFileManager : NSObject, FileManager
  • Coordinates file presenters and notifications. Observed presenters are automatically unregistered in response to UIApplicationDidEnterBackgroundNotification notification.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFilePresenterCoordinator : NSObject

    Swift

    class FilePresenterCoordinator : NSObject
  • A custom toolbar, that can dragged around the screen and anchored to different positions.

    This class holds an array of UIButton objects. For best results use PSPDFToolbarButton or one of its subclasses. PSPDFFlexibleToolbar should be used in combination with a PSPDFFlexibleToolbarContainer instance. The bar’s visual appearance can be customized using UIAppearance compliant properties.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFlexibleToolbar : PSPDFToolbar

    Swift

    class FlexibleToolbar : Toolbar
  • The flexible toolbar container holds and manages a PSPDFFlexibleToolbar instance. Its main responsibilities include toolbar anchoring and drag & drop handling. Add this view to your view hierarchy (a good candidate might be the UINavigationController’s view).

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFlexibleToolbarContainer : UIView

    Swift

    class FlexibleToolbarContainer : UIView
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFFlexibleToolbarController : NSObject<PSPDFFlexibleToolbarContainerDelegate>
    
    PSPDF_EMPTY_INIT_UNAVAILABLE
    
    /// Initialize with toolbar. Required.
    - (instancetype)initWithToolbar:(PSPDFFlexibleToolbar *)toolbar NS_DESIGNATED_INITIALIZER;
    
    /// Displayed toolbar.
    @property (nonatomic, readonly) PSPDFFlexibleToolbar *toolbar;
    
    /// The flexible toolbar container. Set to `nil` when the toolbar is not visible.
    @property (nonatomic, readonly, nullable) PSPDFFlexibleToolbarContainer *flexibleToolbarContainer;
    
    /// Returns YES whenever the toolbar is visible. If the toolbar is currently animating out, this will be already set to NO.
    @property (nonatomic, getter=isToolbarVisible, readonly) BOOL toolbarVisible;
    
    /// Shows or hides the toolbar (animated).
    - (void)toggleToolbarAnimated:(BOOL)animated completion:(nullable void (^)(BOOL finished))completionBlock;
    
    /// Show the toolbar, if not currently visible.
    ///
    /// @return Whether the toolbar was actually shown.
    /// @note Configure the `hostView` before first showing the toolbar.
    - (BOOL)showToolbarAnimated:(BOOL)animated completion:(nullable void (^)(BOOL finished))completionBlock;
    
    /// Hide the toolbar, if currently shown.
    ///
    /// @return Whether the toolbar was actually hidden.
    - (BOOL)hideToolbarAnimated:(BOOL)animated completion:(nullable void (^)(BOOL finished))completionBlock;
    
    /// Configures the `hostView`, `hostToolbar` and `hostViewController` for your setup.
    ///
    /// @property hostView Can be nil unless it's an unusual setup. When `nil`, `viewController` or `container` are used to determine an appropriate host view.
    /// @property container Might be a `UIBarButtonItem` or a `UIView` class that sits on the `hostToolbar`. If `nil`, the parent bar will be inferred from the `viewController`.
    /// @property viewController A hook will be installed, if non-nil, to auto-hide the toolbar as the controller disappears.
    - (void)updateHostView:(nullable UIView *)hostView container:(nullable id)container viewController:(nullable UIViewController *)viewController;
    
    /// The host view for the `PSPDFFlexibleToolbarContainer`.
    ///
    /// @see `updateHostView:container:viewController:`
    @property (nonatomic, readonly, nullable) UIView *hostView;
    
    /// The UIToolbar / UINavigationBar that is used to anchor the toolbar.
    ///
    /// @see `updateHostView:container:viewController:`
    @property (nonatomic, readonly, nullable) UIView<PSPDFSystemBar> *hostToolbar;
    
    /// The view controller that is presenting the toolbar.
    ///
    /// @see `updateHostView:container:viewController:`
    @property (nonatomic, weak, readonly) UIViewController *hostViewController;
    
    @end

    Swift

    class FlexibleToolbarController : NSObject, FlexibleToolbarContainerDelegate
  • Toolbar drag & drop indicator view.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFlexibleToolbarDragView : UIView

    Swift

    class FlexibleToolbarDragView : UIView
  • Font picker that allows the user to select a font and customize the style.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFontPickerViewController
        : PSPDFPickerTableViewController <PSPDFOverridable>

    Swift

    class FontPickerViewController : PickerTableViewController, Overridable
  • Represents a PDF form element.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFormElement : PSPDFWidgetAnnotation <NSSecureCoding>

    Swift

    class FormElement : WidgetAnnotation, NSSecureCoding
  • Generic view for form elements. Adds the form accessory view and additional keyboard support. Form views are not synced with the page to allow snappier editing.

    Declaration

    Objective-C

    
    @interface PSPDFFormElementView
        : PSPDFHostingAnnotationView <PSPDFFormInputAccessoryViewDelegate>

    Swift

    class PDFFormElementView : HostingAnnotationView, PDFFormInputAccessoryViewDelegate
  • A form field represents one logical field in the PDF form. Use a PSPDFFormParser to retrieve them. You can access the form parser from a PSPDFDocument or PSPDFDocumentProvider.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFormField : PSPDFModel <PSPDFUndoSupport, NSSecureCoding>

    Swift

    class PDFFormField : ModelObject, UndoSupport, NSSecureCoding
  • Toolbar for Next|Previous controls for Form Elements.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFormInputAccessoryView : UIView <PSPDFOverridable>

    Swift

    class PDFFormInputAccessoryView : UIView, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFFormOption : NSObject <NSSecureCoding>
    
    PSPDF_EMPTY_INIT_UNAVAILABLE
    
    /// Initializes an instance of this class with a label and value.
    - (instancetype)initWithLabel:(NSString *)label value:(NSString *)value NS_DESIGNATED_INITIALIZER;
    
    /// The label of the option which should be presented to the user.
    @property (nonatomic, readonly) NSString *label;
    
    /// The value that gets exported for the given option. Can be the same as `label`
    @property (nonatomic, readonly) NSString *value;
    
    @end

    Swift

    class PDFFormOption : NSObject, NSSecureCoding
  • Parses PDF Forms (“AcroForms”). This will not create objects based on the (soon deprecated) XFA standard.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFormParser : NSObject <PSPDFOverridable>

    Swift

    class PDFFormParser : NSObject, Overridable
  • Models a request to submit a form in a PDF document to a remove server.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFormRequest : NSObject

    Swift

    class PDFFormRequest : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFFormSubmissionController : NSObject
    
    - (instancetype)initWithDocumentProvider:(PSPDFDocumentProvider *)documentProvider action:(PSPDFSubmitFormAction *)action NS_DESIGNATED_INITIALIZER;
    
    PSPDF_EMPTY_INIT_UNAVAILABLE
    
    @property (nonatomic, readonly) PSPDFDocumentProvider *documentProvider;
    @property (nonatomic, readonly) PSPDFSubmitFormAction *action;
    @property (nonatomic) PSPDFFormRequest *formRequest;
    
    /// The path extension if the submission is to be saved to file.
    @property (nonatomic, readonly) NSString *submissionPathExtension;
    
    - (void)submitContinueWhen:(PSPDFSubmissionControllerShouldContinueBlock)continueBlock beforeSubmission:(PSPDFSubmissionControllerBeforeSubmissionBlock)beforeSubmissionBlock onCompletion:(PSPDFSubmissionControllerCompletionBlock)completionBlock onError:(PSPDFSubmissionControllerErrorBlock)errorBlock;
    @end

    Swift

    class PDFFormSubmissionController : NSObject
  • Free Text accessory toolbar for faster styling.

    See more

    Declaration

    Swift

    class FreeTextAccessoryView : Toolbar, FontPickerViewControllerDelegate, AnnotationStyleViewControllerDelegate, Overridable
  • PDF FreeText Annotation.

    A free text annotation (PDF 1.3) displays text directly on the page. Unlike an ordinary text annotation (see 12.5.6.4, “Text Annotations”), a free text annotation has no open or closed state; instead of being displayed in a pop-up window, the text shall be always visible.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFreeTextAnnotation
        : PSPDFAnnotation <PSPDFRotatable, PSPDFOverridable>

    Swift

    class FreeTextAnnotation : Annotation, Rotatable, Overridable
  • Free Text View. Allows inline text editing.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFFreeTextAnnotationView
        : PSPDFHostingAnnotationView <UITextViewDelegate, PSPDFOverridable>

    Swift

    class FreeTextAnnotationView : HostingAnnotationView, UITextViewDelegate, Overridable
  • The gallery configuration builder object offers all properties of PSPDFGalleryConfiguration in a writable version, in order to build an immutable PSPDFGalleryConfiguration object.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryConfigurationBuilder : PSPDFBaseConfigurationBuilder

    Swift

    class GalleryConfigurationBuilder : BaseConfigurationBuilder
  • A PSPDFGalleryConfiguration defines the behavior of a PSPDFGalleryViewController.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryConfiguration
        : PSPDFBaseConfiguration <PSPDFGalleryConfigurationBuilder *>

    Swift

    class GalleryConfiguration : BaseConfiguration<GalleryConfigurationBuilder>
  • Undocumented

    Declaration

    Objective-C

    @interface PSPDFGalleryEmbeddedBackgroundView : UIView<PSPDFOverridable>
    @end

    Swift

    class GalleryEmbeddedBackgroundView : UIView, Overridable
  • Undocumented

    Declaration

    Objective-C

    @interface PSPDFGalleryFullscreenBackgroundView : UIView<PSPDFOverridable>
    @end

    Swift

    class GalleryFullscreenBackgroundView : UIView, Overridable
  • Used to group the error, loading and gallery view and to properly lay them out.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryContainerView : UIView <PSPDFOverridable>

    Swift

    class GalleryContainerView : UIView, Overridable
  • The caption view used in PSPDFGalleryContentCaptionView.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryContentCaptionView
        : UIView <PSPDFGalleryContentViewCaption>

    Swift

    class GalleryContentCaptionView : UIView, GalleryContentViewCaption
  • The (reusable) content view of a PSPDFGalleryView.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryContentView : UIView

    Swift

    class GalleryContentView : UIView
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryImageContentView : PSPDFGalleryContentView

    Swift

    class GalleryImageContentView : GalleryContentView
  • An image item in a gallery.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryImageItem : PSPDFGalleryItem

    Swift

    class GalleryImageItem : GalleryItem
  • The abstract class for an item in a gallery. Most items will have content that needs to be loaded, hence this class allows for asynchronous state changes. It is the responsibility of the subclass to implement loading, for example by implementing the PSPDFRemoteContentObject protocol.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryItem : NSObject

    Swift

    class GalleryItem : NSObject
  • PSPDFGalleryManifest models the manifest file that is the data source of every gallery. It abstracts the task of loading an array of PSPDFGalleryItems from potentially multiple sources.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryManifest : NSObject

    Swift

    class GalleryManifest : NSObject
  • An item of unknown type in a gallery.

    Declaration

    Objective-C

    
    @interface PSPDFGalleryUnknownItem : PSPDFGalleryItem

    Swift

    class GalleryUnknownItem : GalleryItem
  • PSPDFGalleryVideoContentView displays a video item.

    Declaration

    Objective-C

    
    @interface PSPDFGalleryVideoContentView : PSPDFGalleryContentView

    Swift

    class GalleryVideoContentView : GalleryContentView
  • A video item in a gallery. This class uses the class cluster design pattern.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryVideoItem : PSPDFGalleryItem

    Swift

    class GalleryVideoItem : GalleryItem
  • A gallery view works a lot like a UITableView. It has content views, which need to be provided by a data source and can be reused. It is built on top of a UIScrollView.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryView : UIScrollView <PSPDFOverridable>

    Swift

    class GalleryView : UIScrollView, Overridable
  • Handles a gallery of one or multiple images, videos, audio or even web content.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryViewController
        : PSPDFBaseViewController <PSPDFOverridable, PSPDFMultimediaViewController>

    Swift

    class GalleryViewController : PDFBaseViewController, Overridable, MultimediaViewController
  • PSPDFGalleryWebContentView displays a web item.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGalleryWebContentView : PSPDFGalleryContentView

    Swift

    class GalleryWebContentView : GalleryContentView
  • A web item in a gallery.

    Declaration

    Objective-C

    
    @interface PSPDFGalleryWebItem : PSPDFGalleryItem

    Swift

    class GalleryWebItem : GalleryItem
  • Represents a single character (glyph, quad) on the PDF page.

    Note

    Glyphs are created from the PDF contents and not meant to be created manually.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFGlyph : NSObject <NSCopying, NSSecureCoding>

    Swift

    class Glyph : NSObject, NSCopying, NSSecureCoding
  • Defines the action of going to a specific location within the PDF document.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFGoToAction : PSPDFAction

    Swift

    class GoToAction : Action
  • A hide action (PDF 1.2) hides or shows one or more annotations on the screen by setting or clearing their Hidden flags (see 12.5.3, “Annotation Flags”). This type of action can be used in combination with appearance streams and trigger events (Sections 12.5.5, “Appearance Streams,” and 12.6.3, “Trigger Events”) to display pop-up help information on the screen.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFHideAction : PSPDFAction

    Swift

    class HideAction : Action
  • Text Highlight Annotation

    Warning

    If you programmatically create a highlight annotation, you need to both set the boundingBox AND the rects array. The rects array contains boxed variants of CGRect (NSValue).

    Declaration

    Objective-C

    
    @interface PSPDFHighlightAnnotation
        : PSPDFTextMarkupAnnotation <PSPDFOverridable>

    Swift

    class HighlightAnnotation : TextMarkupAnnotation, Overridable
  • View that will render an annotation.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFHostingAnnotationView
        : PSPDFAnnotationView <PSPDFRenderTaskDelegate, PSPDFOverridable>

    Swift

    class HostingAnnotationView : AnnotationView, RenderTaskDelegate, Overridable
  • A PSPDFDocument subclass that can be used to display and annotate image files. Can handle JPEG and PNG images.

    Note

    Any transparency on PNG images will be lost after saving.

    Saving changes flattens any annotations into the image and writes it back to the original file. Creating a new document will then reflect the new image with flattened changes. Keep the image document in memory to preserve the ability to edit added annotations.

    See https://pspdfkit.com/guides/ios/current/annotations/annotate-images/ for more information.

    Note

    PSPDFImageDocument requires the Image Documents feature to be enabled for your license to work.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFImageDocument : PSPDFDocument

    Swift

    class ImageDocument : Document
  • Defines the position if an image in the PDF.

    Note

    This class should not be manually instantiated. Use PSPDFTextParser to fetch images.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFImageInfo : NSObject <NSCopying, NSSecureCoding>

    Swift

    class ImageInfo : NSObject, NSCopying, NSSecureCoding
  • Subclass of UIImagePickerController used in PSPDFKit when showing the image picker, like when adding an image annotation or when adding a new page to a document from an image.

    Allows subclassing the image picker controller, for example if you need to block portrait: https://stackoverflow.com/questions/11467361/taking-a-photo-in-an-ios-landscape-only-app

    Shows a custom image editor after an image has been selected if shouldShowImageEditor is enabled.

    @note delegate is set to self. Don’t change this, as this will restrict presenting the image editor. imageDelegate will be set when the picker is called from within PSPDFKit logic. You can override the delegate as long as you correctly forward calls to the original target.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFImagePickerController
        : UIImagePickerController <PSPDFOverridable>

    Swift

    class ImagePickerController : UIImagePickerController, Overridable
  • PDF Ink Annotation (Free Drawing) Lines are automatically transformed when the boundingBox is changed.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFInkAnnotation : PSPDFAbstractShapeAnnotation <PSPDFOverridable>

    Swift

    class InkAnnotation : AbstractShapeAnnotation, Overridable
  • PSPDFInlineSearchManager manages the presentation of a search bar that may be used to find text in a PSPDFDocument. The search bar sides down from the top, typically covering the navigation bar.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFInlineSearchManager : NSObject <PSPDFOverridable>

    Swift

    class InlineSearchManager : NSObject, Overridable
  • Defines an action that contains JavaScript to be executed in the document context.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFJavaScriptAction : PSPDFAction

    Swift

    class JavaScriptAction : Action
  • PSPDFKit - The Leading PDF Framework for iOS, Android and the Web. This is the configuration object for framework-global settings.

    Note

    The PSPDFKit shared object is a global, thread-safe key/value store. Use setValue:forKey: and valueForKey: or the subscripted variants to set/get properties.

    Subclassing notes: In PSPDFKit various classes can be subclassed and registered as subclasses via overrideClass:withClass: on PSPDFDocument (model) and PSPDFConfiguration (view/controller). See https://pspdfkit.com/guides/ios/current/getting-started/overriding-classes/ for details.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFKitGlobal : NSObject

    Swift

    class SDK : NSObject
  • Parses Page Labels (see PDF Reference §8.3.1) Add custom labels with Adobe Acrobat. http://www.w3.org/WAI/GL/WCAG20-TECHS/PDF17.html

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLabelParser : NSObject <PSPDFOverridable>

    Swift

    class LabelParser : NSObject, Overridable
  • Base class to show a semi-transparent, rounded label.

    You can use UIAppearance to customize the main properties.

    [PSPDFLabelView appearance].labelStyle = PSPDFLabelStyleFlat;
    [PSPDFLabelView appearance].backgroundColor = [UIColor colorWithWhite:0.1 alpha:0.8];
    [PSPDFLabelView appearance].textColor = UIColor.whiteColor;
    

    Note

    The background color can be customized by setting the standard backgroundColor UIView property. If you want to customize the background color, it is recommended that you use PSPDFLabelStyleFlat, as using the blur effect with a non-translucent background color might produce unexpected results.

    If you are customizing this view, you might also want to apply similar changes to PSPDFBackForwardButton.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLabelView : UIView

    Swift

    class PDFLabelView : UIView
  • PSPDFLibrary implements a sqlite-based full-text-search engine. You set a data source that provides the documents to be indexed by the library, and then call -updateIndex, which performs its work asynchronously. Then, you can search for keywords within that collection. Typically, you use a PSPDFLibraryFileSystemDataSource. There can be multiple libraries, although usually one is enough for the common use case. Furthermore, when using multiple libraries with spotlight indexing enabled could lead to duplicates in users’ spotlight results. See https://pspdfkit.com/guides/ios/current/features/indexed-full-text-search/ for further documentation.

    Note

    Requires the PSPDFFeatureMaskIndexedFTS feature flag.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFLibrary : NSObject

    Swift

    class PDFLibrary : NSObject
  • A library data source that indexes all documents in a specified directory. This class will automatically add and remove files from the library based on changes in the directory.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLibraryFileSystemDataSource : NSObject <PSPDFLibraryDataSource>

    Swift

    class LibraryFileSystemDataSource : NSObject, LibraryDataSource
  • This class is a subclass of PSPDFSearchResult, and encapsulates a preview generated by PSPDFLibrary. Mainly, it prevents access of the annotation property of PSPDFSearchResult, and instead provides an annotationObjectNumber property to represent a matched annotation.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLibraryPreviewResult : PSPDFSearchResult

    Swift

    class LibraryPreviewResult : SearchResult
  • PDF Line annotation.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLineAnnotation : PSPDFAbstractLineAnnotation <PSPDFOverridable>

    Swift

    class LineAnnotation : AbstractLineAnnotation, Overridable
  • The PSPDFLinkAnnotation represents both classic PDF page/document/web links, and more types not supported by other PDF readers (video, audio, image, etc)

    PSPDFKit will automatically figure out the type for PDF link annotations loaded from a document, based on the file type. (“mp4” belongs to PSPDFLinkAnnotationVideo; a YouTube-URL to PSPDFLinkAnnotationYouTube, etc)

    If you create a PSPDFLinkAnnotation at runtime, be sure to set the correct type and use the URL parameter for your link. boundingBox defines the frame, in PDF space coordinates.

    If you want to customize how links look in the PDF, customize PSPDFLinkAnnotationView’s properties. There’s currently no mapping between color/lineWidth/etc and the properties of the view. This might change in a future release.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLinkAnnotation : PSPDFAnnotation <PSPDFOverridable>

    Swift

    class LinkAnnotation : Annotation, Overridable
  • Base class for all link-annotation subclasses.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLinkAnnotationBaseView : UIView <PSPDFAnnotationPresenting>

    Swift

    class LinkAnnotationBaseView : UIView, AnnotationPresenting
  • Custom container view controller that displays all the supported controllers (one at a time) to create a new or edit an existing link annotation. The controllers can be switched between using a segmented control.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLinkAnnotationEditingContainerViewController
        : PSPDFContainerViewController

    Swift

    class LinkAnnotationEditingContainerViewController : ContainerViewController
  • Abstract class for view controllers that support link annotation creation and editing.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLinkAnnotationEditingViewController : PSPDFBaseViewController

    Swift

    class LinkAnnotationEditingViewController : PDFBaseViewController
  • Displays an annotation link.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFLinkAnnotationView
        : PSPDFLinkAnnotationBaseView <PSPDFOverridable>

    Swift

    class LinkAnnotationView : LinkAnnotationBaseView, Overridable
  • A simple media player used for video playback.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFMediaPlayerController : NSObject

    Swift

    class MediaPlayerController : NSObject
  • If the cover option is set, this is showed until the play button is pressed.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFMediaPlayerCoverView : UIView

    Swift

    class MediaPlayerCoverView : UIView
  • The memory cache holds images in memory to give the render engine access to them as fast as possible. By default its memory constraints are configured to get the best performance out of the current device.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFMemoryCache : NSObject

    Swift

    class MemoryCache : NSObject
  • This subclass adds support for a block-based action on UIMenuItem. If you are as annoyed about the missing target/action pattern, you will love this.

    If you use PSPDFMenuItem with the classic initWithTitle:selector: initializer, this will work and be handled just like a regular UIMenuItem.

    Warning

    By design, PSPDFMenuItem will only work with different title names. If no identifier is set, then title is required to be unique when converted to lowercase and non-ASCII characters are stripped, even when images are used.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFMenuItem : UIMenuItem

    Swift

    class MenuItem : UIMenuItem
  • An abstract base class for model objects, using reflection to provide sensible default behaviors.

    The default implementations of , -hash, and -isEqual: make use of the +propertyKeys method.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFModel : NSObject <NSCopying>

    Swift

    class ModelObject : NSObject, NSCopying
  • Shows a list of documents open in a PSPDFTabbedViewController. This is the view controller used when tapping the overviewButton in a PSPDFTabbedBar.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFMultiDocumentListController : PSPDFBaseTableViewController

    Swift

    class MultiDocumentListController : BaseTableViewController
  • Allows displaying multiple PSPDFDocuments.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFMultiDocumentViewController
        : PSPDFBaseViewController <PSPDFConflictResolutionManagerDelegate>

    Swift

    class MultiDocumentViewController : PDFBaseViewController, ConflictResolutionManagerDelegate
  • Acts as the container view for an image gallery.

    Note

    To get a basic image view without the gallery tap handling, simply set userInteractionEnabled = NO on this view.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFMultimediaAnnotationView
        : PSPDFLinkAnnotationBaseView <PSPDFOverridable>

    Swift

    class MultimediaAnnotationView : LinkAnnotationBaseView, Overridable
  • Defines methods used to work with actions in PDF documents, some of which are named in the Adobe PDF Specification.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFNamedAction : PSPDFAction

    Swift

    class NamedAction : Action
  • Simple subclass that forwards following iOS 6+ rotation methods to the top view controller: shouldAutorotate, supportedInterfaceOrientations, preferredInterfaceOrientationForPresentation:.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFNavigationController
        : UINavigationController <UINavigationControllerDelegate>

    Swift

    class PDFNavigationController : UINavigationController, UINavigationControllerDelegate
  • PSPDFNavigationItem handles the left and right bar button items for different view modes.

    This type of navigation item enables you to assign left and right bar button items based on the view mode, so that every view mode can have different bar button items displayed in the navigation bar.

    The navigation item and the corresponding view controller ensure that displayed bar button items are are updated correctly when the view mode changes.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFNavigationItem : UINavigationItem

    Swift

    class NavigationItem : UINavigationItem
  • Thread safe implementation of the network activity indicator protocol.

    Declaration

    Objective-C

    
    @interface PSPDFDefaultNetworkActivityIndicatorManager
        : NSObject <PSPDFNetworkActivityIndicatorManager>

    Swift

    class DefaultNetworkActivityIndicatorManager : NSObject, NetworkActivityIndicatorManager
  • This class configures a new page for the PSPDFProcessor or PSPDFDocumentEditor. You can configure what type of page it should be and also add images or logos from a PDF.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFNewPageConfiguration : NSObject

    Swift

    class PDFNewPageConfiguration : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFNewPageConfigurationBuilder : PSPDFModel

    Swift

    class NewPageConfigurationBuilder : ModelObject
  • Manages new selection of various configuration options for new PDF pages. Builds the user interface based on the passed in configuration object.

    Note

    This class requires the Document Editor component to be enabled for your license.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFNewPageViewController
        : PSPDFStaticTableViewController <
              PSPDFDocumentEditorConfigurationConfigurable, PSPDFOverridable>

    Swift

    class PDFNewPageViewController : PDFStaticTableViewController, PDFDocumentEditorConfigurationConfigurable, Overridable
  • PDF Note (Text) Annotation.

    Note

    Note annotations are rendered as fixed size; much like how Adobe Acrobat renders them. PSPDFKit will always render note annotations at a fixed size of 32x32pt. We recommend that you set the boundingBox to the same value.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFNoteAnnotation : PSPDFAnnotation <PSPDFOverridable>

    Swift

    class NoteAnnotation : Annotation, Overridable
  • Renders a note annotation’s icon on its page. Note annotations are handled as subviews to be draggable.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFNoteAnnotationView : PSPDFAnnotationView <PSPDFOverridable>

    Swift

    class NoteAnnotationView : AnnotationView, Overridable
  • A view controller to view and edit the comments attached to an annotation.

    Comments means the contents of the annotation and, if enabled, the contents of all replies to that annotation. Whether replies are enabled is determined by the canShowAnnotationReplies feature from PSPDFDocumentFeatures.

    This can be used for any type of annotation. For PSPDFNoteAnnotation, additional options are displayed for setting the note’s color and icon.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFNoteAnnotationViewController
        : PSPDFBaseViewController <UITextViewDelegate, PSPDFStyleable,
                                   PSPDFOverridable>

    Swift

    class NoteAnnotationViewController : PDFBaseViewController, UITextViewDelegate, Styleable, Overridable
  • Single cell for the outline controller.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFOutlineCell : PSPDFTableViewCell <PSPDFOverridable>

    Swift

    class OutlineCell : PDFTableViewCell, Overridable
  • Represents a single outline/table of contents element.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFOutlineElement : PSPDFModel

    Swift

    class OutlineElement : ModelObject
  • Parses the Outline/Table of Contents of a PDF.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFOutlineParser : NSObject <PSPDFOverridable>

    Swift

    class OutlineParser : NSObject, Overridable
  • Outline (Table of Contents) view controller.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFOutlineViewController
        : PSPDFSearchableTableViewController <PSPDFDocumentInfoController,
                                              UISearchDisplayDelegate,
                                              PSPDFStyleable, PSPDFOverridable>

    Swift

    class OutlineViewController : SearchableTableViewController, DocumentInfoController, UISearchDisplayDelegate, Styleable, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFPKCS12 : NSObject<NSCoding>
    
    PSPDF_EMPTY_INIT_UNAVAILABLE
    
    /// Inits the object with data from a PKCS12 blob.
    - (instancetype)initWithData:(NSData *)data NS_DESIGNATED_INITIALIZER;
    
    /// Unlocks the PKCS12 archive and retrieves the certificate and public key.
    - (void)unlockWithPassword:(NSString *)password done:(nullable void (^)(PSPDFX509 *_Nullable x509, PSPDFPrivateKey *_Nullable pk, NSError *_Nullable error))done;
    
    @end

    Swift

    class PKCS12 : NSObject, NSCoding
  • Concrete implementation of a PSPDFSigner.

    This class augments the functionality of its superclass by supporting password-protected PKCS12 files (.p12 extension).

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPKCS12Signer : PSPDFSigner

    Swift

    class PKCS12Signer : PDFSigner
  • An instance of this class represents a PKCS7 (https://tools.ietf.org/html/rfc2315) cryptographic container. This container format is the most common format used for signing PDFs digitally. For example, you can use an instance of this class when you want to sign a document that was already prepared for deferred digital signing. One example scenario may be the following:

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPKCS7 : NSObject

    Swift

    class PKCS7 : NSObject
  • Common superclass for various collection view cells representing PDF pages.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPageCell : UICollectionViewCell

    Swift

    class PDFPageCell : UICollectionViewCell
  • The page grabber is a view that provides an area on the screen where the user can swipe their finger to quickly skim through the pages.

    The page grabber itself is fully transparent, the knob the user can touch and drag around is represented by its grabberView property.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPageGrabber : UIView
  • The page grabber controller is used to configure the state of the page grabber. It is the owner of the associated page grabber and is responsible for laying it out inside the presentation context as well as handling whether it is enabled or not.

    Note

    You should not initialize an instance of this class yourself. Instead you should ask an instance of PSPDFViewController for a fully configured instance.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFPageGrabberController : NSObject

    Swift

    class PageGrabberController : NSObject
  • Represents PDF page data. Managed within PSPDFDocumentProvider.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPageInfo : NSObject <NSCopying, NSSecureCoding>

    Swift

    class PDFPageInfo : NSObject, NSCopying, NSSecureCoding
  • A formatter to convert a range of pages into a user facing string.

    The page label formatter uses the label of a document’s page if it has one assigned to it and falls back to the page number (the page index + 1 that is) otherwise.

    All page ranges are treated as referring to a page’s index, starting at 0. The first page therefore has index 0 and is visualized as page 1 if there is no label set for the page.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPageLabelFormatter : NSFormatter

    Swift

    class PageLabelFormatter : Formatter
  • Displays the current page position at the bottom of the screen.

    Note

    This class connects to the pdfController via KVO.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFPageLabelView : PSPDFLabelView <PSPDFOverridable>

    Swift

    class PageLabelView : PDFLabelView, Overridable
  • UI to create a new or edit an existing link annotation that links to a page in the same document.

    Declaration

    Objective-C

    
    @interface PSPDFPageLinkAnnotationEditingViewController
        : PSPDFLinkAnnotationEditingViewController

    Swift

    class PageLinkAnnotationEditingViewController : LinkAnnotationEditingViewController
  • A PSPDFPageTemplate helps PSPDFNewPageConfiguration configure a new page to be added to a document correctly.

    You can modify the templates available via PSPDFConfiguration, or setting the pageTemplates property on the PSPDFDocumentEditorConfiguration builder.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPageTemplate : PSPDFModel <NSSecureCoding>

    Swift

    class PageTemplate : ModelObject, NSSecureCoding
  • Display a single PDF page. View is reused. You can add your own views on top of the annotationContainerView (e.g. custom annotations) Events from a attached UIScrollView will be relayed to all visible PSPDFPageView classes.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPageView : UIView <PSPDFRenderTaskDelegate,
                                       PSPDFResizableViewDelegate, PSPDFOverridable>

    Swift

    class PDFPageView : UIView, RenderTaskDelegate, ResizableViewDelegate, Overridable
  • Undocumented

    Declaration

    Objective-C

    
    @interface PSPDFAnnotationContainerView
        : PSPDFRelayTouchesView <PSPDFOverridable>

    Swift

    class AnnotationContainerView : RelayTouchesView, Overridable
  • The list controller can check models to build a selectable list.

    Declaration

    Objective-C

    
    @interface PSPDFPickerTableViewController
        : PSPDFStaticTableViewController <PSPDFOverridable>

    Swift

    class PickerTableViewController : PDFStaticTableViewController, Overridable
  • Polyline annotations (PDF 1.5) are similar to polygons (`PSPDFPolygonAnnotation), except that the first and last vertex are not implicitly connected.

    Note

    See PSPDFAbstractLineAnnotation for details how to use and initialize.

    Declaration

    Objective-C

    
    @interface PSPDFPolyLineAnnotation
        : PSPDFAbstractLineAnnotation <PSPDFOverridable>

    Swift

    class PolyLineAnnotation : AbstractLineAnnotation, Overridable
  • Polygon annotations (PDF 1.5) display closed polygons on the page. Such polygons may have any number of vertices connected by straight lines. Polyline annotations (PDF 1.5) are similar to polygons, except that the first and last vertex are not implicitly connected.

    Note

    See PSPDFAbstractLineAnnotation for details how to use and initialize.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFPolygonAnnotation
        : PSPDFAbstractLineAnnotation <PSPDFOverridable>

    Swift

    class PolygonAnnotation : AbstractLineAnnotation, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPopupAnnotation : PSPDFAnnotation <PSPDFOverridable>

    Swift

    class PopupAnnotation : Annotation, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPrintConfigurationBuilder : PSPDFBaseConfigurationBuilder

    Swift

    class PrintConfigurationBuilder : BaseConfigurationBuilder
  • Common settings that define how printing should be handled.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPrintConfiguration
        : PSPDFBaseConfiguration <PSPDFPrintConfigurationBuilder *>

    Swift

    class PrintConfiguration : BaseConfiguration<PrintConfigurationBuilder>
  • Represents a cryptographic private key.

    Supported encodings are PKCS1 (https://tools.ietf.org/html/rfc8017) and PCKS8 (https://tools.ietf.org/html/rfc5208).

    See more

    Declaration

    Objective-C

    
    @interface PSPDFPrivateKey : NSObject

    Swift

    class PrivateKey : NSObject
  • Create, merge or modify PDF documents. Can also flatten annotation data.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFProcessor : NSObject

    Swift

    class Processor : NSObject
  • Container for various settings for manipulating documents with PSPDFProcessor.

    Note

    Some basic options are available without the Document Editor component, however most options do require this component to be licensed. Learn more at https://pspdfkit.com/pdf-sdk/ios/document-editor/
    See more

    Declaration

    Objective-C

    
    @interface PSPDFProcessorConfiguration : NSObject <NSCopying>
  • Represents an item that can be added to either a new page or an existing page. The item can either be a UIImage which will then be compressed as a JPEG using imageJpegCompressionQuality or a NSURL that points to a JPEG or PDF file.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFProcessorItem : NSObject

    Swift

    class ProcessorItem : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFProcessorItemBuilder : PSPDFModel

    Swift

    class PDFProcessorItemBuilder : ModelObject
  • Displays progress indication with a title.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFProgressLabelView : UIView

    Swift

    class ProgressLabelView : UIView
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFRSAKey : NSObject
    
    PSPDF_EMPTY_INIT_UNAVAILABLE
    
    /// The underlying public key scheme.
    @property (nonatomic, readonly) NSString *publicKeyScheme;
    
    /// Returns the approximate length of the security parameter. For example, for RSA this is the size of the modulus.
    @property (nonatomic, readonly) NSInteger keyLength;
    
    @end

    Swift

    class RSAKey : NSObject
  • A view controller that shows Reader View, which reformats document text into an easy-to-read, single-column view that’s optimized for mobile devices.

    Reader View is typically shown using the readerViewButtonItem of a PDFViewController, but it may also be created and presented programatically.

    This class does not support being created from a Storyboard or Interface Builder archive.

    This requires the Reader View component to be enabled for your license.

    See https://pspdfkit.com/guides/ios/current/features/reader-view/ for further documentation.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFReaderViewController : PSPDFBaseViewController

    Swift

    class ReaderViewController : PDFBaseViewController
  • Redaction Annotation

    Used to remove content from a document.

    color can be used to change the color of the overlay text. It has no effect if there is no overlay text specified. Defaults to a red color. fillColor specifies the background color of the redaction area after is has been applied. The color is drawn on all the specified rects. Defaults to black. lineWidth can be set to change the border width of the redaction in its marked state. Defaults to 5.

    Note

    Supports redacting text, images, paths, annotations, and forms.

    Note

    Redaction annotations need to be applied, after they were created and added to a document, to remove the content beneath them. See PSPDFProcessorConfiguration or PSPDFDocumentSaveOptionApplyRedactions for further information.

    Warning

    When programmatically creating a redaction annotation, both boundingBox and rects need to be set. The rects array contains boxed variants of CGRect (NSValue).

    See more

    Declaration

    Objective-C

    
    @interface PSPDFRedactionAnnotation : PSPDFAnnotation <PSPDFOverridable>

    Swift

    class RedactionAnnotation : Annotation, Overridable
  • The user interface view will relay touches of subviews, but won’t react on touches on this actual view itself.

    Note

    This is achieved with overriding pointInside:withEvent:.

    Declaration

    Objective-C

    
    @interface PSPDFRelayTouchesView : PSPDFContainerView

    Swift

    class RelayTouchesView : PDFContainerView
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFRemoteFileObject : NSObject<PSPDFRemoteContentObject>
    
    PSPDF_EMPTY_INIT_UNAVAILABLE
    
    /// Designated initializer.
    - (instancetype)initWithRemoteURL:(NSURL *)remoteURL targetURL:(NSURL *)targetFileURL fileManager:(id<PSPDFFileManager>)fileManager NS_DESIGNATED_INITIALIZER;
    
    /// The remote URL to fetch the content from.
    @property (nonatomic, copy, readonly) NSURL *remoteURL;
    @property (nonatomic, copy, readonly) NSURL *targetURL;
    
    #pragma mark PSPDFRemoteContentObject
    
    /// The remote content of the object. This property is managed by `PSPDFDownloadManager`.
    @property (nonatomic, nullable) NSURL *remoteContent;
    
    /// The loading state of the object. This property is managed by `PSPDFDownloadManager`.
    @property (nonatomic, getter=isLoadingRemoteContent) BOOL loadingRemoteContent;
    
    /// The download progress of the object. Only meaningful if `loadingRemoteContent` is YES.
    /// This property is managed by `PSPDFDownloadManager`.
    @property (nonatomic) CGFloat remoteContentProgress;
    
    /// The remote content error of the object. This property is managed by `PSPDFDownloadManager`.
    @property (nonatomic, nullable) NSError *remoteContentError;
    
    /// The completion block.
    @property (nonatomic, copy, nullable) void (^completionBlock)(id<PSPDFRemoteContentObject> remoteObject);
    
    @end

    Swift

    class RemoteFileObject : NSObject, RemoteContentObject
  • Defines an action to go to a specific page index in another PDF document. Can be either used directly via a page index, or via a named destination, which will be resolved before executing the action. This covers both RemoteGoTo and Launch actions.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFRemoteGoToAction : PSPDFGoToAction

    Swift

    class RemoteGoToAction : GoToAction
  • Defines the options to apply when rendering PDF pages, such as color inversion, filters, colors and annotation behavior.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFRenderOptions : PSPDFModel <NSSecureCoding>

    Swift

    class RenderOptions : ModelObject, NSSecureCoding
  • The render queue is responsible for scheduling and completing tasks. Typically you don’t create your own render queue but instead use the render queue provided by the render manager. Creating your own render queue is possible but due to internal resource constraints will almost never speed up rendering but instead the queues try to access the same resources and then need to wait until the resource becomes available.

    The goal of the render queue is to keep the average time it takes to complete a render task at a minimum. To achieve this the render queue intelligently schedules and bundles tasks. Therefore the order in which scheduled tasks are executed is undefined and depends on many factors.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFRenderQueue : NSObject

    Swift

    class RenderQueue : NSObject
  • A render request specifies the exact parameters of how an image should be rendered. You use it in order to configure a PSPDFRenderTask which can then be passend to a PSPDFRenderQueue in order to fulfill the task.

    To create a new render request you usually create a PSPDFMutableRenderRequest and set the properties you need.

    Thread safety

    PSPDFRenderRequest is not thread safe, you should never modify a mutable render request from multiple threads nor should you modify a mutable render request while reading data from it on a different thread.

    As soon as you hand over ownership of a render request to the render engine, it is copied, so that you do not need to worry about thread safety between your render requests and the ones the render engine holds.

    See

    PSPDFRenderTask

    See

    PSPDFMutableRenderRequest
    See more

    Declaration

    Objective-C

    
    @interface PSPDFRenderRequest : NSObject <NSCopying, NSMutableCopying>

    Swift

    class RenderRequest : NSObject, NSCopying, NSMutableCopying
  • The mutual version of a render request can be used to configure it so that it matches the desired request.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFMutableRenderRequest : PSPDFRenderRequest

    Swift

    class MutableRenderRequest : RenderRequest
  • A render task is used to create an image from the page (or part of it) of a document.

    Depending on the PSPDFRenderRequest cache policy, a render task checks the cache before actually triggering a new rendering.

    You create a render task by passing it an instance of PSPDFRenderRequest. Once you have created a render request make sure to fully set it up before scheduling it in a render queue.

    A simple example of requesting an image from a page:

    PSPDFMutableRenderRequest *request = [[PSPDFMutableRenderRequest alloc] initWithDocument:document];
    request.pageIndex = pageIndex;
    request.imageSize = CGSizeMake(320.0, 480.0);
    
    PSPDFRenderTask *task = [[PSPDFRenderTask alloc] initWithRequest:request];
    task.priority = PSPDFRenderQueuePriorityUtility;
    task.delegate = self;
    
    [PSPDFKitGlobal.sharedInstance.renderManager.renderQueue scheduleTask:task];
    
    let request = PSPDFMutableRenderRequest(document: document)
    request.pageIndex = 0
    request.imageSize = CGSize(width: 320.0, height: 480.0)
    
    let task = PSPDFRenderTask(request: request)!
    task.priority = .utility
    task.delegate = self
    
    PSPDFKitGlobal.sharedInstance.renderManager.renderQueue.schedule(task)
    
    See more

    Declaration

    Objective-C

    
    @interface PSPDFRenderTask : NSObject

    Swift

    class RenderTask : NSObject
  • A rendition action (PDF 1.5) controls the playing of multimedia content (see PDF Reference 1.7, 13.2, “Multimedia”).

    Note

    JavaScript actions are not supported.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFRenditionAction : PSPDFAction

    Swift

    class RenditionAction : Action
  • Reset Form Action.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFResetFormAction : PSPDFAbstractFormAction

    Swift

    class ResetFormAction : AbstractFormAction
  • A view that shows borders around selected annotations, with handles the user can use to resize the annotation. The handle and border color is determined by the tintColor property inherited from UIView.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFResizableView : UIView <PSPDFOverridable>

    Swift

    class ResizableView : UIView, Overridable
  • An appearance stream generator that makes sure to retain the current appearance stream.

    Declaration

    Objective-C

    
    @interface PSPDFRetainExistingAppearanceStreamGenerator
        : NSObject <PSPDFAppearanceStreamGenerating>

    Swift

    class RetainExistingAppearanceStreamGenerator : NSObject, AppearanceStreamGenerating
  • RichMedia annotations are defined in the ISO32000 Adobe Supplement and are the modern way of embedding video content. PSPDFKit also supports the matching RichMediaExecute action to control video state.

    Declaration

    Objective-C

    
    @interface PSPDFRichMediaAnnotation : PSPDFAssetAnnotation <PSPDFOverridable>

    Swift

    class RichMediaAnnotation : AssetAnnotation, Overridable
  • A rich-media-execute action identifies a rich media annotation and specifies a command to be sent to that annotation’s handler. (See Section 9.6, “Rich Media” on page 76 of the Adobe® Supplement to the ISO 32000)

    See more

    Declaration

    Objective-C

    
    @interface PSPDFRichMediaExecuteAction : PSPDFAction

    Swift

    class RichMediaExecuteAction : Action
  • Simple rounded label.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFRoundedLabel : UILabel

    Swift

    class RoundedLabel : UILabel
  • The directory save view controller enables users to enter a custom file name and chose a directory to save a file to.

    Will show a UIDocumentPickerViewController if saveDirectories contains PSPDFDirectory.documentPickerDirectory, and it is selected when the done button is pressed.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSaveViewController
        : PSPDFStaticTableViewController <PSPDFOverridable>

    Swift

    class SaveViewController : PDFStaticTableViewController, Overridable
  • A default store that saves annotations into the keychain.

    Declaration

    Objective-C

    
    @interface PSPDFKeychainAnnotationSetsStore : NSObject <PSPDFAnnotationSetStore>

    Swift

    class KeychainAnnotationSetsStore : NSObject, AnnotationSetStore
  • Shows an editable grid of saved annotation sets.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSavedAnnotationsViewController
        : PSPDFAnnotationGridViewController <
              PSPDFAnnotationGridViewControllerDataSource, PSPDFStyleable,
              PSPDFOverridable>

    Swift

    class SavedAnnotationsViewController : AnnotationGridViewController, AnnotationGridViewControllerDataSource, Styleable, Overridable
  • A screen annotation (PDF 1.5) specifies a region of a page upon which media clips may be played. It also serves as an object from which actions can be triggered. PSPDFKit also supports the matching Rendition Actions to control the video play state.

    Note

    iOS cannot play all video/audio formats that can be used for PDF.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFScreenAnnotation : PSPDFAssetAnnotation <PSPDFOverridable>

    Swift

    class ScreenAnnotation : AssetAnnotation, Overridable
  • The screen controller will automatically watch for connected screens and external scenes

    if the property pdfControllerToMirror is set, and will release such mirrors once this property has been set to nil.

    UIWindow objects are automatically created for each connected screen, and destroyed once a screen is disconnected or pdfControllerToMirror is set to nil.

    Note

    Use this class from the main thread only.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFScreenController : NSObject

    Swift

    class ScreenController : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFScrollPerSpreadLayout : PSPDFStackViewLayout

    Swift

    class ScrollPerSpreadLayout : StackViewLayout
  • PDF thumbnail scrubber bar - similar to Apple Books.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFScrubberBar : UIView <PSPDFOverridable>

    Swift

    class ScrubberBar : UIView, Overridable
  • Highlight view used to show where the search keyword is within the document.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSearchHighlightView
        : UIView <PSPDFAnnotationPresenting, PSPDFOverridable>

    Swift

    class SearchHighlightView : UIView, AnnotationPresenting, Overridable
  • Manages views added on PSPDFPageView.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSearchHighlightViewManager : NSObject <PSPDFOverridable>

    Swift

    class SearchHighlightViewManager : NSObject, Overridable
  • Represents an immutable search result from PSPDFTextSearch

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSearchResult : PSPDFModel

    Swift

    class SearchResult : ModelObject
  • The search view controller allows text and annotation searching within the current document. It notifies its delegate as results are loaded.

    Usually this is presented as a popover, but it also works modally.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSearchViewController
        : PSPDFBaseTableViewController <
              UISearchDisplayDelegate, UISearchBarDelegate, PSPDFTextSearchDelegate,
              PSPDFStyleable, PSPDFOverridable>

    Swift

    class SearchViewController : BaseTableViewController, UISearchDisplayDelegate, UISearchBarDelegate, TextSearchDelegate, Styleable, Overridable
  • An abstract class for a controller that manages a table view with search functionality.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSearchableTableViewController : PSPDFStatefulTableViewController

    Swift

    class SearchableTableViewController : StatefulTableViewController
  • Add support to replace images as the selection changes.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSegmentedControl : UISegmentedControl

    Swift

    class SegmentedControl : UISegmentedControl
  • Cell that shows a selection status.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSelectableCollectionViewCell : UICollectionViewCell

    Swift

    class SelectableCollectionViewCell : UICollectionViewCell
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFSelectionState : NSObject<NSSecureCoding>
    
    /// Returns an instance of the receiver configured to match the selectionView argument's state, if a selection exists.
    + (nullable instancetype)stateForSelectionView:(PSPDFTextSelectionView *)selectionView;
    
    /// The uid of the document which the receiver corresponds to.
    @property (nonatomic, readonly) NSString *UID;
    
    /// The page index on which the selection exists.
    @property (nonatomic, readonly) PSPDFPageIndex selectionPageIndex;
    
    /**
     The range of glyphs (in `PSPDFTextParser.glyphs`) that are selected.
     If no glyphs are selected, this method returns `PSPDFInvalidGlyphRange`.
     */
    @property (nonatomic, readonly) NSRange selectedGlyphRange;
    
    /// The info for the selected image, if any.
    @property (nonatomic, readonly, nullable) PSPDFImageInfo *selectedImage;
    
    /**
     Returns a Boolean value that indicates whether a selection state is equal to the receiver.
    
     @param selectionState The selection with which to compare the receiver
     @return YES is `selectionState` is equivalent to the receiver, otherwise NO.
     */
    - (BOOL)isEqualToSelectionState:(nullable PSPDFSelectionState *)selectionState;
    
    @end

    Swift

    class SelectionState : NSObject, NSSecureCoding
  • Captures touches and shows selection boxes during dragging. Shows the selection box during dragging when using the annotation selection tool. (The rectange between the start location of dragging and the current touch location.) With the highlight tool, this also shows the proposed text to be highlighted. With the annotation selection tool, this also shows the proposed selected annotations. The selection color is determined by the tintColor property inherited from UIView. This is also used for text block debugging.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSelectionView : UIView <PSPDFOverridable>

    Swift

    class SelectionView : UIView, Overridable
  • Controller to change some key UX settings.

    Configurable via PSPDFConfiguration.settingsOptions property. Use PSPDFViewController.settingsButtonItem to add it to controller’s navigation item.

    To be notified about configuration changes, use KVO on the configuration property of the PSPDFViewController.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSettingsViewController
        : PSPDFStaticTableViewController <PSPDFOverridable>

    Swift

    class PDFSettingsViewController : PDFStaticTableViewController, Overridable
  • This configuration builder offers all properties of PSPDFSignatureAppearance in a writable version.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureAppearanceBuilder : PSPDFBaseConfigurationBuilder

    Swift

    class PDFSignatureAppearanceBuilder : BaseConfigurationBuilder
  • This class configures the appearance that a PSPDFSignatureElement will have in a document when signed.

    By default, a digital signature form element will show information from the signing certificate, like the signer’s name, the date when the document was signed, and so on. Use a PSPDFSignatureAppearance instance when you want to configure further how this information is presented to the user.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureAppearance
        : PSPDFBaseConfiguration <PSPDFSignatureAppearanceBuilder *>

    Swift

    class PDFSignatureAppearance : BaseConfiguration<PDFSignatureAppearanceBuilder>
  • An instance of PSPDFSignatureBiometricProperties represents properties which add biometric information to a digital signature, for enhanced security. Biometric information includes the input method pressure values, time intervals when the signature was being created, or average touch radius.

    This information is encrypted and stored inside the PDF document using the signer’s public key, and can be decrypted with the appropriate private key.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureBiometricProperties : NSObject <NSSecureCoding>

    Swift

    class PDFSignatureBiometricProperties : NSObject, NSSecureCoding
  • Cell that is used for displaying a signature. Displays a label and an image beneath each other.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureCell : UITableViewCell <PSPDFOverridable>

    Swift

    class SignatureCell : UITableViewCell, Overridable
  • Container object for storing a signature containing an ink annotation and an optional signer.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureContainer : NSObject <NSSecureCoding, PSPDFOverridable>

    Swift

    class SignatureContainer : NSObject, NSSecureCoding, Overridable
  • Signature Form Element.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureFormElement : PSPDFFormElement

    Swift

    class SignatureFormElement : FormElement
  • Represents a signature form field in a PDF form.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureFormField : PSPDFFormField

    Swift

    class SignatureFormField : PDFFormField
  • Signature info for signature form fields.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureInfo : NSObject

    Swift

    class PDFSignatureInfo : NSObject
  • Manages signature handlers for digital signature creation. Thread safe.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureManager : NSObject

    Swift

    class PDFSignatureManager : NSObject
  • Represents entries in the signature properties. Signatures can have properties that describe how and when they were built.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignaturePropBuild : NSObject

    Swift

    class PDFSignaturePropBuild : NSObject
  • Represents one entry in the signature properties.

    Signatures can have properties that describe how and when they were built.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignaturePropBuildEntry : NSObject

    Swift

    class PDFSignaturePropBuildEntry : NSObject
  • Shows a list of signatures from the set signatureStore.

    Note

    Will show up in landscape via preferredInterfaceOrientationForPresentation.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureSelectorViewController
        : PSPDFStatefulTableViewController <PSPDFStyleable, PSPDFOverridable>

    Swift

    class SignatureSelectorViewController : StatefulTableViewController, Styleable, Overridable
  • Represents the status of a digital signature after it has been validated.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureStatus : NSObject

    Swift

    class PDFSignatureStatus : NSObject
  • Default signature store implementation that uses the keychain. storeName is used as the service name in the keychain.

    Declaration

    Objective-C

    
    @interface PSPDFKeychainSignatureStore : NSObject <PSPDFSignatureStore>

    Swift

    class KeychainSignatureStore : NSObject, SignatureStore
  • This class validates digital signatures in a PDF document. Validation consists of two steps: Checking that the signature integrity is correct (that is, the document was not modified after it was signed), and ensuring that the chain of certificates contained in the signature is trusted.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureValidator : NSObject

    Swift

    class PDFSignatureValidator : NSObject
  • The signature view controller can be used to create ink signatures to add to a document.

    These signatures optionally can be used to create a digital signature with a certificate.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignatureViewController
        : PSPDFBaseViewController <PSPDFStyleable, PSPDFOverridable>

    Swift

    class SignatureViewController : PDFBaseViewController, Styleable, Overridable
  • Shows the current signature state of a PSPDFSignatureFormElement.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSignedFormElementViewController
        : PSPDFBaseTableViewController <PSPDFOverridable>

    Swift

    class SignedFormElementViewController : BaseTableViewController, Overridable
  • PSPDFSigner is an abstract signer class. Override methods in subclasses as necessary.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSigner
        : NSObject <PSPDFDocumentSignerDelegate, PSPDFDocumentSignerDataSource,
                    PSPDFExternalSignature, NSCoding>

    Swift

    class PDFSigner : NSObject, PDFDocumentSignerDelegate, PDFDocumentSignerDataSource, ExternalSignature, NSCoding
  • A sound annotation (PDF 1.2) shall analogous to a text annotation except that instead of a text note, it contains sound recorded from the iOS device’s microphone or imported from a file.

    To ensure maximum compatibility set the boundingBox for sound annotations to the same size Adobe Acrobat uses (20x15pt). PSPDFKit will always render sound annotations at a fixed size of 74x44pt, centered in the provided boundingBox.

    Note

    Make sure you configured Microphone Permissions in your app. See https://pspdfkit.com/guides/ios/current/getting-started/permissions/#toc_microphone-permissions for futher documentation.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFSoundAnnotation : PSPDFAnnotation <PSPDFOverridable>

    Swift

    class SoundAnnotation : Annotation, Overridable
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PSPDFSoundAnnotationController : NSObject
    
    /**
     Stops any currently active recording or playback, except the sender.
     If the sender is nil, all annotations are stopped.
     */
    + (void)stopRecordingOrPlaybackForAllExcept:(nullable id)sender;
    
    /// Checks if we have permission to record.
    + (void)requestRecordPermission:(nullable void (^)(BOOL granted))block;
    
    PSPDF_EMPTY_INIT_UNAVAILABLE
    
    - (instancetype)initWithSoundAnnotation:(PSPDFSoundAnnotation *)annotation NS_DESIGNATED_INITIALIZER;
    
    /// The controlled sound annotation.
    @property (nonatomic, weak, readonly) PSPDFSoundAnnotation *annotation;
    
    /// The current playback state.
    @property (nonatomic, readonly) PSPDFSoundAnnotationState state;
    
    /// The duration of the audio playback
    @property (nonatomic, readonly) NSTimeInterval playbackDuration;
    
    /// Starts or resumes playback.
    - (BOOL)startPlayback:(NSError **)error;
    
    /// Pauses playback or recording.
    - (void)pause;
    
    /// Stops playback or recording.
    - (BOOL)stop:(NSError **)error;
    
    #if !TARGET_OS_WATCH
    
    /// The audio player object. Only available if playback is ongoing or prepared.
    @property (nonatomic, readonly, nullable) AVAudioPlayer *audioPlayer;
    
    #endif
    
    #if PSPDF_HAS_RECORDING_FEATURE
    
    /// Starts or resumes recording.
    - (BOOL)startRecording:(NSError **)error;
    
    /// Discards the current recording.
    - (void)discardRecording;
    
    #endif
    
    @end

    Swift

    class SoundAnnotationController : NSObject
  • Controls text-to-speech features.

    Note

    This class can only be used from the main thread.

    Voice availability depends on user settings, platform and os version. High-quality voices might need to be manually downloaded https://support.apple.com/en-us/HT203077

    Voice selection uses [AVSpeechSynthesisVoice voiceWithLanguage:]. This will return enhanced quality voice if available, default quality otherwise.

    The Siri isn’t part of the voice selection list, Apple has “no plan to change” this. (rdar://42656565)

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSpeechController : NSObject

    Swift

    class SpeechController : NSObject
  • Base class that shows centered labels and a spinner label.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSpinnerCell : PSPDFTableViewCell

    Swift

    class PDFSpinnerCell : PDFTableViewCell
  • The spread view is responsible for laying out one or multiple page views.

    It ensures the best display for the pages it is responsible for and makes sure pages are shown in the correct order (e.g. respecting the page binding).

    A spread describes a collection of continuous pages that are grouped in a logical container from the layout. E.g. if you have a book, when the book is open you will always see two pages next to each other. These two pages build one spread. If you have a stack of loose paper on the other hand, you always only see one page, so a spread only consists of one page in that example.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSpreadView : UIView <PSPDFOverridable>

    Swift

    class PDFSpreadView : UIView, Overridable
  • The PDF Square annotations (PDF 1.3) shall display a rectangle on the page.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSquareAnnotation
        : PSPDFAbstractShapeAnnotation <PSPDFOverridable>

    Swift

    class SquareAnnotation : AbstractShapeAnnotation, Overridable
  • Text Squiggly Annotation

    Warning

    If you programmatically create a squiggly annotation, you need to both set the boundingBox AND the rects array. The rects array contains boxed variants of CGRect (NSValue).

    Declaration

    Objective-C

    
    @interface PSPDFSquigglyAnnotation
        : PSPDFTextMarkupAnnotation <PSPDFOverridable>

    Swift

    class SquigglyAnnotation : TextMarkupAnnotation, Overridable
  • The stack view layout produces a similar look than a UIStackView. It lays out its content either in a vertical or horizontal line.

    By default all items in a stack view layout have the same size and this size is deduced from the viewport of the layout.

    Note

    A stack view layout can only be used in a document view. It will not work properly when assigned to an arbitrary collection view.

    Subclassing

    If you want to create your own document view layout, subclassing PSPDFStackViewLayout is a good starting point. As long as you stick with the general idea that content only expands in one direction, all you need to override to customize the layout is the layoutAttributesForItemAtIndexPath: method. It is used by the other methods that deal with layout attributes.

    If you just want to change the size of items, overriding sizeForSpreadAtIndex: should be enough.

    Make sure when overriding layoutAttributesForItemAtIndexPath: to get the size for each attribute from sizeForSpreadAtIndex: as other parts of the layout are using this as well.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFStackViewLayout : PSPDFDocumentViewLayout

    Swift

    class StackViewLayout : PDFDocumentViewLayout
  • PDF stamp annotation.

    Stamp annotations that have no image and no known stampType will render their title. title is a PSPDFKit addition that is not part of the PDF specification.

    Stamps may be rotated using the rotation property from PSPDFRotatable. Rotation is not supported for vector stamps.

    Note

    Make sure you configured Image Permissions in your app. See https://pspdfkit.com/guides/ios/current/getting-started/permissions/#toc_image-permissions for further documentation.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFStampAnnotation
        : PSPDFAnnotation <PSPDFRotatable, PSPDFOverridable>

    Swift

    class StampAnnotation : Annotation, Rotatable, Overridable
  • Allows adding signatures or drawings as ink annotations.

    See more

    Declaration

    Swift

    class StampViewController : AnnotationGridViewController, AnnotationGridViewControllerDataSource, TextStampViewControllerDelegate, Overridable
  • An abstract class for a controller that manages a table view or shows a label when there is no content for the table view.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFStatefulTableViewController
        : PSPDFBaseTableViewController <PSPDFStatefulViewControlling>

    Swift

    class StatefulTableViewController : BaseTableViewController, StatefulViewControlling
  • Helps to create controllers that show static table view content.

    Declaration

    Objective-C

    
    @interface PSPDFStaticTableViewController : PSPDFBaseTableViewController

    Swift

    class PDFStaticTableViewController : BaseTableViewController
  • Represents a single HUD item.

    Warning

    Only use this class on the main thread.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFStatusHUDItem : NSObject

    Swift

    class StatusHUDItem : NSObject
  • A progress view/status HUD.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFStatusHUD : NSObject

    Swift

    class StatusHUD : NSObject
  • Status HUD view that represents a given status HUD item.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFStatusHUDView : UIView <PSPDFOverridable>

    Swift

    class StatusHUDView : UIView, Overridable
  • Text StrikeOut Annotation

    Warning

    If you programmatically create a strikeout annotation, you need to both set the boundingBox AND the rects array. The rects array contains boxed variants of CGRect (NSValue).

    Declaration

    Objective-C

    
    @interface PSPDFStrikeOutAnnotation
        : PSPDFTextMarkupAnnotation <PSPDFOverridable>

    Swift

    class StrikeOutAnnotation : TextMarkupAnnotation, Overridable
  • Button that can use a modern (blurred) or flat style.

    You can use UIAppearance to customize the main properties.

    [PSPDFStyleButton appearance].buttonStyle = PSPDFButtonStyleFlat;
    [PSPDFStyleButton appearance].backgroundColor = [UIColor colorWithWhite:0.1 alpha:0.8];
    [PSPDFStyleButton appearance].tintColor = UIColor.whiteColor;
    

    Note

    The background color can be customized by setting the standard backgroundColor UIView property. If you want to customize the background color, it is recommended that you use PSPDFLabelStyleFlat, as using the blur effect with a non-translucent background color might produce unexpected results.

    If you are customizing this view, you might also want to apply similar changes to PSPDFLabelView.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFStyleButton : PSPDFButton

    Swift

    class StyleButton : PDFButton
  • Submit-Form-Action: Send data to a uniform resource locator. PDF 1.2.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFSubmitFormAction : PSPDFAbstractFormAction

    Swift

    class SubmitFormAction : AbstractFormAction
  • A bar that shows tabs for switching between documents, used by PSPDFTabbedViewController.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTabbedBar : UIView

    Swift

    class PDFTabbedBar : UIView
  • Allows displaying multiple PSPDFDocuments, easily switchable via a top tab bar. Defaults to not showing the document title in the navigation bar and in the overlay, because the title is already displayed in the tab. You can change this behavior by modifying the showTitle property.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTabbedViewController : PSPDFMultiDocumentViewController

    Swift

    class PDFTabbedViewController : MultiDocumentViewController
  • Base class for table views in PSPDFKit with various helpers. Enabled unlimited lines for textLabel and detailTextLabel.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTableViewCell : UITableViewCell

    Swift

    class PDFTableViewCell : UITableViewCell
  • Simple subclass that disables animations during layoutSubviews if the popover is being resized. This fixes an unexpected animation when the tableView is updated while a popover resizes.

    Declaration

    Objective-C

    
    @interface PSPDFNonAnimatingTableViewCell : PSPDFTableViewCell

    Swift

    class NonAnimatingTableViewCell : PDFTableViewCell
  • Never allows animations during layoutSubviews.

    Declaration

    Objective-C

    
    @interface PSPDFNeverAnimatingTableViewCell
        : PSPDFTableViewCell <PSPDFOverridable>

    Swift

    class NeverAnimatingTableViewCell : PDFTableViewCell, Overridable
  • Represents multiple words forming a text block. (e.g. a Column)

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTextBlock : NSObject <NSCopying, NSSecureCoding>

    Swift

    class TextBlock : NSObject, NSCopying, NSSecureCoding
  • Text field form element.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTextFieldFormElement : PSPDFFormElement

    Swift

    class TextFieldFormElement : FormElement
  • Free Text View. Allows inline text editing.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTextFieldFormElementView
        : PSPDFFormElementView <UITextViewDelegate, UITextFieldDelegate,
                                PSPDFOverridable>

    Swift

    class TextFieldFormElementView : PDFFormElementView, UITextViewDelegate, UITextFieldDelegate, Overridable
  • Represents a text form field in a PDF form. Allows the user to enter custom text.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTextFormField : PSPDFFormField

    Swift

    class TextFormField : PDFFormField
  • Base class for Highlight, Underline, StrikeOut and Squiggly annotations. You should never create instances of this class directly. Use one of its subclasses instead.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTextMarkupAnnotation : PSPDFAnnotation

    Swift

    class TextMarkupAnnotation : Annotation
  • Parses text and glyph data of a PDF page.

    Note

    Do not instantiate this class directly. Instead, use -[PSPDFDocument textParserForPageAtIndex:]. Properties are evaluated lazily and cached.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFTextParser : NSObject <PSPDFOverridable>

    Swift

    class TextParser : NSObject, Overridable
  • Manages search operations for a specific document. You can copy this class to be able to use it on your custom class. (and set a different delegate) Copying will preserve all settings except the delegate.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTextSearch : NSObject <NSCopying, PSPDFOverridable>

    Swift

    class TextSearch : NSObject, NSCopying, Overridable
  • Handles text and image selection on a page.

    Note

    Requires the PSPDFFeatureMaskTextSelection feature flag.

    Don’t manually create this class. The initializer here is not exposed.

    The selection color is determined by the tintColor property inherited from UIView. On Mac Catalyst, the tintColor is set to [NSColor selectedContentBackgroundColor] & unemphasizedSelectedContentBackgroundColor, depending if the current window is the key window or not.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTextSelectionView
        : UIView <AVSpeechSynthesizerDelegate, PSPDFOverridable>

    Swift

    class TextSelectionView : UIView, AVSpeechSynthesizerDelegate, Overridable
  • A view controller that lets users create or edit a custom text annotation stamp.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFTextStampViewController
        : PSPDFStaticTableViewController <PSPDFOverridable>

    Swift

    class TextStampViewController : PDFStaticTableViewController, Overridable
  • Bottom bar that shows a scrollable list of thumbnails.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFThumbnailBar
        : UICollectionView <UICollectionViewDataSource, UICollectionViewDelegate,
                            PSPDFOverridable>

    Swift

    class ThumbnailBar : UICollectionView, UICollectionViewDataSource, UICollectionViewDelegate, Overridable
  • Layout attributes for the thubmnail collection view.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFThumbnailFlowLayoutAttributes : UICollectionViewLayoutAttributes

    Swift

    class ThumbnailFlowLayoutAttributes : UICollectionViewLayoutAttributes
  • A layout similar to UICollectionViewFlowLayout with support for sticky headers and double-page spreads, as you’d use it for the thumbnails of a magazine.

    Note

    This layout only supports a single section. Using multiple sections is unsupported and may result in undefined behavior.

    Note

    This layout only supports a very limited horizontal scrolling mode which you can enable by setting the singleLineMode property to YES.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFThumbnailFlowLayout : UICollectionViewLayout

    Swift

    class ThumbnailFlowLayout : UICollectionViewLayout
  • The thumbnail cell classed used for the thumbnail grid and thumbnail scroll bar.

    Note

    To modify the selection/highlight state, customize selectedBackgroundView.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFThumbnailGridViewCell : PSPDFPageCell <PSPDFOverridable>

    Swift

    class ThumbnailGridViewCell : PDFPageCell, Overridable
  • Table view cell that shows a thumbnail image along with a few text elements.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFThumbnailTextCell : PSPDFNonAnimatingTableViewCell

    Swift

    class ThumbnailTextCell : NonAnimatingTableViewCell
  • Subclass to enable UIAppearance rules on the filter.

    Declaration

    Objective-C

    
    @interface PSPDFThumbnailFilterSegmentedControl
        : PSPDFSegmentedControl <PSPDFOverridable>

    Swift

    class ThumbnailFilterSegmentedControl : SegmentedControl, Overridable
  • The thumbnail view controller.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFThumbnailViewController
        : UICollectionViewController <
              UICollectionViewDataSource, UICollectionViewDelegate,
              PSPDFViewModePresenter,
              PSPDFCollectionViewDelegateThumbnailFlowLayout, PSPDFOverridable>

    Swift

    class ThumbnailViewController : UICollectionViewController, UICollectionViewDataSource, UICollectionViewDelegate, ViewModePresenter, CollectionViewDelegateThumbnailFlowLayout, Overridable
  • Manages and displays an array of buttons as a toolbar. Similar to UIToolbar, but operates on UIButtons directly and allows for a bit more flexibility during layout. Also provides some more advanced functionality like smart automatic overflow handling.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFToolbar : UIView

    Swift

    class Toolbar : UIView
  • A UIButton subclass that mimic the appearance of plain style UIBarButtonItems.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFToolbarButton : PSPDFButton <PSPDFOverridable>

    Swift

    class ToolbarButton : PDFButton, Overridable
  • Buttons that can be used as spacers for the toolbar (similar to UIBarButtonSystemItemFlexibleSpace and UIBarButtonSystemItemFixedSpace). Does not allow user interaction and is not visible, but takes up space on the toolbar. Use the properties described under “Metrics” form PSPDFToolbarButton for sizing.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFToolbarSpacerButton : PSPDFToolbarButton

    Swift

    class ToolbarSpacerButton : ToolbarButton
  • Sends out PSPDFControlEventTick events while the button is pressed.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFToolbarTickerButton : PSPDFToolbarButton

    Swift

    class ToolbarTickerButton : ToolbarButton
  • A custom spacer button that visually separates button groups.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFToolbarSeparatorButton : PSPDFToolbarSpacerButton

    Swift

    class ToolbarSeparatorButton : ToolbarSpacerButton
  • Undocumented

    See more

    Declaration

    Objective-C

    
    @interface PSPDFToolbarSelectableButton : PSPDFToolbarButton

    Swift

    class ToolbarSelectableButton : ToolbarButton
  • Toolbar button that shows a light gray rounded border.

    Declaration

    Objective-C

    
    @interface PSPDFToolbarBorderButton : PSPDFToolbarButton

    Swift

    class ToolbarBorderButton : ToolbarButton
  • PSPDFToolbarButton with a grouping disclosure indicator.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFToolbarGroupButton : PSPDFToolbarButton <PSPDFOverridable>

    Swift

    class ToolbarGroupButton : ToolbarButton, Overridable
  • PSPDFToolbarButton that combines two buttons into one.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFToolbarDualButton : PSPDFToolbarButton

    Swift

    class ToolbarDualButton : ToolbarButton
  • Special PSPDFToolbarGroupButton used for the collapsed button item.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFToolbarCollapsedButton : PSPDFToolbarGroupButton

    Swift

    class ToolbarCollapsedButton : ToolbarGroupButton
  • Opens a URL target. This can be similar to a PSPDFRemoteGoToAction if a pspdfkit:// URL with a page target is used.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFURLAction : PSPDFAction

    Swift

    class URLAction : Action
  • Text Underline Annotation

    Warning

    If you programmatically create an underline annotation, you need to both set the boundingBox AND the rects array. The rects array contains boxed variants of CGRect (NSValue).

    Declaration

    Objective-C

    
    @interface PSPDFUnderlineAnnotation
        : PSPDFTextMarkupAnnotation <PSPDFOverridable>

    Swift

    class UnderlineAnnotation : TextMarkupAnnotation, Overridable
  • This is a custom undo manager that can coalesce similar changes within the same group. This class is thread safe.

    PSPDFKit creates instances of this class internally and makes them available on various objects. You should not create new instances of this class yourself.

    Note

    Only use a perform/lock block if you’re not in any other lock controlled by PSPDFKit.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFUndoController : NSObject

    Swift

    class UndoController : NSObject
  • Empty subclass for easier debugging.

    Declaration

    Objective-C

    
    @interface PSPDFDocumentLabelView : PSPDFLabelView <PSPDFOverridable>

    Swift

    class DocumentLabelView : PDFLabelView, Overridable
  • The user interface view overlay for the PSPDFViewController. Contains the thumbnail and page/title label overlays.

    See more

    Declaration

    Swift

    class UserInterfaceView : RelayTouchesView, ThumbnailBarDelegate, ScrubberBarDelegate, PageLabelViewDelegate, Overridable
  • A helper that can be used to present a dialog, allowing the user to specify the annotation author name.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFUsernameHelper : NSObject

    Swift

    class UsernameHelper : NSObject
  • Undocumented

    Declaration

    Objective-C

    @interface PSPDFVersionDummy : NSObject
    @end

    Swift

    class PSPDFVersionDummy
  • This is the main view controller to display PDF documents.

    This view controller can be used modally or embedded in another view controller.

    Note

    When adding as a child view controller, ensure view controller containment is set up correctly. If you override this class, ensure all UIViewController methods you’re using do call super. https://pspdfkit.com/guides/ios/current/customizing-the-interface/embedding-the-pspdfviewcontroller-inside-a-custom-container-view-controller/

    For subclassing, use overrideClass:withClass: to register your custom subclasses. https://pspdfkit.com/guides/ios/current/getting-started/overriding-classes/

    The best time for setting properties is during initialization in commonInitWithDocument:configuration:. Some properties require a call to reloadData if they are changed after the controller has been displayed. Do not set properties during a rotation phase or view appearance (e.g. use viewDidAppear: instead of viewWillAppear:) since that could corrupt internal state, instead use updateSettingsForBoundsChangeBlock.

    See more

    Declaration

    Swift

    class PDFViewController : PDFBaseViewController, PresentationContext, ControlDelegate, Overridable, TextSearchDelegate, InlineSearchManagerDelegate, ErrorHandler, ExternalURLHandler, OutlineViewControllerDelegate, BookmarkViewControllerDelegate, WebViewControllerDelegate, SearchViewControllerDelegate, AnnotationTableViewControllerDelegate, BackForwardActionListDelegate, FlexibleToolbarContainerDelegate, MFMailComposeViewControllerDelegate, MFMessageComposeViewControllerDelegate, ConflictResolutionManagerDelegate
  • Represents a certain view state (document position, zoom) of a PSPDFDocument.

    Note

    Prior to PSPDFKit 8 for iOS, if an instance of this class had a viewPort, that view port was defined in raw PDF coordinates (not considering page rotation or CropBox). The view port is now defined in normalized PDF coordinates. Instances created from old archives may contain unexpected view ports, but PSPDFKit will automatically apply the page transform when such an instance is applied to a view.
    See more

    Declaration

    Objective-C

    
    @interface PSPDFViewState : PSPDFModel <NSSecureCoding>

    Swift

    class PDFViewState : ModelObject, NSSecureCoding
  • Inline Web Browser.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFWebViewController
        : PSPDFBaseViewController <PSPDFStyleable, PSPDFOverridable>

    Swift

    class WebViewController : PDFBaseViewController, Styleable, Overridable
  • UI to create a new or edit an existing link annotation that links to a web URL.

    Declaration

    Objective-C

    
    @interface PSPDFWebsiteLinkAnnotationEditingViewController
        : PSPDFLinkAnnotationEditingViewController

    Swift

    class WebsiteLinkAnnotationEditingViewController : LinkAnnotationEditingViewController
  • The PDF ‘Widget’ annotation. A Widget usually is a button, much like a link annotation.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFWidgetAnnotation : PSPDFAnnotation <PSPDFOverridable>

    Swift

    class WidgetAnnotation : Annotation, Overridable
  • Represents a word. Formed out of (usually) multiple glyphs.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFWord : NSObject <NSCopying, NSSecureCoding>

    Swift

    class Word : NSObject, NSCopying, NSSecureCoding
  • This class represents a X.509 certificate.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFX509 : NSObject

    Swift

    class X509 : NSObject
  • Concrete implementation of the PSPDFAnnotationProvider protocol that uses a XFDF file as a source.

    The XFDF file needs to be local and in a writable location, not on a web server. This annotation provider handles data form fields according to the XFDF spec: “An XFDF file with form data contains form field names and values. When importing XFDF into Acrobat, the target PDF file must already contain the form fields. Importing XFDF updates the form field values in the PDF file. Exporting to XFDF puts the current value of the field in the value element. Using XFDF, it is not possible to create a new form field in a PDF document, or change anything other than the value of an existing form field.” It compliments an existing data form fields from PDF with values from the XFDF file. If data form field value is not found in the XFDF file it will be served by this provider with the default value.

    If you use XFDF to fill out form elements, you will want to keep both the file annotation provider and the xfdf provider around, using following order: annotationProviders = [xfdfProvider, fileProvider]. Without the fileProvider, form elements will not be found. (In versions of PSPDFKit earlier than 7.5, we did that somewhat magically. This requirement has now been made explicit.)

    Note

    Requires the PSPDFFeatureMaskAnnotationEditing feature flag.

    Note

    If an error occurs when attaching a parsed annotation a document, the error is logged and the annotation is skipped.

    Warning

    If the XFDF contains annotations with page indicies beyond the length of the document, then warnings will be logged and those annotations will be skipped.

    See more

    Declaration

    Objective-C

    
    @interface PSPDFXFDFAnnotationProvider : PSPDFContainerAnnotationProvider

    Swift

    class XFDFAnnotationProvider : PDFContainerAnnotationProvider
  • Declaration

    Objective-C

    
    @interface PSPDFXFDFParser : NSObject

    Swift

    class XFDFParser : NSObject
  • Writes an XML in XFDF standard from PSPDFKit annotations. http://partners.adobe.com/public/developer/en/xml/XFDF_Spec_3.0.pdf

    See more

    Declaration

    Objective-C

    
    @interface PSPDFXFDFWriter : NSObject

    Swift

    class XFDFWriter : NSObject