スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[iOS]UIWebViewをダイレクトにプリントする(超絶低画質)

画面をUIImageでもろに取得します。(スクリーンショットのような感じです)
これをそのままプリントするソースです。
正直意味はありませんが何かに使えるかもしれないということで残しておきます。
画質が大変悪いです。ただ印刷したい方はiOS Devへ行ってSample CodeからPrintWebViewをつかいましょう。
//印刷結果はこのままではぼけてしまいますので、サイズを印刷用紙に合わせるのがよろしいかと思います。
-(void)WebViewPrint:(UIWebView *)myWebView{
UIGraphicsBeginImageContext(myWebView.bounds.size);
[myWebView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *tmp_image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *myData = [[[NSData alloc] initWithData:UIImagePNGRepresentation( tmp_image )] autorelease];
NSLog(@"myData:\n%@",[[[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding] autorelease]);
UIPrintInteractionController *pic =
[UIPrintInteractionController sharedPrintController];
if(pic && [UIPrintInteractionController canPrintData: myData] ) {
pic.delegate = self;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = [myWebView.request.URL.absoluteURL lastPathComponent];
printInfo.duplex = UIPrintInfoDuplexLongEdge;
pic.printInfo = printInfo;
pic.showsPageRange = YES;
pic.printingItem = myData;
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *pic, BOOL completed, NSError *error) {
//self.content = nil;
if (!completed && error) {
NSLog(@"FAILED due to error in domain %@ with error code %u",
error.domain, error.code);
}
};
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
[pic presentFromBarButtonItem:printButton animated:YES completionHandler:completionHandler]; // iPad
else
[pic presentAnimated:YES completionHandler:completionHandler]; // iPhone
}


一応こういうプリント方法もあるんだね程度のお遊びソースになっております。
利用はお勧めしませんが、ご自由に利用なさってください。


参考URL1:[iPhone] UIWebView の表示内容をキャプチャして UIImage を生成する
参考URL2:UIImageとNSDataの相互変換
参考URL3:PrintWebView
このエントリーをはてなブックマークに追加

tag : iOS 謎のソースコード AirPrint プリント 印刷 SS スクリーンショット

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。