2012-01-25 46 views
4

CGPDFDictionaryRef類型的對象從被認爲是一個靜態庫的一部分的方法返回某種方式(所以我沒有訪問它的代碼進行修改),但是,我想知道這個字典對象持有的PDF文件的名稱?我如何查詢它以獲取文件的名稱?如何使用CGPDFDictionaryRef對象引用知道PDF文件名

+0

看看到http://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CGPDFDictionary/Reference /reference.html#//apple_ref/c/func/CGPDFDictionaryGetName,這可能是你正在尋找的。 – Saphrosit

+0

@Sphrosit,我已閱讀此參考,但沒有明確的答案,我的要求,不幸的是:( – JAHelia

回答

5

的CGPDF *功能是基於函數的機​​制,以獲得在PDF文檔中的系列陣列,字典,整數,字符串和名稱元素。 PDF文檔本身實際上只是由這些「基本」元素組成的。如果您想閱讀一些簡明的文章,可以在某個時候查看〜1500頁的PDF規範。正如rob mayoff所說的,一旦你擁有CGPDFDocumentRef,你基本上就會指向內存。

這就是說,在PDF結構中沒有任何值可以爲您提供文件名。下載Voyeur並挖掘你的PDF環顧四周,證明我錯了(我可以)。

這裏有一個PDF的真實內容的示例:

voyeur sample

+0

非常感謝你的例子,我用它的方式提取PDF元數據,這對我有很大幫助,因爲我手動更改了我的pdf文件元數據並將pdf標題設置爲等於pdf文件名稱,然後按照您的示例中的解釋提取標題,再次感謝您。 – JAHelia

5

有跡象表明,採取CGPDFDocumentRef,並返回一個CGPDFDictionaryRef兩種功能。它們是CGPDFDocumentGetInfoCGPDFDocumentGetCatalog。這兩個函數都不會返回包含原始文件名稱的字典。數組返回CGPDFDocumentGetID也沒有。

這很有道理,因爲您可以通過套接字獲取的數據或通過使用Quartz 2D繪製到CGPDFContext而無需創建文件CGPDFDocumentRef

如果你想要的文件的名稱,你必須得到它的一些其他的方式。

+0

我得到的CGPDFDictionaryRef如你所說,像這樣:CGPDFDictionaryRef Dic = CGPDFDocumentGetInfo(self.document);其中self.document是一個包含一些ivars的NSObject子類實例,其中兩個是:CGPDFDocumentRef文檔;以及CGDataProviderRef提供者;但是,我無法訪問此類的.m文件,因爲它是靜態lib的一部分,所以我已經達到一個關閉的門!:( – JAHelia

相關問題