是否有人使用CGPDFScanner來解析字體字典的ToUnicode CMap流入口?我遇到了一些麻煩。使用CGPDFScanner解析CMap流
我從字典中獲取CGPDFStream引用並嘗試使用它創建CGPDFScanner。問題是CGPDFScanner將CGPDFContentStream作爲參數,而不是CGPDFStream。
當我解析文本運營商CGPDFPage我可以輕鬆地獲得與CGPDFContentStreamCreateWithPage的CGPDFContentStream,不過姐姐功能CGPDFContentStreamCreateWithStream - 這是說,「你可以使用此功能以訪問形式,模式,類型3的內容字體或任何PDF流「 - 在CGPDFContentStream Reference有點泥濘,我無法找到示例代碼。
不管怎樣,我通過CMAP的流作爲流說法,CGPDFDictionary從流得到CGPDFStreamGetDictionary作爲streamResources參數和頁面內容流作爲父資源。資源字典可以很容易地從流本身獲得,所以爲什麼要首先問它呢?最重要的是,傳遞NULL作爲參數,但第一個參數似乎沒有任何影響。
結果總是相同的:當我嘗試設置了一些回調,我得到了以下信息
`begincodespacerange' isn't an operator. `beginbfrange' isn't an operator. ... `endbfrange' isn't an operator.
爲每個運營商在回調錶設置掃描儀掃描的內容流。這爲每個遇到的CMap。
所以,我不確定內容流是否設置錯誤,如果操作符無效或者如果CGPDFScanner不能用於解析CMap,即使它是普通的pdf流對象,也不能訴諸寫我自己的掃描儀來解析流數據。
我明白了。另外,查看PDF操作表(Appendinx A),所有CMap操作符都沒有跟蹤。 「任何PDF流」與CGPDFContentStreamCreateWithStream一起欺騙了我。謝謝你的解釋。 – sigsegv 2011-01-28 13:35:56