0

假设我有一个三页的报告要打印出来,第一页是纵向的,第二页是横向的,第三页是纵向的。

我已经将一个特殊的 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”,我希望将这三个页面合并为一个作业,在预览中作为 PDF 打开。)

我需要在呈现 NSView 的打印机版本的代码中做什么,以强制 NSPrintOperation 更改方向?

4

1 回答 1

0

设置方向rectForPage:

NSPrintOperation.currentOperation.printInfo.orientation = NSPaperOrientationLandscape;

或者

NSPrintOperation.currentOperation.printInfo.orientation = NSPaperOrientationPortrait;
于 2019-09-05T08:43:57.147 回答