2

我是 iphone 新手,我使用 CGPDFDocument 打开了一个 pdf 文件。我想在文档中的特定行长按时做到这一点,做一个突出显示。任何示例代码来做到这一点?

提前致谢。

4

1 回答 1

3

您需要推出自己的解决方案。Apple 在 iOS 中添加了文本选择作为私有 API,但他们没有公开任何内容。您可以简单地使用 UIWebView 来获得该功能,或者,如果您需要更多控制或还想要突出显示等功能,则需要编写自己的解决方案。

对于一般的 PDF 阅读器,那里有相当多的开源代码。(以 vfr/Reader为例)

还要获得文本选择/注释,这是一个完全不同程度的痛苦。我在一年中的大部分时间里全职工作在这些功能上,并且刚刚发布了我的商业框架 PSPDFKit 的 v2。

自己滚动时需要解决两个问题;首先获取字形矩形并从单个字形中查找单词。我使用 CoreGraphics 作为解析器 - 计算正确的帧并管理当前的绘图堆栈和不同的字体样式是困难的部分。那里有一些开源代码(PDFKitten),但我最终推出了自己的代码,因为它真的不是很好,并且在各种 PDF 字体格式方面存在很多问题。

其次,编写实际的注释对象。在这里,您需要自己解析 PDF 以生成所有对象的树,然后编写一个新的预告片来替换 /Pages 对象(PDF 大多只是文本,所以它的解析性很好;但仍然很难正确)。我不知道有任何开源代码可以帮助您。我在官方 PDF 参考资料上度过了很多漫长的夜晚。

于 2012-09-10T18:01:51.930 回答