如何在多页 NSPrintOperation 中更改页面方向?
How can I change page orientation within a multi page NSPrintOperation?
假设我要打印一份三页的报告,第一页是纵向,第二页是横向,第三页还是纵向。
我已经将一个特殊的 NSView 子类化为我的打印操作,但我得到的是三页,全部为纵向,切断了横向。我已经能够解决这个问题,将每个页面分成一个单独的打印作业,但这是不可接受的,因为它忽略了
中的设置
NSPrintOperation *printOperation = [NSPrintOperation printOperationWithView: printView printInfo: printInfo];
[printView setCurrentForm: [formSet objectAtIndex: 0]];
[printOperation setShowsPrintPanel:YES];
[printOperation runOperationModalForWindow: [self window] delegate: nil didRunSelector: nil contextInfo: nil];
[printOperation cleanUpOperation];
[NSPrintOperation setCurrentOperation: nil];
从第一页调用(例如,如果他们从该对话框中选择 "PDF Open in Preview",我希望将这三个页面合并为一个作业,在预览中以 PDF 格式打开。)
我需要在呈现 NSView 的打印机版本的代码中做什么,才能强制 NSPrintOperation 更改方向?
在 rectForPage:
中设置方向
NSPrintOperation.currentOperation.printInfo.orientation = NSPaperOrientationLandscape;
或
NSPrintOperation.currentOperation.printInfo.orientation = NSPaperOrientationPortrait;
假设我要打印一份三页的报告,第一页是纵向,第二页是横向,第三页还是纵向。
我已经将一个特殊的 NSView 子类化为我的打印操作,但我得到的是三页,全部为纵向,切断了横向。我已经能够解决这个问题,将每个页面分成一个单独的打印作业,但这是不可接受的,因为它忽略了
中的设置NSPrintOperation *printOperation = [NSPrintOperation printOperationWithView: printView printInfo: printInfo];
[printView setCurrentForm: [formSet objectAtIndex: 0]];
[printOperation setShowsPrintPanel:YES];
[printOperation runOperationModalForWindow: [self window] delegate: nil didRunSelector: nil contextInfo: nil];
[printOperation cleanUpOperation];
[NSPrintOperation setCurrentOperation: nil];
从第一页调用(例如,如果他们从该对话框中选择 "PDF Open in Preview",我希望将这三个页面合并为一个作业,在预览中以 PDF 格式打开。)
我需要在呈现 NSView 的打印机版本的代码中做什么,才能强制 NSPrintOperation 更改方向?
在 rectForPage:
NSPrintOperation.currentOperation.printInfo.orientation = NSPaperOrientationLandscape;
或
NSPrintOperation.currentOperation.printInfo.orientation = NSPaperOrientationPortrait;