如何在iOS 11中以编程方式打开PDF标记注释

14

Markup as pdf是iOS 11中共享选项中的新功能,我希望在我的用户界面中提供一个按钮,以便用户点击该按钮时出现PDF标记视图(参见下面的图片)。

此处输入图片描述

提前感谢您。

1个回答

2

我已经尝试了几个小时寻找解决方案。

我使用了UIDocumentInteractionController、SFSafariViewController、UIActivityViewController和QLPreviewController等工具。

目前,没有办法通过编程方式调用即时标记(Instant Markup)。

唯一接近的解决方案是使用UIActivityType.markupAsPDF来呈现UIActivityViewController,详情请参见文档链接

func showMenu()
{
    if let pdfUrl = Bundle.main.url(forResource: "Martin", withExtension: "pdf") {
        let activityController = UIActivityViewController(activityItems: [pdfUrl], applicationActivities:nil)
        ctra.excludedActivityTypes = [
            UIActivityType.postToFacebook,
            UIActivityType.postToTwitter,
            UIActivityType.postToWeibo,
            UIActivityType.message,
            UIActivityType.mail,
            UIActivityType.copyToPasteboard,
            UIActivityType.assignToContact,
            UIActivityType.saveToCameraRoll,
            UIActivityType.addToReadingList,
            UIActivityType.postToFlickr,
            UIActivityType.postToVimeo,
            UIActivityType.postToTencentWeibo,
            UIActivityType.airDrop,
            UIActivityType.openInIBooks,
    ]
    // These activity types shouldn't be excluded
    // UIActivityType.print,
    // UIActivityType.markupAsPDF

    self.present(activityController, animated: true, completion: nil)
    }
}

在扩展应用程序的底部栏中,您会看到“创建PDF”选项。Screenshot InstantMarkup0 附注: 正如您所看到的屏幕截图一样,Apple 使用 QLPreviewController。 我试图呈现 QLPreviewController,但是它没有显示 Instant Markup 按钮。 可能 Apple 稍后会向我们提供所需的 API,但我对此表示怀疑。 Opened QLPreviewController from UIActivityViewController Opened QLPreviewController from UIActivityViewController. Instant Markup mode.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接