可用打印机及其 URL 的日志列表
Log list of available printers and their URLs
我正在尝试设置一个 UIPrinter
实例,以便我的 iPad 应用程序可以直接打印到该打印机,而无需显示打印控制器对话框。我遇到的问题是我似乎找不到这台打印机的 URL。它通过 AirPrint 连接。
访问http://localhost:631/printers/
确实显示了打印机,但是显示的是打印机的USB版本URL(即usb://Brother/QL-710W?serial=12345
)。
我想知道的是,我如何打印(到调试输出)我的可用打印机列表及其 URL?我想通过这样做我可以找到我打印机的 AirPrint URL 并从那里开始。
谢谢!
这可能不是最好的方法,但我最终显示了 Printer Picker Controller,然后打印(到调试区域)所选 UIPrinter 的 URL:
let pickerController = UIPrinterPickerController(initiallySelectedPrinter: nil)
pickerController.presentFromRect(CGRectMake(0, 0, 300, 500), inView: self, animated: true) { (controller:UIPrinterPickerController!, completed:Bool, error:NSError!) -> Void in
println(controller.selectedPrinter?.URL)
}
如果有更好的方法,欢迎提出建议!
这是我做的。
Global Var
var ReceiptPrinterHolder = NSURL()
var currentPrinter: UIPrinter?
var ReceiptPrinter: UIPrinter?
func Works(){
let printerPicker = UIPrinterPickerController(initiallySelectedPrinter: currentPrinter2)
printerPicker.presentFromRect(CGRectMake(0, 0, 300, 500), inView: view, animated: true, completionHandler: {
(printerPicker, userDidSelect, error) in
if userDidSelect {
var selectedPrinter: UIPrinter? { return printerPicker.selectedPrinter }
currentPrinter = selectedPrinter
self.DisplaySelectedAction()
}else{
print("Did not work")
}
})
// return currentPrinter2!
}
@IBAction func ReceiptPrinterAction() {
Works()
if currentPrinter != nil {
Label2.text = "Receipt Printer \(ReceiptPrinter!.displayName)"
ReceiptPrinter = currentPrinter
ReceiptPrinterHolder = ReceiptPrinter!.URL
}
}
这是 Swift 3 中针对 2017 年遇到同样问题的任何人的简化版本:
let pickerController = UIPrinterPickerController(initiallySelectedPrinter: nil)
pickerController.present(animated: true) { (controller, completed, error) in
if completed == true {
print(controller.selectedPrinter!.url)
}
}
我正在尝试设置一个 UIPrinter
实例,以便我的 iPad 应用程序可以直接打印到该打印机,而无需显示打印控制器对话框。我遇到的问题是我似乎找不到这台打印机的 URL。它通过 AirPrint 连接。
访问http://localhost:631/printers/
确实显示了打印机,但是显示的是打印机的USB版本URL(即usb://Brother/QL-710W?serial=12345
)。
我想知道的是,我如何打印(到调试输出)我的可用打印机列表及其 URL?我想通过这样做我可以找到我打印机的 AirPrint URL 并从那里开始。
谢谢!
这可能不是最好的方法,但我最终显示了 Printer Picker Controller,然后打印(到调试区域)所选 UIPrinter 的 URL:
let pickerController = UIPrinterPickerController(initiallySelectedPrinter: nil)
pickerController.presentFromRect(CGRectMake(0, 0, 300, 500), inView: self, animated: true) { (controller:UIPrinterPickerController!, completed:Bool, error:NSError!) -> Void in
println(controller.selectedPrinter?.URL)
}
如果有更好的方法,欢迎提出建议!
这是我做的。
Global Var
var ReceiptPrinterHolder = NSURL()
var currentPrinter: UIPrinter?
var ReceiptPrinter: UIPrinter?
func Works(){
let printerPicker = UIPrinterPickerController(initiallySelectedPrinter: currentPrinter2)
printerPicker.presentFromRect(CGRectMake(0, 0, 300, 500), inView: view, animated: true, completionHandler: {
(printerPicker, userDidSelect, error) in
if userDidSelect {
var selectedPrinter: UIPrinter? { return printerPicker.selectedPrinter }
currentPrinter = selectedPrinter
self.DisplaySelectedAction()
}else{
print("Did not work")
}
})
// return currentPrinter2!
}
@IBAction func ReceiptPrinterAction() {
Works()
if currentPrinter != nil {
Label2.text = "Receipt Printer \(ReceiptPrinter!.displayName)"
ReceiptPrinter = currentPrinter
ReceiptPrinterHolder = ReceiptPrinter!.URL
}
}
这是 Swift 3 中针对 2017 年遇到同样问题的任何人的简化版本:
let pickerController = UIPrinterPickerController(initiallySelectedPrinter: nil)
pickerController.present(animated: true) { (controller, completed, error) in
if completed == true {
print(controller.selectedPrinter!.url)
}
}