According to the "Pdf Reference Version 1.7" the text-positioning operator "Tm" is described as follows:
...Although the operands specify a matrix, they are passed to Tm as six separate numbers, not as an array.
I don't understand how I'm supposed to retrieve a series of numbers that are not an array, string, or anything similar. When I implement this code I get that the object type is real, and when I try to get its value all I end up with is the last number of the array.
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
}
}
}
I checked if the passed value was of any other type, but it was just real so I really don't know how to retrieve the other numbers.
Any help would be appreciated.