2017-09-18 6 views
0

Je veux créer un PDF en utilisant UIWebView. Comme j'ai des détails de feuille de travail et je veux enregistrer générer des PDF dans Swift. J'utilise le format HTML avec des tableaux, mais en deuxième page, ma frontière est en train de se couper.Comment créer un PDF dans Swift

Répondre

0

Pour Swift 2 Je l'habitude d'utiliser chaîne html (est le code html exact utilisé pour votre table) sous forme de chaîne! Puis

let render = UIPrintPageRenderer() 
    let fmt = UIMarkupTextPrintFormatter(markupText: html) 

    render.addPrintFormatter(fmt, startingAtPageAtIndex: 0) 

    // 3. Assign paperRect and printableRect 

    let page = CGRect(x: 0, y: 0, width: 612, height: 792) // some defaults 
    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 pointzero = CGPoint(x: 0,y :0) 
    let rect = CGRect.zero 
    let pdfData = NSMutableData() 
    UIGraphicsBeginPDFContextToData(pdfData, .zero, nil) 

    for i in 0..<render.numberOfPages { 
     UIGraphicsBeginPDFPage(); 
     render.drawPageAtIndex(i, inRect: UIGraphicsGetPDFContextBounds()) 
    } 

    UIGraphicsEndPDFContext(); 

    // 5. Save PDF file 
    let path = "\(NSTemporaryDirectory())sd.pdf" 

    pdfData.writeToFile(path, atomically: true) 
    print("open \(path)")