2012-04-20 5 views
1

こんにちはみなさん、私は現在、ビットマップイメージにpptファイルを表示しているUIWebViewを変換しようとしています。UIWebViewをビットマップに変換するにはどうすればいいですか?

私はこのコードを持っている:

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 768, 708)]; 

NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:nil]; 
NSURL *targetURL = [NSURL fileURLWithPath:path]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
[webView loadRequest:request]; 

NSLog(@"Ouverture du contexte image"); 
UIGraphicsBeginImageContext(webView.bounds.size); 
[webView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

のWebViewが実際にうまく表示されているが、私はそれが画像にレンダリングだ作成することが出来なかった 誰もが知っていればどこで問題;) Thankss

答えて

2

あなたのスクリーンショットには何も問題はありません。コードを取っているだけです。あなたはそれを時期尚早に使用しています。

[webView loadRequest:request];は、非同期クライアント要求を開始します。つまり、コンテンツをロードする前に、webViewのスクリーンショットを撮っているということです。

UIWebViewDelegateの方法webViewDidFinishLoad:にスクリーンショット取得コードを移動します。もちろんこれを達成するにはwebViewdelegateを割り当てる必要があります。

+0

私のパワーポイントファイルが正しく表示され、画像も作成されていますが、内容はすべて白で表示されているので、実際には分かりません。 '[webView loadRequest:request];'私は推測する画像への変換に関連する、それは単にパワーポイントを表示するために使用されていないですか? しかし、私は感謝の言葉を見ていきます;) – Bobyblanco

+0

あなたは大歓迎です! 'loadRequest:'を呼び出すと、webViewはコンテンツのロードを開始します。しかし、あなたはすぐにスクリーンショットを作成しようとしています。そのため、スクリーンショットが空白になっています。 'loadRequest:'とwebViewが実際に読み込まれるまでには時間がかかります。内容がロードされるまで待つべきです。そのため、スクリーンショット取得コードを 'webViewDidFinishLoad:' –

+0

ahhhh okに移動する必要があります。 :) しかし、私はデリゲートのための別のクラスを実装する必要がありますか?私は分割ビューのテンプレートであり、この関数は詳細ビューコントローラ(uiviewcontroller)から呼び出されます。私はコントローラのdidfinishlaunchingメソッドは私の問題を解決できないと思いますか? – Bobyblanco

関連する問題