将CALayer渲染为PDF输出时保持矢量图形

tun*_*ten 2 pdf macos cocoa objective-c calayer

我正在将包含许多数据点的图绘制到由NSView托管的CALayer中。在CALayer的drawInContext:中完成的所有绘制操作都是矢量操作(CGPath等)。

现在,我想将其导出为PDF文件。使用CGPDFContextCreateWithURL(),创建了一个PDF文件,但实际上它仅包含我的绘图的屏幕快照,即视图内容的位图图像。

但是我想要的是基于矢量的PDF。我知道CALayers将其内容在屏幕外呈现为位图,然后在屏幕上显示,但是为什么不能呈现与矢量图形完全相同的内容呢?

真的没有内置的方法可以做到这一点吗?我一定不是唯一需要这个的人。

iPD*_*dev 5

您需要重写代码,在CALayer上下文中绘制的代码也应在PDF上下文中绘制,不要在PDF上下文中呈现CALayer,因为您将获得位图输出。