У меня есть UIView с подпредставлениями, как показано на картинке ниже.
Здесь я должен распечатать или поделиться отмеченным - просмотр.
Для общего доступа , я конвертирую отмеченный UIView в PDF и делюсь им по электронной почте.Он работает идеально, как ожидал мой клиент.
Для печати я конвертирую отмеченный UIView в UIImage и распечатываю его.Это также работает, но я должен распечатать этот преобразованный UIImage с масштабированием на странице. Но печать чеков слишком мала, как указано ниже (принтер Epson TM-T88V) .
Мой код для преобразования UIView в UIImage:
extension UIView {
func toImage() -> UIImage {
UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.main.scale)
drawHierarchy(in: self.bounds, afterScreenUpdates: false)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image!
}
}
Мой код для печати изображения:
@IBAction func act_PrintBtnPressed(_ sender: UIButton) {
m_PrintView.frame.size.height = view.frame.size.height
let printInfo = UIPrintInfo(dictionary:nil)
printInfo.outputType = UIPrintInfoOutputType.photo
printInfo.jobName = "PrintingReceipt"
printInfo.orientation = .portrait
let printController = UIPrintInteractionController.shared
printController.printInfo = printInfo
printController.printingItem = m_PrintView.toImage()
printController.showsNumberOfCopies = false
printController.present(animated: true, completionHandler: nil)
}
И, наконец, как установить количество копий, нужно печатать в самом коде.Потому что я не хочу устанавливать количество копий в пользовательском интерфейсе, поэтому я установил printController.showsNumberOfCopies
как ложное.
Пожалуйста, помогите мне создать это.