2012-01-24 5 views
0

Word文書へのThumbnailImageを作成しようとしています。私はUIWebViewを使用してドキュメントをロードし、それをイメージに変換します。 Png。私は何千回も見ましたが、ファイルのパスは正しいですが、最終イメージは空白です。誰かが私のコードを見て、何か間違っているかどうか確認できますか?事前にどうもありがとうございました。Objective cのWORDドキュメントからThumbnailImageを作成する際の問題

UIWebView *myWebView22 = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 

path44 = [caminoINICIAL stringByAppendingPathComponent:@"documentoInicial.doc"]; 

NSURL *fileURL22 = [[NSURL alloc] initFileURLWithPath:path44]; 

NSURLRequest *req22 = [NSURLRequest requestWithURL:fileURL22]; 

[myWebView22 setScalesPageToFit:YES]; 

[myWebView22 loadRequest:req22]; 


UIGraphicsBeginImageContext(myWebView22.bounds.size); 

CGContextRef c = UIGraphicsGetCurrentContext(); 

CGContextTranslateCTM(c, 0, 0); 

[myWebView22.layer renderInContext:c]; 

UIImage* viewImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

pngPath = [caminoINICIAL stringByAppendingPathComponent:[NSString stringWithFormat:@"imagenFinal.png"]]; 

[UIImagePNGRepresentation(viewImage) writeToFile:pngPath atomically:YES]; 

答えて

0

タイミングの問題があると確信しています。 UIWebViewは独自のスレッドを持ち、非同期にドキュメントをロードするため、renderInContextを使用する前にロードするまで待つ必要があります。

時間を特定することは、一定時間または深いサブビュー検査のいずれかを行うのが難しい場合があります。

UIWebViewの代わりにQuickLookを使用して、レンダリングを少し詳しく制御することができます。

0

問題は、要求を処理してすぐにイメージをキャプチャすることです。 loadRequest:は非同期です。要求を送信し、すぐに戻ります。ドキュメントがロードされてから戻るまで待機しません。したがって、イメージをキャプチャすると、デバイスはドキュメントを読み込み中にまだビジー状態です。

ドキュメントの読み込みが完了したらメッセージを受け取るデリゲートをWebビューに提供できます。そのデリゲートメソッド内からイメージをキャプチャします。

関連する問題