objective-c – 使用Cocoa打印本地HTML

前端之家收集整理的这篇文章主要介绍了objective-c – 使用Cocoa打印本地HTML前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的项目列表,需要使用 Cocoa打印.我有一个半生不熟的解决方案,它使用带有自定义drawRect:方法的NSView,但它相当复杂并且不易维护.

我想要的是一个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,500,500)];
NSPrintOperation *po = [NSPrintOperation printOperationWithView:webView printInfo:pi];

[pi release];
[po runOperation];

解决方法

在问完后你解决的另一个问题!

运行循环需要迭代才能实际加载内容.我只是在frame load delegate方法中完成了实际的打印操作:

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

Source

猜你在找的cocoa相关文章