2017-10-19 28 views
1

J'utilise le UIPrintInteractionController pour imprimer un code HTML à partir d'un UIWebView directement sur une imprimante AirPrint. Je voudrais dire au UIPrinter que seule la première page devrait être imprimée. Comment puis-je faire ceci?Comment définir le nombre de pages à imprimer en utilisant UIPrintInteractionController.print dans swift 3?

Voici mon code Wich imprime toutes les pages:

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 

} 

Le code doit être compatible avec iOS 9.0.

Répondre

0

Il y a numberOfPages propriété UIPrintPageRenderer que vous pouvez remplacer. Ou vous pouvez simplement définir la UIPrintInteractionController propriété showsPageRange à true.

Pour plus référence s'il vous plaît utiliser voir ce lien - https://developer.apple.com/documentation/uikit/uiprintpagerenderer/1621631-numberofpages

+0

Ok, mais NumberOfPages est en lecture seule, comment passer outre? –

+0

Avez-vous essayé showsPageRange = true; ? –

+0

Oui, mais avec la méthode d'impression j'évite le dialogue, donc la propriété est inutile dans ce cas, non? –