我有一个 Cocoa OS X 应用程序,可以创建用于打印的 PDF。我有一个问题,当我使用小字体时,字距调整似乎全错了。这是一个屏幕截图。这是我的应用程序使用 Helvetica 6 点输出的 PDF 的放大图。
如您所见,字距调整很糟糕,有些字符相互接触,而另一些则相距甚远。
我使用的代码基本上是这样的(这是一个为我重现问题的简化示例):
NSString* dateStr = @"Printed 04/03/2012";
NSFont* detailsFont = [NSFont fontWithName:@"Helvetica" size:6];
NSMutableAttributedString* printedDate = [[NSMutableAttributedString alloc] initWithString:dateStr];
[printedDate addAttribute:NSFontAttributeName value:detailsFont range:NSMakeRange(0, [dateStr length])];
NSRect printedDateRect = NSMakeRect(0, 0, theWidth, 10);
[printedDate drawInRect:printedDateRect];
这不是 Helvetica 独有的,它发生在我尝试过的所有字体中,尽管它在某些字体中比其他字体更明显。如果我使用更大的尺寸,比如 10,它看起来不错。来自其他应用程序(例如 Text Edit)的 6 点 Helvetica 看起来不错。我需要做什么才能正确呈现 6 点文本?
编辑添加:我刚刚注意到,TrueType 字体比 PostScript 字体更糟糕。遗憾的是,我没有想要使用的许多字体的 PostScript 版本,因此避免使用 TrueType 并不是一个真正的选择。
我正在运行 OS X 10.7.3 和 XCode 4.2.1。