title: Converting uiimageview to pdf - Swift
body: <p>I am trying to create an iOS app using swift that will let the user either take a photo or choose an image from their gallery, and convert it to a pdf file that they are able to save to their phone. My code currently works to open either the camera or the gallery and choose an image, but I'm unable to convert it to pdf. 
  Any tips would be really appreciated, thanks!</p>
  
  <p>CameraViewController class</p>
  
  <pre><code>import UIKit
  
  class CameraViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate
   {
  
      @IBOutlet weak var myImg: UIImageView!
  
      @IBAction func takePhoto(_ sender: AnyObject) {
          if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) {
              let imagePicker = UIImagePickerController()
              imagePicker.delegate = self
              imagePicker.sourceType = UIImagePickerControllerSourceType.camera
              imagePicker.allowsEditing = false
              self.present(imagePicker, animated: true, completion: nil)
          }
      }
  
      func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
          if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
              myImg.contentMode = .scaleToFill
              myImg.image = pickedImage
          }
          picker.dismiss(animated: true, completion: nil)
      }
  
      @IBAction func savePhoto(_ sender: AnyObject) {
          let imageData = UIImagePNGRepresentation(myImg.image!)
          let compressedImage = UIImage(data: imageData!)
          UIImageWriteToSavedPhotosAlbum(compressedImage!, nil, nil, nil)
  
          let alert = UIAlertController(title: "Saved", message: "Your image has been saved", preferredStyle: .alert)
          let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)
          alert.addAction(okAction)
          self.present(alert, animated: true, completion: nil)
      }
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          // Do any additional setup after loading the view.
      }
  
      override func didReceiveMemoryWarning() {
          super.didReceiveMemoryWarning()
          // Dispose of any resources that can be recreated.
      }
  
  }
  </code></pre>
  
  <p>GalleryViewController class</p>
  
  <pre><code>import UIKit
  
  class GalleryViewController: UIViewController {
  
      @IBOutlet weak var myImg: UIImageView!
  
      @IBAction func pickPhoto(_ sender: Any) {
          if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary) {
              let imagePicker = UIImagePickerController()
              imagePicker.delegate = self as? UIImagePickerControllerDelegate &amp; UINavigationControllerDelegate
              imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
              imagePicker.allowsEditing = true
              self.present(imagePicker, animated: true, completion: nil)
          }
      }
  
      func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
          if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
              myImg.contentMode = .scaleToFill
              myImg.image = pickedImage
          }
          picker.dismiss(animated: true, completion: nil)
      }
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          // Do any additional setup after loading the view.
      }
  
      override func didReceiveMemoryWarning() {
          super.didReceiveMemoryWarning()
          // Dispose of any resources that can be recreated.
      }
  
  }
  </code></pre>