打印QCView的正确方法

时间:2012-02-29 20:47:15

标签: quartz-composer

我花了很多时间和精力使用Quartz Composition绘制某些3d绘图和曲面。在我的(Cocoa)应用程序的QCView中,一切看起来都很棒。但是,为了打印,我正在拍摄QCView的快照以生成NSImage,并将其放在NSView中用于我的打印选项屏幕。但是,快照中的线条和颜色看起来非常混淆。有没有其他方法可以直接从我的QCView打印,或绕过/覆盖拍摄快照,以便NSImage看起来和我的QCView中的一样好? QCView继承自NSView,但内置的打印方法似乎不起作用。

谢谢!

2 个答案:

答案 0 :(得分:0)

消除锯齿的消失可能与alpha透明度有关。作为合成中的最低层,您是否将“透明”贴片设置为不透明黑色? (它默认为透明黑色,这可能会导致问题。)

答案 1 :(得分:0)

感谢smokris,但我发现这样做的方法是拍摄CGImage快照。我以为我能够将这个快照放在一个保留消除锯齿的IKImageView中,但是IKImageView会遇到同样的问题QCView,因为在调用print时你的打印窗口什么都没有。

因此,最终工作的方法是使用CGPDFContext从CGImage快照创建pdf数据,使用从此pdf数据生成的NSImage加载NSImageView,当这到达打印窗口时,所有抗锯齿都会保留!非常迂回,但就像魅力一样!