我是 iPhone 新手,我使用 CGPDFDocument 打开了一个 pdf 文件。我想在长按文档中的特定行时进行突出显示。 有任何示例代码可以执行此操作吗?
提前致谢。
最佳答案
您需要推出自己的解决方案。 Apple 在 iOS 中添加了文本选择作为私有(private) API,但他们还没有公开任何内容。您可以简单地使用 UIWebView 来获取该功能,或者,如果您需要更多控制或还需要突出显示等功能,则需要编写自己的解决方案。
对于一般 PDF 阅读器来说,有相当多的开源代码。 (参见 vfr/Reader 作为示例)
要获得文本选择/注释,这是完全不同程度的痛苦。我在这一年的大部分时间里全职致力于这些功能,并且刚刚发布了我的商业框架 PSPDFKit v2。
在自己推出时,您需要解决两个问题;首先获取字形矩形并从单个字形中查找单词。我使用 CoreGraphics 作为解析器 - 计算正确的框架并管理当前的绘图堆栈和不同的字体样式是困难的部分。那里有一些开源代码(PDFKitten),但我最终推出了自己的代码,因为那个代码确实不太好,并且在处理各种 PDF 字体格式时存在很多问题。
其次,编写实际的注释对象。在这里,您需要自己解析 PDF 以创建所有对象的树,然后编写一个新的预告片来替换/Pages 对象(PDF 主要只是文本,因此它很容易解析;但仍然很难正确解析)。我不知道有任何开源代码可以帮助您解决这个问题。我和official PDF reference一起度过了很多漫长的夜晚。 .
关于iphone - CGPDF文档中的突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11798899/