1
PDFビューアを1つ作成しました。目次をインデックスと同じように表示したいのですが、そのテーブルからすべてのページを取得したいのですが、その方法や方法はありますか?目次PDFビューア
-Thanx任意の事前
PDFビューアを1つ作成しました。目次をインデックスと同じように表示したいのですが、そのテーブルからすべてのページを取得したいのですが、その方法や方法はありますか?目次PDFビューア
-Thanx任意の事前
これは非常に古いポストですが、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");
}
}
}
}