在macosx上打印:打印nstableview的最佳方法是什么

时间:2016-05-09 14:46:35

标签: objective-c macos nstableview nsview nsprintoperation

我在macosx上从桌面应用程序打印时遇到问题。 我在我用于打印的IB文件中构建了一个视图。 然后通过

打电话给我的行动
printOp = [NSPrintOperation printOperationWithView:self.myPrintView printInfo: printInfo];

打印NSView

就在此之前,我使用了一个简单的函数

[self displayPrintingData];

在视图上构建我的数据

-(void)displayPrintingData {

   //header
   self.headerData.alignment = NSTextAlignmentCenter;
   self.headerData.string = @"bla bla bla";
   self.footerData.string = @"ribla ribla ribla";

   [self.printTableView reloadData];
}

我的问题是我需要打印尽可能多的行(使用不同的nsview和不同的nstableview)。 如何达到缩短或延长NSTableView的目标?这是动态打印多行的最佳方法吗?

提前感谢您的建议!!!!!

欢呼声

1 个答案:

答案 0 :(得分:1)

示例:

NSPrintOperation *printOperation = [NSPrintOperation printOperationWithView:self.printTableView];
NSPrintInfo *printInfo = printOperation.printInfo;
[printInfo.dictionary setObject:@YES forKey:NSPrintHeaderAndFooter];
[printOperation runOperation];

注意:视图是tableview。这是NSTableView的子类,包含方法:

- (NSAttributedString *)pageHeader
{
    return [[NSAttributedString alloc] initWithString:@"bla bla bla"];
}

- (NSAttributedString *)pageFooter
{
    return [[NSAttributedString alloc] initWithString:@"ribla ribla ribla"];
}