Согласно «Pdf Reference Version 1.7», оператор позиционирования текста «Tm» описывается следующим образом:
...Хотя операнды задают матрицу, они передаются в Tm как шесть отдельных чисел, а не как массив.
Я не понимаю, как я должен получить ряд чисел, которые не являются массивом, строкой или чем-то подобным. Когда я реализую этот код, я получаю, что тип объекта реален, и когда я пытаюсь получить его значение, все, что я получаю, это последнее число массива.
CGPDFOperatorTableSetCallback(table, "Tm", positioningOperator);
...
void positioningOperator(CGPDFScannerRef scanner, void *info)
{
[(__bridge CTPDFParser *)info operatorPositionScanned:scanner];
}
...
- (void)operatorPositionScanned:(CGPDFScannerRef)scanner
{
CGPDFContentStreamRef streamRef = CGPDFScannerGetContentStream(scanner);
CGPDFObjectRef object;
CGPDFScannerPopObject(scanner, &object);
CGPDFObjectType type = CGPDFObjectGetType(object);
if( type == kCGPDFObjectTypeReal)
{
CGPDFReal real;
if( CGPDFObjectGetValue(object, type, &real) )
{
// 1 0 0 1 256.3246 669.3472 Tm
NSLog(@"%f", real); // Prints only 669.347168
}
}
}
Я проверил, было ли переданное значение какого-либо другого типа, но оно было просто реальным, поэтому я действительно не знаю, как получить другие числа.
Любая помощь будет оценена по достоинству.