我正在尝试实现一个打印视图,用于NSPrintOperation,它使用许多WebView来呈现内容。想想类似主题演示的幻灯片,每张幻灯片都是WebView。
为了有效地做到这一点,我试图只添加当前页面所需的WebView。
我已经尝试将WebView直接添加为主打印视图的子视图,但WebView的布局不正确,即使我延迟从打印方法返回以使其有机会完成。
然后我尝试在WebViews上使用cacheDisplayInRect:toBitmapImageRep:并在NSImageView中使用结果,而不是将WebView直接添加到打印视图。这可行,但位图的打印质量不如我想的那么好。
最后,我想我可以改为生成PDF,并使用它。但dataWithPDFInsideRect:方法遇到原始问题,布局搞砸了。
如何在打印视图的子视图中正确布局WebViews,或者生成沿着cacheDisplayInRect:toBitmapImageRep:可以与NSImageView一起使用的PDF格式的PDF?
答案 0 :(得分:2)
似乎我自己找到了解决方案。如果我使用方法displayRectIgnoringOpacity:inContext:绘制每个WebView,而不是将它们作为子视图添加到打印视图,布局就可以了。这样做可能就是cacheDisplayInRect:...在幕后做的事情。