Ho un'applicazione Cocoa OS X che crea PDF per la stampa. Sto avendo un problema che quando uso le dimensioni dei caratteri piccoli, il kerning sembra tutto sbagliato. Ecco una schermata. Questo è un ingrandimento da un output PDF della mia app, utilizzando Helvetica a 6 punti. Carattere piccolo Cocoa (OS X) - il kerning sembra terribile
Come potete vedere, il kerning è orribile, con alcuni personaggi che toccano e altri troppo distanti.
Il codice che sto usando fondamentalmente simile a questa (questo è un esempio semplificato che riproduce il problema per me):
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];
Questo non riservate Helvetica, succede in tutti i tipi di carattere I' ho provato, anche se è più pronunciato in alcuni rispetto ad altri. Se uso una dimensione maggiore, come 10, sembra a posto. 6 punti Helvetica da altre app come Text Edit sembra a posto. Cosa devo fare per rendere correttamente il testo a 6 punti?
Modificato per aggiungere: Ho appena notato che questo sembra molto peggio con i font TrueType che con i font PostScript. Purtroppo, non ho versioni PostScript di molti dei font che voglio usare, quindi evitare TrueType non è davvero un'opzione.
Sono in esecuzione OS X 10.7.3 e XCode 4.2.1.
L'uomo, questo è un po 'serio [keming] (http://www.ironicsans.com/2008/02/idea_a_new_typography_term.html). – blahdiblah
Ho testato il tuo codice sul mio computer. Non sono riuscito a ottenere nulla di così brutto, ma ho notato che era influenzato dal valore che ho usato per 'theWidth', quindi dovresti provare a farlo. Inoltre, per un disegno semplice come questo, potresti voler usare [DrawInRect: withAttributes: '] di NSString (http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSString_AppKitAdditions/Reference /Reference.html#//apple_ref/occ/instm/NSString/drawInRect:withAttributes :) invece di semplificare il codice. – ughoavgfhw
Grazie. Rendere la larghezza troppo piccolo causa sicuramente problemi, ma nel mio codice è impostato su tutta la larghezza del foglio. Posso impostarlo su un numero enorme e presenta ancora lo stesso problema. – Wouldchux