2016-12-01 3 views
0

Meine App erstellt eine PDF-Datei, wenn ich die Eingabetaste drücken. Ich mache das mit dem folgenden Code. Im Moment möchte ich die gespeicherte Datei nach dem Speichern automatisch öffnen.Öffnen Sie die PDF-Datei automatisch nach dem Speichern

Der Code für das Speichern:

@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 
    } 

Antwort

0

Sie können Ihre PDF Datei mit UIDocumentInteractionController öffnen und den Code unten finden:

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

Bei dieser Frage geht es nicht genau darum, wie man eine Datei öffnet. –

+0

@ElTomato Frage: "Im Moment möchte ich die gespeicherte Datei automatisch nach dem Speichern öffnen." –

+0

@ElTomato Sonst noch was fehlt mir? –

0

pdfData.write(toFile: path, atomically: true); synchroner Aufruf, so dass Sie Code schreiben können Datei zu öffnen direkt nach dieser Zeile, aber zuerst prüfen, ob die Datei erfolgreich geschrieben wurde.

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

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