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

时间:2012-12-09 02:02:21

标签: objective-c macos cocoa pdf calayer

我正在将包含许多数据点的绘图渲染到由NSView托管的CALayer中。在drawayContext:CALayer中完成的所有绘图操作都是向量操作(CGPaths等)。

现在我想将其导出为PDF文件。使用CGPDFContextCreateWithURL()创建一个PDF文件,但它基本上只包含我的绘图的截图,这意味着视图内容的位图图像。

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

是否真的没有内置的方法来实现这一目标?我不应该是唯一需要这个的人。

1 个答案:

答案 0 :(得分:5)

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