2016-12-01 216 views
0

當我按下回車按鈕時,我的應用程序創建一個pdf文件。我通過下面的代碼來做到這一點。此刻我想保存後自動打開保存的文件。保存後自動打開pdf文件

保存代碼:

@IBAction func EnterButtonAction(_ sender: AnyObject) { 

    let html = "PDF FILE TITLE" 

    let fmt = UIMarkupTextPrintFormatter(markupText: html) 

    // 2. Assign print formatter to UIPrintPageRenderer 
    let render = UIPrintPageRenderer() 
    render.addPrintFormatter(fmt, startingAtPageAt: 0) 

    // 3. Assign paperRect and printableRect 
    let page = CGRect(x: 0, y: 0, width: 595.2, height: 1000) // A4, 72 dpi 
    let printable = page.insetBy(dx: 0, dy: 0) 

    render.setValue(NSValue(cgRect: page), forKey: "paperRect") 
    render.setValue(NSValue(cgRect: printable), forKey: "printableRect") 

    // 4. Create PDF context and draw 
    let pdfData = NSMutableData() 
    UIGraphicsBeginPDFContextToData(pdfData, CGRect.zero, nil) 

    for i in 1...render.numberOfPages { 

     UIGraphicsBeginPDFPage(); 
     let bounds = UIGraphicsGetPDFContextBounds() 
     render.drawPage(at: i - 1, in: bounds) 
    } 

    UIGraphicsEndPDFContext(); 

    // Save PDF file 
    let path = "\(NSTemporaryDirectory())MyAppFile.pdf" 
    pdfData.write(toFile: path, atomically: true) 
    print("open \(path)") // command to open the generated file 
    } 

回答

0

可以使用UIDocumentInteractionController打開PDF文件,並找到下面的代碼:

func showFileWithPath(path: String){ 
    let isFileFound:Bool? = NSFileManager.defaultManager().fileExistsAtPath(path) 
    if isFileFound == true{ 
     let viewer = UIDocumentInteractionController(URL: NSURL(fileURLWithPath: path)) 
     viewer.delegate = self 
     viewer.presentPreviewAnimated(true) 
    } 
} 
+0

此問題不完全關於如何打開文件。 –

+0

@ElTomato問題:「此刻我想在保存後自動打開保存的文件。」 –

+0

@ElTomato還有什麼我失蹤? –

0

pdfData.write(toFile: path, atomically: true);是同步調用,所以你可以寫代碼來打開文件直接在這一行之後,但首先檢查文件是否寫入成功。

var success = pdfData.write(toFile: path, atomically: true); 

if success { 
//Write code to open file in Webview or UIDocumentInteractionController 
}