0

我正在尝试找出一种制作命令行应用程序(桌面上的 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
4

1 回答 1

2

如果您创建一个命令行工具来链接 AppKit 并在没有窗口的独立视图上使用 dataWithPDFInsideRect,并从 terminal.app 手动运行它,这将像您期望的那样工作。如果您通过 ssh 或其他类似已启动作业的方式登录,这可能不起作用。

于 2012-05-25T21:27:47.050 回答