使用单个NSPrintOperation在单独的页面上打印多个图像

时间:2011-10-30 11:52:32

标签: objective-c cocoa printing

我有一个应用程序打算使用NSPrintOperation打印文档每页的光栅图像。我可以创建单个页面的NSImage并使用NSPrintOperation进行打印,如下所示

-void printPage:(NSImage)nsImage
{
    NSImageView *nsImageView = [[NSImageView alloc] init];
    NSSize imageSize = [nsImage size];
    [nsImageView setImage:(NSImage *)nsImage];
    [nsImageView setFrame:NSMakeRect(0, 0, imageSize.width, imageSize.height)];
    [nsImageView setImageScaling:NSScaleToFit];

    NSPrintOperation *mNSPrintOperation = [NSPrintOperation printOperationWithView:(NSView *)nsImageView];

    NSPrintInfo *currentNSPrintInfo = [NSPrintInfo sharedPrintInfo];
    [currentNSPrintInfo setHorizontalPagination:NSFitPagination];
    [currentNSPrintInfo setVerticalPagination:NSFitPagination];

    [mNSPrintOperation setPrintInfo:currentNSPrintInfo];
    [mNSPrintOperation setShowsPrintPanel:NO];
    [mNSPrintOperation setShowsProgressPanel:YES];

    [mNSPrintOperation runOperation];
}

现在,当我要打印多个页面时,我想使用单个NSPrintOperation打印所有页面。基本上,我希望将每个页面的NSImage/NSImageView作为单独的页面插入到单​​个NSView中,并使用此NSView最后使用NSPrintOperation进行打印。我想用单NSPrintOperation打印它的原因是我想获得显示当前页面打印的打印进度条。否则,我可以为每个NSPrintOperation创建一个单独的NSImageView并使用它进行打印。

0 个答案:

没有答案