如何使用CGPDFDictionaryRef对象引用知道PDF文件名

时间:2012-01-25 14:20:14

标签: iphone objective-c ios

我有一个类型CGPDFDictionaryRef的对象以某种方式从一个被认为是静态库的一部分的方法返回(所以我无法访问它的代码来修改它),但是,我想知道此字典对象包含的PDF文件的名称?如何查询它以获取文件的名称?

2 个答案:

答案 0 :(得分:5)

有两个功能需要CGPDFDocumentRef并返回CGPDFDictionaryRef。它们是CGPDFDocumentGetInfoCGPDFDocumentGetCatalog。两个函数都不返回包含原始文件名称的字典。 CGPDFDocumentGetID返回的数组也没有。

这是有道理的,因为您可以创建一个没有文件的CGPDFDocumentRef,来自套接字的数据,或者使用Quartz 2D绘制到CGPDFContext

如果你想要文件的名称,你必须以其他方式得到它。

答案 1 :(得分:5)

CGPDF *函数是一种基于函数的机​​制,用于获取PDF文档中的一系列数组,字典,整数,字符串和名称元素。 PDF文档本身实际上只是由这些“基本”元素组成。如果你想要一些轻读,请查看~1500页PDF规范。正如rob mayoff所说,一旦你有了CGPDFDocumentRef,你基本上就指向了记忆。

话虽如此,PDF结构中没有任何值可以保证您提供文件名。下载Voyeur并浏览您的PDF以环顾四周并证明我错了(我可以)。

以下是PDF真实内容的示例:

voyeur sample