2016-12-01 219 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 
}