这个问题时断时续困扰着我大约一年,我想也许其他人也会遇到类似的情况。
目标:MacOSX10.6-7上的,使用定义的分辨率和“高速”设置将多个NSViews打印到EPSON Stylus Pro 4880打印机,而不显示打印面板。
当前情况:我可以为每个NSView创建成功的NSPrintOperations,但是如果我没有显示打印面板,则似乎使用了打印机的默认分辨率,这对于我的需要来说太高了,而且速度太慢。
到目前为止我有最好的解决方案:,我已经尝试显示打印面板和定义一个Mac‘预设’,它已经启用了正确的打印分辨率和高速设置。这里的缺点是Mac预置覆盖了我通过NSCopies设置的拷贝数,这是一个问题。当然,另一个困难是总是有人每天按几千次“OK”按钮。
我要去的地方
当
[NSPrintInfo printSettings].发布于 2012-01-25 05:10:09
不幸的是,这是我迄今找到的最好的解决方案,尽管我不愿称之为“最佳”,甚至是“解决方案”。回到这里:运行带有面板的操作,然后以编程方式“单击”Print按钮。
[op runOperationModalForWindow: self.window delegate: self didRunSelector: nil contextInfo: nil];
NSPanel *panel = (NSPanel*)self.window.attachedSheet;
for (NSView *view in ((NSView*)panel.contentView).subviews)
{
if (view.class == [NSButton class])
{
NSButton *button = (NSButton*)view;
if ([button.title isEqualToString: @"Print"])
[button performClick: self];
}
}或
op.runOperationModalForWindow(window, delegate: nil, didRunSelector: nil, contextInfo: nil)
(window.attachedSheet?.contentView.subviews.filter({ $0 is NSButton }) as [NSButton]).filter({ $0.title == "Print" }).first?.performClick(self)缺点显然是需要一个窗口,而我希望将其作为一个无头服务器应用程序运行。我曾尝试过与核心印刷和PMPrinter/PMPrintSettings等一起工作,但都没有用。我唯一还没试过的就是直接和杯子说话。也许我会留着以备不时之需!
https://stackoverflow.com/questions/7656281
复制相似问题