2016-06-01 3 views
0

NSPrintOperationを使用してshowsPanelをtrueに設定すると、ビューは正常に印刷されますが、プロパティをfalseに設定すると、紙:NSPrintOperationを使用するとPrintPanelをfalseに設定すると、印刷時にサイズが異なる

func printBadge(printerName: String){ 
    let printingFrame = NSRect(x: 0, y: 0, width: AppManager.sharedInstance.badge.width, height: AppManager.sharedInstance.badge.height) 
    let badgeView = BadgeView(frame: printingFrame) 
    let printOperation = NSPrintOperation(view: badgeView) 
    let printInfo = printOperation.printInfo 

    printInfo.printer = NSPrinter(name: printerName)! 
    printInfo.paperSize = NSSize(width: AppManager.sharedInstance.badge.width, height: AppManager.sharedInstance.badge.height) 
    printInfo.horizontalPagination = .AutoPagination 
    printInfo.verticalPagination = .AutoPagination 
    printInfo.topMargin = 0 
    printInfo.bottomMargin = 0 
    printInfo.rightMargin = 0 
    printInfo.leftMargin = 0 
    printInfo.horizontallyCentered = true 
    printInfo.verticallyCentered = true 
    printOperation.showsPrintPanel = AppManager.sharedInstance.showsPrintPanel! 
    printOperation.runOperation() 
} 
+0

「オートページング」の代わりに「フィットペインティング」を試しましたか? – Willeke

+0

はい、.Fitと.Autoの両方を試してみましたが、両方とも同じ結果が得られました。 – ColinMasters

+1

'printInfo.paperSize'は正しいですか?プリンタは余白なしで印刷できますか? – Willeke

答えて

0

私は最終的に問題を解決し、NSPrintInfo.paperSizeはポイントを取り、ないピクセルを、そのピクセルミリメートルから私の計算では、(プリンタの設定はミリメートルではなくピクセルまたはポイントである)間違っていました。

興味のある方は、ミリメートルからポイントまでの計算は、

millimetres * 72/25.4 
関連する問題