2015-08-15 3 views
-1

У меня есть pdf, где страница 1 имеет номер страницы как roman 1 i.e. "I"iOS: Как получить «метку номера страницы» страницы в формате pdf?

Теперь, как получить эту информацию. Я знаю, что с помощью каталогов я могу получить словарь страницы метки

CGPDFDictionaryRef catalog = CGPDFDocumentGetCatalog(document); 

      if (CGPDFDictionaryGetDictionary(catalog, "PageLabels", &PageLabels) == true) 
     { 

     } 

и доступа к странице словаря метки я должен найти диапазон страниц и соответствующих операторов на самом деле знает метку. то есть: «D» для арабской десятичной, «г» для романо ...

Есть ли способ, чтобы получить быстрый доступ к этой метки от CGPDFPageRef

ответ

1

Короткий ответ: нет, вы не можете получить эту информацию из CGPDFPageRef.
Сначала вы должны определить номер страницы (на основе нуля) объекта CGPDFPageRef. Затем вы просматриваете массив меток страниц и определяете, в какой метке указан номер вашей страницы. На основе свойств метки страницы (стиль нумерации, номер начальной страницы и т. Д.) Вы создаете визуальный номер страницы (номер страницы, отображаемый Acrobat как римский номер).

Обновление: Запись/PageLabels - это словарь. Его/Nums запись представляет собой массив с форматом: number dictionary number dictionary ... number dictionary.
Число - индекс начальной страницы (основанный на нуле) в документе, словарь описывает метку страницы. Все страницы, начиная с индекса страницы до индекса следующей страницы или конца документа, будут использовать метку, определенную рядом с индексом. Словарь ярлыков страниц описан в разделе PDF specification, раздел 12.4. Запись/S в словаре ярлыков страниц указывает тип нумерации, а значения/r или/R указывают тип нумерации романов.

Поскольку вы указываете, что ваш документ указывает значение/D (десятичная нумерация), но в Adobe Reader вы видите римские цифры в поле номера страницы, пожалуйста, предоставьте файл PDF для расследования.

+0

Я попытался получить доступ к словарю PageLabels, внутри него есть объект массива для ключа Nums. Теперь массив Nums имеет элемент со значением 0 (int) и словарь с ключом s и значением d. это оно. Но никаких других элементов в массиве Nums, которые определяют римскую часть. –

+0

Есть ли способ получить номер страницы TOC и индексную страницу этого pdf. –

1

вы пробовали CGPDFDocumentGetPage

Вернуться на страницу с PDF соответствующий указанному номеру страницы, или NULL, если в документе нет такой страницы. Страницы нумеруются, начиная с 1.

Вы можете делать все, что преобразования необходимо после

+1

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). – rsenna

+2

он абсолютно отвечает на ответ @rsenn, может быть, просто не сформулирован так, как вам хотелось бы. Это просто ответ, выраженный в форме вопроса. я уточню. –

Смежные вопросы