【问题标题】:PDFTron: PTFileAttachment with custom image is not showingPDFTron:带有自定义图像的 PTFileAttachment 未显示
【发布时间】:2018-08-01 06:18:31
【问题描述】:

我正处于完成 PDFTron 的阶段,我正在尝试一些重要的功能。有必要在 PDF 上显示图像并对用户交互做出反应。通过给定的例子我发现我必须使用PTFileAttachment如下:

let file_attach = PTFileAttachment.createFileAttch(withPath: doc.getSDFDoc(), pos: PTPDFRect(x1: 80, y1: 280, x2: 200, y2: 320), path: Bundle.main.path(forResource: "peppers", ofType: "jpg"), icon_name: e_ptPushPin)
first_page.annotPushBack(file_attach)

似乎即使在给定的示例中它也不起作用。 PTFileAttachment 显示的是图钉而不是图像。因此我的问题是:

  1. 上述方法在 PDF 上通过用户交互呈现图像是否正确?否则什么是正确的方法?
  2. 为什么不醒?我还需要做什么?
  3. 如何设置图像的宽高比,如宽屏、信箱或平移和扫描。

谢谢!

问你瑞恩的问题

假设有一个平面图 (pdf),我必须定位并显示那里的所有窗户以及确切的图片(特定窗户的图形表示)。换句话说,只是简单地将图像定位在 pdf 上。 PDF 可以是 600 个单位 x 600 个单位的比例,图像可以是 40 个单位 x 40 个单位,在 x:200 和 y:300 位置。可以有很多窗口。

根据 PDFTron 的文档PTFileAttachment 是满足要求的正确工具,但如何使用这是个问题。从您自己的样本中,有一个样本知道Miscellaneous Swift SamplesAnnotations,但它似乎也不起作用。我尝试了您作为答案给出的代码并进行了许多更正,但它仍然显示push pin而不是显示图像。

复制步骤

  1. 复制并粘贴您自己的代码
  2. 复制图片peppers.jpg
  3. 运行,您将只看到图钉而不是peppers.jpg

【问题讨论】:

  • 有几个选项可以将图像添加到 PDF,因此了解更多有关您的要求会有所帮助。 “并对用户交互做出反应”到底是什么意思?
  • 用户交互只需轻轻一点。使用委托我可以打开一个弹出窗口。
  • 所以没有移动/调整大小?弹出窗口做什么/显示什么?
  • 移动和调整大小也是要求之一,但是对于这个问题,我想显示一个窗口(真实窗口)的图片,用户可以选择该窗口的状态。最后,选择将被推送回服务器。
  • 如果我在下面的回答没有回答您的问题,请更新您的问题,详细说明您想要完成的工作,因为我仍然不清楚您要做什么。然后我可以提供更好的答案。

标签: ios swift pdftron


【解决方案1】:

听起来您想更改文件附件注释的外观:

func createImageAppearance(doc: PTPDFDoc, img: PTImage) -> PTObj {
    let builder: PTElementBuilder = PTElementBuilder()
    let writer: PTElementWriter = PTElementWriter()
    writer.writerBegin(with: doc.getSDFDoc(), compress: true)
    let w: Int32 = img.getWidth()
    let h: Int32 = img.getHeight()
    let element = builder.createImage(withCornerAndScale: img, x: 0, y: 0, hscale: Double(w), vscale: Double(h))
    writer.writePlacedElement(element)
    let appearance_stream: PTObj = writer.end()
    appearance_stream.putRect("BBox", x1: 0, y1: 0, x2: Double(w), y2: Double(h))
    return appearance_stream
}

let image: PTImage = PTImage.create(doc.getSDFDoc(), filename: Bundle.main.path(forResource: "peppers", ofType: "jpg"))
let file_attach: PTFileAttachment = PTFileAttachment.createFileAttch(withPath: doc.getSDFDoc(), pos: PTPDFRect(x1: 80, y1: 280, x2: 200, y2: 320), path: Bundle.main.path(forResource: "peppers", ofType: "jpg"), icon_name: e_ptPushPin)
first_page.annotPushBack(file_attach)
let app_stm: PTObj = createImageAppearance(doc: doc, img: image)
file_attach.setAppearance(app_stm, annot_state: e_ptnormal, app_state: "")

【讨论】:

  • 谢谢,非常感谢您的努力。但解决方案根本行不通。
  • 究竟是什么不起作用?你能提供截图和步骤吗?我想为您提供帮助,但我仍然不清楚您想要做什么,以及什么不正确。
  • @Goppinath 这对您来说仍然是个问题吗?如果是这样,请提供详细信息,以便我进一步提供帮助。
  • 问题已更新。请在 Xcode 中尝试您自己的代码,然后您可以轻松重现问题。
  • @Goppinath 你能用 pftTron 解决问题吗?上传图片时它显示一个图钉,即使在演示中当你尝试上传图片时它显示的是图钉,我不明白会发生什么,你能解决它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
相关资源
最近更新 更多