У меня есть строка HTML для печати с помощью AirPrint в моем приложении для iOS. Однако строку можно настраивать, и пользователю разрешено устанавливать поля/отступы, размер шрифта/шрифта, ориентацию и т. д.
Таким образом, иногда на выходе может быть более 2 страниц, где вторая страница пуста. Там я хочу установить диапазон страниц для печати. На самом деле, я просто хочу напечатать только первую страницу, независимо от того, что будет на выходе.
Вот диалоговое окно контроллера взаимодействия с печатью, вы можете видеть, что диапазон не установлен, а вывод состоит из более чем одной страницы:
И вот мой код:
// create an html output text
let markupText = "<div style='width: 100%; text-align: center;'><div style='display: inline-block; margin-top: 35mm; margin-left: 45mm;'>Hello, printer.</div></div>"
// initialize print formatter
let formatter = UIMarkupTextPrintFormatter(markupText: markupText)
formatter.contentInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
formatter.startPage = 0
// initialize print renderer and set its formatter
let printRenderer = UIPrintPageRenderer()
printRenderer.addPrintFormatter(formatter, startingAtPageAtIndex: 0)
printRenderer.prepareForDrawingPages(NSMakeRange(0, 1))
// initialize print controller to present print dialog
let printController = UIPrintInteractionController.sharedPrintController()
printController.printPageRenderer = printRenderer
printController.presentAnimated(true, completionHandler: nil)
Мне не удалось найти достаточно информации об установке диапазона, хотя я думал, что метод prepareForDrawingPages
поможет. Любые идеи о том, как это сделать?