私は次のような印刷機能を持っています:
- (void)sendToPrinter:(int)code {
NSPrintInfo *printInfo;
NSPrintInfo *sharedInfo;
NSPrintOperation *printOp;
NSMutableDictionary *printInfoDict;
NSMutableDictionary *sharedDict;
sharedInfo = [NSPrintInfo sharedPrintInfo];
sharedDict = [sharedInfo dictionary];
printInfoDict = [NSMutableDictionary dictionaryWithDictionary:
sharedDict];
[printInfoDict setObject:NSPrintSpoolJob
forKey:NSPrintJobDisposition];
printInfo = [[NSPrintInfo alloc] initWithDictionary: printInfoDict];
[printInfo setHorizontalPagination: NSAutoPagination];
[printInfo setVerticalPagination: NSAutoPagination];
[printInfo setVerticallyCentered:NO];
[printInfo setLeftMargin:10];
[printInfo setRightMargin:10];
[printInfo setTopMargin:10];
[printInfo setBottomMargin:10];
[printInfo setScalingFactor:1.1];
printOp = [NSPrintOperation printOperationWithView:sheet
printInfo:printInfo];
[printOp setShowsPrintPanel:YES];
[printOp runOperation];
}
これは、シートと呼ばれるページプレビューの表現を印刷します。これはNSBox
です。これは正常に機能します。
時々私はページに収まることができるより多くの情報を持っているので、関連するデータでシートをリロードすることによってシートをPage2、Page3などの表現で埋める「次のページ」ボタンがあります。これは正常に機能します。
ここで、1ページではなく2ページまたは3ページに収まる情報を印刷したい場合は、ページネーションではなく、印刷する前に手動でフィードNSPrintInfo
または追加のページを表示できるようにします。NSPrintOperation
何かのようなもの:
printOp = [NSPrintOperation printOperationWithView:sheet
printInfo:printInfo];
[self nextPage];
printOp = [NSPrintOperation printOperationWithView:sheet
printInfo:printInfo];
[self nextPage];
printOp = [NSPrintOperation printOperationWithView:sheet
printInfo:printInfo];
// run this in loop until all the pages are accounted for
[printOp setShowsPrintPanel:YES];
[printOp runOperation];
解決策はありますか?前もって感謝します。