これまで、私のアプリは確認をプレーン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]
常にゼロを返すため、実際のページコンテンツがPDFNSDataにレンダリングされないことです。
HTMLをPDFに変換するために実際の印刷ジョブの外でUIMarkupTextPrintFormatterを使用して運が良かった人はいますか?どんな助けでも大歓迎です。