擦除使用 pdfkit 添加的 pdfAnnotation

Posted

技术标签:

【中文标题】擦除使用 pdfkit 添加的 pdfAnnotation【英文标题】:Erase pdfAnnotation added using pdfkit 【发布时间】:2018-12-12 06:15:00 【问题描述】:

我使用下面的代码在 pdfpage 上画了一条线。当用户拖动注释时,有什么方法可以像橡皮擦一样擦除注释。

let lineAttributes: [PDFAnnotationKey: Any] = [ .linePoints: [startPoint.x, startPoint.y, point.x, point.y],
            .lineEndingStyles: [PDFAnnotationLineEndingStyle.none,PDFAnnotationLineEndingStyle.none], .color: UIColor.red,.border: PDFBorder() ]
            let lineAnnotation = PDFAnnotation(bounds: pageBounds , forType: .line,withProperties: lineAttributes)
            lineAnnotation.border = border
            lineAnnotation.color = selectedcolor
            page!.addAnnotation(lineAnnotation)

【问题讨论】:

【参考方案1】:

1) 将平移手势识别器添加到您的 PDFView

2) 跟踪手势并在适当的时候(如手势越过注释)调用page.removeAnnotation(lineAnnotation)

这是您如何从手势识别器获取页面内的触摸位置

CGPoint touchLocation = [sender locationInView:self.pdfView];
PDFPage * pdfPage = [self.pdfView pageForPoint:touchLocation nearest:NO];
if (pdfPage == nil) 
    return;


CGPoint pageLocation = [self.pdfView convertPoint:touchLocation toPage:pdfPage];

【讨论】:

以上是关于擦除使用 pdfkit 添加的 pdfAnnotation的主要内容,如果未能解决你的问题,请参考以下文章

ruby on rails 中使用pdfkit生成pdf

iOS 11 PDFKit 墨水注释 - 无法填充 UIBezierPath

使用 PDFKIt iOS 11 创建 PDF 注释

如何使用 PDFkit 检测滚动到 PDF 中的另一个页面

如何使用 PDFKit 突出显示 pdf 中的选定文本?

从 html 转换的 pdf 中的页码 - pdfkit、python/django