Исторически сложилось так, что мое приложение генерировало подтверждения в виде простого HTML и передавало этот HTML в обычный MFMailComposeViewController для отправки клиенту по электронной почте. Я хотел попробовать использовать новые классы печати в iOS 4.2, чтобы вместо этого преобразовать HTML в PDF и отправить его как вложение.
Я пробовал следующее:
NSString *html = /* generate my HTML here */
NSMutableData *pdfData = [NSMutableData data];
UIMarkupTextPrintFormatter *fmt = [[UIMarkupTextPrintFormatter alloc]
initWithMarkupText:html];
// Render the html into a PDF
UIGraphicsBeginPDFContextToData( pdfData, CGRectZero, nil );
for (NSInteger i=0; i < [fmt pageCount]; i++)
{
UIGraphicsBeginPDFPage();
CGRect bounds = UIGraphicsGetPDFContextBounds();
[fmt drawInRect:bounds forPageAtIndex:i];
}
UIGraphicsEndPDFContext();
Проблема в том, что [fmt pageCount]
всегда возвращает ноль, поэтому фактическое содержимое страницы никогда не отображается в PDF NSData.
Кому-нибудь повезло с использованием UIMarkupTextPrintFormatter вне фактического задания на печать для преобразования HTML в PDF? Любая помощь очень ценится.