我一直在尝试突出显示 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/