3

我正在用 Objective-C 制作一个 PDF 文件,一切顺利。但是当我在 PDF 中添加一些货币符号时,它会显示出完全不同的东西。

‚dž2,060,0 而不是 €2,060,0

我使用以下代码在 PDF 中绘制文本:

NSString *reducedString = @"€4,854,525";
CGContextShowTextAtPoint (currentContext,xPos, yPos, [textToDraw UTF8String], [reducedString length]);

任何人都知道如何使用相同的代码绘制欧元符号?我需要在文本编码中更改什么吗?

[reducedString drawAtPoint:CGPointMake(xPos  ,yPos) withFont:[UIFont systemFontOfSize:15];

提前致谢。

4

3 回答 3

5

尝试使用欧元符号的 unicode

\u20AC
于 2012-11-23T06:15:06.463 回答
1

正确的方法是需要使用 NSNumberFormatter。

NSInteger currency = 4345;
NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *result = [numberFormatter stringFromNumber:[NSNumber numberWithInteger:currency]];

结果将是带有货币符号的字符串,具体取决于语言环境。

于 2012-11-23T08:44:34.063 回答
0

尝试这个

//for the document Header
NSString *textToDraw = @"Your text";
UIFont *font = [UIFont boldSystemFontOfSize:18.0];
CGSize stringSize = [textToDraw sizeWithFont:font constrainedToSize:CGSizeMake(pageSize.width - 2*kBorderInset, pageSize.height - 2*kBorderInset - 2*kMarginInset) lineBreakMode:UILineBreakModeWordWrap];
//for title
fYheight=fYheight+25;
CGRect renderingRect = CGRectMake(kBorderInset, fYheight, pageSize.width - 2*kBorderInset, stringSize.height);
[textToDraw drawInRect:renderingRect withFont:font lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];

将您的文本添加到 textToDraw 字符串。无需转换为常量字符。

于 2012-11-23T06:50:18.080 回答