UIMarkupTextPrintFormatter を使用して数行の単純な HTML を印刷すると、最初に空白のページが出力され、次にテキストのあるページが出力されます。コードは次のとおりで、非常に単純です。
- (void) printSomething;
{
if (![UIPrintInteractionController isPrintingAvailable])
return;
NSString* markupText =@"<html><body>THIS IS A TEST</body></html>";
UIMarkupTextPrintFormatter* printFormatter =[ [ [UIMarkupTextPrintFormatter alloc] initWithMarkupText:markupText] autorelease];
UIPrintInteractionController* printInteractionController =[UIPrintInteractionController sharedPrintController];
printInteractionController.printFormatter =printFormatter;
printInteractionController.delegate =self;
//printInteractionController.showsPageRange =YES;
[printInteractionController presentAnimated:YES completionHandler:nil];
}
ここで、showsPageRange =YESのコメントを外すと、単一のページが期待どおりに印刷されますが、UIPrintInteractionController が表示されるまでに数秒かかります。アプリがフリーズしたのではないかとユーザーに思わせるには十分です。
UIMarkupTextPrintFormatter ドキュメントの最初の行には、「UIMarkupTextPrintFormatter クラスのインスタンスは、複数ページの印刷ジョブの HTML マークアップ テキストをレイアウトします」と記載されています。コンテンツに関係なく、フォーマッタが複数のページを印刷すると、ちょっとおかしくなります...
ここで何が問題なのですか?他のアプリは問題なくこれを行います。前もって感謝します。