Я не знаю, если он что-то делает, но вы пробовали использовать kCGEncodingFontSpecific
для четвертого параметра вашего CGContextSelectFont
? Если это не так, вам, возможно, придется использовать Core Text. Я никогда не использовал Core Text, но похоже, что генерация текста немного более надежна, чем обычный Quartz 2D.
К @ предложению Джонатана-Cichon, я также сгенерированные PDF-файлы из UIView
с, на которых я просто поставить (он предложил NSString-х drawAtPoint
и т.д., я использовал обычные старые UILabel
сек!), А затем оказывается, что к моему pdfContext, но это также имеет очевидные недостатки. Если вы уже находитесь в пути контекста PDF, я предлагаю вам использовать Core Text, если kCGEncodingFontSpecific этого не делает. См. Это SO discussion для других соображений по этой теме.
В конце концов, я нашел, что генерация PDF немного ограничена (но, с другой стороны, удивительно, что iOS может создавать PDF-файлы вообще). В моем случае я был разочарован отсутствием вложения шрифтов в PDF, поэтому в итоге я создал образы своего текста, оказанные менее распространенными шрифтами (потому что я получал квадратные блоки, к которым вы ссылаетесь в своей проблеме).
Если я переключу последнюю строку моего опубликованного кода с этим: '[str1 drawInRect: CGRectMake (25, y-60, 500, rowHeight) withFont: [UIFont fontWithName: @" Helvetica "size: 14.0]]; 'ничего не отображается –
, вы установили другой цвет заливки, прежде чем вы назовете drawInRect? Если его по-прежнему фоновый цвет вашего контекста, вы ничего не увидите. –
Вы имеете в виду следующее: 'CGContextSetFillColorWithColor (pdfContext, [UIColor blueColor] .CGColor); [str1 drawInRect: CGRectMake (25, y-60, 500, rowHeight) withFont: [UIFont fontWithName: @ "Helvetica" size: 14.0]]; 'В этом случае я ничего не вижу и получаю: CGContextSetFont: недопустимый контекст 0x0 –