gpt4 book ai didi

ios - 如何使用 PDFKit 框架突出显示 PDFPage 中的超链接?

转载 作者:行者123 更新时间:2023-11-28 13:51:22 26 4
gpt4 key购买 nike

我正在使用 PDFKit 框架,并希望在 PDF 的所有页面中用蓝色突出显示所有超链接。我该如何前进?我已搜索但找不到足够的相关帖子。

最佳答案

如果您想从 pdf 中提取所有链接,请应用正则表达式并提取数组中的所有链接,例如:

    let text = pdfView.document?.string ?? ""
let types: NSTextCheckingResult.CheckingType = .link
do {
let detector = try NSDataDetector(types: types.rawValue)
let matchResult = detector.matches(in: text, options: .reportCompletion, range: NSRange(location: 0, length: text.count))

let linksArray: [URL] = matchResult.compactMap({ $0.url })
print("List of available links: \(linksArray)")

} catch (let error) {
print (error.localizedDescription)
}

但是,如果您只想突出显示链接并单击其中的操作,那么 PDFKit 确实有一个属性 enableDataDetectors 来检测PDF View 。您只需启用它即可。

As per apple documentation:

Turns on or off data detection. If enabled, page text will be scanned for URL's as the page becomes visible. Where URL's are found, Link annotations are created in place. These are temporary annotations and are not saved.

您可以将其用作:

    let pdfView = PDFView.init(frame: self.view.bounds)
pdfView.enableDataDetectors = true

如果你需要处理这个链接的点击,那么符合PDFViewDelegate,它会调用委托(delegate)方法:

    func pdfViewWillClick(onLink sender: PDFView, with url: URL) {

}

关于ios - 如何使用 PDFKit 框架突出显示 PDFPage 中的超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54571322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com