如何使用 objective c 向我的 pdf 添加注释?

How to add anotation to my pdf using objective c?

我对 objective c 和 Apple 的 PdfKit 框架还很陌生,我无法在我的 pdf 上绘制注释。

我在控制台上没有收到任何错误。 这是我的代码:

PDFAnnotation  * observation = [[PDFAnnotation alloc] init];
CGRect cgRect = CGRectMake(20, 20, 120, 120);
                
observation.widgetFieldType = PDFAnnotationWidgetSubtypeButton;
observation.bounds = cgRect;
observation.shouldDisplay = true;
observation.backgroundColor = UIColor.redColor;
observation.widgetFieldType= PDFAnnotationWidgetSubtypeButton;
                
[page addAnnotation:observation];

有人知道为什么我的 pdf 注释没有绘制在我的 pdf 上吗? 我还想知道 objective c 是否完全支持 PdfKit 框架,因为苹果的文档中只有使用 swift.

制作的示例

感谢您的帮助!

您的注释未绘制,因为您忘记设置 type。这可能是一个错误,因为您设置了 widgetFieldType 两次。这是正确的按钮小部件设置:

PDFAnnotation  *observation = [[PDFAnnotation alloc] init];
observation.bounds = CGRectMake(20, 20, 200, 100);

observation.type = PDFAnnotationSubtypeWidget;
observation.widgetFieldType = PDFAnnotationWidgetSubtypeButton;
observation.widgetControlType = kPDFWidgetCheckBoxControl;

observation.backgroundColor = UIColor.redColor;
[page addAnnotation:observation];

为避免以后出现此类错误,请使用以下初始化程序:

- (instancetype)initWithBounds:(CGRect)bounds 
                       forType:(PDFAnnotationSubtype)annotationType 
                withProperties:(NSDictionary *)properties;

并将设置代码更改为:

PDFAnnotation  *observation = [[PDFAnnotation alloc] initWithBounds:CGRectMake(20, 20, 200, 100)
                                                            forType:PDFAnnotationSubtypeWidget
                                                     withProperties:nil];
observation.widgetFieldType = PDFAnnotationWidgetSubtypeButton;
observation.widgetControlType = kPDFWidgetCheckBoxControl;
observation.backgroundColor = UIColor.redColor;
    
[page addAnnotation:observation];

我强烈建议最后设置外观(如 backgroundColor)。因为当你更改类型时,所有这些值都会被 PDFKit 修改。

还要注意 0, 0 是 bottom/left 角 (bounds)。