1

我正在使用以下内容在 iOS 中的 PDF 上绘制文本:

CGContextSelectFont (pdfContext, "Helvetica Bold", 14, kCGEncodingMacRoman);
NSString *str1 = [NSString stringWithString:@"€ 10"];  
CGContextShowTextAtPoint(pdfContext, 25, y-60 , [str1 cStringUsingEncoding:NSMacOSRomanStringEncoding], [str1 length]); 

欧元符号显示为正方形。

你有什么建议吗?

附言。我也尝试过 [str1 UTF8String],结果相同

4

2 回答 2

2

- (CGSize)drawAtPoint:(CGPoint)point withFont:(UIFont *)font在大多数情况下,使用 NSString 方法或使用- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)fontCoreGraphic方法更容易。Apple 会为您考虑正确的转换、编码等问题。

于 2012-05-05T01:23:36.143 回答
0

我不知道它是否有任何作用,但是您是否尝试过使用kCGEncodingFontSpecific您的第四个参数CGContextSelectFont?如果不这样做,您可能必须使用Core Text。我从未使用过 Core Text,但它的文本生成似乎比普通的 Quartz 2D 更强大。

根据@jonathan-cichon 的建议,我还从UIView我刚刚放置的 s 生成了 PDF(他提出了 NSStringdrawAtPoint等,我实际上使用了普通的旧UILabels!),然后将其渲染到我的 pdfContext,但这也有明显的缺点. 如果您已经走上了 PDF 上下文的道路,如果 kCGEncodingFontSpecific 不这样做,我建议您追求 Core Text。有关该主题的其他想法,请参阅此SO 讨论

最后,我发现 PDF 生成有点有限(但另一方面,iOS 可以创建 PDF 真是太神奇了)。就我而言,我对 PDF 中缺少字体嵌入感到沮丧,因此我最终创建了由不太常见的字体呈现的文本图像(因为我得到了您在问题中引用的方形块)。

于 2012-05-05T02:48:12.050 回答