我正在尝试找出一种制作命令行应用程序(桌面上的 OS X)的好方法,该应用程序可以绘制和保存 pdf。如果我有一个带视图的 GUI,那么我将使用 NSBezierPath 对象,最后执行 [myView dataWithPDFInsideRect:r]。
我一直在使用通过 CGPDFContextCreateWithURL 获得的 CGContextRef ,但它很笨重。像具有两个控制点的 CGContextAddCurveToPoint 这样简单的东西并没有像我预期的那样呈现(中间看起来很奇怪)。而像斯科特史蒂文森(第二部分)这样复杂的东西似乎是不可能的。
我错过了一些简单的东西吗?有没有办法在没有窗口的情况下构建视图并绘制到它?一种制作更高级核心图形的方法?
更新:为了清楚起见, main 中的代码是:
int main(int argc, char * argv[]) {
MyView *myView;
NSRect f = NSMakeRect(0,0,300,300);
myView = [[MyView alloc] initWithFrame:f];
NSData *data = [myView dataWithPDFInsideRect:f];
[data writeToFile:@"x.pdf" atomically:YES];
return 0;
}
从终端:
clang prog.m -o prog -framework Cocoa -fobjc-gc-only
./prog