cocoa - 在 OS X 中绘制 pdf 的命令行应用程序

标签 cocoa core-graphics

我正在尝试找出一种好方法来制作一个绘制和保存 pdf 的命令行应用程序(桌面上的 OS X)。如果我有一个带有 View 的 GUI,那么我将使用 NSBezierPath 对象,并在最后执行 [myView dataWithPDFInsideRect:r]。

我一直在使用通过 CGPDFContextCreateWithURL 获得的 CGContextRef 但它很笨重。像带有两个控制点的 CGContextAddCurveToPoint 这样简单的东西不会按照我的预期呈现(它在中间看起来很奇怪)。还有斯科特·史蒂文森 (Scott Stevenson) 的复杂的东西 (part II)看来不可能。

我错过了一些简单的事情吗?有没有办法构建一个 View 并在没有窗口的情况下绘制它?一种制作更精美的核心显卡的方法?

更新:需要明确的是,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

最佳答案

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

关于cocoa - 在 OS X 中绘制 pdf 的命令行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10761358/

相关文章:

ios - 如何检测选择了哪个事件以及如何检查消息是否已发送?

swift - 在 URL 中用波浪号替换用户路径

iphone - 如何从 iPhone/Ipad 中的图像识别人脸?

iphone - 离屏渲染层

objective-c - 没有隐藏项目的 Core Graphics 屏幕截图

xcode - 在 NSImageView 上设置图像

objective-c - copyItemAtPath 总是因文件存在错误而失败

cocoa - Apple 如何使 info.plist 显示其 "Information Property List"?

ios - 有没有办法让 drawRect 现在工作?

ios - CGContextFillRect 的突然内存峰值