【问题标题】:How to select lines of text in a PDF and then highlight them? (iOS)如何选择 PDF 中的文本行然后突出显示它们? (iOS)
【发布时间】:2012-05-12 12:52:55
【问题描述】:

我在 Google、stackoverflow 和 Apple 的开发人员库上搜索了 PDF 注释,但没有一个能真正满足我的需要。这是我的问题和我目前对它的了解,如果我错了,请纠正我。

我想让用户先选择一些文本行来突出显示,然后在它们上面绘制突出显示的矩形。

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

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

谢谢! 德里克

-- 更新--

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

【问题讨论】:

  • 您找到任何解决方案了吗,请告诉我,因为我也需要做同样的事情。

标签: ios pdf annotations quartz-graphics


【解决方案1】:

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

【讨论】:

  • 感谢 iPDFdev。很高兴知道我在正确的轨道上。我一完成就会接受你的回答;-)
  • @DerekSun 你解决了吗?如果有,你是如何使用 PDFKitten 代码的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 2010-10-24
相关资源
最近更新 更多