2011-09-23 3 views
4

У меня есть простой список элементов, которые необходимо распечатать с помощью Cocoa. У меня есть полупеченое решение, которое использует NSView с пользовательским методом drawRect:, но это довольно сложно и не очень просто поддерживать.Печать локального HTML с использованием Cocoa

То, что я хотел бы иметь, это строка HTML (которую можно легко создать из списка), которая может быть встроена в одноразовый WebView, а затем напечатана.

Предполагая, что у меня есть простой NSString как:

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

Что самый простой способ для создания WebView отображения этого контента? Я пробовал следующий код, но это приводит к одной пустой странице:

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

Смежные вопросы