Преобразовать или распечатать строку CGPDFStringRef - PullRequest
3 голосов
/ 18 октября 2011

Как преобразовать CGPDFStringRef в кодировку Unicode? Я использовал CGPDFStringCopyTextString, чтобы получить строку, а затем [string characterAtIndex: i], чтобы привести к unichar, это правильный путь? или есть ли способ получить байты строки и преобразовать в Unicode напрямую? Нужна помощь здесь.

Ответы [ 3 ]

3 голосов
/ 18 октября 2011

NSString способен обрабатывать символы Юникода сам по себе, вам просто нужно преобразовать CGPDFString в NSString, и далее вы можете использовать его следующим образом:

NSString *tempStr = (NSString *)CGPDFStringCopyTextString(objectString);
1 голос
/ 29 марта 2012

Хотя ответ UPT верен, это приведет к утечке памяти

из документации: CGPDFStringCopyTextString «... Вы несете ответственность за освобождение этого объекта.»

правильный способ сделать это будет:

CFStringRef _res = CGPDFStringCopyTextString(pdfString);
NSString *result = [NSString stringWithString:(__bridge NSString *)_res];
CFRelease(_res);
0 голосов
/ 18 октября 2011

Это неплохая идея, даже если вы можете получить доступ к CGPDFString напрямую, используя CGPDFStringGetBytePtr.Вам также понадобится CGPDFStringGetLength, чтобы получить длину строки, так как она может не заканчиваться нулем.

Подробнее см. В документации

...