如何在iOS11中的PDFKit中添加图像注释

时间:2018-06-12 03:10:14

标签: pdf annotations ios11

我在iOS11中使用PDFKit来开发一个可以显示pdf文件添加注释的应用程序。现在我想在pdf页面中添加图像注释,我认为注释子类型应该是标记。但是在PDFKit中我找不到像“image”这样的属性来设置,与戳记注释相关的唯一属性是stampName。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

这是我设法做到的方式。 这个想法是重写draw()函数来对现在不存在的PDFAnnotationStamp类进行投标(我找到了一些有关不同类型的PDFAnnotation子类that are now gone的过时文档)。 doesn't seem to be recent这个问题以及开发板确实是空的iOS方面,这简直令人恐惧。

public class ImageAnnotation: PDFAnnotation {

    private var _image: UIImage?

    public init(imageBounds: CGRect, image: UIImage?) {
        self._image = image
        super.init(bounds: imageBounds, forType: .stamp, withProperties: nil)
    }

    required public init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override public func draw(with box: PDFDisplayBox, in context: CGContext) {
        guard let cgImage = self._image?.cgImage else {
            return
        }
       let drawingBox = self.page?.bounds(for: box)
       //Virtually changing reference frame since the context is agnostic of them. Necessary hack.
       context.draw(cgImage, in: self.bounds.applying(CGAffineTransform(
       translationX: (drawingBox?.origin.x)! * -1.0, 
                  y: (drawingBox?.origin.y)! * -1.0)))
    }

}