У меня есть приложение 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];
Это не уникально для Helvetica, это происходит во всех шрифтах, которые я пробовал, хотя он более выражен у некоторых, чем у других. Если я использую больший размер, например, 10, это выглядит хорошо. 6 баллов Helvetica из других приложений, таких как Text Edit, выглядит отлично. Что мне нужно сделать, чтобы правильно отобразить 6-точечный текст?
Отредактировано для добавления: я только заметил, что это выглядит намного хуже с шрифтами TrueType, чем с шрифтами PostScript. К сожалению, у меня нет версий PostScript для многих из шрифтов, которые я хочу использовать, поэтому исключение TrueType на самом деле не является вариантом.
Я запускаю OS X 10.7.3 и XCode 4.2.1.