前提・実現したいこと
黄色のUIImageView(ピンクのUIImageVIew含む)をPDFとしてアプリ上で作成し、次のプレビュー画面で表示させたいと思っています。
いろいろなサイトを見たのですが、理解ができず進めません。
ご教授、サンプルコードなどありましたらよろしくお願いします。
pdfを作成するVC↓
swift
1 // UserDefaults のインスタンス 2 let userDefaults = UserDefaults.standard 3 4 func createPdfFromView(aView: UIView, saveToDocumentsWithFileName fileName: String) 5 { 6 print("プレビュー画面作成開始") 7 let pdfData = NSMutableData() 8 UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil) 9 UIGraphicsBeginPDFPage() 10 11 guard let pdfContext = UIGraphicsGetCurrentContext() else { return } 12 13 aView.layer.render(in: pdfContext) 14 UIGraphicsEndPDFContext() 15 16 if let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first { 17 let documentsFileName = documentDirectories + "/" + fileName 18 debugPrint(documentsFileName) 19 pdfData.write(toFile: documentsFileName, atomically: true) 20 print("プレビュー作成おわり") 21 // 保存 22 UserDefaults.standard.set(documentsFileName, forKey:"filePath") 23 24 } 25 } 26 27 28 29 @IBAction func preView(_ sender: UIButton) { 30 31 createPdfFromView(aView: canvasView, saveToDocumentsWithFileName: "test") 32 33 } 34
pdfを表示するVC
swift
1import UIKit 2import PDFKit 3 4class ViewController3: UIViewController { 5 6 @IBOutlet weak var pdfView: PDFView! 7 8 9 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 14 15 let pdfView = PDFView(frame: view.frame) 16 17 18 // 読み込み 19 let Path = UserDefaults.standard.string(forKey:"filePath") 20 let pdfURL = URL(fileURLWithPath: Path) 21 22 23 let document = PDFDocument(url: pdfURL) 24 pdfView.document = document 25 pdfView.backgroundColor = .lightGray 26 27 // PDFの拡大率を調整する 28 pdfView.autoScales = true 29 // 表示モード 30 pdfView.displayMode = .singlePageContinuous 31 32 view.addSubview(pdfView) 33 34 } 35}
###エラー該当箇所
class AppDelegate: UIResponder, UIApplicationDelegate{
Thread 1: signal SIGABRT
補足情報(FW/ツールのバージョンなど)
Swiftのversionは4.1.2
Xcodeのversionは9.4.1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/10 04:21