OS X アプリに印刷を実装しようとしていますが、解決できない問題があります。
たとえば、Safari では、印刷をクリックすると、印刷パネルにコンテンツが縦向きモードでどのように印刷されるかが表示されます。方向ボタンをクリックすると、横向きモードで内容が表示されます。
向きが変わるたびに内容が拡大縮小されることに注意してください。
アプリで同じことを試しても、内容は変わりません。その幅は、縦向きでも横向きでも同じです。
私が見落としているかもしれない NSPrintOperation または NSPrintInfo の設定はありますか?
更新- 今すぐコードで:
- (NSPrintOperation *)printOperationWithSettings:(NSDictionary *)printSettings error:(NSError **)outError {
NSPrintInfo *pInfo = [NSPrintInfo sharedPrintInfo];
[pInfo setLeftMargin:32];
[pInfo setRightMargin:32];
[pInfo setTopMargin:64];
[pInfo setBottomMargin:64];
[pInfo setHorizontalPagination:NSFitPagination];
[pInfo setVerticallyCentered:NO];
[[pInfo dictionary] setValue:[NSNumber numberWithBool:YES] forKey:NSPrintHeaderAndFooter];
[[pInfo dictionary] addEntriesFromDictionary:printSettings];
PrintTextView *printView = [[[PrintTextView alloc] initWithFrame:[pInfo imageablePageBounds]] autorelease];
printView.printJobTitle = @"Printed";
MSTablePrint *tPrint = [[[MSTablePrint alloc] init] autorelease];
NSMutableArray *itemArray = [[[NSMutableArray alloc] init] autorelease];
/*
Objects are added to "itemArray"
*/
NSAttributedString *atString = [tPrint attributedStringFromItems:itemArray];
[[printView textStorage] setAttributedString:atString];
NSPrintOperation *printOp = [NSPrintOperation printOperationWithView:printView printInfo:pInfo];
return printOp;
}
- (IBAction)print:(id)sender {
NSError *printError = nil;
NSPrintOperation *printOperation = [self printOperationWithSettings:nil error:&printError];
[[printOperation printPanel] setOptions:[[printOperation printPanel] options] | NSPrintPanelShowsPageSetupAccessory];
[printOperation runOperation];
}
ご協力ありがとうございました。