如何在iOS设备上选择PDF文本行并将其高亮显示?

7
我在Google、stackoverflow和Apple的开发者文库上搜索了PDF注释,但没有找到真正满足我的需求的方法。以下是我的问题和我目前的了解,请在需要时纠正我。

我想允许用户首先选择一些要突出显示的文本行,然后在其上绘制突出显示的矩形。

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

我不想使用FastPDFKit,因为它会显示标志并收费,也不想使用UIWebView,因为我们可以使用的功能非常有限,而且我想学习如何自己做这个 :-)

谢谢! Derek

-- 更新--

可能的解决方案:我可以在我的PDF上面放一个透明视图,在解析PDF内容的同时,为每个Tj或每个TJ中的字符串元素构建一个矩形。那些矩形将是用户可以突出显示的可选“文本”。一个注意点是,一些PDF文件将几个单词挤入一个Tj中,这样会防止用户在这种情况下选择单个单词。我将尝试这种方法,并稍后更新结果。


如果你找到了任何解决方案,请告诉我,因为我也需要做同样的事情。 - Saurabh Prajapati
1个回答

5

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


1
谢谢iPDFdev。很高兴知道我走在正确的道路上。我会在完成后立即接受您的答案;-) - Derek Sun
2
@DerekSun,你解决了吗?如果是的话,你是如何使用PDFKitten代码的? - laucel

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