从WebView打印与普通浏览器完全相同

时间:2015-02-19 10:19:25

标签: macos cocoa webview webkit pretty-print

我正在开发一个可可应用程序,它有一个WebView,显示一个不受我控制的HTML页面。

此页面在页面上有一个特殊的打印按钮,当用户点击它时,页面会使一些JavaScript工作,以创建一个非常清晰的打印视图(漂亮打印)。另一方面,如果用户使用普通浏览器的标准打印功能,他们会得到不同的(不清晰的)整页打印。

我试图通过使用JavaScript获得嵌入页面的漂亮打印功能的相同输出。

当我使用

-(void)webView:(WebView *)sender printFrameView:(WebFrameView *)frameView

方法我需要提供要打印的视图,如: [[[webView mainFrame] frameView] documentView]

NSPrintOperation *op = [NSPrintOperation printOperationWithView:[[[webView mainFrame] frameView] documentView] printInfo:printInfo];

我的问题是当我提供printOperationWithView参数的视图时,我得到标准打印,就像从浏览器打印所有页面一样。但是,当用户点击页面上的特殊打印功能时,我需要获得完全相同的输出。

我试过不处理

-(void)webView:(WebView *)sender printFrameView:(WebFrameView *)frameView

在我的代码中,但这次没有显示打印模式对话框。

当我从标准浏览器点击页面中嵌入的打印按钮(比如将打印请求重定向到标准浏览器而不是重定向)时,有没有办法处理这种情况或者不处理我的webview中的打印并获得相同的输出处理我的代码。)

0 个答案:

没有答案