objective-c – 打印WKWebView(OS X)的内容
发布时间:2020-12-16 05:42:39 所属栏目:百科 来源:网络整理
导读:我正在尝试打印WkWebView的内容,但是当打印面板出现时,打印预览为空. 这是代码: - (void)viewDidLoad { [super viewDidLoad]; WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; _webView = [[WKWebView alloc] initWithFrame:self
我正在尝试打印WkWebView的内容,但是当打印面板出现时,打印预览为空.
这是代码: - (void)viewDidLoad { [super viewDidLoad]; WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; _webView = [[WKWebView alloc] initWithFrame:self.webViewOutlet.frame configuration:config]; [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]]]; [_webViewOutlet addSubview:_webView]; _webView.navigationDelegate = self; } 我有一个WKWebView的插座,所以我可以看到它是否加载,我把打印调用放在didFinishNavigation代理方法,这样只是为了确保: - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation { [self.webView print:nil]; } 无论页面如何,打印预览始终是空白页面.我也尝试使用NSPrintOperations,结果是一样的 – 打印预览和保存的PDF是空白页. 任何想法我做错了什么?是否有另一种打印/转换WKWebView到PDF的方法?欢迎提出建议.谢谢. 解决方法
您可以使用viewPrintFormatter打印WKWebView的内容.
以下是示例代码: if ([UIPrintInteractionController isPrintingAvailable]) { UIPrintInfo *pi = [UIPrintInfo printInfo]; pi.outputType = UIPrintInfoOutputGeneral; pi.jobName = @"Print"; pi.orientation = UIPrintInfoOrientationPortrait; pi.duplex = UIPrintInfoDuplexLongEdge; UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController]; pic.printInfo = pi; pic.showsPageRange = YES; pic.printFormatter = self.webView.viewPrintFormatter; [pic presentFromBarButtonItem:barButton animated:YES completionHandler:^(UIPrintInteractionController *printInteractionController,BOOL completed,NSError *error) { if(error) NSLog(@"handle error here"); else NSLog(@"success"); }]; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |