Кто-нибудь использовал CGPDFScanner для анализа записи потока ToUnicode CMap словаря шрифтов?Я сталкиваюсь с некоторыми проблемами.
Я получаю ссылку CGPDFStream из словаря и пытаюсь создать CGPDFScanner из нее.Проблема состоит в том, что CGPDFScanner принимает CGPDFContentStream в качестве аргумента, а не CGPDFStream.
Когда я анализирую CGPDFPage для текстового оператора, я могу легко получить CGPDFContentStream с CGPDFContentStreamCreateWithPystreamStreamStringStringStreamStringStringSt,может использовать эту функцию, чтобы получить доступ к содержимому формы, шаблона, шрифта Type3 или любого потока PDF "- это немного не так в справочнике CGPDFContentStream , и я не могу найти образец кода.
В любом случае, я передаю поток CMap в качестве аргумента stream , ресурс CGPDFDictionary, полученный из потока с параметром CGPDFStreamGetDictionary в качестве параметра streamResources , и поток содержимого страницы в качестве родитель .Словарь ресурсов можно легко получить из самого потока, так зачем вообще спрашивать его?Кроме того, передача NULL в качестве параметров, но первый, кажется, не имеет никакого эффекта.
Результат всегда один и тот же: когда я пытаюсь сканировать поток контента с помощью сканера, настроенного с несколькими обратными вызовамиЯ получаю следующие сообщения
`begincodespacerange' isn't an operator.
`beginbfrange' isn't an operator.
...
`endbfrange' isn't an operator.
для каждого оператора, настроенного в таблице обратного вызова.Это для каждого встречающегося CMap.
Итак, я не уверен, что поток контента настроен неверно, недопустимые операторы или CGPDFScanner нельзя использовать для анализа CMap, даже если онобычный объект потока pdf, и мне приходится прибегать к написанию собственного сканера для анализа данных потока.