2012-06-28 52 views
3

我一直試圖突出顯示pdf中的文本。經過大量的研究和實驗之後,似乎我必須找到每個字形的邊界框,在實際繪圖發生的地方創建一個疊加層,並通過用來自邊界框的信息填充CGRect並使其填充以突出顯示文本顏色。現在,我被包圍盒困住了。在pdf中獲取每個字形的邊界框 - iOS

我一直在使用PDFKitten來搜索和突出顯示文本。現在我想用它來選擇和突出顯示文本。我不明白的是,它如何使用邊界框(以及其他信息,例如ascent,descent,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 

這是非常混亂的,所以如果任何人都可以澄清這一點,將非常感謝。

+0

你有機會實施它嗎? –

回答

1

您不能使用字體描述符信息來獲取字形的邊界框。

PDFKitten負責使用RenderingState模型查找每個字形的寬度和高度。

您可以在掃描PDF時使用相同的方式查找單詞的位置。

字體字典提供了字形的寬度。您可以使用cid來獲取字形的正確寬度。

嘗試查看PDFKitten的突出顯示代碼。