這個問題已被問到,我知道。但是,沒有人回答得很好。我想知道如何在iPhone上解析PDF的「目錄」。文檔告訴我使用CGPDFDocumentGetCatalog,但不知道如何使用它。他們只是說它會返回一本字典。另外,我找不到任何示例代碼。有什麼建議麼?PDF目錄解析與iOS石英2D
0
A
回答
0
貌似看到SO最接近的是Create a table of contents from a pdf file
0
它基本上只是解析CGPDFDictionary堪稱CGPDFPage「綱要」。
// get outline & loop through dictionary...
CGPDFDictionaryRef outlineRef;
if(CGPDFDictionaryGetDictionary(pdfDocDictionary, "Outlines", &outlineRef)) {
}
然後你從第一個元素開始,並解析你的方式。
CGPDFDictionaryGetDictionary(outlineRef, "First", &firstEntry)
你想得到標題和目的地。
NSString *outlineTitle = PSPDFStringFromPDFDict(outlineElementRef, @"Title");
CGPDFDictionaryGetObject(outlineElementRef, "Dest", &destinationRef)
棘手的開始與得到正確的目的地,因爲有沒有在PDF參考野生定義,但還在外面(horray,PDF!)幾種方式來存儲,加上幾個方面。加上幾個剛剛破碎的變體,你必須處理它。
例如,您可以使用
CGPDFInteger elements;
if(CGPDFDictionaryGetInteger(outlineRef, "Count", &elements)) {
PSPDFLog(@"parsing outline: %ld elements. (Count will be ignored anyway)", (long int)elements);
}else {
PSPDFLogError(@"Error while parsing outline. No outlineRef?");
}
得到輪廓字典的計數,但請注意,有時伯爵是無效的,由於破PDF創建工具。將PDF看作HTML。即使它被破壞了,解析器也會盡其所能地顯示儘可能多的數據。所以我的建議是無視Count和解析字典。 (幾個星期前,我遇到了一個Count = -10的文檔)Go To Figure
我不能發佈完整的代碼,因爲它來自我的商業PDF庫PSPDFKit,我需要靠它;)但這應該讓你開始。
相關問題
- 1. 問題,使用石英2D繪製PDF
- 2. 石英2D層
- 3. 矢量圖形和石英2D iOS
- 4. 使用iOS石英2D繪製餅圖
- 5. 石英2D MVC圖
- 6. 石英2D -Drawing點
- 7. 動畫石英2d
- 8. 在石英的iOS上安插PDF
- 9. iOS中的石英嵌入字體pdf
- 10. 石英2D鋸齒線
- 11. 如何優化石英2d?
- 12. 石英2D路徑旋轉
- 13. 轉換爲石英2D
- 14. 石英中的動畫2D
- 15. 繪製多行石英2D
- 16. 如何加速石英2d
- 17. 石英2D繪圖崩潰
- 18. 石英2D動畫文本?
- 19. 石英2D繪製不同顏色的PDF頁面
- 20. PDF石英渲染質量
- 21. 石英與JBoss
- 22. iOS石英2D圖形填充不規則形狀模糊
- 23. 剪輯石英2D中的路徑繪圖iOS
- 24. 紅寶石:解析CSV數據到PDF
- 25. IOS Twitter的解析登錄與PFLogInViewController
- 26. 石英2D中的「斜面」形狀
- 27. 動畫繪製一條線(石英2D?)
- 28. 繪圖文本,換行符,石英2D
- 29. GetPictInfo替換石英2D中的Api
- 30. 石英2D不透明數據類型
負值計數值表示輪廓在查看器中摺疊顯示。正值計數值表示輪廓在查看器中展開顯示。 – iPDFdev 2012-07-16 14:06:09
該死的,謝謝你!你永遠不會停止學習PDF相關的東西。雖然這似乎很模糊。 (爲什麼不爲這個額外的屬性?)謝謝! – steipete 2012-07-16 14:28:47