単一のページに印刷したいNSDocumentの子孫があります。ページが高さよりも広い場合は、収まるように引き伸ばされ、自動回転されます。レンダリングビューは、コンテンツに基づいて境界を決定します。rectForPageは単に[自己境界]を返します。knowsPageRangeは、range.length=1およびrange.location=1を設定し、YESを返します。印刷は以下のコードを使用して行われます。
すべてが機能し、自動回転を実行します。印刷パネルでは、プレビューが正しい形(高さよりも広い、正しいサイズなど)で表示されますが、次に印刷すると、ページはフィットしますが、縦向きモードでは、画像を不必要に縮小します。printInfo.paperSizeを設定しない場合、自動回転はOKですが、拡大縮小せず、代わりに画像をクリップします。何か案が?
追加情報:印刷パネルの[PDFの表示]には、プレビューで[OK]ページが表示されます。プレビューから印刷すると、プレビューの印刷パネルで回転した画像が紙のポトレイトの向きに一致するように表示されます(つまり、横向きの画像自体が回転して表示されます)。これは、印刷パネルに回転せずに表示される私の場合とは異なります。プレビューの印刷パネルから印刷すると、正しい処理が行われます。
- (NSPrintOperation *)printOperationWithSettings:(NSDictionary *)printSettings error:(NSError **)outError {
MindMapRenderingView *renderingView = [[MindMapRenderingView alloc] initWithMindMap:_mindMap
printJobTitle:[_mindMap singleLineTitle]];
NSSize pageSize = [renderingView bounds].size;
NSPrintOperation *printOperation = [NSPrintOperation printOperationWithView:renderingView
printInfo:[self printInfo]];
[renderingView release];
NSPrintInfo* printInfo = [printOperation printInfo];
[[printInfo dictionary] addEntriesFromDictionary:printSettings];
if (isLandscape)
[printInfo setOrientation:NSLandscapeOrientation];
else
[printInfo setOrientation:NSPortraitOrientation];
[printInfo setPaperSize:pageSize];
[printInfo setHorizontalPagination:NSFitPagination];
[printInfo setVerticalPagination:NSFitPagination];
return printOperation;
}