我在应用程序中使用以下代码进行打印:
init() {
self.printInfo.outputType = UIPrintInfoOutputType.photo
self.printInfo.orientation = UIPrintInfoOrientation.landscape
self.printController.printInfo = self.printInfo
self.printer = UIPrinter(url: URL(string: printIP)!)
// where printIP is a string that give the internal IP of the printer
debugPrint(printIP)
}
func print(image: UIImage) -> Bool {
self.printController.printingItem = image
printController.print(to: printer, completionHandler: {(controller, success, error) -> Void in
if success {
debugPrint("Printing Completed.")
} else {
debugPrint("Printing Failed.")
}
})
return true
}
它可以成功打印。但是,当触发该功能时,会出现一个警告框,指示它正在与打印机联系并进行打印。有没有办法避免弹出此警报框?我希望在后面进行打印,而不会在屏幕上显示任何干扰用户体验的内容(我想在打印机正在后面工作时播放电影)。
感谢。
答案 0 :(得分:2)
从iOS 8开始,有一种方法可以在没有任何演示的情况下进行打印 打印UI。而不是每次用户按下时呈现UI 打印按钮,您可以为用户提供选择打印机的方法 使用易于使用的UIPrinterPickerController在您的应用程序中的某个位置。 它在其构造函数中接受一个可选的UIPrinter实例 预选,使用与上述相同的演示选项, 并且具有用户选择她时的完成处理程序 打印机:
Swift 3
let printerPicker = UIPrinterPickerController(initiallySelectedPrinter: savedPrinter)
printerPicker.present(animated: true) {
(printerPicker, userDidSelect, error) in
if userDidSelect {
self.savedPrinter = printerPicker.selectedPrinter
}
}
现在,您可以通过使用保存的打印机调用printToPrinter(:completionHandler :)而不是使用当前的...方法之一来告诉您的UIPrintInteractionController直接打印。