【Swift4】 UIActivity: 「PDFを作成」 (Create PDF) を実装する。


UIActivityViewControllerの「PDFを作成」(英語版では、Create PDF)というメニューを実装してみました。
UITextViewのテキストをPDF化します。テキストのサイズが画面からはみ出ていても、すべてPDFにしてくれます。

↓右上のアクションボタンを押すと・・・

UITextViewのインスタンスを「var myText:UITextView!」、
右上のアクションボタンを「var actionButton:UIBarButtonItem!」とします。


import UIKit
import Accounts

class ViewController: UIViewController {

    @IBOutlet var myText:UITextView!
    @IBOutlet var actionButton:UIBarButtonItem!

    override func viewDidLoad() {
        super.viewDidLoad()
        myText.text = "こんにちは!\nこのアプリは\nUITextViewを\npdfで保存できます\n\n\n\n\n\n"
    }

    @IBAction func myAction(){
        let pdfData = NSMutableData()
        UIGraphicsBeginPDFContextToData(pdfData, self.view.bounds, nil)
        let pdfContext = UIGraphicsGetCurrentContext()
        myText.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: myText.contentSize)
        UIGraphicsBeginPDFPageWithInfo(myText.frame, nil)
        self.myText.layer.render(in: pdfContext!)
        UIGraphicsEndPDFContext()

        let activityItems = [myText.text,pdfData] as [Any]
        let activityVC = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
        self.present(activityVC, animated: true, completion: nil)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}