Ich verwende den folgenden Code. es kommt immer in die Zielzeichenfolge. es geht nicht um die Seitenzahlschleife zu bekommen. Wenn das PDF-Dokument die Zielzeichenfolge gefunden hat, wird es nicht in den anderen Teil verschoben. Wie kann ich die Seitennummer aus der Zielzeichenfolge abrufen? Sie können ein Beispiel für den folgenden Code sehen. Danke im Voraus.So erhalten Sie die Seitenzahl aus der Zielzeichenfolge beim Analysieren von PDF in iPhone
- (OutlineItem*)recursiveUpdateOutlines: (CGPDFDictionaryRef) outlineDic parent:(OutlineItem*) parentItem level:(NSUInteger) level;
{
// update outline count
outlineCount++;
OutlineItem* item = [[OutlineItem alloc] init];
// Level
item.level = level;
// Title
CGPDFStringRef title;
if(CGPDFDictionaryGetString(outlineDic, "Title", &title)) {
const char* pchTitle = CGPDFStringGetBytePtr(title);
item.title = [NSString stringWithUTF8String:pchTitle];
// DEBUG
//NSLog(item.title);
}
if (parentItem != nil) {
// Add to parent
[parentItem.children addObject:item];
// Next
CGPDFDictionaryRef nextDic;
if (CGPDFDictionaryGetDictionary(outlineDic, "Next", &nextDic)) {
[self recursiveUpdateOutlines:nextDic parent:parentItem level: level];
}
}
// First child
CGPDFDictionaryRef firstDic;
if (CGPDFDictionaryGetDictionary(outlineDic, "First", &firstDic)) {
[self recursiveUpdateOutlines:firstDic parent:item level: level + 1];
}
// Dest
CGPDFStringRef destString;
if(CGPDFDictionaryGetString(outlineDic, "Dest", &destString)) {
const char* pchDest = CGPDFStringGetBytePtr(destString);
CGPDFDictionaryRef destDic;
if(CGPDFDictionaryGetDictionary(dests, pchDest, &destDic)) {
NSLog(@"");
}
else {
item.destString = [NSString stringWithUTF8String:pchDest];
}
} else {
CGPDFDictionaryRef ADic;
if (CGPDFDictionaryGetDictionary(outlineDic, "A", &ADic)) {
const char* pchS;
if (CGPDFDictionaryGetName(ADic, "S", &pchS)) {
CGPDFArrayRef destArray;
if (CGPDFDictionaryGetArray(ADic, "D", &destArray)) {
int count = CGPDFArrayGetCount(destArray);
switch (count) {
case 5:
{
// dest page
CGPDFDictionaryRef destPageDic;
if (CGPDFArrayGetDictionary(destArray, 0, &destPageDic)) {
int pageNumber = [self.pages indexOfObjectIdenticalTo:destPageDic];
item.page = pageNumber;
}
// x
CGPDFInteger x;
if (CGPDFArrayGetInteger(destArray, 2, &x)) {
item.x = x;
}
// y
CGPDFInteger y;
if (CGPDFArrayGetInteger(destArray, 3, &y)) {
item.y = y;
}
// z
}
break;
default:
NSLog(@"");
break;
}
}
}
}
}
return item;
}