如何选择PDF中的文本行然后突出显示它们?(IOS)

Der*_*Sun 7 pdf annotations quartz-graphics ios

我在Google,stackoverflow和Apple的开发者库中搜索了PDF注释,但它们都没有真正满足我的需求.这是我的问题和我目前对它的了解,如果我错了,请纠正我.

我想允许用户首先选择一些文本行来突出显示,然后在它们顶部绘制突出显示的矩形.

[问题]:我们如何在CGContextDrawPDFPage()呈现的PDF页面上选择文本? 具体来说,如果我要覆盖touchesBegan/Moved/Ended委托方法,我应该在那里做什么才能跟踪用户想要选择的文本框架?

我不想使用FastPDFKit,因为它显示徽标并且需要花钱,或者UIWebView,因为它在我们可以用它做的事情方面非常有限,而且我想学习如何自己做这些:-)

谢谢!德里克

- 更新 -

潜在的解决方案:我可以在我的PDF上放置透明视图,在解析PDF内容时,为TJ中的每个Tj或每个字符串元素构建一个矩形.这些矩形将是用户可以突出显示的可选"文本".需要注意的是,有些PDF会将多个单词卡在一个Tj中,因此在这种情况下会阻止用户选择单个单词.我将尝试这种方法并稍后更新结果.

iPD*_*dev 5

您的潜在解决方案是可行的方法.Tj字符串的边界矩形的大小是字符串中每个字形的边界矩形的总和,因此您可以选择字符串中的任何内容.PDFKitten库可以帮助您进行文本处理:https://github.com/KurtCode/PDFKitten

  • @DerekSun你有没有解决这个问题?如果是这样,你是如何使用PDFKitten代码的? (2认同)