objective-c - 获取 pdf 中每个字形的边界框 - iOS

标签 objective-c ios pdf bounding-box glyph

我一直在尝试突出显示 pdf 中的文本。经过大量的研究和实验,似乎我必须找到每个字形的边界框,在实际绘图发生的地方创建一个叠加层,并通过用来自边界框的信息填充 CGRect 并用颜色。现在,我对边界框感到困惑。

我一直在使用 PDFKitten 来搜索和突出显示文本。现在我想用它来选择和突出显示文本。我不明白的是它如何使用边界框(以及其他信息,如上升、下降、capHeight 等)来突出显示搜索到的词。当我尝试访问 FontDescriptor 类以获取信息时,它显示如下:

2012-06-28 16:32:20.626 er[2408:15203] x:-665, y:-325, width:2000, height:1006
2012-06-28 16:32:20.627 er[2408:15203] x:-157, y:-250, width:1126, height:952
2012-06-28 16:32:20.628 er[2408:15203] x:-628, y:-376, width:2000, height:1010

这很令人困惑,所以如果有人能澄清这一点,我们将不胜感激。

最佳答案

您不能使用字体描述符信息来获取字形的边界框。

PDFKitten 负责使用 RenderingState 模型查找每个字形的宽度和高度。

您可以在扫描 PDF 时使用它来查找单词的位置。

字体字典提供字形的宽度。您可以使用 cid 获取字形的正确宽度。

尝试查看 PDFKitten 的突出显示代码。

关于objective-c - 获取 pdf 中每个字形的边界框 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11241188/

相关文章:

java - FOP apache - 支持希伯来字母

c++ - 如何在Qt中打印pdf文件

mysql - iOS - 使用 MySql 解决同步问题

ios - 自定义 Segue - 无法识别的选择器发送到实例 - setUseDefaultModalPresentationStyle

ios - 解释 iPhone 崩溃日志/堆栈跟踪

ios - 从 appdelegate 调用 UITableView 的 reloadData 方法

javascript - 有没有办法打印 PDF 但手动设置值而不是从主 HTML 中获取它们?

iphone - 如何判断 iPhone 是否处于沙盒模式?

objective-c - iOS:问题保存照片

ios - 使用 Ionicons 作为背景内容和绝对定位的 Safari 中的 CSS 故障