2017-03-04 10 views
0

私のアプリから直接印刷しようとしています。それはチェックリストです。私が印刷するときだけの問題です、イメージは印刷用紙の1/4を満たすでしょう。 8.5インチ×11インチのフルサイズの用紙に画像を欲しい。印刷ボタンで8.5インチx 11インチのイメージを印刷するにはどうすればよいですか? Swift 3、IOS

これは私の印刷ボタンです:

@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") 
     } 
     } 
    } 

} 

は、私は私のカメラロールに画像を保存し、代わりに私のアプリから直接印刷する、そこから印刷し、それが完璧に動作することができます。カメラのロールから印刷すると、イメージはページ全体を塗りつぶします。

//Save photo to camera roll 
    UIImageWriteToSavedPhotosAlbum(snapshot!, nil, nil, nil) 

私は本当にアプリから印刷する必要があります。これを達成する方法はありますか?

答えて

0

翻訳後に文脈を拡大しようとしましたか?

context.translateBy(x: 0, y: -top) 
context.scaleBy(x: 2, y: 2) 
+0

画像は今75%が遮断され、まだのみのページの75%を埋める(それが吹いてから)。 – DanielG

0

私はそれを理解しました。私はばかです。

使用:代わりの

printInfo.outputType = .general 

printInfo.outputType = .photo 
関連する問題