在Cocoa中打印WebView的全部内容,而不仅仅是显示

时间:2013-07-08 14:24:56

标签: xcode cocoa pdf printing webview

所以我目前正在尝试打印一个已经加载到Cocoa应用程序中的WebView的pdf,如果你想看到你必须滚动的整个内容,它的大小。问题是无论何时打印,它只打印当前在WebView中显示的内容而不是整个页面,代码如下:

    [[[[WebView mainFrame] frameView] documentView] print:sender];

我不确定我是在尝试打印错误的部分,还是只需要以其他方式解决这个问题,并且非常感谢一些帮助。

2 个答案:

答案 0 :(得分:14)

我发现这是一个老问题,但由于还没有任何答案,我想我会为任何搜索者提供这个。

NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];

// This is your chance to modify printInfo if you need to change 
// the page orientation, margins, etc
[printInfo setOrientation:NSLandscapeOrientation];

NSPrintOperation *printOperation = [yourWebView.mainFrame.frameView 
                                    printOperationWithPrintInfo:printInfo];

// Open the print dialog
[printOperation runOperation];

// If you want your print window to appear as a sheet instead of a popup,
// use this method instead of -[runOperation]
[printOperation runOperationModalForWindow:yourWindow
                                  delegate:self 
                            didRunSelector:@selector(printDidRun)
                               contextInfo:nil];

答案 1 :(得分:0)

以下Swift代码适用于我:

NSPrintOperation(view: webView.mainFrame.frameView.documentView).runOperation()