- Notifications
You must be signed in to change notification settings - Fork548
PDFKit tvOS xcode16.2 b2
Rolf Bjarne Kvinge edited this pageDec 2, 2024 ·2 revisions
#PDFKit.frameworkhttps://github.com/xamarin/xamarin-macios/pull/21739
diff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAction.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAction.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAction.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAction.h2024-10-25 21:20:39@@ -0,0 +1,33 @@+//+// PDFAction.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFAction is an abstract class, representing an event a user can trigger through+// interaction with the owning annotation. These events are PDFActionGoTo, PDFActionNamed,+// PDFActionRemoveGoTo, PDFActionResetForm, and PDFActionURL. Typically these events+// are for moving the PDFView view-portal, open a web browser, clear out forms, etc.+//++#import <PDFKit/PDFKitPlatform.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFActionPrivate;++PDFKIT_CLASS_AVAILABLE(10_5, 11_0)+@interface PDFAction : NSObject <NSCopying>+{+@private+ PDFActionPrivate *_private;+}++// Type of action. These won't always correspond to the PDFAction subclass in the way you might expect. For example,+// a PDFActionURL may return "URI" or "Launch" depending upon the original action (as defined in the PDF spec. - for+// the PDFKit API we decided to handle the two actions within the same class and also use the more familiar 'URL' term+// rather than 'URI').+// Type based on the Adobe PDF Specification (1.7), Table 8.48: Action types.+@property (nonatomic, readonly) NSString *type;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionGoTo.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionGoTo.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionGoTo.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionGoTo.h2024-10-25 21:20:39@@ -0,0 +1,31 @@+//+// PDFActionGoto.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFActionGoTo is an interaction event tied with an annotation. This action+// allows the user to jump to a PDFDestination, which is typically a position+// on a page paired with a zoom factor.+//++#import <PDFKit/PDFKitPlatform.h>++#import <PDFKit/PDFAction.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFDestination, PDFActionGoToPrivateVars;++PDFKIT_CLASS_AVAILABLE(10_5, 11_0)+@interface PDFActionGoTo : PDFAction <NSCopying>+{+@private+ PDFActionGoToPrivateVars *_private2;+}++- (instancetype)initWithDestination:(PDFDestination *)destination NS_DESIGNATED_INITIALIZER;++@property (nonatomic, strong) PDFDestination *destination;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionNamed.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionNamed.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionNamed.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionNamed.h2024-10-25 21:20:40@@ -0,0 +1,51 @@+//+// PDFActionNamed.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFActionNamed is an interaction event tied with an annotation. This action+// allows the user to change their navigation stack or their current view. This+// can manipulate the user's navigation stack (move to the previous page, next page etc.),+// trigger some other forms of interactions (string search, printing, etc.), and+// manipulate the current view (change zoom factors).+//++#import <PDFKit/PDFKitPlatform.h>++#import <PDFKit/PDFAction.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFActionNamedPrivateVars;++// Action names.+PDFKIT_ENUM_AVAILABLE(10_5, 11_0)+typedef NS_ENUM(NSInteger, PDFActionNamedName)+{+ kPDFActionNamedNone = 0,+ kPDFActionNamedNextPage = 1,+ kPDFActionNamedPreviousPage = 2,+ kPDFActionNamedFirstPage = 3,+ kPDFActionNamedLastPage = 4,+ kPDFActionNamedGoBack = 5,+ kPDFActionNamedGoForward = 6,+ kPDFActionNamedGoToPage = 7,+ kPDFActionNamedFind = 8,+ kPDFActionNamedPrint = 9,+ kPDFActionNamedZoomIn = 10,+ kPDFActionNamedZoomOut = 11+};++PDFKIT_CLASS_AVAILABLE(10_5, 11_0)+@interface PDFActionNamed : PDFAction <NSCopying>+{+@private+ PDFActionNamedPrivateVars *_private2;+}++- (instancetype)initWithName:(PDFActionNamedName)name NS_DESIGNATED_INITIALIZER;++@property (nonatomic) PDFActionNamedName name;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionRemoteGoTo.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionRemoteGoTo.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionRemoteGoTo.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionRemoteGoTo.h2024-10-25 21:20:39@@ -0,0 +1,41 @@+//+// PDFActionRemoteGoTo.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFActionRemoteGoTo is an interaction event tied with an annotation. This action+// is the same action type as PDFActionGoTo, but references another document, allowing+// you to jump to specific pages or positions in other PDF files.+//++#import <PDFKit/PDFKitPlatform.h>++#import <PDFKit/PDFAction.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFActionRemoteGoToPrivateVars;++PDFKIT_CLASS_AVAILABLE(10_5, 11_0)+@interface PDFActionRemoteGoTo : PDFAction <NSCopying>+{+@private+ PDFActionRemoteGoToPrivateVars *_private2;+}++// As with the calls below, note that PDFActionRemoteGoTo uses a zero-based page index and not a PDFPage object.+// This simplifies dealing with remote destinations for documents that may not be instantiated.+- (instancetype)initWithPageIndex:(NSUInteger)pageIndex atPoint:(PDFPoint)point fileURL:(NSURL *)url NS_DESIGNATED_INITIALIZER;++// Get and set the page index (zero-based) referenced by the action.+@property (nonatomic) NSUInteger pageIndex;++// Get and set the point on the above page referenced by the action. Just like PDFDestination a value of+// kPDFDestinationUnspecifiedValue for the x or the y of the point indicates that no position is specified.+@property (nonatomic) PDFPoint point;++// Get and set the URL of the document referenced from the action.+@property (nonatomic, copy) NSURL *URL;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionResetForm.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionResetForm.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionResetForm.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionResetForm.h2024-10-25 21:20:40@@ -0,0 +1,41 @@+//+// PDFActionResetForm.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFActionResetForm is an interaction event tied with an annotation. This action+// allows a user to reset all form fields (associated by their fieldNames) annotations.+// Form field annotations are typically widget-type annotations.+//++#import <PDFKit/PDFKitPlatform.h>++#import <PDFKit/PDFAction.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFActionResetFormPrivateVars;++PDFKIT_CLASS_AVAILABLE(10_5, 11_0)+@interface PDFActionResetForm : PDFAction <NSCopying>+{+@private+ PDFActionResetFormPrivateVars *_private2;+}++// Initially there will be no fields, and -[fieldsIncludedAreCleared] will be YES.+- (instancetype)init NS_DESIGNATED_INITIALIZER;++// Fields are an array of NSString objects corresponding to the fieldNames of Widget annotations on the page.+// May return nil.+@property (nonatomic, copy, nullable) NSArray<NSString*> *fields;++// If -[fieldsIncludedAreCleared] is YES, then the widget annotations associated with the fieldNames in the fields+// array above are to be cleared, i.e. uncheck checkboxes, clear text fields, reset radio buttons, etc.+// If -[fieldsIncludedAreCleared] is NO, then every widget annotation associated with the fields array is not to be+// cleared, meaning that every widget annotation in the document whose field name is not listed is to be cleared.+// Both situations above only occur when this reset-form action is performed.+@property (nonatomic) BOOL fieldsIncludedAreCleared;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionURL.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionURL.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionURL.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFActionURL.h2024-10-25 21:20:40@@ -0,0 +1,28 @@+//+// PDFActionURL.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFActionURL is an interaction event tied with an annotation. This action allows+// the user to open a URL, either being a local file or web URL.+//++#import <PDFKit/PDFAction.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFActionURLPrivateVars;++PDFKIT_CLASS_AVAILABLE(10_5, 11_0)+@interface PDFActionURL : PDFAction <NSCopying>+{+@private+ PDFActionURLPrivateVars *_private2;+}++- (instancetype)initWithURL:(NSURL *)url NS_DESIGNATED_INITIALIZER;++@property (nonatomic, copy, nullable) NSURL *URL;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAnnotation.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAnnotation.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAnnotation.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAnnotation.h2024-10-26 02:52:48@@ -0,0 +1,307 @@+//+// PDFAnnotation.h+// Copyright � 2019 Apple. All rights reserved.+//+// PDFAnnotation is a wrapper class of all annotation types for a PDF document.+// It is a container of key-value pairs that map directly to the PDF file format, defined+// in the Adobe PDF Specification (file format version 1.7). You can manipulate+// properties of an annotation by either assigning key-value pairs, where keys are always+// strings defined in the specification and listed below (example: PDFAnnotationKeyFlags).+// You can also replace existing key-values in the PDFAnnotation dictionary, or remove them.+// Value types vary based on what the key is. For example, the value for a color key can either+// be an array of numbers (0 for no color, 1 for gray, 3 for RGB, 4 for CMYK) or can be an+// NSColor or UIColor instance. Some keys require complex values, typically as an array or+// dictionaries of objects. PDFKit provides some classes as a convenience for these complex+// type: PDFBorder, PDFAction (its subclasses), PDFDestination. Note that there are also+// helper category functions that are specialized for many of the legacy PDFAnnotation+// subclasses. You can find this in PDFAnnotationUtilities.h+//+// Note that the preferred constructor for PDFAnnotation is -[initWithBounds:forType:withProperties:],+// and at a minimum you must set bounds and type for the annotation. Calling -[init] will raise an+// exception. To add an annotation to a page, you must do so via -[PDFPage addAnnotation:] on your+// desired page. You may not change annotation subtype at runtime. If you want to change annotation+// subtype, remove the annotation and add a new instance. If you use the deprecated constructor+// -[initWithBounds:], you may set the annotation subtype only once. Any future assignments of subtype+// will be ignored and produce a warning.+//+// Note that PDFAnnotation can render any annotation with a content-stream entry in the annotation's+// dictionary, though some are supported natively based on their annotation dictionary. Supported+// annotations have their subtype declared via NSString defined in PDFAnnotationUtilities.h+// using the naming convention "PDFAnnotationSubtypeX", where X is the subtype. Those not in+// this list will only draw if there is an appearance stream.+//+// Adobe PDF Specification (1.7) defines in Table 8.15 "Entries common to all annotation+// dictionaries" 14 common properties among all annotations. 2-4 are required, the rest are+// optional. PDFKit supports 13 of these annotations. For all common properties and each+// annotation's specific properties, we define them as enumerations and enum-mapped strings at+// the top of this file.+//+// You can activate logging of any annotation key-value assignments that fails by setting the+// environment variable "PDFKIT_LOG_ANNOTATIONS" to any value.+//++#import <PDFKit/PDFKitPlatform.h>+#import <PDFKit/PDFPage.h>+#import <PDFKit/PDFAction.h>++NS_ASSUME_NONNULL_BEGIN++// All PDF annotation subtypes that PDFKit can render: based on Adobe PDF specification, Table 8.20: Annotation types.+// Annotation subtypes not supported: Polygon, PolyLine, Squiggly, Caret, Caret, FileAttachment,+// Sound, Movie, Screen, PrinterMark, TrapNet, Watermark, 3D, Rect.+typedef NSString* const PDFAnnotationSubtype NS_STRING_ENUM;++// Common keys used for all annotations+// Adobe PDF Specification (1.7), Table 8.15: Entries common to all annotation dictionaries+typedef NSString* const PDFAnnotationKey NS_STRING_ENUM;++PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyAppearanceDictionary PDFKIT_AVAILABLE(10_13, 11_0); // "/AP": Dictionary+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyAppearanceState PDFKIT_AVAILABLE(10_13, 11_0); // "/AS": Name+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyBorder PDFKIT_AVAILABLE(10_13, 11_0); // "/Border": Array of Integers; or a PDFBorder object+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyColor PDFKIT_AVAILABLE(10_13, 11_0); // "/C": Array of Floats; or a PDFKitPlatformColor object+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyContents PDFKIT_AVAILABLE(10_13, 11_0); // "/Contents": String+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyFlags PDFKIT_AVAILABLE(10_13, 11_0); // "/F": Integer+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyDate PDFKIT_AVAILABLE(10_13, 11_0); // "/M": Date or String+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyName PDFKIT_AVAILABLE(10_13, 11_0); // "/NM": String+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyPage PDFKIT_AVAILABLE(10_13, 11_0); // "/P": Dictionary; or a PDFPage object.+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyRect PDFKIT_AVAILABLE(10_13, 11_0); // "/Rect": CGRect+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeySubtype PDFKIT_AVAILABLE(10_13, 11_0); // "/Subtype": Name (See Table 8.20: Annotation types)++// Additional annotation extensions...+// Adobe PDF Specification (1.7), Table 8.23: Additional entries specific to a text annotation+// Adobe PDF Specification (1.7), Table 8.24: Additional entries specific to a link annotation+// Adobe PDF Specification (1.7), Table 8.25: Additional entries specific to a free text annotation+// Adobe PDF Specification (1.7), Table 8.26: Additional entries specific to a line annotation+// Adobe PDF Specification (1.7), Table 8.28: Additional entries specific to a square or circle annotation+// Adobe PDF Specification (1.7), Table 8.30: Additional entries specific to text markup annotations (highlight, underline, strikeout)+// Adobe PDF Specification (1.7), Table 8.32: Additional entries specific to a rubber stamp annotation+// Adobe PDF Specification (1.7), Table 8.33: Additional entries specific to an ink annotation+// Adobe PDF Specification (1.7), Table 8.34: Additional entries specific to a pop-up annotation+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyAction PDFKIT_AVAILABLE(10_13, 11_0); // "/A": Dictionary; or a PDFAction object+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyAdditionalActions PDFKIT_AVAILABLE(10_13, 11_0); // "/AA": Dictionary; or a PDFAction object+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyBorderStyle PDFKIT_AVAILABLE(10_13, 11_0); // "/BS": Dictionary+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyDefaultAppearance PDFKIT_AVAILABLE(10_13, 11_0); // "/DA": String+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyDestination PDFKIT_AVAILABLE(10_13, 11_0); // "/Dest": Array, Name, or String+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyHighlightingMode PDFKIT_AVAILABLE(10_13, 11_0); // "/H": Name+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyInklist PDFKIT_AVAILABLE(10_13, 11_0); // "/Inklist": Array of Arrays (each array representing a stroked path)+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyInteriorColor PDFKIT_AVAILABLE(10_13, 11_0); // "/IC": Array of Floats; or a PDFKitPlatformColor object+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyLinePoints PDFKIT_AVAILABLE(10_13, 11_0); // "/L": Array of Floats+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyLineEndingStyles PDFKIT_AVAILABLE(10_13, 11_0); // "/LE": Array of Strings+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyIconName PDFKIT_AVAILABLE(10_13, 11_0); // "/Name": Name+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyOpen PDFKIT_AVAILABLE(10_13, 11_0); // "/Open": Boolean+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyParent PDFKIT_AVAILABLE(10_13, 11_0); // "/Parent": Dictionary; or a PDFAnnotation object+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyPopup PDFKIT_AVAILABLE(10_13, 11_0); // "/Popup": Dictionary; or a PDFAnnotation object of type "Popup"+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyQuadding PDFKIT_AVAILABLE(10_13, 11_0); // "/Q": Integer+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyQuadPoints PDFKIT_AVAILABLE(10_13, 11_0); // "/QuadPoints": Array of Floats+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyTextLabel PDFKIT_AVAILABLE(10_13, 11_0); // "/T": String++// Widget annotation extensions+// Adobe PDF Specification (1.7), Table 8.39: Additional entries specific to a widget annotation+// Adobe PDF Specification (1.7), Table 8.40: Entries in an appearance characteristics dictionary+// Adobe PDF Specification (1.7), Table 8.69: Entries common to all field dictionaries+// Adobe PDF Specification (1.7), Table 8.76: Additional entry specific to check box and radio button fields+// Adobe PDF Specification (1.7), Table 8.78: Additional entry specific to a text field+// Adobe PDF Specification (1.7), Table 8.80: Additional entries specific to a choice field+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetDownCaption PDFKIT_AVAILABLE(10_13, 11_0); // "/AC": String+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetBorderColor PDFKIT_AVAILABLE(10_13, 11_0); // "/BC": Array of Floats; or a PDFKitPlatformColor object+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetBackgroundColor PDFKIT_AVAILABLE(10_13, 11_0); // "/BG": Array of Floats; or a PDFKitPlatformColor object+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetCaption PDFKIT_AVAILABLE(10_13, 11_0); // "/CA": String+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetDefaultValue PDFKIT_AVAILABLE(10_13, 11_0); // "/DV": (various)+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetFieldFlags PDFKIT_AVAILABLE(10_13, 11_0); // "/Ff": Integer+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetFieldType PDFKIT_AVAILABLE(10_13, 11_0); // "/FT": Name+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetAppearanceDictionary PDFKIT_AVAILABLE(10_13, 11_0); // "/MK": Dictionary; or PDFAppearanceCharacteristics object+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetMaxLen PDFKIT_AVAILABLE(10_13, 11_0); // "/MaxLen": Integer+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetOptions PDFKIT_AVAILABLE(10_13, 11_0); // "/Opt": Array (each element is either a string, or an array of two strings)+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetRotation PDFKIT_AVAILABLE(10_13, 11_0); // "/R": Integer+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetRolloverCaption PDFKIT_AVAILABLE(10_13, 11_0); // "/RC": String+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetTextLabelUI PDFKIT_AVAILABLE(10_13, 11_0); // "/TU": String+PDFKIT_EXTERN PDFAnnotationKey PDFAnnotationKeyWidgetValue PDFKIT_AVAILABLE(10_13, 11_0); // "/V": (various)++@class PDFAction, PDFBorder, PDFPage, PDFAnnotationPopup;++PDFKIT_CLASS_AVAILABLE(10_4, 11_0)+@interface PDFAnnotation : NSObject <NSCopying, NSCoding>+{+}++// This is the base class for all annotations. A PDFAnnotation object by itself is not useful, only subclasses (like+// PDFAnnotationCircle, PDFAnnotationText) are interesting. In parsing a PDF however, any unknown or unsupported+// annotations will be represented as this base class.++// -------- initializer++// Create a custom annotation with bounds, a type (PDFAnnotationSubtype), and an (optional) dictionary of annotation properties.+- (instancetype)initWithBounds:(PDFRect)bounds forType:(PDFAnnotationSubtype)annotationType withProperties:(nullable NSDictionary*)properties PDFKIT_AVAILABLE(10_13, 11_0) NS_DESIGNATED_INITIALIZER;++// -------- accessors++// Returns the page the annotation is associated with (may return nil if annotation not associated with a page).+@property (nonatomic, weak, nullable) PDFPage *page;++// Returns the annotation type (called "Subtype" in the PDF specification since "Annot" is the type). Examples include:+// "Text", "Link", "Line", etc. Required. Note that you are only allowed to set the type of an annotation once.+@property (nonatomic, copy, nullable) NSString *type;++// Required for all annotations. The bounding box in page-space of the annotation.+@property (nonatomic) PDFRect bounds;++// Indicates whether the annotation should be displayed on screen (depending upon -[shouldPrint] it may still print).+@property (nonatomic) BOOL shouldDisplay;++// Indicates whether the annotation should be printed or not.+@property (nonatomic) BOOL shouldPrint;++// Optional (-[modificationDate] may return nil). Modification date of the annotation.+@property (nonatomic, copy, nullable) NSDate *modificationDate PDFKIT_AVAILABLE(10_5, 11_0);++// Optional (-[userName] may return nil). Name of the user who created the annotation.+@property (nonatomic, copy, nullable) NSString *userName PDFKIT_AVAILABLE(10_5, 11_0);++// Optional (-[popup] may return nil). Not used with links or widgets, a popup annotation associated with this+// annotation. The bounds and open state of the popup indicate the placement and open state of the popup window.+@property (nonatomic, strong, nullable) PDFAnnotation *popup PDFKIT_AVAILABLE(10_5, 11_0);++// Optional border or border style that describes how to draw the annotation border (if any). For the "geometry"+// annotations (Circle, Ink, Line, Square), the border indicates the line width and whether to draw with a dash pattern+// or solid pattern. PDFAnnotation markup types (Highlight, Strikethrough, Underline) ignores the border.+@property (nonatomic, strong, nullable) PDFBorder *border PDFKIT_AVAILABLE(10_4, 11_0);++// For many annotations ("Circle", "Square") the stroke color. Used for other annotations as well.+@property (nonatomic, copy) PDFKitPlatformColor *color PDFKIT_AVAILABLE(10_4, 11_0);++// A string of text associated with an annotation. Often displayed in a window when the annotation is clicked on+// ("FreeText" and "Text" especially).+@property (nonatomic, copy, nullable) NSString *contents PDFKIT_AVAILABLE(10_5, 11_0);++// Optional action performed when a user clicks / taps an annotation. PDF readers ignore actions except+// for those associated with Link or button Widget annotations.+@property (nonatomic, strong, nullable) PDFAction *action PDFKIT_AVAILABLE(10_5, 11_0);++// Returns YES if the annotation has an appearance stream. Annotations with appearance streams are drawn using their+// stream. As a result setting many parameters (like -[setColor:] above) will have no visible effect.+@property (nonatomic, readonly) BOOL hasAppearanceStream;++// The highlight state dictates how the annotation is drawn. For example, if a user has clicked on a+// "Link" annotation, you should set highlighted to YES and redraw it. When the user lets up, set highlighted to+// NO and redraw again.+@property (nonatomic, getter=isHighlighted) BOOL highlighted PDFKIT_AVAILABLE(10_13, 11_0);++// -------- drawing++// Draw method. Draws in page-space relative to origin of "box" passed in and to the given context+- (void)drawWithBox:(PDFDisplayBox)box inContext:(CGContextRef)context PDFKIT_AVAILABLE(10_12, 11_0);++// -------- attribute mutations++// Allows you to set a key-value pair in this annotation's dictionary. Returns true on successful+// assignment, false on error. Key must be valid for a PDF annotation's object type, and must have+// a value that is acceptable for the key type. These values can either be an NSString, NSNumber,+// NSArray of strings or numbers, or an NSDictionary of the previously listed types. Some keys expect+// a complex type, for example the key "/C" expects a color in the format of an array of 0, 1, 3,+// or 4 elements, with each element being a floating-point number in the range of 0.0 - 1.0 ). As+// a convenience, these kind of keys will directly accept NSColor / UIColor values. Other convenience+// functions provide similar support can be found in PDFAnnotationUtilities header file. Note that you+// can set the environment variable "PDFKIT_LOG_ANNOTATIONS" to log any key-value assignment failures.+- (BOOL)setValue:(id)value forAnnotationKey:(PDFAnnotationKey)key PDFKIT_AVAILABLE(10_12, 11_0);+- (BOOL)setBoolean:(BOOL)value forAnnotationKey:(PDFAnnotationKey)key PDFKIT_AVAILABLE(10_12, 11_0);+- (BOOL)setRect:(PDFRect)value forAnnotationKey:(PDFAnnotationKey)key PDFKIT_AVAILABLE(10_12, 11_0);++// List all key-value pairs for this annotation; returns a deep copy of all pairs.+// Note that this method will not include a copy of the value for /Parent. This is by design as to avoid+// introduing a memory cycle. If you would like to get the /Parent propery, use -[PDFAnnotation valueForAnnotationKey:]+// with key PDFAnnotationKeyParent.+@property (nonatomic, readonly, copy) NSDictionary *annotationKeyValues PDFKIT_AVAILABLE(10_13, 11_0);++// Retrieves a deep copy of the key-value pair based on the given key; key can either be+// from the keys PDFAnnotationKey, or an appropriate string from the PDF specification.+- (nullable id)valueForAnnotationKey:(PDFAnnotationKey)key PDFKIT_AVAILABLE(10_12, 11_0);++// Remove the key-value pair from the annotation dictionary. Returns true on successful removal.+- (void)removeValueForAnnotationKey:(PDFAnnotationKey)key PDFKIT_AVAILABLE(10_12, 11_0);++@end++#if defined( PDFKIT_PLATFORM_OSX )++@interface PDFAnnotation (PDFAnnotationDeprecated)++// -------- initializer++// Create a custom annotation using a given annotation dictionary, self-assigning it to the (optional) page.+// Use -[initWithBounds:type:properties] instead.+- (instancetype)initWithDictionary:(NSDictionary *)dictionary forPage:(nullable PDFPage *)page PDFKIT_DEPRECATED(10_12, 10_13, NA, NA);++// You should only call this method for the subclasses, otherwise you will get a type of nil � which is not a legal annotation.+// Use -[initWithBounds:type:properties] instead.+- (instancetype)initWithBounds:(PDFRect)bounds PDFKIT_DEPRECATED(10_4, 10_12, NA, NA);++// -------- accessors++// String used for tooltips. The base class returns [self contents], sub-classes may override as appropriate.+@property (nonatomic, readonly, nullable) NSString *toolTip PDFKIT_DEPRECATED(10_5, 10_12, NA, NA);++// Optional action performed when a user releases the mouse within an annotation. PDF readers ignore actions except+// for those associated with Link or button Widget annotations. This has been replaced by -[PDFAnnotation action] and+// -[PDFAnnotation setAction:] methods, which do the same behavior for both mouse-up driven actions and tap-gestures.+@property (nonatomic, strong, nullable) PDFAction *mouseUpAction PDFKIT_DEPRECATED(10_5, 10_13, NA, NA);++// All appearance streams for the target annotation are removed. Without an appearance stream, annotations are drawn+// strictly according to their parameters (color, border, font, etc.). When a PDF is saved, PDFKit will always+// write out an appearance stream(s) for each annotation. If the PDF is reloaded, you will need to remove the+// appearance streams in order to continue to edit the annotations parameters.+- (void)removeAllAppearanceStreams PDFKIT_DEPRECATED(10_5, 10_12, NA, NA);++// -------- drawing++// This method is deprecated in favor of the of the context aware -[PDFAnnotation drawWithBox:inContext:]. If you subclass+// PDFAnnotation, rendering code will first call -[PDFAnnotation drawWithBox:inContext:]. If your subclass does not override+// the context-aware function, this original -[PDFAnnotation drawWithBox:] method will be called.+// Draw method. Draws in page-space relative to origin of "box" passed in.+- (void)drawWithBox:(PDFDisplayBox)box PDFKIT_DEPRECATED(10_4, 10_12, NA, NA);++@end++// These keys are deprecated in favor of the annotation keys as defined by type PDFAnnotationKey at the top of this header file.+// Common keys used for all annotations.++PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_AppearanceDictionary PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/AP": Dictionary+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_AppearanceState PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/AS": Name+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Border PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Border": Array of Integers; or a PDFBorder object+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Color PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/C": Array of Floats; or a PDFKitPlatformColor object+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Contents PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Contents": String+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Flags PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/F": Integer+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Date PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/M": Date or String+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Name PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/NM": String+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Page PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/P": Dictionary; or a PDFPage object.+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Rect PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Rect": CGRect+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Subtype PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Subtype": Name (See Table 8.20: Annotation types)+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Action PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/A": Dictionary; or a PDFAction object+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_AdditionalActions PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/AA": Dictionary; or a PDFAction object+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_BorderStyle PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/BS": Dictionary+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_DefaultAppearance PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/DA": String+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Destination PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Dest": Array, Name, or String+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_HighlightingMode PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/H": Name+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Inklist PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Inklist": Array of Arrays (each array representing a stroked path)+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_InteriorColor PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/IC": Array of Floats; or a PDFKitPlatformColor object+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_LinePoints PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/L": Array of Floats+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_LineEndingStyles PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/LE": Array of Strings+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_IconName PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Name": Name+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Open PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Open": Boolean+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Parent PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Parent": Dictionary; or a PDFAnnotation object+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Popup PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Popup": Dictionary; or a PDFAnnotation object of type "Popup"+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_Quadding PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Q": Integer+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_QuadPoints PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/QuadPoints": Array of Floats+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_TextLabel PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/T": String+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_WidgetDefaultValue PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/DV": (various)+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_WidgetFieldFlags PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Ff": Integer+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_WidgetFieldType PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/FT": Name+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_WidgetAppearanceDictionary PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/MK": Dictionary; or PDFAppearanceCharacteristics object+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_WidgetMaxLen PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/MaxLen": Integer+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_WidgetOptions PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/Opt": Array (each element is either a string, or an array of two strings)+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_WidgetTextLabelUI PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/TU": String+PDFKIT_EXTERN PDFAnnotationKey kPDFAnnotationKey_WidgetValue PDFKIT_DEPRECATED(10_12, 10_13, NA, NA); // "/V": (various)++#endif+++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAnnotationUtilities.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAnnotationUtilities.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAnnotationUtilities.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAnnotationUtilities.h2024-10-21 19:28:56@@ -0,0 +1,289 @@+//+// PDFAnnotationUtilities.h+// Copyright © 2019 Apple. All rights reserved.+//+// This file includes several helper functions that match legacy PDFAnnotation+// subclass functions, helping simplify creating properties for common annotations.+//++#import <PDFKit/PDFKitPlatform.h>+#import <PDFKit/PDFAnnotation.h>++NS_ASSUME_NONNULL_BEGIN++// Style used for line end caps.+typedef NS_ENUM(NSInteger, PDFLineStyle)+{+ kPDFLineStyleNone = 0,+ kPDFLineStyleSquare = 1,+ kPDFLineStyleCircle = 2,+ kPDFLineStyleDiamond = 3,+ kPDFLineStyleOpenArrow = 4,+ kPDFLineStyleClosedArrow = 5+};++// Icon that appears indicating text annotation pop-up.+typedef NS_ENUM(NSInteger, PDFTextAnnotationIconType)+{+ kPDFTextAnnotationIconComment = 0,+ kPDFTextAnnotationIconKey = 1,+ kPDFTextAnnotationIconNote = 2,+ kPDFTextAnnotationIconHelp = 3,+ kPDFTextAnnotationIconNewParagraph = 4,+ kPDFTextAnnotationIconParagraph = 5,+ kPDFTextAnnotationIconInsert = 6+};++// Types of markup annotations.+typedef NS_ENUM(NSInteger, PDFMarkupType)+{+ kPDFMarkupTypeHighlight = 0,+ kPDFMarkupTypeStrikeOut = 1,+ kPDFMarkupTypeUnderline = 2,+ kPDFMarkupTypeRedact = 3+};++// Type of control.+typedef NS_ENUM(NSInteger, PDFWidgetControlType)+{+ kPDFWidgetUnknownControl = -1,+ kPDFWidgetPushButtonControl = 0,+ kPDFWidgetRadioButtonControl = 1,+ kPDFWidgetCheckBoxControl = 2+};++// Cell state.+typedef NS_ENUM(NSInteger, PDFWidgetCellState)+{+ kPDFWidgetMixedState = -1,+ kPDFWidgetOffState = 0,+ kPDFWidgetOnState = 1,+};++// All PDF annotation subtypes that PDFKit can render: based on Adobe PDF specification, Table 8.20: Annotation types.+// Annotation subtypes not supported: Polygon, PolyLine, Squiggly, Caret, Caret, FileAttachment,+// Sound, Movie, Screen, PrinterMark, TrapNet, Watermark, 3D, Rect.+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeText PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeLink PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeFreeText PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeLine PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeSquare PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeCircle PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeHighlight PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeUnderline PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeStrikeOut PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeInk PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeStamp PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypePopup PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationSubtype PDFAnnotationSubtypeWidget PDFKIT_AVAILABLE(10_13, 11_0);++// Widget annotations have the following possible subtypes: Button, Choice, Signature, and Text+typedef NSString* const PDFAnnotationWidgetSubtype NS_STRING_ENUM;++PDFKIT_EXTERN PDFAnnotationWidgetSubtype PDFAnnotationWidgetSubtypeButton PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationWidgetSubtype PDFAnnotationWidgetSubtypeChoice PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationWidgetSubtype PDFAnnotationWidgetSubtypeSignature PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationWidgetSubtype PDFAnnotationWidgetSubtypeText PDFKIT_AVAILABLE(10_13, 11_0);++// Line annotation have the following line ending types (this maps directly to PDFLineStyle)+typedef NSString* const PDFAnnotationLineEndingStyle NS_STRING_ENUM;++PDFKIT_EXTERN PDFAnnotationLineEndingStyle PDFAnnotationLineEndingStyleNone PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationLineEndingStyle PDFAnnotationLineEndingStyleSquare PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationLineEndingStyle PDFAnnotationLineEndingStyleCircle PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationLineEndingStyle PDFAnnotationLineEndingStyleDiamond PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationLineEndingStyle PDFAnnotationLineEndingStyleOpenArrow PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationLineEndingStyle PDFAnnotationLineEndingStyleClosedArrow PDFKIT_AVAILABLE(10_13, 11_0);++// Text annotations have the following icon types:+typedef NSString* const PDFAnnotationTextIconType NS_STRING_ENUM;++PDFKIT_EXTERN PDFAnnotationTextIconType PDFAnnotationTextIconTypeComment PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationTextIconType PDFAnnotationTextIconTypeKey PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationTextIconType PDFAnnotationTextIconTypeNote PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationTextIconType PDFAnnotationTextIconTypeHelp PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationTextIconType PDFAnnotationTextIconTypeNewParagraph PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationTextIconType PDFAnnotationTextIconTypeParagraph PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationTextIconType PDFAnnotationTextIconTypeInsert PDFKIT_AVAILABLE(10_13, 11_0);++// Highlighting styles+typedef NSString* const PDFAnnotationHighlightingMode NS_STRING_ENUM;++PDFKIT_EXTERN PDFAnnotationHighlightingMode PDFAnnotationHighlightingModeNone PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationHighlightingMode PDFAnnotationHighlightingModeInvert PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationHighlightingMode PDFAnnotationHighlightingModeOutline PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAnnotationHighlightingMode PDFAnnotationHighlightingModePush PDFKIT_AVAILABLE(10_13, 11_0);++@class PDFDestination;++// Helper functions for directly manipulating annotation dictionaries+@interface PDFAnnotation (PDFAnnotationUtilities)++// Font and font color associated with the text field.+// Used by annotations type(s): /FreeText, /Popup, /Widget (field type(s): /Btn, /Ch, and /Tx).+@property (nonatomic, copy, nullable) PDFKitPlatformFont *font;++// Width of line used to stroke border.+// Used by annotations type(s): /FreeText, /Widget (field type(s): /Btn, /Ch, and /Tx).+@property (nonatomic, copy, nullable) PDFKitPlatformColor *fontColor;++// Interior color of the annotation.+// Used by annotations type(s): /Circle, /Line, /Square.+@property (nonatomic, copy, nullable) PDFKitPlatformColor *interiorColor;++// Alignment of text within annotation bounds. Supported: NSLeftTextAlignment, NSRightTextAlignment and+// NSCenterTextAlignment.+// Used by annotations type(s): /FreeText, /Widget (field type(s): /Tx).+@property (nonatomic) NSTextAlignment alignment;++// Points specifying start and end points for line annotation (required).+// Points are specified in annotation space.+// Used by annotations type(s): /Line.+@property (nonatomic) PDFPoint startPoint;+@property (nonatomic) PDFPoint endPoint;++// Style used for ornaments at the lines start and end (optional, PDF 1.4).+// Used by annotations type(s): /Line.+@property (nonatomic) PDFLineStyle startLineStyle;+@property (nonatomic) PDFLineStyle endLineStyle;++// Class methods to help with mapping PDFLineStyle to the associated name based on PDF specification+// Used by annotations type(s): /Line.++ (PDFLineStyle) lineStyleFromName:(NSString *)name;++ (NSString *) nameForLineStyle:(PDFLineStyle)style;++// The type of icon displayed in the PDF. Supported icons: "Comment", "Key", "Note", "Help", "NewParagraph",+// "Paragraph" and "Insert".+// Used by annotations type(s): /Text.+@property (nonatomic) PDFTextAnnotationIconType iconType;++// Array of n * 4 points, packed as NSValue pointValue / CGPointValue, defining n quadrilaterals in page space where n is the number of quad points.+// The points for each quad are ordered in a 'Z' pattern. That is, the first point should represent the upper left+// point representing the start of the marked-up text, the next point will be the upper right, the third point will+// represent the lower left of the text and the last point the lower right.+// Points are specified relative to the annotation's bound's origin.+@property (nonatomic, copy, nullable) NSArray<NSValue *> *quadrilateralPoints;++// Type of mark-up (highlight, strike-out or underline). Changing the markup type also changes the annotations type.+// Used by annotations type(s): /Highlight, /StrikeOut, /Underline.+@property (nonatomic) PDFMarkupType markupType;++// The specific field type of a widget annotation (button, choice, or text).+// Used by annotations type(s): /Widget (field type(s): /Btn, /Ch, /Tx).+@property (nonatomic, copy) PDFAnnotationWidgetSubtype widgetFieldType;++// The type of button widget control type (radio button, push button, or checkbox).+// Used by annotations type(s): /Widget (field type(s): /Btn).+@property (nonatomic) PDFWidgetControlType widgetControlType;++// Used to configure multiline PDF text fields.+// Used by annotations type(s): /Widget (field type(s): /Tx).+@property (nonatomic, getter=isMultiline) BOOL multiline;++// Returns whether an annotation is a /FreeText or a /Widget with field type /Tx+// and the annotation is not hidden or read-only.+@property (readonly, getter=isActivatableTextField) BOOL activatableTextField;++// Used to determine if a PDF text field is a password field.+// Used by annotations type(s): /Widget (field type(s): /Tx).+@property (nonatomic, readonly) BOOL isPasswordField;++// Used to configure combing for PDF text fields.+// If set, the field is automatically divided into as many equally spaced positions, or combs, as the value of the+// maximum length of the field. To get the maximum length, use annotaiton key: PDFAnnotationKeyWidgetMaxLen.+// Used by annotations type(s): /Widget (field type(s): /Tx).+@property (nonatomic, getter=hasComb) BOOL comb;++// Maximum characters allowed (optional, zero indicates no specified maximum).+// Used by annotations type(s): /Widget (field type(s): /Tx).+@property (nonatomic) NSInteger maximumLength;++// The string value for a widget annotation.+// Used by annotations type(s): /Widget (field type(s): /Btn, /Ch, /Tx).+@property (nonatomic, copy, nullable) NSString *widgetStringValue;++// The string value for a widget annotation.+// Used by annotations type(s): /Widget (field type(s): /Btn, /Ch, /Tx).+@property (nonatomic, copy, nullable) NSString *widgetDefaultStringValue;++// For radio buttons, indicates whether clicking on widget whose state is already On toggles it Off.+// Used by annotations type(s): /Widget (field type(s): /Btn).+@property (nonatomic) BOOL allowsToggleToOff;++// For radio buttons, indicates whether a group of radio buttons will turn on and off in+// unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive.+// Used by annotations type(s): /Widget (field type(s): /Btn).+@property (nonatomic) BOOL radiosInUnison;++// Determines if a text field should be editable or not.+// Used by annotations type(s): /Widget (field type(s): /Btn, /Ch, /Tx).+@property (nonatomic, getter=isReadOnly) BOOL readOnly;++// There are two flavors of Choice widget annotations, lists and pop-up menus. This method allow you to differentiate.+// Used by annotations type(s): /Widget (field type(s): /Ch).+@property (nonatomic, getter=isListChoice) BOOL listChoice;++// The choices are an array of strings indicating the options (items) in either a list or pop-up menu.+// Used by annotations type(s): /Widget (field type(s): /Ch).+@property (nonatomic, copy, nullable) NSArray<NSString *> *choices;++// The choices are an array of strings indicating the option’s export values in either a list or pop-up menu.+// Used by annotations type(s): /Widget (field type(s): /Ch).+@property (nonatomic, copy, nullable) NSArray<NSString *> *values;++// The current state of a button widget annotation.+// Used by annotations type(s): /Widget (field type(s): /Btn).+@property (nonatomic) PDFWidgetCellState buttonWidgetState;++// The string that represents the ON state of a button widget annotation.+// This should be set when trying to, for example, group together a set of radio buttons with the same field name.+// When buttons share the same field name, their individual state strings set them apart from one another.+// Used by annotations type(s): /Widget (field type(s): /Btn).+@property (nonatomic, copy) NSString *buttonWidgetStateString;++// Used to tell if an annotation is open or closed.+// Used by annotations type(s): /Popup.+@property (nonatomic, getter=isOpen) BOOL open;++// Array of NSBezierPaths / UIBezierPaths that comprise the annotation.+// Paths are specified in annotation space.+// Used by annotations type(s): /Ink.+@property (nonatomic, readonly, nullable) NSArray<PDFKitPlatformBezierPath *> *paths;++// Add or remove paths from the annotation.+// Path points are specified in annotation space.+// Used by annotations type(s): /Ink.+- (void)addBezierPath:(PDFKitPlatformBezierPath *)path;+- (void)removeBezierPath:(PDFKitPlatformBezierPath *)path;++// Destination for the link. May be nil if no destination associated with link; in this case the -[URL] may be valid.+// The preferred way though is to call -[PDFAnnotation action] and -[PDFAnnotation setAction:].+// Used by annotations type(s): /Link.+@property (nonatomic, strong, nullable) PDFDestination *destination;++// URL for the link. May be nil if no URL action associated with link; in this case the -[destination] may be valid.+// The preferred way though is to call -[PDFAnnotation action] and -[PDFAnnotation setAction:].+// Used by annotations type(s): /Link.+@property (nonatomic, copy, nullable) NSURL *URL;++// Widget annotations backed by form data have (internal) field names with which to associate a value or data.+// Can also be used for ResetForm actions.+// Used by annotations type(s): /Widget (field type(s): /Btn, /Ch, /Tx).+@property (nonatomic, copy, nullable) NSString *fieldName;++// Label for the button. Applies to kPDFWidgetPushButtonControl only.+// Used by annotations type(s): /Widget (field type(s): /Btn).+@property (nonatomic, copy, nullable) NSString *caption;++// Background color characteristics.+// Used by annotations type(s): /Widget (field type(s): /Btn, /Ch, /Tx).+@property (nonatomic, copy, nullable) PDFKitPlatformColor *backgroundColor;++// Name of stamp annotation. Standard stamps include names like, "Approved", "Draft", "TopSecret", etc.+// The name must be representable as ASCII. Very little is rendered if the annotation has no appearance stream.+// Used by annotations type(s): /Stamp+@property (nonatomic, copy, nullable) NSString *stampName;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAppearanceCharacteristics.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAppearanceCharacteristics.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAppearanceCharacteristics.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFAppearanceCharacteristics.h2024-10-25 21:20:39@@ -0,0 +1,74 @@+//+// PDFAppearanceCharacteristics.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFAppearanceCharacteristics represents a dictionary that is specific to widget annotation types,+// containing additional information for constructing the annotation’s appearance.+// It is designed to be a representation of the /MK appearance characteristics entry in+// the annotation dictionary. Because the /MK entry is optional, all properties of+// PDFAppearanceCharacteristics are optional as well.+//+// Properties are based on the Adobe PDF Specification (1.7),+// Table 8.40: Entries in an appearance characteristics dictionary+//++#import <PDFKit/PDFKitPlatform.h>+#import <PDFKit/PDFAnnotationUtilities.h>++NS_ASSUME_NONNULL_BEGIN++// Widget appearance characteristics keys.+typedef NSString* const PDFAppearanceCharacteristicsKey NS_STRING_ENUM;++PDFKIT_EXTERN PDFAppearanceCharacteristicsKey PDFAppearanceCharacteristicsKeyBackgroundColor PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAppearanceCharacteristicsKey PDFAppearanceCharacteristicsKeyBorderColor PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAppearanceCharacteristicsKey PDFAppearanceCharacteristicsKeyRotation PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAppearanceCharacteristicsKey PDFAppearanceCharacteristicsKeyCaption PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAppearanceCharacteristicsKey PDFAppearanceCharacteristicsKeyRolloverCaption PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFAppearanceCharacteristicsKey PDFAppearanceCharacteristicsKeyDownCaption PDFKIT_AVAILABLE(10_13, 11_0);++@class PDFAppearanceCharacteristicsPrivate;++PDFKIT_CLASS_AVAILABLE(10_13, 11_0)+@interface PDFAppearanceCharacteristics : NSObject <NSCopying>+{+@private+ PDFAppearanceCharacteristicsPrivate *_private;+}++// -------- accessors++// For button widget annotations, need to specify the control type for PDFAppearanceCharacteristics+// as certain attributes, i.e. captions, are only available for certain flavors.+// Control type does not need to be set for text or choice widget annotations.+@property (nonatomic) PDFWidgetControlType controlType;++// The background color of the widget annotation.+@property (nonatomic, copy, nullable) PDFKitPlatformColor *backgroundColor;++// The border color of the widget annotation.+@property (nonatomic, copy, nullable) PDFKitPlatformColor *borderColor;++// The number of *degrees* by which the widget annotation is rotated counterclockwise relative to the page.+// The value must be a multiple of 90. Default value: 0.+@property (nonatomic) NSInteger rotation;++// The widget annotation’s normal caption, displayed when it is not interacting with the user.+@property (nonatomic, copy, nullable) NSString *caption;++// The widget's caption displayed when the user moves the mouse over the annotation.+// Applies only to kPDFWidgetPushButtonControl.+@property (nonatomic, copy, nullable) NSString *rolloverCaption;++// The widget's caption displayed when the user holds the mouse button while over the annotation.+// Applies only to kPDFWidgetPushButtonControl.+@property (nonatomic, copy, nullable) NSString *downCaption;++// List all appearance characteristics properties as key-value pairs; returns a deep copy of all pairs.+// Helpful for debugging.+@property (nonatomic, readonly, copy) NSDictionary *appearanceCharacteristicsKeyValues;+++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFBorder.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFBorder.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFBorder.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFBorder.h2024-10-25 21:20:39@@ -0,0 +1,66 @@+//+// PDFBorder.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFBorder represents an array structure that is common for graphical annotations,+// defining properties like line-stroke width, color, and dashed patterns.+// It is designed to be a representation of the /BS entry in the annotation dictionary.+//+// Properties are based on the Adobe PDF Specification (1.7)+// Table 8.17: Entries in a border style dictionary.+//++#import <PDFKit/PDFKitPlatform.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFBorderPrivateVars;++// Style in which PDFBorder is displayed.+PDFKIT_ENUM_AVAILABLE(10_4, 11_0)+typedef NS_ENUM(NSInteger, PDFBorderStyle)+{+ kPDFBorderStyleSolid = 0,+ kPDFBorderStyleDashed = 1,+ kPDFBorderStyleBeveled = 2,+ kPDFBorderStyleInset = 3,+ kPDFBorderStyleUnderline = 4+};++// Border style dictionary keys.+typedef NSString* const PDFBorderKey NS_STRING_ENUM;++PDFKIT_EXTERN PDFBorderKey PDFBorderKeyLineWidth PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFBorderKey PDFBorderKeyStyle PDFKIT_AVAILABLE(10_13, 11_0);+PDFKIT_EXTERN PDFBorderKey PDFBorderKeyDashPattern PDFKIT_AVAILABLE(10_13, 11_0);++// PDFBorder is not directly an annotation, but instead is a supportive structure common to a few annotations.+PDFKIT_CLASS_AVAILABLE(10_4, 11_0)+@interface PDFBorder : NSObject <NSCopying, NSCoding>+{+@private+PDFBorderPrivateVars *_private;+}++// -------- accessors++// See styles above. Whether border is drawn solid, dashed etc.+@property (nonatomic) PDFBorderStyle style;++// Width of line used to stroke border.+@property (nonatomic) CGFloat lineWidth;++// Array of floats specifying the dash pattern (see NSBezierPath for more detail).+@property (nonatomic, copy, nullable) NSArray *dashPattern;++// List all border properties as key-value pairs; returns a deep copy of all pairs. Helpful for debugging.+@property (nonatomic, readonly, copy) NSDictionary *borderKeyValues;++// Draw method. Not generally needed since the annotations themselves call this method when they are drawn.+// Call -[NSColor set] before calling (the various annotations do this often calling -[PDFAnnotation color] or whatever+// is appropriate for their class.+- (void)drawInRect:(PDFRect)rect;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFDestination.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFDestination.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFDestination.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFDestination.h2024-10-25 21:20:39@@ -0,0 +1,54 @@+//+// PDFDestination.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFDestination represents a dictionary used in annotations, typically as+// a property for an action. Destinations are a coordinate and zoom factor+// for a specific page in a document.+//++#import <PDFKit/PDFKitPlatform.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFPage, PDFDestinationPrivate;++// To specify a destination point where you don't care about the x or y value (or either), use this value.+PDFKIT_EXTERN const CGFloat kPDFDestinationUnspecifiedValue PDFKIT_AVAILABLE(10_4, 11_0);++PDFKIT_CLASS_AVAILABLE(10_4, 11_0)+@interface PDFDestination : NSObject <NSCopying>+{+@private+ PDFDestinationPrivate *_private;+}++// -------- initializer++// Initializer. You do not often create PDFDestinations, but usually get them from link annotations or PDFOutline items.+- (instancetype)initWithPage:(PDFPage *)page atPoint:(PDFPoint)point NS_DESIGNATED_INITIALIZER;++// -------- accessors++// The page that the destination refers to (destination page).+@property (nonatomic, weak, readonly) PDFPage *page;++// The destination point on the page above (in page space).+@property (nonatomic, readonly) PDFPoint point;++// Get / set the scale factor the PDF viewer should assume for this destination.+// kPDFDestinationUnspecifiedValue indicates the scale factor is unaffected.+@property (nonatomic) CGFloat zoom PDFKIT_AVAILABLE(10_7, 11_0);++// If the destination passed in is further along in the document than the receiver, we return NSOrderedAscending. If+// the destination passed in precedes the receiver, we return NSOrderedDescending. Otherwise if the destination passed in+// matches the receiver, we return NSOrderedSame. For purposes of comparison, the horizontal component on the point is+// ignored. Also for purposes of comparison, having kPDFDestinationUnspecifiedValue for the vertical component of the+// destination point will be treated as the top point on the destination page.+// An exception will be raised if either destination does not have a page associated with it or if the pages of the two+// destinations are associated with different documents.+- (NSComparisonResult)compare:(PDFDestination *)destination PDFKIT_AVAILABLE(10_5, 11_0);++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFDocument.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFDocument.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFDocument.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFDocument.h2024-10-21 19:54:49@@ -0,0 +1,346 @@+//+// PDFDocument.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFDocument is the logical representation of a PDF file. It is a container of PDFPages,+// giving you the ability to load, modify, and save a set of PDF pages. It also gives you the+// ability to unlock, search, and interact with the document's structure. You can instantiate+// a PDFDocument with either the init method, initWithURL:, or initWithData:. Documents+// that are locked or encrypted must be unlocked before reading or mutating any properties.+// This is done via "unlockWithPassword:", and on success will return YES and post a+// PDFDocumentDidUnlockNotification notification. You may search synchronously or asynchronously+// via the set of "findString:" functions. When searching asynchronously, you will receive+// periodic updates via search related notifications (See below).+//+// Note that if you want your instance of a PDFDocument to be backed by a custom PDFPage+// class, you can do so by register a delegate that overloads the method "classForPage".+// In doing so, PDFDocument will instantiate your class via the init method.+//++#import <PDFKit/PDFKitPlatform.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFDestination, PDFOutline, PDFPage, PDFSelection;+@protocol PDFDocumentDelegate;+typedef NS_ENUM(NSUInteger, PDFSelectionGranularity);++#if defined(PDFKIT_PLATFORM_OSX)++// Printing page-scaling modes (see PDFView).+PDFKIT_ENUM_AVAILABLE(10_4, 11_0)+typedef NS_ENUM(NSInteger, PDFPrintScalingMode)+{+ kPDFPrintPageScaleNone = 0,+ kPDFPrintPageScaleToFit = 1,+ kPDFPrintPageScaleDownToFit = 2+};++#endif++// Document permissions status. For encrypted PDF's, supplying the owner password will enable owner permission status.+PDFKIT_ENUM_AVAILABLE(10_4, 11_0)+typedef NS_ENUM(NSInteger, PDFDocumentPermissions)+{+kPDFDocumentPermissionsNone = 0,+kPDFDocumentPermissionsUser = 1,+kPDFDocumentPermissionsOwner = 2+};++// Notifications.+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidUnlockNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self.+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidBeginFindNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self, no userInfo dictionary.+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidEndFindNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self, no userInfo dictionary.+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidBeginPageFindNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self, the userInfo dictionary+ // contains the page index as an NSNumber for the key+ // PDFDocumentPageIndexKey.+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidEndPageFindNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self, the userInfo dictionary+ // contains the page index as an NSNumber for the key+ // PDFDocumentPageIndexKey.+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidFindMatchNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self, the userInfo dictionary+ // contains a PDFSelection (found instance) for the key+ // @"PDFDocumentFoundSelection".+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidBeginWriteNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self, no userInfo dictionary.+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidEndWriteNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self, no userInfo dictionary.+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidBeginPageWriteNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self, the userInfo dictionary+ // contains the page index as an NSNumber for the key+ // PDFDocumentPageIndexKey.+PDFKIT_EXTERN NSNotificationName const PDFDocumentDidEndPageWriteNotification PDFKIT_AVAILABLE(10_4, 11_0); // The notification object is self, the userInfo dictionary+ // contains the page index as an NSNumber for the key+ // PDFDocumentPageIndexKey.++// Notification keys+PDFKIT_EXTERN NSString* const PDFDocumentFoundSelectionKey PDFKIT_AVAILABLE(11_1, 15_0); // User info dictionary key to get PDFSelection from some+ // notifications described above+PDFKIT_EXTERN NSString* const PDFDocumentPageIndexKey PDFKIT_AVAILABLE(11_1, 15_0); // User info dictionary key to get page index from some+ // notifications described above++// Document attributes (see -[documentAttributes] below).+typedef NSString *PDFDocumentAttribute NS_STRING_ENUM;++PDFKIT_EXTERN PDFDocumentAttribute const PDFDocumentTitleAttribute PDFKIT_AVAILABLE(10_4, 11_0); // NSString containing document title.+PDFKIT_EXTERN PDFDocumentAttribute const PDFDocumentAuthorAttribute PDFKIT_AVAILABLE(10_4, 11_0); // NSString containing document author.+PDFKIT_EXTERN PDFDocumentAttribute const PDFDocumentSubjectAttribute PDFKIT_AVAILABLE(10_4, 11_0); // NSString containing document title.+PDFKIT_EXTERN PDFDocumentAttribute const PDFDocumentCreatorAttribute PDFKIT_AVAILABLE(10_4, 11_0); // NSString containing name of app that created document.+PDFKIT_EXTERN PDFDocumentAttribute const PDFDocumentProducerAttribute PDFKIT_AVAILABLE(10_4, 11_0); // NSString containing name of app that produced PDF data.+PDFKIT_EXTERN PDFDocumentAttribute const PDFDocumentCreationDateAttribute PDFKIT_AVAILABLE(10_4, 11_0); // NSDate representing document creation date.+PDFKIT_EXTERN PDFDocumentAttribute const PDFDocumentModificationDateAttribute PDFKIT_AVAILABLE(10_4, 11_0); // NSDate representing last document modification date.+PDFKIT_EXTERN PDFDocumentAttribute const PDFDocumentKeywordsAttribute PDFKIT_AVAILABLE(10_4, 11_0); // NSArray of NSStrings containing document keywords.++// File writing options (see -[writeToFile:withOptions:] or -[writeToURL:withOptions:options] below).+typedef NSString *PDFDocumentWriteOption NS_STRING_ENUM;++PDFKIT_EXTERN PDFDocumentWriteOption const PDFDocumentOwnerPasswordOption PDFKIT_AVAILABLE(10_4, 11_0); // NSString for the owner's password. Required for encryption.+ // Owners have full privilege over the document.+PDFKIT_EXTERN PDFDocumentWriteOption const PDFDocumentUserPasswordOption PDFKIT_AVAILABLE(10_4, 11_0); // NSString for the user's password. Optional for encryption.+ // Users can have limited access to modify, print, or write the file.+PDFKIT_EXTERN PDFDocumentWriteOption const PDFDocumentAccessPermissionsOption PDFKIT_AVAILABLE(12_0, 15_0); // NSNumber containing a PDFAccessPermissions++PDFKIT_EXTERN PDFDocumentWriteOption const PDFDocumentBurnInAnnotationsOption PDFKIT_AVAILABLE(13_0, 16_0); // @YES to enable, disabled by default+ // If enabled, annotations will be rendered into the content stream and NOT saved as annotations+PDFKIT_EXTERN PDFDocumentWriteOption const PDFDocumentSaveTextFromOCROption PDFKIT_AVAILABLE(13_0, 16_0); // @YES to enable, disabled by default+ // If enabled, OCR will be performed on all pages on which it has not been done already and saved as invisible, but selectable, text+PDFKIT_EXTERN PDFDocumentWriteOption const PDFDocumentSaveImagesAsJPEGOption PDFKIT_AVAILABLE(13_4, 16_4); // @YES to enable, disabled by default+ // If enabled, images will be saved using JPEG encoding.+PDFKIT_EXTERN PDFDocumentWriteOption const PDFDocumentOptimizeImagesForScreenOption PDFKIT_AVAILABLE(13_4, 16_4); // @YES to enable, disabled by default+ // If enabled, the resolution of images will be limited to a resolution appropriate for screen display.+++// Some PDF access permissions are non-strict supersets of other permissions. Granting access to a superset+// permission also grants access to permission(s) it is a superset of. These permissions are as follows:+//+// * Granting PDFAllowsHighQualityPrinting also grants PDFAllowsLowQualityPrinting+// * Granting PDFAllowsDocumentChanges also grants PDFAllowsCommenting and PDFAllowsFormFieldEntry+// * Granting PDFAllowsContentCopying also grants PDFAllowsContentAccessibility+// * Granting PDFAllowsCommenting also grants PDFAllowsFormFieldEntry++typedef NS_ENUM(NSUInteger, PDFAccessPermissions) {+ PDFAllowsLowQualityPrinting = (1 << 0), // Print at up to 150 DPI+ PDFAllowsHighQualityPrinting = (1 << 1), // Print at any DPI+ PDFAllowsDocumentChanges = (1 << 2), // Modify the document contents except for page management+ PDFAllowsDocumentAssembly = (1 << 3), // Page management: insert, delete, and rotate pages+ PDFAllowsContentCopying = (1 << 4), // Extract content (text, images, etc.)+ PDFAllowsContentAccessibility = (1 << 5), // Extract content, but only for the purpose of accessibility+ PDFAllowsCommenting = (1 << 6), // Create or modify annotations, including form field entries+ PDFAllowsFormFieldEntry = (1 << 7) // Modify form field entries+};+++PDFKIT_CLASS_AVAILABLE(10_4, 11_0)+@interface PDFDocument : NSObject <NSCopying>+{+}++// -------- init++// Initializers.+- (instancetype)init NS_DESIGNATED_INITIALIZER;+- (nullable instancetype)initWithURL:(NSURL *)url NS_DESIGNATED_INITIALIZER;+- (nullable instancetype)initWithData:(NSData *)data NS_DESIGNATED_INITIALIZER;++// -------- accessors++// May return NULL if the document was created from NSData.+@property (nonatomic, readonly, nullable) NSURL *documentURL;++// This is the CGPDFDocument associated with the PDFDocument object. With this object you can call many CoreGraphics+// API. May return NULL if the document was not created from an existing PDF file or data.+@property (nonatomic, readonly, nullable) CGPDFDocumentRef documentRef;++// Returns a dictionary with PDF metadata. Metadata is optional for PDF's and so some of the keys may be missing or the+// entire dictionary may be empty. See attributes above for keys.+@property (nonatomic, copy, nullable) NSDictionary *documentAttributes;++// PDF version of the PDF file (example: major version = 1, minor = 4; PDF v1.4).+@property (nonatomic, readonly) NSInteger majorVersion;+@property (nonatomic, readonly) NSInteger minorVersion;++// Whether the PDF is encrypted. With the right password, a PDF can be unlocked - nonetheless, the PDF still indicates+// that it is encrypted - just no longer locked. Some PDF's may be encrypted but can be unlocked with the empty string.+// These are unlocked automatically.+@property (nonatomic, readonly) BOOL isEncrypted;++// See comments above.+@property (nonatomic, readonly) BOOL isLocked;++// Means of passing in a password to unlock encrypted PDF's. Calling -[unlockWithPassword:] will attempt to unlock the+// PDF. If successful, a PDFDocumentDidUnlockNotification notification is sent. You cannot "re-lock" a PDF by passing+// in a bogus password. Returns YES if the document is now unlocked, NO otherwise ([self isLocked] == NO).+- (BOOL)unlockWithPassword:(NSString *)password;++// Even unlocked, encrypted PDF's may have certain restrictions regarding printing, copying, etc. placed upon them. These+// indicate the current state.+// Based on Adobe PDF Specification (1.7) Table 3.20: User access permissions+@property (nonatomic, readonly) BOOL allowsPrinting PDFKIT_AVAILABLE(10_4, 11_0); // Printing the document+@property (nonatomic, readonly) BOOL allowsCopying PDFKIT_AVAILABLE(10_4, 11_0); // Extract content (text, images, etc.)+@property (nonatomic, readonly) BOOL allowsDocumentChanges PDFKIT_AVAILABLE(10_13, 11_0); // Modify the document contents except for page management (document attrubutes)+@property (nonatomic, readonly) BOOL allowsDocumentAssembly PDFKIT_AVAILABLE(10_13, 11_0); // Page management: insert, delete, and rotate pages+@property (nonatomic, readonly) BOOL allowsContentAccessibility PDFKIT_AVAILABLE(10_13, 11_0); // Extract content, but only for the purpose of accessibility+@property (nonatomic, readonly) BOOL allowsCommenting PDFKIT_AVAILABLE(10_13, 11_0); // Create or modify annotations, including form field entries+@property (nonatomic, readonly) BOOL allowsFormFieldEntry PDFKIT_AVAILABLE(10_13, 11_0); // Modify form field entries, even if allowsCommenting is NO++// Returns all 7 properties above as a PDFAccessPermissions value.+@property (nonatomic, readonly) PDFAccessPermissions accessPermissions;++// Returns the permissions status of the PDF document. You have kPDFDocumentPermissionsNone status for an encrypted+// document that you have not supplied either a valid user or owner password. For a document with no encryption, you+// automatically have kPDFDocumentPermissionsOwner status.+@property (nonatomic, readonly) PDFDocumentPermissions permissionsStatus PDFKIT_AVAILABLE(10_6, 11_0);++// Convenience method. Returns a string representing the entire document (each page's string concatenated with line+// feeds between pages).+@property (nonatomic, readonly, nullable) NSString *string;++// If a PDFDocument has a delegate, delegate methods may be called. See: NSNotificationNames and+// PDFDocumentDelegate below.+@property (nonatomic, weak, nullable) id<PDFDocumentDelegate> delegate;++// Methods to record the current state of the PDFDocument as data or a file. Passing a QuartzFilter object in the+// options dictionary with the key @"QuartzFilter" will allow you to have the filter applied when saving the PDF.+// NOTE: Versions of PDFKit before SnowLeopard did not return autorelease data for -[dataRepresentation]. You had to+// release the data yourself. Beginning with apps compiled on SnowLeopard the data returned is autoreleased.+- (nullable NSData *)dataRepresentation;+- (nullable NSData *)dataRepresentationWithOptions:(NSDictionary *)options PDFKIT_AVAILABLE(10_6, 11_0);++// -[writeToFile:withOptions:] and -[writeToURL:withOptions:] methods may take any CoreGraphics options that are typically+// passed into CGPDFContextCreate(...) and CGPDFContextCreateWithURL(...)'s auxiliaryInfo dictionary. For encryption, you+// may provide an owner and user password via the keys PDFDocumentWriteOption, where the values should be non-zero length+// strings.+- (BOOL)writeToFile:(NSString *)path;+- (BOOL)writeToFile:(NSString *)path withOptions:(nullable NSDictionary<PDFDocumentWriteOption, id> *)options;+- (BOOL)writeToURL:(NSURL *)url;+- (BOOL)writeToURL:(NSURL *)url withOptions:(nullable NSDictionary<PDFDocumentWriteOption, id> *)options;++// -------- outline++// Allows you specify a PDFOutline as the root outline item for this document. When the PDF is saved the outline tree+// structure is written out to the destination PDF file. Passing NULL is a way to strip any outline from a document.+// Returns the root outline object for the PDF (or NULL if none).+@property (nonatomic, strong, nullable) PDFOutline *outlineRoot PDFKIT_AVAILABLE(10_6, 11_0);++// Given a PDFSelection, this method returns the child outline item the selection most closely falls beneath. Since a+// selection may span multiple outline items, only the point representing the first character of the PDFSelection is+// considered. Typically, outlines indicate things like chapters for the PDF. Therefore, this method would help you+// identify the chapter the selection falls within.+- (nullable PDFOutline *)outlineItemForSelection:(PDFSelection *)selection;++// -------- pages++// The number of pages in the document.+@property (nonatomic, readonly) NSUInteger pageCount;++// Returns a PDFPage object representing the page at index. Will raise an exception if index is out of bounds. Indices+// are zero-based.+- (nullable PDFPage *)pageAtIndex:(NSUInteger)index;++// Given a PDFPage, returns the pages index within the document. Indices are zero-based.+- (NSUInteger)indexForPage:(PDFPage *)page;++// Methods allowing pages to be inserted, removed, and re-ordered. Can throw range exceptions.+// Note: when inserting a PDFPage, you have to be careful if that page came from another PDFDocument. PDFPage's have a+// notion of a single document that owns them and when you call the methods below the PDFPage passed in is assigned a+// new owning document. You'll want to call -[PDFPage copy] first then and pass this copy to the blow methods. This+// allows the orignal PDFPage to maintain its original document.+- (void)insertPage:(PDFPage *)page atIndex:(NSUInteger)index;+- (void)removePageAtIndex:(NSUInteger)index;+- (void)exchangePageAtIndex:(NSUInteger)indexA withPageAtIndex:(NSUInteger)indexB;++// This is the class that will be allocated and initialized when page objects are created for the document. The+// default implementation returns [PDFPage class] but if you want PDFDocument to use your own custom class you can+// subclass PDFDocument and implement this method to return your own custom class. Your class should be a subclass of+// PDFPage (otherwise the behavior is undefined).+@property (nonatomic, readonly) Class pageClass;++// -------- find++// Searches entire document for string and returns an array of PDFSelections representing all instances found. May+// return an empty array (if not found). Supported options are: NSCaseInsensitiveSearch, NSLiteralSearch, and+// NSBackwardsSearch.+- (NSArray<PDFSelection*>*)findString:(NSString *)string withOptions:(NSStringCompareOptions)options;++// Begins a find, searching the document for string. Search results are handled via a+// PDFDocumentDidFindMatchNotification or if the delegate implements -[didMatchString:]. Supported options are:+// NSCaseInsensitiveSearch, NSLiteralSearch, and NSBackwardsSearch.+- (void)beginFindString:(NSString *)string withOptions:(NSStringCompareOptions)options;++// Like -[beginFindString:withOptions:] above but it accepts an array of strings to search for.+// All other comments for -[beginFindString:withOptions:] above apply.+- (void)beginFindStrings:(NSArray<NSString*>*)strings withOptions:(NSStringCompareOptions)options PDFKIT_AVAILABLE(10_5, 11_0);++// Searches for only the next instance of string beginning after the last character of selection with options (or+// preceding the first character of the selection if NSBackwardsSearch is specified as a search option).+// Returns next instance as a PDFSelection or NULL if the end of the document is reached. Supported options are:+// NSCaseInsensitiveSearch, NSLiteralSearch, and NSBackwardsSearch. Passing in NULL for selection will start the+// search from the beginning of the document (or end if NSBackwardsSearch is specified).+- (nullable PDFSelection *)findString:(NSString *)string fromSelection:(nullable PDFSelection *)selection withOptions:(NSStringCompareOptions)options;++// Returns YES if document is currently searching for a string.+@property (nonatomic, readonly) BOOL isFinding;++// Method to cancel a search. Can be called from a user method being serviced by a find notification.+- (void)cancelFindString;++#if defined(PDFKIT_PLATFORM_OSX)++// -------- printing++// Returns a print operation suitable for printing the PDF document. Specify scaling mode and autorotate behaviors desired.+- (nullable NSPrintOperation *)printOperationForPrintInfo:(nullable NSPrintInfo *)printInfo scalingMode:(PDFPrintScalingMode)scaleMode autoRotate:(BOOL)doRotate PDFKIT_AVAILABLE(10_7, NA);++#endif++// -------- selections++// Returns a selection representing text for the entire document.+@property (nonatomic, readonly, nullable) PDFSelection *selectionForEntireDocument;++// Returns a selection representing text from page startPage and point startPt to page endPage and to point endPt on+// that page. Points are in page-space and relative to their respective pages. Start and end page can be the same+// (and are then equivalent to calling -[PDFPage selectionFromPoint: toPoint:]).+- (nullable PDFSelection *)selectionFromPage:(PDFPage *)startPage atPoint:(PDFPoint)startPoint toPage:(PDFPage *)endPage atPoint:(PDFPoint)endPoint;++- (nullable PDFSelection *)selectionFromPage:(PDFPage *)startPage atPoint:(PDFPoint)startPoint toPage:(PDFPage *)endPage atPoint:(PDFPoint)endPoint withGranularity:(PDFSelectionGranularity)granularity PDFKIT_AVAILABLE(15_0, 18_0);++// Similar to the above method but allows you to specify a character index for the start and end pages.+- (nullable PDFSelection *)selectionFromPage:(PDFPage *)startPage atCharacterIndex:(NSUInteger)startCharacter toPage:(PDFPage *)endPage atCharacterIndex:(NSUInteger)endCharacter;++@end++// Document delegate+@protocol PDFDocumentDelegate< NSObject >+@optional++// Notification delegate methods. If implemented by the delegate, these are called. See notification comments above.+- (void)documentDidUnlock:(NSNotification *)notification;+- (void)documentDidBeginDocumentFind:(NSNotification *)notification;+- (void)documentDidEndDocumentFind:(NSNotification *)notification;+- (void)documentDidBeginPageFind:(NSNotification *)notification;+- (void)documentDidEndPageFind:(NSNotification *)notification;+- (void)documentDidFindMatch:(NSNotification *)notification;++// If implemented by the delegate, called for every search instance found during a find. PDFDocument's implementation+// accumulates each PDFSelection (instance) in an NSArray.+- (void)didMatchString:(PDFSelection *)instance;++// If implemented by the delegate, will be called when a PDFPage is instantiated. PDFDocument's implementation calls+// -[PDFDocument pageClass] (see above).+- (Class)classForPage PDFKIT_AVAILABLE(10_6, 11_0);++// If implemented by the delegate, will be called when a PDFAnnotation is instantiated by a page. PDFPage by default+// will instantiate object of class. This allows you to instead return your own PDFAnnotation subclass.+// Return nil for annotation types you do not subclass.+- (Class)classForAnnotationType:(NSString*)annotationType PDFKIT_AVAILABLE(10_13, 11_0);++#if defined(PDFKIT_PLATFORM_OSX)++// If implemented by the delegate, will be called when a PDFAnnotation is instantiated by a page. PDFPage by default+// will instantiate object of class. This allows you to instead return your own PDFAnnotationXxxx subclass.+// If you would like to return your own PDFAnnotation subclass, use PDFDocument's delegate method+// -[classForAnnotationType:] instead.+- (Class)classForAnnotationClass:(Class)annotationClass PDFKIT_DEPRECATED(10_6, 10_12, NA, NA);++#endif++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKit.apinotes /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKit.apinotes--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKit.apinotes1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKit.apinotes2024-10-25 21:09:44@@ -0,0 +1,32 @@+Name: PDFKit+Classes:+ - Name: PDFDocument+ Methods:+ - Selector: "findString:withOptions:"+ MethodKind: Instance+ SwiftName: "findString(_:withOptions:)"+ - Selector: "beginFindString:withOptions:"+ MethodKind: Instance+ SwiftName: "beginFindString(_:withOptions:)"+ - Selector: "beginFindStrings:withOptions:"+ MethodKind: Instance+ SwiftName: "beginFindStrings(_:withOptions:)"+ - Selector: "findString:fromSelection:withOptions:"+ MethodKind: Instance+ SwiftName: "findString(_:fromSelection:withOptions:)"+Enumerators:+ - Name: PDFDocumentOwnerPasswordOption+ SwiftName: PDFDocumentWriteOption.ownerPassword+ - Name: PDFDocumentUserPasswordOption+ SwiftName: PDFDocumentWriteOption.userPassword+ - Name: PDFDocumentAccessPermissionsOption+ SwiftName: PDFDocumentWriteOption.accessPermissions+ - Name: PDFDocumentBurnInAnnotationsOption+ SwiftName: PDFDocumentWriteOption.burnInAnnotations+ - Name: PDFDocumentSaveTextFromOCROption+ SwiftName: PDFDocumentWriteOption.saveTextFromOCR+ - Name: PDFDocumentSaveImagesAsJPEGOption+ SwiftName: PDFDocumentWriteOption.saveImagesAsJPEG+ - Name: PDFDocumentOptimizeImagesForScreenOption+ SwiftName: PDFDocumentWriteOption.optimizeImagesForScreen+diff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKit.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKit.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKit.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKit.h2024-10-25 21:20:38@@ -0,0 +1,28 @@+//+// PDFKit.h+// Copyright © 2019 Apple. All rights reserved.+//++// Cross-platform support+#import <PDFKit/PDFKitPlatform.h>++// All public headers+#import <PDFKit/PDFAction.h>+#import <PDFKit/PDFActionGoTo.h>+#import <PDFKit/PDFActionNamed.h>+#import <PDFKit/PDFActionResetForm.h>+#import <PDFKit/PDFActionRemoteGoTo.h>+#import <PDFKit/PDFActionURL.h>+#import <PDFKit/PDFAnnotation.h>+#import <PDFKit/PDFAnnotationUtilities.h>+#import <PDFKit/PDFAppearanceCharacteristics.h>+#import <PDFKit/PDFBorder.h>+#import <PDFKit/PDFDestination.h>+#import <PDFKit/PDFDocument.h>+#import <PDFKit/PDFOutline.h>+#import <PDFKit/PDFPage.h>+#import <PDFKit/PDFSelection.h>+#import <PDFKit/PDFThumbnailView.h>+#import <PDFKit/PDFView.h>+#import <PDFKit/PDFPageOverlayViewProvider.h>+diff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKitPlatform.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKitPlatform.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKitPlatform.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFKitPlatform.h2024-10-21 19:54:49@@ -0,0 +1,142 @@+//+// PDFKitPlatform.h+// Copyright © 2019 Apple. All rights reserved.+//++#import <TargetConditionals.h>++#ifndef PDFKIT_EXTERN+ #ifdef __cplusplus+ #define PDFKIT_EXTERN extern "C" __attribute__((visibility ("default")))+ #else+ #define PDFKIT_EXTERN extern __attribute__((visibility ("default")))+ #endif+#endif++// Deprecation & macros++#define PDFKIT_AVAILABLE(_macIntro, _iosIntro) \+ NS_AVAILABLE(_macIntro, _iosIntro)++#define PDFKIT_DEPRECATED(_macIntro, _macDep, _iosIntro, _iosDep) \+ NS_DEPRECATED(_macIntro, _macDep, _iosIntro, _iosDep)++#define PDFKIT_CLASS_AVAILABLE(_macIntro, _iosIntro) \+ NS_CLASS_AVAILABLE(_macIntro, _iosIntro)++#define PDFKIT_CLASS_DEPRECATED(_macIntro, _macDep, _iosIntro, _iosDep) \+ NS_CLASS_DEPRECATED(_macIntro, _macDep, _iosIntro, _iosDep)++#define PDFKIT_ENUM_AVAILABLE(_macIntro, _iosIntro) \+ NS_ENUM_AVAILABLE(_macIntro, _iosIntro)++#define PDFKIT_ENUM_DEPRECATED(_macIntro, _macDep, _iosIntro, _iosDep) \+ NS_ENUM_DEPRECATED(_macIntro, _macDep, _iosIntro, _iosDep)+++#if (TARGET_OS_MAC && !(TARGET_OS_SIMULATOR || TARGET_OS_IPHONE || TARGET_OS_MACCATALYST))++// OSX Headers+#import <Cocoa/Cocoa.h>+#import <AppKit/NSAccessibilityProtocols.h>++#define PDFKIT_PLATFORM_OSX++// AppKit types+#define PDFKitPlatformView NSView+#define PDFKitPlatformViewController NSViewController+#define PDFKitPlatformScrollView NSScrollView+#define PDFKitPlatformColor NSColor+#define PDFKitPlatformBezierPath NSBezierPath+#define PDFKitPlatformBezierPathElement NSBezierPathElement+#define PDFKitPlatformImage NSImage+#define PDFKitPlatformImageView NSImageView+#define PDFKitPlatformEvent NSEvent+#define PDFKitPlatformFont NSFont+#define PDFKitPlatformColor NSColor+#define PDFKitPlatformControl NSControl+#define PDFKitPlatformTextField NSTextField+#define PDFKitPlatformTextView NSTextView+#define PDFKitPlatformTextViewDelegate NSTextViewDelegate+#define PDFKitPlatformChoiceWidgetComboBoxView NSPopUpButton+#define PDFKitPlatformChoiceWidgetListView NSTableView+#define PDFKitPlatformButton NSButton+#define PDFKitPlatformButtonCell NSButtonCell+#define PDFKitPlatformAccessibilityElement NSAccessibilityElement+#define PDFKitResponder NSResponder+#define PDFKitPlatformTextContentType NSTextContentType++// Geometry types+#define PDFPoint NSPoint+#define PDFRect NSRect+#define PDFSize NSSize+#define PDFEdgeInsets NSEdgeInsets++// Constants+#define PDFPointZero NSZeroPoint+#define PDFSizeZero NSZeroSize+#define PDFRectZero NSZeroRect+#define PDFEdgeInsetsZero NSEdgeInsetsZero+#define PDFTrackingRunLoopMode NSEventTrackingRunLoopMode++// Font Weights+#define PDFKitPlatformFontWeightRegular NSFontWeightRegular++#elif (TARGET_OS_SIMULATOR || TARGET_OS_IPHONE || TARGET_OS_MACCATALYST)++// iOS Headers+#import <Foundation/Foundation.h>+#import <UIKit/UIKit.h>++#define PDFKIT_PLATFORM_IOS++#if TARGET_OS_MACCATALYST+ #define PDFKIT_PLATFORM_MACCATALYST+#endif++// UIKit types+#define PDFKitPlatformView UIView+#define PDFKitPlatformViewController UIViewController+#define PDFKitPlatformScrollView UIScrollView+#define PDFKitPlatformColor UIColor+#define PDFKitPlatformBezierPath UIBezierPath+#define PDFKitPlatformBezierPathElement UIBezierPathElement+#define PDFKitPlatformImage UIImage+#define PDFKitPlatformImageView UIImageView+#define PDFKitPlatformEvent UIEvent+#define PDFKitPlatformFont UIFont+#define PDFKitPlatformColor UIColor+#define PDFKitPlatformControl UIControl+#define PDFKitPlatformTextField UITextField+#define PDFKitPlatformTextView UITextView+#define PDFKitPlatformTextViewDelegate UITextViewDelegate+#define PDFKitPlatformChoiceWidgetComboBoxView UIPickerView+#define PDFKitPlatformChoiceWidgetListView UITableView+#define PDFKitPlatformButton UIButton+#define PDFKitPlatformButtonCell UICollectionViewCell+#define PDFKitPlatformAccessibilityElement UIAccessibilityElement+#define PDFKitResponder UIResponder+#define PDFKitPlatformTextContentType UITextContentType++// Geometry types+#define PDFPoint CGPoint+#define PDFRect CGRect+#define PDFSize CGSize+#define PDFEdgeInsets UIEdgeInsets++// Constants+#define PDFPointZero CGPointZero+#define PDFSizeZero CGSizeZero+#define PDFRectZero CGRectZero+#define PDFEdgeInsetsZero UIEdgeInsetsZero+#define PDFTrackingRunLoopMode UITrackingRunLoopMode++// Font Weights+#define PDFKitPlatformFontWeightRegular UIFontWeightRegular++#else++#error "Failure: PDFKit unsupported platform"++#endif+diff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFOutline.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFOutline.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFOutline.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFOutline.h2024-10-21 16:06:38@@ -0,0 +1,87 @@+//+// PDFOutline.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFOutline represents a node in an outline hierarchy, which is always constructed+// of these node types. A root PDFOutline node can have any number of children,+// added via the below -[insertChild:atIndex:] method. These children can also have+// any number of their own child node objects. The relationship between parent and+// child nodes should never introduce any cycles: the resulting tree should always be+// a directed acyclic graph.+//++#import <PDFKit/PDFKitPlatform.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFAction, PDFDocument, PDFDestination, PDFOutlinePrivate;++PDFKIT_CLASS_AVAILABLE(10_4, 11_0)+@interface PDFOutline : NSObject // < NSCopying >+{+@private+ PDFOutlinePrivate *_private;+}++// -------- initializer++// Returns a PDFOutline object. If this object is to be the outline root, you will need to add additional PDFOutline+// objects to form the outline hierarchy you desire. You will then need to add it to a PDFDocument by passing it to+// -[PDFDocument setOutlineRoot:]. If this is to be a child (non-root) outline you will need to set a label for it and+// either a destination or action for it. Also, you will need to add it as a child of another PDFOutline object.+- (instancetype)init NS_DESIGNATED_INITIALIZER;++// -------- accessors++// The PDFDocument the outline is associated with.+@property (nonatomic, readonly, weak, nullable) PDFDocument *document;++// Returns the parent outline (the root outline will return nil).+@property (nonatomic, readonly, nullable) PDFOutline *parent PDFKIT_AVAILABLE(10_5, 11_0);++// Number of PDFOutline children this PDFOutline has.+@property (nonatomic, readonly) NSUInteger numberOfChildren;++// Returns the index of the outline item - that is, relative to its siblings (and from the perspective of the parent).+// The root outline item (or any item with no parent) is always index 0.+@property (nonatomic, readonly) NSUInteger index PDFKIT_AVAILABLE(10_5, 11_0);++// PDFOutline child at index. Will throw exception if index is out of range.+- (nullable PDFOutline *)childAtIndex:(NSUInteger)index;++// To build up a PDFOutline hierarchy, you call this method to add children outline items. For the simplest of outlines+// you would, at the very least, have to add items to the outline root item.+// NOTE: Be careful when calling this for a PDFOutline item which already has a parent (for example when moving items+// around within an outline hierarchy) - you should retain the item and call -[removeFromParent] first.+- (void)insertChild:(PDFOutline *)child atIndex:(NSUInteger)index PDFKIT_AVAILABLE(10_5, 11_0);++// Removes self from parent (for root outline, does nothing since the root has no parent).+- (void)removeFromParent PDFKIT_AVAILABLE(10_5, 11_0);++// The label for the outline. The root PDFOutline has no label and is only a container for children PDFOutlines.+@property (nonatomic, copy, nullable) NSString *label;++// Indicates whether PDFOutline item is initially disclosed or not. If the outline item has no children, -[isOpen] is+// always NO and calling -[setIsOpen] has no effect. The root item always returns YES for -[isOpen] and calling+// -[setIsOpen] also has no effect.+@property (nonatomic) BOOL isOpen PDFKIT_AVAILABLE(10_5, 11_0);++// Get: The destination associated with the outline item. The root PDFOutline has no destination. May return nil if the+// outline item has an associated action instead. If however the associated action is a PDFActionGoTo type this method+// will return the destination from the PDFActionGoTo action. The preferred way though is to call -[action] below.++// Set: Has no effect on the root PDFOutline item. If the item previously had an action associated with it, the action is+// released (PDFOutline items cannot have both an action and a destination, they are mutually exclusive).+// The preferred way though is to call -[setAction] below.+@property (nonatomic, strong, nullable) PDFDestination *destination;++// Action performed when a user clicks on the PDFOutline. Equivalent to calling -[destination] above when the outline+// has a destination (-[action] will return a PDFActionGoTo object). Some outlines do not have destinations however and+// you must therefore call this method. The root outline item will never return either an action or a destination.+// Calling -[setAction] on the root item has no effect.++@property (nonatomic, strong, nullable) PDFAction *action PDFKIT_AVAILABLE(10_5, 11_0);++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFPage.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFPage.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFPage.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFPage.h2024-10-21 19:28:56@@ -0,0 +1,220 @@+//+// PDFPage.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFPage is a logical representation of a PDF document's page. Typically pages are+// retrieved from a PDFDocument, though they can be constructed from scratch via either+// init method or initWithImage:. Pages can have their drawing methods overridden to allow+// custom drawing. Pages own a set of annotations, and have the ability to add, mutate, or+// remove them. Pages also expose text-selection methods, driven in page-space positions.+//++#import <PDFKit/PDFKitPlatform.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFDocument, PDFAnnotation, PDFSelection, PDFAccessibilityNode;++// PDF areas of interest (bitfield, multiple bits below may be set).+PDFKIT_AVAILABLE(10_4, 11_0)+typedef NS_OPTIONS(NSInteger, PDFAreaOfInterest)+{+ kPDFNoArea = 0,+ kPDFPageArea = (1UL << 0),+ kPDFTextArea = (1UL << 1),+ kPDFAnnotationArea = (1UL << 2),+ kPDFLinkArea = (1UL << 3),+ kPDFControlArea = (1UL << 4),+ kPDFTextFieldArea = (1UL << 5),+ kPDFIconArea = (1UL << 6),+ kPDFPopupArea = (1UL << 7),+ kPDFImageArea = (1UL << 8),++ kPDFAnyArea = NSIntegerMax+};++// Page boxes.+PDFKIT_ENUM_AVAILABLE(10_4, 11_0)+typedef NS_ENUM(NSInteger, PDFDisplayBox)+{+ kPDFDisplayBoxMediaBox = 0,+ kPDFDisplayBoxCropBox = 1,+ kPDFDisplayBoxBleedBox = 2,+ kPDFDisplayBoxTrimBox = 3,+ kPDFDisplayBoxArtBox = 4+};++typedef NSString * PDFPageImageInitializationOption NS_SWIFT_NAME(PDFPage.ImageInitializationOption) NS_TYPED_ENUM;++PDFKIT_CLASS_AVAILABLE(10_4, 11_0)+@interface PDFPage : NSObject <NSCopying>+{+}++// -------- initializer++// For subclassers, just call the standard -(id) init.+// Note: -[PDFPage init] creates a new empty page with a media box set to (0.0, 0.0), [612.0, 792.0].+- (instancetype)init NS_DESIGNATED_INITIALIZER;++// Returns a PDFPage for the given image, using the given options+- (nullable instancetype)initWithImage:(PDFKitPlatformImage *)image options:(NSDictionary<PDFPageImageInitializationOption, id>*)options+ API_AVAILABLE(macos(13.0), ios(16.0)) NS_DESIGNATED_INITIALIZER;++// Returns a PDFPage for the given image. Equivalent to initWithImage:options: with empty options+- (nullable instancetype)initWithImage:(PDFKitPlatformImage *)image PDFKIT_AVAILABLE(10_5, 11_0);++// -------- accessors++// The PDFDocument the page is associated with.+@property (nonatomic, readonly, weak, nullable) PDFDocument *document;++// This is the CGPDFPage associated with the PDFPage object. With this object you can call many CoreGraphics API methods.+// May return NULL if the owning document was not created from an existing PDF file or data or if the page itself was+// created independently.+@property (nonatomic, readonly, nullable) CGPDFPageRef pageRef;++// The page label. Usually "1" for the first page, "2" for the second, etc.+@property (nonatomic, readonly, nullable) NSString *label;++// The bounds for the specified box (see defines above). Only the media box is required for a PDF. If the crop box is+// requested and not present in the PDF, the media box is returned. If other boxes are requested and not present, the+// value for the crop box is returned. Throws a range exception if box is not in range. Coordinates for the box are in+// page space - you may need to transform the points if the page has a rotation on it. Also, note that the bounds+// returned are intersected with the page's media box.+- (PDFRect)boundsForBox:(PDFDisplayBox)box;++// Set bounds for the specified box. If the specified box did not previously exist, it will now. To remove a box pass+// NSZeroRect for the bounds (you cannot however remove the media box). Throws a range exception if box is not in range.+- (void)setBounds:(PDFRect)bounds forBox:(PDFDisplayBox)box;++// Rotation on a page. Must be 0, 90, 180 or 270 (negative rotations will be "normalized" to one of 0, 90, 180 or 270).+// Some PDF's have an inherent rotation and so -[rotation] may be non-zero when a PDF is first opened.+@property (nonatomic) NSInteger rotation;++// -------- annotations++// Array of all PDFAnnotation objects on this page.+@property (nonatomic, readonly) NSArray<PDFAnnotation*> *annotations;++// Method to turn on or off the display of annotations when the page is drawn.+@property (nonatomic) BOOL displaysAnnotations;++// Methods allowing annotations to be added or removed.+- (void)addAnnotation:(PDFAnnotation *)annotation;+- (void)removeAnnotation:(PDFAnnotation *)annotation;++// Hit-testing method returns the annotation at point (or NULL if none). The point is in page-space.+- (nullable PDFAnnotation *)annotationAtPoint:(PDFPoint)point;++// -------- rendering++// This transform correctly rotates and offsets based on the given page's rotation property and the display box type.+- (CGAffineTransform)transformForBox:(PDFDisplayBox)box PDFKIT_AVAILABLE(10_12, 11_0);++// Context aware rendering:++// Drawing method takes into account page rotation, draws in page space relative to and clipped to the box bounds. If+// -[displaysAnnotations] is true, also draws any page annotations. Does not clear the background (page white).+- (void)drawWithBox:(PDFDisplayBox)box toContext:(CGContextRef)context PDFKIT_AVAILABLE(10_12, 11_0);++// Given a display box, will transform the given context to take into account the rotation of the page as well as+// the origin of the box with respect to the page's base coordinates system. This is a convenience method to call+// from within -[PDFView drawPage:toContext:] or -[PDFAnnotation drawWithBox:inContext:].+- (void)transformContext:(CGContextRef)context forBox:(PDFDisplayBox)box PDFKIT_AVAILABLE(10_12, 11_0);++// Convenience function that returns an image of this page, with annotations, that fits the given size.+// Note that the produced image is "size to fit": it retains the original page aspect-ratio. The size you give+// may not match the size of the returned image, but the returned image is guaranteed to be equal or less.+- (PDFKitPlatformImage *)thumbnailOfSize:(PDFSize)size forBox:(PDFDisplayBox)box PDFKIT_AVAILABLE(10_13, 11_0);++// -------- text++// Number of characters on the page (including linefeeds and spaces inserted).+@property (nonatomic, readonly) NSUInteger numberOfCharacters;++// String (with linefeeds and in some cases spaces inserted) representing the text on the page.+@property (nonatomic, readonly, nullable) NSString *string;+@property (nonatomic, readonly, nullable) NSAttributedString *attributedString;++// Returns the bounds in page-space, of the character at index.+- (PDFRect)characterBoundsAtIndex:(NSInteger)index;++// Returns the index of the character at point (in page space). Returns the index of the first character if multiple characters are at this point.+// Returns NSNotFound if no character at point. Earlier version of PDFKit (prior to Lion) returned -1 if no character at point.+- (NSInteger)characterIndexAtPoint:(PDFPoint)point;++// -------- selections++// Given a rect in page-space, returns a selection representing enclosed text on page.+- (nullable PDFSelection *)selectionForRect:(PDFRect)rect;++// Given a point in page-space, returns a selection representing a whole word at that point. May return NULL if no+// character (and by extension no word) under point. If data dectors are enabled (-[PDFDocument enableDataDetectors]),+// this return the smart-selection for the content at the given point.+- (nullable PDFSelection *)selectionForWordAtPoint:(PDFPoint)point;++// Given a point in page-space, returns a selection representing a whole line at that point. May return NULL if no+// character (and by extension no line) under point.+- (nullable PDFSelection *)selectionForLineAtPoint:(PDFPoint)point;++// Returns a selection representing text between startPt and endPt. Points are sorted first top to bottom, left to right.+- (nullable PDFSelection *)selectionFromPoint:(PDFPoint)startPoint toPoint:(PDFPoint)endPoint;++// Given a range, returns a selection representing text within that range. Will clamp any range that goes out of bounds.+// Will return NULL for an empty selection.+- (nullable PDFSelection *)selectionForRange:(NSRange)range;++// -------- misc++// Returns PDF data (a proper PDF document) consisting of a single page (this page).+// NOTE: External page links are not preserved.+// NOTE: Versions of PDFKit before SnowLeopard did not return autorelease data for -[dataRepresentation]. You had to+// release the data yourself. Beginning with apps compiled on SnowLeopard the data returned is autoreleased.+@property (nonatomic, readonly, nullable) NSData *dataRepresentation;+@end++#if defined( PDFKIT_PLATFORM_OSX )++@interface PDFPage (PDFPageDeprecated)++// -------- rendering++// This method is deprecated in favor of the of the context aware -[PDFPage drawWithBox:toContext:]. If you subclass+// PDFPage, rendering code will first call -[PDFPage drawWithBox:toContext:]. If your subclass does not override the+// context-aware function, this original -[PDFPage drawWithBox:] method will be called.+// Drawing method takes into account page rotation, draws in page space relative to and clipped to the box bounds. If+// -[displaysAnnotations] is true, also draws any page annotations. Does not clear the background (page white).+- (void)drawWithBox:(PDFDisplayBox)box PDFKIT_DEPRECATED(10_4, 10_12, NA, NA);++// This method is deprecated in favor of the of the context aware -[PDFPage transformContext:forBox:]. If you subclass+// PDFPage, rendering code will first call -[PDFPage transformContext:forBox:]. If your subclass does not override the+// context-aware function, this original -[PDFPage transformContextForBox:] method will be called.+// Given a display box, will transform the current context to take into account the rotation of the page as well as+// the origin of the box with respect to the page's base coordinates system. This is a convenient method to call from+// within -[PDFView drawPage] or from within the draw method a PDFAnnotation subclass.+- (void)transformContextForBox:(PDFDisplayBox)box PDFKIT_DEPRECATED(10_5, 10_12, NA, NA);++@end++#endif++// PDFPageImageInitializationOption values.++// Value: CGRect as NSValue. If present, the page will have the given media box. Otherwise, the media box will be [0, 0, imageWidth, imageHeight].+PDFKIT_EXTERN PDFPageImageInitializationOption const PDFPageImageInitializationOptionMediaBox NS_SWIFT_NAME(mediaBox)+ API_AVAILABLE(macos(13.0), ios(16.0));++// Value: int as NSNumber. If present, the image will be drawn on the page with the given rotation (in degrees counterclockwise). The value must be a multiple of 90 or an exception will be thrown.+PDFKIT_EXTERN PDFPageImageInitializationOption const PDFPageImageInitializationOptionRotation NS_SWIFT_NAME(rotation)+ API_AVAILABLE(macos(13.0), ios(16.0));++// Value: BOOL as NSNumber. If true, and the image is smaller then the media box, the image will be upscaled to fit the media box, while maintaining aspect ratio.+PDFKIT_EXTERN PDFPageImageInitializationOption const PDFPageImageInitializationOptionUpscaleIfSmaller NS_SWIFT_NAME(upscaleIfSmaller)+ API_AVAILABLE(macos(13.0), ios(16.0));++// Value double as NSNumber. The value must be in the range 0.0 to 1.0 or an exception will be thrown. A value of 0.0 implies that maximum compression is desired. A value of 1.0 implies that maximum quality is desired.+PDFKIT_EXTERN PDFPageImageInitializationOption const PDFPageImageInitializationOptionCompressionQuality NS_SWIFT_NAME(compressionQuality)+ API_AVAILABLE(macos(13.0), ios(16.0));++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFPageOverlayViewProvider.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFPageOverlayViewProvider.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFPageOverlayViewProvider.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFPageOverlayViewProvider.h2024-10-25 21:20:39@@ -0,0 +1,35 @@+//+// PDFPageOverlayViewProvider.h+// PDFKit+//+// Copyright © 2022 Apple. All rights reserved.+//++#import <PDFKit/PDFKitPlatform.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFPage, PDFView;++API_AVAILABLE(macos(13.0), ios(16.0))+@protocol PDFPageOverlayViewProvider <NSObject>++@required++// Asks the provider for a view to be displayed on top of the specified page.+- (nullable PDFKitPlatformView*)pdfView:(PDFView*)view overlayViewForPage:(PDFPage*)page;++@optional++// Tells the provider that a view returned from `overlayViewForPage` has been added+// to the view hierarchy and constraints have been set up. At this point, gesture failure+// handlers may be set up with those of `pdfView`.+- (void)pdfView:(PDFView*)pdfView willDisplayOverlayView:(PDFKitPlatformView*)overlayView forPage:(PDFPage*)page;++// Tells the provider that a view returned from `overlayViewForPage` will be removed.+// This can be used to restore whatever was done in `overlayView:wasAddedForPage`.+- (void)pdfView:(PDFView*)pdfView willEndDisplayingOverlayView:(PDFKitPlatformView*)overlayView forPage:(PDFPage*)page;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFSelection.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFSelection.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFSelection.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFSelection.h2024-10-21 16:29:29@@ -0,0 +1,107 @@+//+// PDFSelection.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFSelection tracks a range of text on one or many pages, from a starting+// to end position. From a selection over a range of text, you have the ability+// to extract the plain-text string or decorated string. PDFSelections can be+// combined together, combining as needed or keeping the several discrete and+// non-overlapping selections apart. Selections can also grow and shrink as+// needed.+//++#import <PDFKit/PDFKitPlatform.h>+#import <PDFKit/PDFPage.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFPage;++// Enum used to determine the granularity at which text selections are created. Mirrors CGPDFSelectionType.+PDFKIT_ENUM_AVAILABLE(15_0, 18_0)+typedef NS_ENUM(NSUInteger, PDFSelectionGranularity) {+ PDFSelectionGranularityCharacter,+ PDFSelectionGranularityWord,+ PDFSelectionGranularityLine,+};++PDFKIT_CLASS_AVAILABLE(10_4, 11_0)+@interface PDFSelection : NSObject <NSCopying>+{+}+++// -------- initialization++// Returns and empty PDFSelection. Generally this is not useful but you can use this empty PDFSelection as a container+// into which you -[addSelection] or -[addSelections] below.+- (instancetype)initWithDocument:(PDFDocument *)document PDFKIT_AVAILABLE(10_5, 11_0) NS_DESIGNATED_INITIALIZER;+++// -------- accessors++// Array of pages covered by the selection. These are sorted by page index.+@property (nonatomic, readonly) NSArray<PDFPage*> *pages;++// If no color is ever specified, PDFSelections will draw using [NSColor selectedTextBackgroundColor] when active and+// [NSColor secondarySelectedControlColor] when not active. Calling -[setColor] will force the specified color to be+// used for both active and inactive drawing.+@property (nonatomic, copy, nullable) PDFKitPlatformColor *color PDFKIT_AVAILABLE(10_5, 11_0);++// String representing the text covered by the selection. May contain line-feeds.+@property (nonatomic, readonly, nullable) NSString *string;+@property (nonatomic, readonly, nullable) NSAttributedString *attributedString;++// Given a PDFPage, returns the bounds in page-space of the text covered by the selection on that page.+// Note that the bounds are relative to the origin of the page content, not the origin of any particular PDFDisplayBox.+- (PDFRect)boundsForPage:(PDFPage *)page;++// Returns the number of contiguous ranges of text on the specified page. Returns zero if page is not in selection.+// A typical, simple selection will contain a single range of text.+- (NSUInteger)numberOfTextRangesOnPage:(PDFPage *)page PDFKIT_AVAILABLE(10_7, 11_0);++// Returns a range of contiguous text at index on the specified page.+// A typical, simple selection will contain a single range of text.+- (NSRange)rangeAtIndex:(NSUInteger)index onPage:(PDFPage *)page PDFKIT_AVAILABLE(10_7, 11_0);++// Returns an array of PDFSelection objects - one for each line of text covered by the receiver. For example if the+// receiver PDFSelection represents a selected paragraph, calling this method would return several PDFSelections - one+// for each line of text in the paragraph.+- (NSArray<PDFSelection*>*)selectionsByLine PDFKIT_AVAILABLE(10_5, 11_0);++// -------- modifying++// Add a selection to this selection. Selections don't have to be contiguous. If the selection added overlaps with this+// selection, overlaps are removed.+- (void)addSelection:(PDFSelection *)selection;++// For adding several selections, you can get better performance calling -[addSelections:] and passing in an array of+// PDFSelections than calling -[addSelection] above inside a loop. It is the "normalization" (removing the overlaps)+// that can be slow when adding a selection to another. This function adds all the selections first and then+// normalizes just once at the end.+- (void)addSelections:(NSArray<PDFSelection*> *)selections PDFKIT_AVAILABLE(10_5, 11_0);++// Extends the selection at either end. Selections can be extended right off onto neighboring pages even to include the+// entire PDF document.+- (void)extendSelectionAtEnd:(NSInteger)succeed;+- (void)extendSelectionAtStart:(NSInteger)precede;++// Extend to the selection to the beginning and end of the currently selected lines of text. If the current selection is on a single+// line, then this will extend it to the entire line width. If the selection is across multiple lines, then the first and last+// lines are expected to wholly contain their respective rows of text.+- (void)extendSelectionForLineBoundaries PDFKIT_AVAILABLE(10_13, 11_0);++// -------- rendering++// Calls the below method passing kPDFDisplayBoxCropBox for box.+- (void)drawForPage:(PDFPage *)page active: (BOOL) active;++// Draws the selection in page space relative to the origin of box. Box can be kPDFDisplayBoxMediaBox,+// kPDFDisplayBoxCropBox, kPDFDisplayBoxBleedBox, kPDFDisplayBoxTrimBox or kPDFDisplayBoxArtBox. If active is true, it+// is drawn using -[NSColor selectedTextBackgroundColor], otherwise it is drawn using+// -[NSColor secondarySelectedControlColor].+- (void)drawForPage:(PDFPage *)page withBox:(PDFDisplayBox)box active:(BOOL)active;++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFThumbnailView.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFThumbnailView.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFThumbnailView.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFThumbnailView.h2024-10-25 21:20:40@@ -0,0 +1,75 @@+//+// PDFThumbnailView.h+// Copyright © 2019 Apple. All rights reserved.+//+// PDFThumbnailView is a custom view that contains a set of PDFPage thumbnails+// that a user can scroll over, interact with, and have these interactions drive+// view changes on PDFView.+//++#import <PDFKit/PDFKitPlatform.h>++NS_ASSUME_NONNULL_BEGIN++#if defined(PDFKIT_PLATFORM_IOS)++// Layout mode for thumbnail view.+PDFKIT_ENUM_AVAILABLE(NA, 11_0)+typedef NS_ENUM(NSInteger, PDFThumbnailLayoutMode)+{+ PDFThumbnailLayoutModeVertical = 0,+ PDFThumbnailLayoutModeHorizontal = 1+};++#endif++@class PDFView, PDFPage;++// Notification when PDFDocument is modified.+PDFKIT_EXTERN NSString* const PDFThumbnailViewDocumentEditedNotification PDFKIT_AVAILABLE(10_4, 11_0);++PDFKIT_CLASS_AVAILABLE(10_5, 11_0)+@interface PDFThumbnailView : PDFKitPlatformView <NSCoding>++// PDFView associated with the thumbnail view.+@property (nonatomic, weak, nullable) PDFView *PDFView;++// Background color of view.+@property (nonatomic, copy, nullable) PDFKitPlatformColor *backgroundColor;++// This will return only a single page unless allowsMultipleSelection is set to YES.+@property (nonatomic, readonly, strong, nullable) NSArray<PDFPage*> *selectedPages;++// The maximum thumbnail size.+@property (nonatomic) PDFSize thumbnailSize;++#if defined(PDFKIT_PLATFORM_OSX)++// Maximum number of columns (0 indicates no limit - as many columns as will fit).+@property (nonatomic) NSUInteger maximumNumberOfColumns;++// Font used for the page labels.+@property (nonatomic, copy, nullable) PDFKitPlatformFont *labelFont;++// Dragging. Allows a user to move icons within the PDFThumbnailView, changing page order. Default is false.+@property (nonatomic) BOOL allowsDragging;++// Multiple selections. By default, PDFThumbnailView allows only a single page to be selected at once - the selected+// thumbnail always corresponds to -[PDFView currentPage]. When you enable multiple selections, the user is allowed to+// select more than one thumbnail.+@property (nonatomic) BOOL allowsMultipleSelection;++#elif defined(PDFKIT_PLATFORM_IOS)++// Defines if the thumbnail view is to be displayed vertically or horizontally.+// Default PDFThumbnailLayoutModeVertical.+@property (nonatomic) PDFThumbnailLayoutMode layoutMode PDFKIT_AVAILABLE(NA, 11_0);++// Inset for the placement of icons within the thumbnail view. Default UIEdgeInsetsZero.+@property (nonatomic) UIEdgeInsets contentInset PDFKIT_AVAILABLE(NA, 11_0);++#endif //PDFKIT_PLATFORM_IOS++@end++NS_ASSUME_NONNULL_ENDdiff -ruN /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFView.h /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFView.h--- /Applications/Xcode_16.1.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFView.h1969-12-31 19:00:00+++ /Applications/Xcode_16.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/PDFKit.framework/Headers/PDFView.h2024-10-21 19:28:56@@ -0,0 +1,461 @@+//+// PDFView.h+// Copyright © 2019 Apple. All rights reserved.+//+// This class is the main view of PDFKit: you can instantiate a PDFView or create one+// in Interface Builder that will host the contents of a PDFDocument. Note that you can+// layout the pages of a PDFDocument in a few different ways, mostly as a function of+// PDFDisplayMode, combined with a few options like "displayDirection" and "displaysRTL".+// Note the delegate PDFViewDelegate and associated notifications, both of which can be+// used as a way to listen for search, print, and user-interaction events.+//++#import <PDFKit/PDFKitPlatform.h>++#import <PDFKit/PDFDocument.h>+#import <PDFKit/PDFPage.h>++NS_ASSUME_NONNULL_BEGIN++@class PDFAction, PDFActionRemoteGoTo, PDFDestination, PDFSelection, PDFViewPrivate;+@protocol PDFViewDelegate, PDFPageOverlayViewProvider;++// Display modes.+PDFKIT_ENUM_AVAILABLE(10_4, 11_0)+typedef NS_ENUM(NSInteger, PDFDisplayMode)+{+ kPDFDisplaySinglePage = 0,+ kPDFDisplaySinglePageContinuous = 1,+ kPDFDisplayTwoUp = 2,+ kPDFDisplayTwoUpContinuous = 3+};++// Display direction.+PDFKIT_ENUM_AVAILABLE(10_13, 11_0)+typedef NS_ENUM(NSInteger, PDFDisplayDirection)+{+ kPDFDisplayDirectionVertical = 0,+ kPDFDisplayDirectionHorizontal = 1,+};++// Interpolation quality.+PDFKIT_ENUM_AVAILABLE(10_7, 11_0)+typedef NS_ENUM(NSInteger, PDFInterpolationQuality)+{+ kPDFInterpolationQualityNone = 0,+ kPDFInterpolationQualityLow = 1,+ kPDFInterpolationQualityHigh = 2+};++// Notifications.+PDFKIT_EXTERN NSNotificationName const PDFViewDocumentChangedNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when a new document is associated with view.+PDFKIT_EXTERN NSNotificationName const PDFViewChangedHistoryNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when the page history changes.+PDFKIT_EXTERN NSNotificationName const PDFViewPageChangedNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when a new page becomes current.+PDFKIT_EXTERN NSNotificationName const PDFViewScaleChangedNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when the scale changes.+PDFKIT_EXTERN NSNotificationName const PDFViewAnnotationHitNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when the user clicks on an annotation.+PDFKIT_EXTERN NSNotificationName const PDFViewCopyPermissionNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when the user is denied copy (permissions).+PDFKIT_EXTERN NSNotificationName const PDFViewPrintPermissionNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when the user is denied print (permissions).+PDFKIT_EXTERN NSNotificationName const PDFViewAnnotationWillHitNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification before user clicks on an annotation.+PDFKIT_EXTERN NSNotificationName const PDFViewSelectionChangedNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when the current selection has changed.+PDFKIT_EXTERN NSNotificationName const PDFViewDisplayModeChangedNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when the display mode has changed.+PDFKIT_EXTERN NSNotificationName const PDFViewDisplayBoxChangedNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when the display box has changed.+PDFKIT_EXTERN NSNotificationName const PDFViewVisiblePagesChangedNotification PDFKIT_AVAILABLE(10_4, 11_0); // Notification when the scroll view has scrolled into the bounds of a new page.++PDFKIT_CLASS_AVAILABLE(10_4, 11_0)+@interface PDFView : PDFKitPlatformView+#if TARGET_OS_OSX+ < NSAnimationDelegate, NSMenuDelegate >+#elif (TARGET_OS_IOS || TARGET_OS_VISION)+ < UIGestureRecognizerDelegate, UIFindInteractionDelegate >+#endif+{+@private+ PDFViewPrivate *_private;+}++// -------- document++// Methods for associating a PDFDocument with a PDFView.+@property (nonatomic, retain, nullable) PDFDocument *document;++// -------- page navigation++// Simple page navigation methods.+@property (nonatomic, readonly) BOOL canGoToFirstPage;+- (IBAction)goToFirstPage:(nullable id)sender;++@property (nonatomic, readonly) BOOL canGoToLastPage;+- (IBAction)goToLastPage:(nullable id)sender;++@property (nonatomic, readonly) BOOL canGoToNextPage;+- (IBAction)goToNextPage:(nullable id)sender;++@property (nonatomic, readonly) BOOL canGoToPreviousPage;+- (IBAction)goToPreviousPage:(nullable id)sender;++// Page visitations done via goToFirstPage:, goToLastPage:, goToPage:, etc. methods are recorded with visitation history+// and can be revisited by executing goBack: or goForward:, much like a web browser. Note that visitiation history+// also includes all rect, destination, and selection goTo*: methods.+@property (nonatomic, readonly) BOOL canGoBack;+- (IBAction)goBack:(nullable id)sender;++@property (nonatomic, readonly) BOOL canGoForward;+- (IBAction)goForward:(nullable id)sender;++// Returns the current page you are on. For two-up modes, it is the left page (if there are two). For continuous modes,+// it finds the page crossing a horizontal line halfway between the views top and bottom bounds.+@property (nonatomic, readonly, nullable) PDFPage *currentPage;++// Scrolls to page.+- (void)goToPage:(PDFPage *)page;++// Returns a PDFDestination representing the current page and point displayed (see -[currentPage] for more comments).+@property (nonatomic, readonly, nullable) PDFDestination *currentDestination;++// Goes to the specified destination.+- (void)goToDestination:(PDFDestination *)destination;++// Goes to the specified selection (since selections can be large, goes to the first character of the selection).+- (void)goToSelection:(PDFSelection *)selection;++// Goes to the specified rectangle on the specified page. If already visible, does nothing. This allows you to scroll+// the PDFView to a specific PDFAnnotation or PDFSelection (since both object have bounds methods).+// Note: rect is specified in page coordinates. Example: You might use this function when tabbing through a form to keep+// focus on the active element.+- (void)goToRect:(PDFRect)rect onPage:(PDFPage *)page;++// -------- display mode++// See PDFDisplayMode constants above. Default is kPDFDisplaySinglePageContinuous.+@property (nonatomic) PDFDisplayMode displayMode;++// Set the layout direction, either vertical or horizontal, for the given display mode+// Defaults to vertical layout (kPDFDisplayDirectionVertical).+@property (nonatomic) PDFDisplayDirection displayDirection PDFKIT_AVAILABLE(10_13, 11_0);++// Toggle displaying or not displaying page breaks (spacing) between pages. This spacing value+// is defined by the pageBreakMargins property. If displaysPageBreaks is NO, then pageBreakMargins+// will always return { 0.0, 0.0, 0.0, 0.0 }. Default is YES.+@property (nonatomic) BOOL displaysPageBreaks;++// If displaysPageBreaks is enabled, you may customize the spacing between pages by defining margins for+// the top, bottom, left, and right of each page. Note that pageBreakMargins only allows positive values+// and will clamp any negative value to 0.0. By default, if displaysPageBreaks is enabled, pageBreakMargins+// is { 4.75, 4.0, 4.75, 4.0 } (with respect to top, left, bottom, right), otherwise it is { 0.0, 0.0, 0.0, 0.0 }+@property (nonatomic) PDFEdgeInsets pageBreakMargins PDFKIT_AVAILABLE(10_13, 11_0);++// Specifies the box to display/clip to. Default is kPDFDisplayBoxCropBox.+@property (nonatomic) PDFDisplayBox displayBox;++// Specifies whether the first page is to be treated as a cover and (for two-up modes) displayed by itself.+@property (nonatomic) BOOL displaysAsBook;++// Specifies presentation of pages from right-to-left. Defaults to NO.+@property (nonatomic) BOOL displaysRTL PDFKIT_AVAILABLE(10_13, 11_0);++// Default is a 50% gray.+@property (nonatomic, strong) PDFKitPlatformColor *backgroundColor;++// Allows setting the interpolation quality for images drawn into the PDFView context.+@property (nonatomic) PDFInterpolationQuality interpolationQuality PDFKIT_AVAILABLE(10_7, 11_0);++// Specifies if shadows should be drawn around page borders in a PDFView. Defaults to YES.+@property (nonatomic, setter=enablePageShadows:) BOOL pageShadowsEnabled PDFKIT_AVAILABLE(10_14, 12_0);++#if defined(PDFKIT_PLATFORM_IOS)++// Changes the underlying scroll view to use a UIPageViewController as a way to layout and navigate+// pages. Note that you can change the orientation via -[PDFView setDisplayDirection:], and that+// the property -[PDFView displayMode] is ignored: layout is always assumed single page continuous.+// The viewOptions argument is given to the UIPageViewController initializer, as a way to pass in page spacing, etc.+- (void)usePageViewController:(BOOL)enable withViewOptions:(nullable NSDictionary*)viewOptions PDFKIT_AVAILABLE(NA, 11_0);+@property (nonatomic, readonly) BOOL isUsingPageViewController PDFKIT_AVAILABLE(NA, 11_0);++#endif++// -------- delegate++@property (nonatomic, weak, nullable) id< PDFViewDelegate > delegate;++@property (nonatomic, weak, nullable) id<PDFPageOverlayViewProvider> pageOverlayViewProvider PDFKIT_AVAILABLE(13_0, 16_0);+++// -------- scaling++// Method to get / set the current scaling on the displayed PDF document. Default is 1.0 (actual size).+// Note that the given scaleFactor is clamped by the current min / max scale factors.+// When using a page view controller layout on iOS, this only affects the currently visible page and+// is ignored for any future loaded pages. You can observe the PDFViewPageChangedNotification notification+// to see when new pages are visible to apply new scale factors to them.+@property (nonatomic) CGFloat scaleFactor;++// Set the minimum and maximum scaling factors for the PDF document. Assigning these values will implicitly turn+// off autoScales, and allows scaleFactor to vary between these min / max scale factors+@property (nonatomic) CGFloat minScaleFactor PDFKIT_AVAILABLE(10_13, 11_0);+@property (nonatomic) CGFloat maxScaleFactor PDFKIT_AVAILABLE(10_13, 11_0);++// Toggles mode whereby the scale factor is automatically changed as the view is resized, or rotated, to maximize the+// PDF displayed. For continuous modes this is a "fit width" behavior, for non-continuous modes it is a "best fit" behavior.+@property (nonatomic) BOOL autoScales;++// Regardless of current autoScales mode, this returns the "size to fit" scale factor that autoScales would use+// for scaling the current document and layout. For continuous modes this is a "fit width" scale, for+// non-continuous modes it is a "best fit" scale.+@property (nonatomic, readonly) CGFloat scaleFactorForSizeToFit PDFKIT_AVAILABLE(10_13, 11_0);++// Zooming changes the scaling by root-2.+- (IBAction)zoomIn:(nullable id)sender;+@property (nonatomic, readonly) BOOL canZoomIn;++- (IBAction)zoomOut:(nullable id)sender;+@property (nonatomic, readonly) BOOL canZoomOut;++// -------- events++// Returns type of area (see defines above) mouse is over. This method is useful for subclasses.+- (PDFAreaOfInterest)areaOfInterestForMouse:(PDFKitPlatformEvent *)event;+- (PDFAreaOfInterest)areaOfInterestForPoint:(PDFPoint)cursorLocation;++#if defined(PDFKIT_PLATFORM_OSX)++// Sets the appropriate cursor for a given area of interest. This method is useful for subclasses.+- (void)setCursorForAreaOfInterest:(PDFAreaOfInterest)area;++#endif++// Performs the action specified by action.+- (void)performAction:(PDFAction *)action PDFKIT_AVAILABLE(10_5, 11_0);++// -------- selection++// Getter: Returns actual instance of the current PDFSelection object. If you wish to modify this, you should make a copy of+// the selection returned and modify that instead. Method may return nil if there is no selection.+// Setter: Set current selection to selection. The view will redraw as necessary. The view will not scroll.+// Call -[scrollSelectionToVisible:] to scroll to the current selection.+@property (nonatomic, strong, nullable) PDFSelection *currentSelection;++// Like -[setCurrentSelection:] above but with the additional parameter that specifies whether setting the selection+// should be animated. The animation draws the user's attention to the new selection. Useful when searching.+- (void)setCurrentSelection:(nullable PDFSelection *)selection animate:(BOOL)animate PDFKIT_AVAILABLE(10_5, 11_0);++// Equivalent to -[PDFView setCurrentSelection: nil].+- (void)clearSelection;++// Select all text for the entire document, unless in in page view controller mode for iOS,+// where only the current page is selected.+- (IBAction)selectAll:(nullable id)sender;++// If the selection is not visible, scrolls view so that it is.+- (IBAction)scrollSelectionToVisible:(nullable id)sender;++// The following calls allow you to associate an array of PDFSelections with a PDFView. Unlike the user selection+// (above), these selections do not go away when the user clicks in the PDFView, etc. You must explicitly remove them+// by passing nil to -[setHighlightedSelections:]. These methods allow you to highlight text perhaps to indicate+// matches from a text search. To avoid confusion you should probably make sure the PDFSelections passed in are a+// different color from the user's default text selection color. Commonly used for highlighting search results.+@property (nonatomic, copy, nullable) NSArray<PDFSelection*> *highlightedSelections PDFKIT_AVAILABLE(10_5, 11_0);++// -------- rendering++// Context-aware subclassing functions++// For subclasses. This method is called for each visible page requiring rendering. By subclassing you can draw on top+// of the PDF page or draw the page entirely yourself. Default implementation erases page to white and calls:+// [page drawWithBox: [self displayBox] toContext: context]. Note that this may be called multiple times for+// the same page due to tiling of renderable content.+- (void)drawPage:(PDFPage *)page toContext:(CGContextRef)context PDFKIT_AVAILABLE(10_12, 11_0);++// Also a handy method for sub-classing. Called for post-page rendering. In this method however no scaling/rotating is+// applied to the current context to map to page-space. The context is in "view-space" coordinates.+- (void)drawPagePost:(PDFPage *)page toContext:(CGContextRef)context PDFKIT_AVAILABLE(10_12, 11_0);+++// -------- pasteboard++// Copy the selection (if any) to the pasteboard.+- (IBAction)copy:(nullable id)sender;++#if defined(PDFKIT_PLATFORM_OSX)++// -------- printing++// Print the PDF document. If autoRotate is YES, will ignore the orientation attribute in printInfo and rather choose+// the orientation on a page by page basis that best fits the page to the paper size.+- (void)printWithInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)doRotate;++// Like the above method but allows an additional parameter to describe page scaling (see PDFDocument.h for types).+// If pageScaling is equal to kPDFPrintPageScaleToFit each page is scaled up or down in order to best fit the paper+// size. Specifying kPDFPrintPageScaleDownToFit for pageScaling will only scale large pages down to fit the paper,+// smaller pages will not be scaled up. Passing pageScaling equal to kPDFPrintPageScaleNone is the equivalent of+// calling -[printWithInfo: autoRotate] above.+- (void)printWithInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)doRotate pageScaling:(PDFPrintScalingMode)scale PDFKIT_AVAILABLE(10_5, 11_0);++#endif++// -------- conversion++// Given a point in view coordinates, returns the page at that point. May return nil if no page at point and nearest is NO.+- (nullable PDFPage *)pageForPoint:(PDFPoint)point nearest:(BOOL)nearest;++// Converts a point from view coordinates to page coordinates.+- (PDFPoint)convertPoint:(PDFPoint)point toPage:(PDFPage *)page;++// Converts a rect from view coordinates to page coordinates.+- (PDFRect)convertRect:(PDFRect)rect toPage:(PDFPage *)page;++// Converts a point from page coordinates to view coordinates.+- (PDFPoint)convertPoint:(PDFPoint)point fromPage:(PDFPage *)page;++// Converts a rect from page coordinates to view coordinates.+- (PDFRect)convertRect:(PDFRect)rect fromPage:(PDFPage *)page;++// -------- misc++// Returns the innermost view used by PDFView. This is the view representing the displayed document pages.+@property (nonatomic, readonly, nullable) PDFKitPlatformView *documentView;++// Tells PDFView to calculate (layout) the inner views. Called automatically when -[setDocument] and -[setDisplayBox]+// are called. You'll need to call this if you add or remove a page on the document, rotate a page etc.+- (void)layoutDocumentView;++// Tells PDFView that an annotation has changed on the specified page. PDFView re-scans then for tooltips, popups,+// and informs PDFThumbnailViews so the thumbnail can be redrawn.+- (void)annotationsChangedOnPage:(PDFPage *)page PDFKIT_AVAILABLE(10_5, 11_0);++// Handy for initially sizing PDFView. Returns the size needed to display the 'row' of the view's current document+// containing the specified page at the current scale factor and with the current display attributes.+- (PDFSize)rowSizeForPage:(PDFPage *)page;++#if defined(PDFKIT_PLATFORM_OSX)++// Indicate whether dragging a file into PDFView is allowed. If NO (default), dragging events are not supported.+// If YES, a user can drag and drop a PDF file into the view and have it loaded & set as the visible document (the old document is released).+@property (nonatomic) BOOL acceptsDraggedFiles PDFKIT_AVAILABLE(10_13, NA);++#endif++// Returns an array of PDFPage objects representing the currently visible pages. May return empty array if no document is assigned.+@property (nonatomic, readonly) NSArray<PDFPage *> *visiblePages PDFKIT_AVAILABLE(10_5, 11_0);++// Turns on or off data detection. If enabled, page text will be scanned for results such as URL's, addresses, phone numbers,+// times/dates, etc., as the page becomes visible. Where URL's are found, Link annotations are created in place. These are+// temporary annotations and are not saved. It is deprecated in favor of -[PDFDocument enableDataDetectors].+@property (nonatomic) BOOL enableDataDetectors PDFKIT_DEPRECATED(10_6, 15_0, 11_0, 18_0);++// If YES, page overlay views will be hit tested and therefore receive gestures. If NO, PDFView will receive gestures,+// namely those for text selection.+@property (nonatomic, getter=isInMarkupMode) BOOL inMarkupMode PDFKIT_AVAILABLE(13_0, 16_0);+++// -------- find interaction++#if defined(PDFKIT_PLATFORM_IOS)++/// If `findInteractionEnabled` is set to true, returns the receiver's built-in find interaction. Otherwise, nil.+@property (nonatomic, readonly) UIFindInteraction *findInteraction API_AVAILABLE(ios(16.0), visionos(1.0)) API_UNAVAILABLE(watchos, tvos);++/// Enables the built-in find interaction.+@property (nonatomic, readwrite, getter=isFindInteractionEnabled) BOOL findInteractionEnabled PDFKIT_AVAILABLE(NA, 16_0);++#endif++@end++@protocol PDFViewDelegate< NSObject >+@optional++// Delegates implementing the following method will be called to handle clicks on URL links within the PDFView. The+// default implementation calls [[NSWorkspace sharedWorkspace] openURL: url].+- (void)PDFViewWillClickOnLink:(PDFView *)sender withURL:(NSURL *)url PDFKIT_AVAILABLE(10_5, 11_0);++#if defined( PDFKIT_PLATFORM_OSX )++// Delegate method allowing a delegate to override changes to the scale factor. The default implementation pins scaling+// between 0.1 and 10.0.+- (CGFloat)PDFViewWillChangeScaleFactor:(PDFView *)sender toScale:(CGFloat)scaler PDFKIT_AVAILABLE(10_5, NA);++// A delegate providing this method can override the job title when PDFView is printed. The default implementation+// uses the string, if any, associated with the "Title" key from the view's PDFDocument attribute dictionary. Failing+// that, it uses the last path component if the PDFDocument is URL-based.+- (NSString *)PDFViewPrintJobTitle:(PDFView *)sender PDFKIT_AVAILABLE(10_5, NA);++// Certain PDFAction's may request that the PDF viewer application Print the current document. Delegates responding to+// the below method will be called when the user clicks on an annotation with such an action.+- (void)PDFViewPerformPrint:(PDFView *)sender PDFKIT_AVAILABLE(10_5, NA);++#elif defined( PDFKIT_PLATFORM_IOS )++// A delegate that should return the main view controller the PDFView resides in. This is to add additional+// support to one's view such as 'Lookup' from the text selection menu, along with support of entering text for notes.+- (PDFKitPlatformViewController*) PDFViewParentViewController PDFKIT_AVAILABLE(10_15, 13_0);++#endif++// Certain PDFAction's may request that the PDF viewer application perform a Find. Delegates responding to the below+// method will be called when the user clicks on an annotation with such an action.+- (void)PDFViewPerformFind:(PDFView *)sender PDFKIT_AVAILABLE(10_5, 11_0);++// Certain PDFAction's may request that the PDF viewer application bring up a panel allowing the user to enter a+// specific page number. Delegates responding to the below method will be called when the user clicks on an annotation+// with such an action.+- (void)PDFViewPerformGoToPage:(PDFView *)sender PDFKIT_AVAILABLE(10_5, 11_0);++// Delegates implementing the following method will be called to handle clicks on annotations containing a+// PDFActionRemoteGoTo action. The action contains a URL and a page index and point. The delegate should open the PDF+// indicated by the URL and go to the page and point indicated. The easiest way to do the latter is to create a+// PDFDestination with the page index and point once a PDFDocument from the URL is created - then you can call:+// -[PDFView goToDestination:]. The default implementation simply beeps.+- (void)PDFViewOpenPDF:(PDFView *)sender forRemoteGoToAction:(PDFActionRemoteGoTo *)action PDFKIT_AVAILABLE(10_5, 11_0);++@end++#if defined( PDFKIT_PLATFORM_OSX )++// Deprecated macOS PDFView methods+@interface PDFView (PDFViewDeprecated)++// -------- password++// Convenience method. Calls -[[self document] unlockWithPassword:] with the password from sender.+- (IBAction)takePasswordFrom:(id)sender PDFKIT_DEPRECATED(10_4, 10_12, NA, NA);++// -------- rendering++// This method is deprecated in favor of the of the context aware -[PDFView drawPage:toContext:]. If you subclass+// PDFView, rendering code will first call -[PDFView drawPage:toContext:]. If your subclass does not override the+// context-aware function, this original -[PDFView drawPage:] method will be called.+// For subclasses. This method is called for each visible page requiring rendering. By subclassing you can draw on top+// of the PDF page or draw the page entirely yourself. Default implementation erases page to white and calls:+// [page drawWithBox: [self displayBox]], then draws the selection if any.+- (void)drawPage:(PDFPage *)page PDFKIT_DEPRECATED(10_4, 10_12, NA, NA);++// This method is deprecated in favor of the of the context aware -[PDFView drawPagePost:toContext:]. If you subclass+// PDFView, rendering code will first call -[PDFView drawPagePost:toContext:]. If your subclass does not override the+// context-aware function, this original -[PDFView drawPagePost:] method will be called.+// Also a handy method for sub-classing. Called for post-page rendering. In this method however no scaling/rotating is+// applied to the current context to map to page-space. The context is in "view-space" coordinates. The default+// implementation of this method draws the text highlighting (if any) for page.+- (void)drawPagePost:(PDFPage *)page PDFKIT_DEPRECATED(10_5, 10_12, NA, NA);++// State of anti-aliasing when drawing. Default is YES.+@property (nonatomic) BOOL shouldAntiAlias PDFKIT_DEPRECATED(10_4, 10_12, NA, NA);++// Greeking threshold to apply to text displayed. Default is 0.0.+@property (nonatomic) CGFloat greekingThreshold PDFKIT_DEPRECATED(10_4, 10_12, NA, NA);++// The background color is the color of the space behind the PDF pages (and between them if page breaks is enabled).+// Default is a 50% gray.+- (IBAction)takeBackgroundColorFrom:(id)sender PDFKIT_DEPRECATED(10_4, 10_12, NA, NA);++// -------- misc++// Indicate whether dragging is allowed. If NO (default), dragging events are not supported. If YES, a user can drag+// a PDF file to the view and a new document is associated with the view (the old document is released).+// Method renamed to "acceptsDraggedFiles", has same behavior.+@property (nonatomic) BOOL allowsDragging PDFKIT_DEPRECATED(10_4, 10_13, NA, NA);++@end++#endif++NS_ASSUME_NONNULL_END