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

标签 macos cocoa text fonts kerning

我有一个 Cocoa OS X 应用程序,可以创建用于打印的 PDF。我遇到一个问题,当我使用小字体时,字距似乎完全错误。这是一个屏幕截图。这是我的应用程序输出的 PDF 的放大图,使用 Helvetica 进行 6 点处理。 Horrible Kerning Output

正如您所看到的,字距调整非常糟糕,一些字符相互接触,而另一些字符则相距太远。

我使用的代码基本上如下所示(这是一个为我重现问题的简化示例):

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,看起来不错。来自其他应用程序(例如文本编辑)的 6 点 Helvetica 看起来不错。我需要做什么才能正确渲染 6 点文本?

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

我运行的是 OS X 10.7.3 和 XCode 4.2.1。

最佳答案

我认为打印的日期矩形的大小不正确。要检查这一点,请尝试使用 - (void)drawAtPoint:(NSPoint)point

只是一个提示...

关于macos - Cocoa (OS X) 小字体 - 字距调整看起来很糟糕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002254/

相关文章:

macos - 如何禁用标签中的白色阴影?

java - 如何在 Mac 中永久设置 JAVA_HOME?

macos - 设置launchctl limit maxfiles 512无限导致错误: Neither the hard nor soft limit for "maxfiles" can be unlimited

python - 如何在 Pandas 中显示列的全文

HTML/CSS - 获取文本以覆盖图像时遇到问题

ios - UIActivityViewController completionWithItemsHandler 函数未在 MacOS 应用程序中调用

iphone - 如何在不插入空格的情况下替换 NSString 中的字符?

objective-c - 使用 FMDB 从 sqlite DB 创建字典数组

macos - View Controller 可以拥有一张工作表吗?

python - 需要帮助将大文本文件裁剪为多个带标题的小文本文件