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