如何在swift 3中使用UIPrintInteractionController.print设置打印页数?
问题描述:
我使用UIPrintInteractionController
打印从UIWebView
一个html直接连接到打印机支持AirPrint。我想告诉UIPrinter
只应打印第一页。我怎样才能做到这一点?如何在swift 3中使用UIPrintInteractionController.print设置打印页数?
这里是我的代码至极打印所有网页:
let printer = UIPrinter(url: myURL)
let printerController = UIPrintInteractionController.shared
let printInfo = UIPrintInfo(dictionary: nil)
printInfo.jobName = "My print job name"
printInfo.outputType = .general
printerController.printInfo = printInfo
let printPageRenderer = MyCustomPageRenderer()
printPageRenderer.addPrintFormatter(myWebView.viewPrintFormatter(), startingAtPageAt: 0)
printerController.printPageRenderer = printPageRenderer
printerController.print(to: printer!) { (printerController, success, error) in
}
代码应与iOS 9.0兼容。
答
有一个在UIPrintPageRenderer
numberOfPages
属性,你可以覆盖。或者您可以设置UIPrintInteractionController
属性showsPageRange
至true。
更多参考,请使用此链接 - https://developer.apple.com/documentation/uikit/uiprintpagerenderer/1621631-numberofpages
好,但numberOfPages是只读的,所以如何覆盖? –
您尝试过showsPageRange = true; ? –
是的,但是使用print方法避免了对话框,所以在这种情况下属性是无用的,对吧? –