2016-07-14 7 views
0

Ich habe ein iOS Projekt verwende ich Xcode7 und Swift2 arbeiten. Ich habe eine array, die in einer UITableView gehalten wird. Ich habe einen Export UIButton, die den Inhalt der array nimmt und trennt die strings und legt sie in einem PDF, Zeile für Zeile, wobei jede Zeile eine getrennt string zu sein.Wie füge ich Ränder zu PDF hinzu, das vom Array [String] zum Drucken erstellt wurde?

Variablen umfassen:

var pdfData = NSMutableData() 
bookList: [String] = [] 

Dieser Teil meines Codes ist:

// Loop through book list, increasing each one and displaying individually as string items for body 
    for i in 0 ..< bookList.count { 
     body += "<p><font size=3><br>\(bookList[i] as String)</br></font></p>" 
    } 

    html = "\(body)" 

    let fmt = UIMarkupTextPrintFormatter(markupText: html) 

    // Assign print formatter to UIPrintPageRenderer 

    let render = UIPrintPageRenderer() 
    render.addPrintFormatter(fmt, startingAtPageAtIndex: 0) 

    // Assign paperRect and printableRect 

    let page = CGRect(x: 0, y: 0, width: 595.2, height: 841.8) // A4, 72 dpi 
    let printable = CGRectInset(page, 0, 0) 

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

    // Create PDF context and draw 

    //let pdfData = NSMutableData() 
    UIGraphicsBeginPDFContextToData(pdfData, CGRectZero, nil) 

    for i in 1...render.numberOfPages() { 

     UIGraphicsBeginPDFPage(); 
     let bounds = UIGraphicsGetPDFContextBounds() 
     render.drawPageAtIndex(i - 1, inRect: bounds) 
    } 

    UIGraphicsEndPDFContext() 

Wenn diese PDF-Datei später in einer E-Mail angehängt ist, hat es keine wirklichen Margen und wenn der Benutzer will es drucken, es schneidet ab. Wie füge ich 1 Zoll Ränder zum Beispiel den ganzen Weg um jede Seite oder Seiten hinzu, wenn es eine abhängig von der Länge array schafft? Vielen Dank.

Antwort

1

eingestellt ich das Seitenlayout:

let page = CGRect(x: 50, y: 50, width: 600, height: 750) 

Dieses es gab die Ränder ich wollte.

Verwandte Themen