我在Google,stackoverflow和Apple的开发者库中搜索过PDF注释,但它们都没有真正满足我的需求.这是我的问题和我目前的知识,如果我错了,请纠正我.
我想允许用户首先选择一些文本行来突出显示,然后在它们顶部绘制突出显示的矩形.
[问题]:我们如何在CGContextDrawPDFPage()呈现的PDF页面上选择文本?
具体来说,如果我要覆盖touchesBegan / Moved / Ended委托方法,我应该在那里做什么才能跟踪用户想要选择的文本框架?
我不想使用FastPDFKit,因为它显示徽标并且需要花钱,或者UIWebView,因为它对我们可以用它做的事情非常有限,而且我想学习如何自己做这些:-)
谢谢!
德里克
– 更新 –
潜在的解决方案:我可以在我的PDF上放置透明视图,在解析PDF内容时,为TJ中的每个Tj或每个字符串元素构建一个矩形.这些矩形将是用户可以突出显示的可选“文本”.需要注意的是,有些PDF会将多个单词插入到一个Tj中,因此在这种情况下会阻止用户选择单个单词.我将尝试这种方法并稍后更新结果.
解决方法
您的潜在解决方案是可行的方法. Tj字符串的边界矩形的大小是字符串中每个字形的边界矩形的总和,因此您可以选择字符串中的任何内容. PDFKitten库可以帮助您进行文本处理:
https://github.com/KurtCode/PDFKitten