这个问题已被问到,我知道。但是,没有人回答得很好。我想知道如何在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 MVC图
- 4. 在石英的iOS上安插PDF
- 5. iOS中的石英嵌入字体pdf
- 6. 石英2D动画文本?
- 7. 绘制多行石英2D
- 8. 石英中的动画2D
- 9. 如何加速石英2d
- 10. 如何优化石英2d?
- 11. 石英2D路径旋转
- 12. 石英2D绘制不同颜色的PDF页面
- 13. PDF石英渲染质量
- 14. 石英与JBoss
- 15. iOS石英2D图形填充不规则形状模糊
- 16. IOS Twitter的解析登录与PFLogInViewController
- 17. 红宝石:解析CSV数据到PDF
- 18. 在石英2D中擦除操作
- 19. 石英2D中的“斜面”形状
- 20. 石英2D不透明数据类型
- 21. 在石英2d旋转图像
- 22. 石英2d iPhone没有绘图
- 23. 动画绘制一条线(石英2D?)
- 24. 石英JDBCJobStore与RoutingDataSource
- 25. iPhone石英演示,重新呈现PDF
- 26. 石英PDF上下文功能失效(偶尔)与BAD_ACCESS
- 27. 与弹簧石英集成
- 28. 自定义UIBarButtonItem与石英
- 29. slf4j与石英异常
- 30. 问题与春天石英
负值计数值表示轮廓在查看器中折叠显示。正值计数值表示轮廓在查看器中展开显示。 – iPDFdev 2012-07-16 14:06:09
该死的,谢谢你!你永远不会停止学习PDF相关的东西。虽然这似乎很模糊。 (为什么不为这个额外的属性?)谢谢! – steipete 2012-07-16 14:28:47