Согласно Adobe "Управление документами - переносимый формат документов. Часть 1. PDF 1.7" ( Pdf32000_2008.pdf ), раздел 12.3.2.1, состояния:
Пункт назначения определяет определенный вид документа, состоящий из следующих элементов:
Страница документа, которая должна отображаться
Расположение окна документа на этой странице
Коэффициент увеличения (увеличения)
Пример:
[page /XYZ left top zoom]
Но в моем коде
CGPDFArrayGetObject(dArray, 0, &dObj)
это CGPDFDictionaryRef
.
93 0 obj
<< /Type /Annot
/Subtype /Link
/Rect [71 717 190 734]
/Border [16 16 1]
/A << /Type /Action
/S /GoTo
/D [3 0 R /FitR –4 399 199 533]
>>
>>
endobj
Как мне получить 3 0 R
из /D [3 0 R /FitR –4 399 199 533]
?
Как получить косвенную ссылку на объект страницы, такой как объект страницы [page /XYZ left top zoom]
?
Вот мой код:
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfRef, pageNum);
CGPDFDictionaryRef pageDictionary = CGPDFPageGetDictionary(pdfPage);
CGPDFArrayRef outputArray;
if(CGPDFDictionaryGetArray(pageDictionary, "Annots", &outputArray))
{
int arrayCount = 0;
arrayCount = CGPDFArrayGetCount(outputArray );
if(arrayCount>0)
{
for( int j = 0; j < arrayCount; ++j )
{
CGPDFObjectRef aDictObj;
if(CGPDFArrayGetObject(outputArray, j, &aDictObj))
{
CGPDFDictionaryRef annotDict;
if(CGPDFObjectGetValue(aDictObj, kCGPDFObjectTypeDictionary, &annotDict))
{
CGPDFDictionaryRef aDict;
if(CGPDFDictionaryGetDictionary(annotDict, "A", &aDict))//page 1 returns here
{
CGPDFArrayRef dArray;
if(CGPDFDictionaryGetArray(aDict, "D", &dArray))
{
CGPDFObjectRef dObj;
if(CGPDFArrayGetObject(dArray, 0, &dObj)){
CGPDFDictionaryRef annotDict;
if(CGPDFObjectGetValue(dObj, kCGPDFObjectTypeDictionary, &annotDict))
{
}
}
}
}
}
}
}
}
}
Большое спасибо за ваше воспроизведение ~, но у меня есть вопрос, откуда я могу знать, что этот номер объекта 3?
CGPDFArrayGetObject(dArray, 0, &dObj)
получить CGPDFDictionaryRef, но я не нашел поле "3 0 R"
и еще один вопрос, если я знаю, "3 0 R"
где я могу найти, выполнив поиск в вашем PDF для 3 0 obj
спасибо, ответ, спасибо, очень, очень, очень ... Я надеюсь получить ваш ответ agian!