OK、PDFコンテンツストリームを解析しているところ、TJコールバックが文字列の配列を生成することがわかったので、それを取得して繰り返し処理を開始し、次のような文字列値を取得します。
static void Op_TJ(CGPDFScannerRef s, void *info)
{
CGPDFArrayRef array;
bool success = CGPDFScannerPopArray(s, &array);
if(success) {
NSMutableString *actualString = [[NSMutableString alloc] init];
NSLog(@"array count:%zu",CGPDFArrayGetCount(array));
for(size_t i = 0; i < CGPDFArrayGetCount(array); i++) {
CGPDFStringRef string;
CGPDFArrayGetString(array, i, &string);
NSString *stringData = (NSString *)CGPDFStringCopyTextString(string);
[actualString appendString:stringData];
NSLog(@"string Data:%@",stringData);
}
NSLog(@"actual string:%@",actualString);
}
}
唯一の問題は、これが私の出力です:
2013-01-11 12:39:49.895 WinPCS Mobile[1617:c07] began text object
2013-01-11 12:39:49.895 WinPCS Mobile[1617:c07] array count:7
2013-01-11 12:39:49.896 WinPCS Mobile[1617:c07] string Data:In
2013-01-11 12:39:49.896 WinPCS Mobile[1617:c07] string Data:In
2013-01-11 12:39:49.896 WinPCS Mobile[1617:c07] string Data:it
2013-01-11 12:39:49.896 WinPCS Mobile[1617:c07] string Data:it
2013-01-11 12:39:49.897 WinPCS Mobile[1617:c07] string Data:ia
2013-01-11 12:39:49.897 WinPCS Mobile[1617:c07] string Data:ia
2013-01-11 12:39:49.897 WinPCS Mobile[1617:c07] string Data:ls
2013-01-11 12:39:49.898 WinPCS Mobile[1617:c07] actual string:InInititiaials
2013-01-11 12:39:49.898 WinPCS Mobile[1617:c07] ended text object
2で割り切れる数に等しい場合は、forループを終了することにしましたi
が、これは非常にずさんで非効率的であるように思われるので、誰かが解決策を持っているか、問題が何であるかについて何か考えがあるかどうか疑問に思っています...私は同じ結果で複数のPDFファイルを試しました。
私の簡単な簡単な修正は、これからforループを変更することでした:
for(int i = 0; i < CGPDFArrayGetCount(array); i++)
これに:
for(int i = 0; i < CGPDFArrayGetCount(array); i+=2)