En essayant d'imprimer directement à partir de mon application - c'est une liste de contrôle. Le seul problème est lorsque j'imprime, l'image remplira seulement 1/4 du papier d'impression. Je veux que l'image remplisse le papier de 8,5 pouces sur 11 pouces.Comment mon bouton d'impression peut-il imprimer des images de 8,5 pouces sur 11 pouces? Swift 3, IOS
Ceci est mon bouton d'impression:
@IBAction func buttonAction2(_ sender: UIButton) {
//Screenshot of view controller (minus status/Nav bar)
let top: CGFloat = 46
let bottom: CGFloat = 0
let size = CGSize(width: view.frame.size.width, height: view.frame.size.height - top - bottom)
UIGraphicsBeginImageContextWithOptions(size, false, 0)
let context = UIGraphicsGetCurrentContext()!
context.translateBy(x: 0, y: -top)
view.layer.render(in: context)
let snapshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
///Print screenshot
let printController = UIPrintInteractionController.shared
let printInfo = UIPrintInfo(dictionary:nil)
printInfo.jobName = "printing an image"
printInfo.outputType = .photo
printController.printInfo = printInfo
printController.printingItem = snapshot
printController.present(animated: true) { (_, isPrinted, error) in if error == nil {
if isPrinted {
print("image is printed")
}else{
print("image is not printed")
}
}
}
}
je peux enregistrer l'image sur mon rôle d'appareil photo et d'imprimer à partir de là, au lieu d'imprimer directement à partir de mon application et qui fonctionne parfaitement. L'image remplit la page entière, lors de l'impression de mon appareil photo rouleau:
//Save photo to camera roll
UIImageWriteToSavedPhotosAlbum(snapshot!, nil, nil, nil)
J'ai vraiment besoin d'imprimer à partir de l'application, cependant. Y'a-t-il une quelconque façon de réussir cela?
L'image est maintenant 75% coupé (de lui faire sauter), et encore remplir seulement 75% de la page. – DanielG