2011-09-23 12 views
4

私はココアを使用して印刷する必要がある項目の簡単なリストを持っています。私はカスタムのdrawRect:メソッドを使ってNSViewを使用するハーフベークのソリューションを持っていますが、それはかなり複雑で、維持するのは簡単ではありません。ココアを使用してローカルHTMLを印刷

私が望むのは、ワンオフWebViewに組み込み、印刷できるHTML文字列(リストから簡単に作成できる)です。

NSString *htmlString = @"<b>Test</b>"; 

このコンテンツを表示するのWebViewを作成するための最も簡単な方法は何ですか?私はのような単純なNSStringのを持っていると仮定すると

以下のコードを試しましたが、空白のページが1つだけ表示されます。

WebView *webView = [[WebView alloc] init]; 
NSString *dir = @"/Users/Me/Desktop/"; 
NSString *fileUrl = [dir stringByAppendingPathComponent:@"Temp_Print.html"]; 

NSString *htmlString = @"<b>Hi!</b>"; 
[[htmlString dataUsingEncoding:NSUTF8StringEncoding] writeToFile:fileUrl atomically:YES]; 

[[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fileUrl]]]; 
[webView setFrame:NSMakeRect(0, 0, 500, 500)]; 
NSPrintOperation *po = [NSPrintOperation printOperationWithView:webView printInfo:pi]; 

[pi release]; 
[po runOperation]; 

答えて

4

もう一度質問してみてください。

コンテンツを実際にロードするには、実行ループを反復処理する必要があります。

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame { 
    ... 
} 

Source

:私は単にフレームロードデリゲートメソッドでは、実際の印刷操作を実行し終えました
関連する問題