Как узнать имя файла PDF, используя ссылку на объект CGPDFDictionaryRef - PullRequest
4 голосов
/ 25 января 2012

У меня есть объект типа CGPDFDictionaryRef, возвращенный каким-либо образом из метода, который рассматривается как часть статической библиотеки (поэтому у меня нет доступа к его коду для его изменения), однако я хочу знать имя файла PDF, который содержит этот объект словаря? как я могу запросить его, чтобы получить имя файла?

Ответы [ 2 ]

5 голосов
/ 02 февраля 2012

Функции CGPDF * - это основанный на функциях механизм для доступа к серии массивов, словарей, целых чисел, строковых и именных элементов в документах PDF.Сами документы PDF на самом деле просто состоят из этих «базовых» элементов.Если вы хотите легкого чтения, посмотрите когда-нибудь спецификацию PDF на 1500 страниц.Как сказал Роб Майофф, вы в основном указываете на память после того, как у вас есть CGPDFDocumentRef.

При этом в структуре PDF нет гарантии, которая гарантировала бы вам имя файла.Скачайте Voyeur и покопайтесь в своем PDF, чтобы осмотреться и доказать, что я не прав (я могу быть).

Вот пример истинного содержания PDF:

voyeur sample

5 голосов
/ 28 января 2012

Есть две функции, которые принимают CGPDFDocumentRef и возвращают CGPDFDictionaryRef.Это CGPDFDocumentGetInfo и CGPDFDocumentGetCatalog.Ни одна из функций не возвращает словарь, содержащий имя исходного файла.Массив, возвращаемый CGPDFDocumentGetID.

, также не имеет смысла. Это имеет смысл, поскольку вы можете создать CGPDFDocumentRef без файла, из данных, которые вы получаете через сокет, или путем рисования в CGPDFContext с помощью Quartz 2D.

Если вам нужно имя файла, вам придется получить его другим способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...