Cocoa(OS X)小字体 - 字距看起来很糟糕

Wou*_*hux 21 macos fonts cocoa text kerning

我有一个Cocoa OS X应用程序,可以创建用于打印的PDF.我有一个问题,当我使用小字体时,字距调整似乎都错了.这是一个截屏.这是我的应用程序的PDF输出的放大,使用Helvetica 6点. 可怕的字距输出

正如你所看到的那样,字距变得非常糟糕,一些人物在触摸,而另一些则相距甚远.

我使用的代码基本上看起来像这样(这是一个为我重现问题的简化示例):

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];
Run Code Online (Sandbox Code Playgroud)

这并不是Helvetica独有的,它发生在我尝试过的所有字体中,尽管它在某些字体中比其他字体更明显.如果我使用更大的尺寸,如10,它看起来很好.来自其他应用程序(如Text Edit)的6点Helvetica看起来很好.如何正确渲染6点文本需要做什么?

编辑添加:我刚刚注意到TrueType字体比使用PostScript字体更糟糕.遗憾的是,我没有我想要使用的许多字体的PostScript版本,因此避免使用TrueType并不是一个真正的选择.

我正在运行OS X 10.7.3和XCode 4.2.1.

Mac*_*dor 1

我认为 printDateRect 的大小不正确。要检查这一点,请尝试使用- (void)drawAtPoint:(NSPoint)point.

只是一个提示...