как добавить аннотацию изображения в PDFKit в iOS11 - PullRequest
0 голосов
/ 12 июня 2018

Я использую PDFKit в iOS11 для разработки приложения, которое может показывать аннотации в PDF-файлах.Теперь я хочу добавить аннотацию изображения на страницу PDF, я думаю, что подтип аннотации должен быть печатью.Но в PDFKit я не могу найти свойство, подобное «image», единственное свойство, относящееся к аннотации штампа, - stampName.Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 12 июля 2018

Вот как мне удалось это сделать.Идея состоит в том, чтобы переопределить функцию draw (), чтобы назначать ставки для отсутствующего в настоящее время класса PDFAnnotationStamp (я нашел несколько устаревших документов о различных типах подклассов PDFAnnotation , которые теперь пропали ).Эта проблема не кажется недавней , и доски разработчиков действительно пустые стороны 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)))
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...