|
@@ -365,25 +365,27 @@ extension KMPrintWindowController {
|
|
guard let document = document else { return }
|
|
guard let document = document else { return }
|
|
if (document.allowsPrinting == true) {
|
|
if (document.allowsPrinting == true) {
|
|
let printInfo = NSPrintInfo.shared
|
|
let printInfo = NSPrintInfo.shared
|
|
- var printOperation: NSPrintOperation = NSPrintOperation()
|
|
|
|
let scalingMode: PDFPrintScalingMode = .pageScaleToFit
|
|
let scalingMode: PDFPrintScalingMode = .pageScaleToFit
|
|
if document.responds(to: NSSelectorFromString("printOperationForPrintInfo:scalingMode:autoRotate:")) {
|
|
if document.responds(to: NSSelectorFromString("printOperationForPrintInfo:scalingMode:autoRotate:")) {
|
|
- printOperation = document.printOperation(for: printInfo, scalingMode: scalingMode, autoRotate: false) ?? NSPrintOperation()
|
|
|
|
|
|
+ if let printOperation = document.printOperation(for: printInfo, scalingMode: scalingMode, autoRotate: false) {
|
|
|
|
+ printOperation.printPanel.options = [.showsPreview, .showsCopies, .showsOrientation, .showsPageRange, .showsPaperSize, .showsCopies, .showsPrintSelection, .showsScaling]
|
|
|
|
+ let controller = KMPrintAccessoryController_OC(nibName: "KMPrintAccessoryController_OC", bundle: nil)
|
|
|
|
+ printOperation.printPanel.addAccessoryController(controller)
|
|
|
|
+
|
|
|
|
+ printOperation.runModal(for: NSWindow.currentWindow(), delegate: self, didRun: nil, contextInfo: nil)
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ self.openPrinter(document: document)
|
|
}
|
|
}
|
|
-
|
|
|
|
- printOperation.printPanel.options = [.showsPreview, .showsCopies, .showsOrientation, .showsPageRange, .showsPaperSize, .showsCopies, .showsPrintSelection, .showsScaling]
|
|
|
|
- let controller = KMPrintAccessoryController_OC(nibName: "KMPrintAccessoryController_OC", bundle: nil)
|
|
|
|
- printOperation.printPanel.addAccessoryController(controller)
|
|
|
|
-
|
|
|
|
- printOperation.runModal(for: NSWindow.currentWindow(), delegate: self, didRun: nil, contextInfo: nil)
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
static func openPrinter(document: PDFDocument) {
|
|
static func openPrinter(document: PDFDocument) {
|
|
let printInfo = NSPrintInfo.shared
|
|
let printInfo = NSPrintInfo.shared
|
|
- let printOperation: NSPrintOperation = document.printOperation(for: printInfo, scalingMode: .pageScaleNone, autoRotate: true)!
|
|
|
|
- printOperation.showsPrintPanel = true //是否弹出打印机设置界面
|
|
|
|
- printOperation.run()
|
|
|
|
|
|
+ if let printOperation: NSPrintOperation = document.printOperation(for: printInfo, scalingMode: .pageScaleNone, autoRotate: true) {
|
|
|
|
+ printOperation.showsPrintPanel = true //是否弹出打印机设置界面
|
|
|
|
+ printOperation.run()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -445,11 +447,13 @@ extension KMPrintWindowController: KMPrintBottomViewDelegate {
|
|
|
|
|
|
guard let url = self.presenter.printData.url else { return }
|
|
guard let url = self.presenter.printData.url else { return }
|
|
let document = PDFDocument.init(url: url)
|
|
let document = PDFDocument.init(url: url)
|
|
|
|
+ guard let document = document else { return }
|
|
let printInfo = NSPrintInfo.shared
|
|
let printInfo = NSPrintInfo.shared
|
|
- let printOperation: NSPrintOperation = document!.printOperation(for: printInfo, scalingMode: .pageScaleNone, autoRotate: true)!
|
|
|
|
- let printPanel = printOperation.printPanel
|
|
|
|
- printPanel.options = [.showsOrientation, .showsPageRange, .showsPaperSize, .showsScaling, .showsPreview]
|
|
|
|
- printOperation.runModal(for: self.window!, delegate: self, didRun: nil, contextInfo: nil)
|
|
|
|
|
|
+ if let printOperation: NSPrintOperation = document.printOperation(for: printInfo, scalingMode: .pageScaleNone, autoRotate: true) {
|
|
|
|
+ let printPanel = printOperation.printPanel
|
|
|
|
+ printPanel.options = [.showsOrientation, .showsPageRange, .showsPaperSize, .showsScaling, .showsPreview]
|
|
|
|
+ printOperation.runModal(for: self.window!, delegate: self, didRun: nil, contextInfo: nil)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
func cancelAction() {
|
|
func cancelAction() {
|
|
@@ -465,9 +469,10 @@ extension KMPrintWindowController: KMPrintBottomViewDelegate {
|
|
// let document = PDFDocument.init(url: url)
|
|
// let document = PDFDocument.init(url: url)
|
|
guard let document = self.tempPDFDocument else { return }
|
|
guard let document = self.tempPDFDocument else { return }
|
|
let printInfo = NSPrintInfo.shared
|
|
let printInfo = NSPrintInfo.shared
|
|
- let printOperation: NSPrintOperation = document.printOperation(for: printInfo, scalingMode: .pageScaleNone, autoRotate: true)!
|
|
|
|
- printOperation.showsPrintPanel = true //是否弹出打印机设置界面
|
|
|
|
- printOperation.run()
|
|
|
|
|
|
+ if let printOperation: NSPrintOperation = document.printOperation(for: printInfo, scalingMode: .pageScaleNone, autoRotate: true) {
|
|
|
|
+ printOperation.showsPrintPanel = true //是否弹出打印机设置界面
|
|
|
|
+ printOperation.run()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
func posterAction() {
|
|
func posterAction() {
|