1

Im working on a pdf annotation app, as of now i'm able to draw a line using image in "PDFAnnotationSubtype.stamp".

Image: enter image description here

using below code:

public class ImageAnnotation: PDFAnnotation{ 

 init(with image: UIImage!, forBounds bounds: CGRect, withProperties properties: [AnyHashable : Any]?) {
    super.init(bounds: bounds, forType: PDFAnnotationSubtype.stamp, withProperties: properties)

    self._image = image
}

override public func draw(with box: PDFDisplayBox, in context: CGContext) {
    guard let cgImage = self._image?.cgImage else { return }
    context.draw(cgImage, in: self.bounds)
}
}

Results: enter image description here

Using this method I end up adding image at every CGpoint(in other words every cgpoint is separate PDFAnnotation). How do I make the entire path as a single stroke/single annotation such that when I try to erase, the entire path should get cleared instead of only few cgpoint/pixels.

Raj Kiran
  • 152
  • 1
  • 9

1 Answers1

1

After searching for several resources found out we can use "CGPattern" to texture the line.

Reference: https://developer.apple.com/documentation/coregraphics/cgpattern

For any one else trying this make sure to play around "drawingPath" with "fill" and "stroke" modes.

Raj Kiran
  • 152
  • 1
  • 9