У меня есть приложение для iPad, и я пытаюсь сгенерировать PDF из UIView, и оно почти отлично работает.
Код действительно прост, как показано ниже:
UIGraphicsBeginPDFContextToFile( filename, bounds, nil );
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
[view.layer renderInContext:pdfContext];
UIGraphicsEndPDFContext();
Это работает очень хорошо с одним странным исключением.Если представление было на экране до его визуализации в PDF, тогда UILabels на представлении будет отображаться в PDF как замечательные векторы.Если представление еще не было на экране (т.е. контроллером был initWithNib и т. Д., Но не было помещено в контроллер навигации или что-либо еще), то текст отображается как растровое изображение с разрешением ipad.
Это похоже на то, как процесс рендеринга на экран настраивает вид для рендеринга в виде векторов, когда я впоследствии отрисовываю его в контексте PDF.
Есть ли какой-нибудь метод, который я могу вызвать или свойство, которое я могу установить в представлении, слое или в другом месте, чтобы имитировать это поведение, не отображая вид на экране?
Это что-то делатьс UIViewPrintFormatter?