2
我正在将包含许多数据点的绘图渲染到由NSView托管的CALayer中。在CALayer的drawInContext中完成的所有绘制操作都是向量操作(CGPaths等)。在将CALayer渲染为PDF输出时维护矢量图形
现在我想将其导出为PDF文件。使用CGPDFContextCreateWithURL(),创建一个PDF文件,但它基本上只包含我的情节的屏幕截图,意思是视图内容的位图图像。
但我想要的是基于矢量的PDF。我知道CALayers将他们的内容渲染到屏幕上显示的位图中,但为什么不能将相同的内容渲染为矢量图形呢?
是否真的没有内置的方法来实现这一目标?我不能是唯一需要这个的人。
非常感谢,你是绝对正确的。我总是使用“renderInContext:”而不是“drawInContext:”。这解决了这个问题。不幸的是,子层不会自动呈现,就像在NSView中一样。所以我将不得不实现遍历图层树并渲染它们的方法。 – tungsten
一句话:如果我想从当前窗口中显示的图层导出PDF,是否有一种方法可以使其正确填充交付的CGContextRef的框架?因为它保留了屏幕的CALayer的框架,我想避免为了导出目的而(明显地)改变显示层的框架。 – tungsten
创建PDF上下文时,如果要获得1:1 PDF导出,您可以设置页面媒体框以匹配图层的大小。 – iPDFdev