使用多个WebView进行打印

时间:2011-06-22 08:53:24

标签: cocoa webkit

我正在尝试实现一个打印视图,用于NSPrintOperation,它使用许多WebView来呈现内容。想想类似主题演示的幻灯片,每张幻灯片都是WebView。

为了有效地做到这一点,我试图只添加当前页面所需的WebView。

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

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

最后,我想我可以改为生成PDF,并使用它。但dataWithPDFInsideRect:方法遇到原始问题,布局搞砸了。

如何在打印视图的子视图中正确布局WebViews,或者生成沿着cacheDisplayInRect:toBitmapImageRep:可以与NSImageView一起使用的PDF格式的PDF?

1 个答案:

答案 0 :(得分:2)

似乎我自己找到了解决方案。如果我使用方法displayRectIgnoringOpacity:inContext:绘制每个WebView,而不是将它们作为子视图添加到打印视图,布局就可以了。这样做可能就是cacheDisplayInRect:...在幕后做的事情。