如何在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兼容。

有一个在UIPrintPageRenderernumberOfPages属性,你可以覆盖。或者您可以设置UIPrintInteractionController属性showsPageRangetrue

更多参考,请使用此链接 - https://developer.apple.com/documentation/uikit/uiprintpagerenderer/1621631-numberofpages

+0

好,但numberOfPages是只读的,所以如何覆盖? –

+0

您尝试过showsPageRange = true; ? –

+0

是的,但是使用print方法避免了对话框,所以在这种情况下属性是无用的,对吧? –