2012-01-06 5 views
1

PDFビューアを1つ作成しました。目次をインデックスと同じように表示したいのですが、そのテーブルからすべてのページを取得したいのですが、その方法や方法はありますか?目次PDFビューア

-Thanx任意の事前

答えて

0

これは非常に古いポストですが、uはそれを解決したかもしれないことを考えると、私は他の人が解決策を持つことができるように、この回答を投稿メートル。

この機能は不完全ですが、これは良いスタートです。 :)

CGPDFDocumentGetCatalog機能は、目次を取得するのに役立ちます

CGPDFDictionaryRef oldDict = CGPDFDocumentGetCatalog(pdf); 
CGPDFDictionaryApplyFunction(oldDict, copyDictionaryValues, NULL); 


void copyDictionaryValues (const char *key, CGPDFObjectRef object, void *info) { 
    // NSLog(@"key: %s", key); 
CGPDFObjectType typeObj = CGPDFObjectGetType(object); 
switch (typeObj) { 
    case kCGPDFObjectTypeDictionary: { 
     CGPDFDictionaryRef objectDictionary; 
     if (CGPDFObjectGetValue(object, kCGPDFObjectTypeDictionary, &objectDictionary)) { 
      CGPDFDictionaryApplyFunction(objectDictionary, copyDictionaryValues, NULL); 
     } 
    } 
     break; 
    case kCGPDFObjectTypeString: { 
     CGPDFStringRef objectString; 
     if (CGPDFObjectGetValue(object, kCGPDFObjectTypeString, &objectString)) { 
      NSString *tempStr = (NSString *)CGPDFStringCopyTextString(objectString); 
      [auxInfo setObject:tempStr 
            forKey:[NSString stringWithCString:key encoding:NSUTF8StringEncoding]]; 
      [tempStr release]; 
     // NSLog(@"set string value"); 
     } 
    } 
     break; 
    case kCGPDFObjectTypeInteger: { 
     CGPDFInteger objectInteger; 
     if (CGPDFObjectGetValue(object, kCGPDFObjectTypeInteger, &objectInteger)) { 
      [auxInfo setObject:[NSNumber numberWithInt:objectInteger] 
            forKey:[NSString stringWithCString:key encoding:NSUTF8StringEncoding]]; 
     //  NSLog(@"set int value"); 
     } 
    } 
     break; 
    case kCGPDFObjectTypeBoolean: { 
     CGPDFBoolean objectBool; 
     if (CGPDFObjectGetValue(object, kCGPDFObjectTypeBoolean, &objectBool)) { 
      [auxInfo setObject:[NSNumber numberWithBool:objectBool] 
            forKey:[NSString stringWithCString:key encoding:NSUTF8StringEncoding]]; 
     //  NSLog(@"set boolean value"); 
     } 
    } 
     break; 
    case kCGPDFObjectTypeArray : { 
     CGPDFArrayRef objectArray; 
     if (CGPDFObjectGetValue(object, kCGPDFObjectTypeArray, &objectArray)) { 
     // copyPDFArray(objectArray); 

      NSLog(@"set array value"); 
     } 
    } 

} 
} 
関連する問題