当前位置: 首页 > 知识库问答 >
问题:

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

梁丘佑运
2023-03-14

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

共有1个答案

徐洛华
2023-03-14

这是我如何做到的。其思想是重写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)))
    }

}
 类似资料:
  • 我是第一次开发颤振应用程序。。我在添加图像时遇到问题。我有以下问题: 在哪里创建图像文件夹? 在哪里添加资产标签pubspec.ymal? 这需要任何资产文件夹吗? 我所尝试的: 在pubspec内部。ymal: 完整文件: 错误日志: 我的主菜。dart代码: 我指的是这个教程https://flutter.io/tutorials/layout/ 此外,我想问,有没有在颤振清洁重建的工具,因为

  • 分析块映射时需要密钥。|66 |-图片| ^ |请更正pubspec。pubspec的yaml文件。yaml出口代码1

  • 问题内容: 我是Java的新手,并且遇到在applet面板中添加图像的问题。我的图像在同一文件夹中。我的小程序可见,没有任何问题,但仅不显示图像。 问题答案: 在接受一个构造函数假定字符串表示的路径和文件名。 只有受信任的applet可以访问,然后只能在客户端文件系统(而不是服务器)上访问。如果这是应用程序资源,则应位于服务器上,并且可以通过URL访问。 请注意,构造函数还将接受URL,而不是上面

  • 问题内容: 我正在使用JDeveloper在Java中设计一个表单。我是JDeveloper的新手。在JDeveloper工具中,我没有找到任何直接将图像添加到.Net之类的选项。而且我不知道如何手动添加图像以形成表单。还有其他解决方法。所以请帮我解决。 问题答案: 就这么简单: 耶!现在,您的图像是摆动组件!将其添加到框架或面板或通常执行的任何操作中!可能也需要重新粉刷,例如

  • 问题内容: 我有一个性别选择列表。 码: 我想使用下拉列表中的图像作为drop-down-icon.jpeg。 我想添加一个按钮代替下拉图标。 怎么做? 问题答案: 在 Firefox中, 您可以将背景图片添加到选项中: 更好的是,您可以像这样将HTML和CSS分开 HTML CSS 在 其他浏览器中 ,唯一的方法是使用某些JS小部件库,例如 jQuery UI ,例如使用Selectable 。

  • 我有自己的scss文件,但也需要加载jquery-ui CSS。为了实现这一点,我添加了以下webpack配置规则。 备注版本: 我的js条目文件中的下一个: