Cocoa 使用多个Web视图打印

Cocoa 使用多个Web视图打印,cocoa,webkit,Cocoa,Webkit,我正在尝试实现一个打印视图,与NSPrintOperation一起使用,NSPrintOperation使用许多Web视图来呈现内容。想想像keynote这样的幻灯片,每张幻灯片都是一个网络视图 为了有效地实现这一点,我尝试只添加当前页面所需的Web视图 我曾尝试将WebView直接添加为主打印视图的子视图,但WebView布局不正确,即使我延迟了从打印方法返回以使其有机会完成 然后,我尝试在Web视图上使用cacheDisplayInRect:toBitmapImageRep:,并在NSIma

我正在尝试实现一个打印视图,与NSPrintOperation一起使用,NSPrintOperation使用许多Web视图来呈现内容。想想像keynote这样的幻灯片,每张幻灯片都是一个网络视图

为了有效地实现这一点,我尝试只添加当前页面所需的Web视图

我曾尝试将WebView直接添加为主打印视图的子视图,但WebView布局不正确,即使我延迟了从打印方法返回以使其有机会完成

然后,我尝试在Web视图上使用cacheDisplayInRect:toBitmapImageRep:,并在NSImageView中使用结果,而不是将Web视图直接添加到打印视图中。这是可行的,但是位图的打印质量没有我想要的那么好

最后,我想我可以生成一个PDF,并使用它。但是dataWithPDFInsideRect:方法存在最初的问题,布局混乱


当打印视图的子视图出现时,如何使Web视图正确布局,或者如何沿着cacheDisplayInRect:toBitmapImageRep:生成一个可以与NSImageView一起使用的PDF?

似乎我自己找到了一个解决方案。如果我使用displayRecignoringCapacity:inContext:方法来绘制每个Web视图,而不是将它们作为子视图添加到打印视图中,则布局很好。这样做可能是cacheDisplayInRect:。。。他在幕后做什么