我想做一些相当直接的事情: 我有一个内容我想要打印的WebView。我想添加一个包含页码的自定义页脚。
我无法弄清楚如何获取视图的滚动位置!
以下是我尝试的内容:
NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
[printInfo setTopMargin:30];
[printInfo setBottomMargin:30];
[printInfo setLeftMargin:30];
[printInfo setRightMargin:30];
[printInfo setHorizontallyCentered:YES];
[printInfo setVerticallyCentered:NO];
[printInfo setOrientation:NSPaperOrientationPortrait];
[printInfo setHorizontalPagination:NSFitPagination];
NSMutableDictionary* printSettings = printInfo.printSettings;
printSettings[NSPrintHeaderAndFooter] = @(YES);
self.printWebView = [[WebView alloc] initWithFrame:NSMakeRect(0.0f, 0.0f, 800.0f, 11.0f)];
self.printWebView.UIDelegate = self;
[self.printWebView setShouldUpdateWhileOffscreen:YES];
此功能用于打开打印面板:
- (IBAction)onPrintButtonClicked:(id)sender
{
[[[[self.printWebView mainFrame] frameView] documentView] print:self];
}
打印面板打开时,会调用这两个委托方法:
- (float)webViewFooterHeight:(WebView *)sender
{
return 50.0f;
}
- (void) webView:(WebView *)sender drawFooterInRect:(NSRect)rect
{
[[NSColor redColor] set];
NSRectFill(rect);
NSScrollView* view = sender.mainFrame.frameView.documentView.enclosingScrollView;
NSLog(@"Rect: %@, %@, %@", NSStringFromRect(sender.mainFrame.frameView.frame),
NSStringFromRect(sender.mainFrame.frameView.documentView.frame),
NSStringFromRect(view.documentVisibleRect));
}
当打印预览中的页面发生变化时,所有打印的帧都不会更改。代表被调用,但帧总是相同的。
我如何确定页码?