如何为 [String] 数组创建的 PDF 添加边距以进行打印?

How do I add margins to PDF created by [String] array for printing?

我有一个 iOS 项目,我正在使用 Xcode7Swift2。我有一个 array 保存在 UITableView 中。我有一个导出 UIButton,它获取 array 中的内容并分隔 strings 并将其逐行放入 PDF 中,每一行都是一个单独的 string

变量包括:

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

这是我的代码的一部分:

    // 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()

当此 PDF 文件稍后附在电子邮件中时,它没有任何实际边距,如果用户想要打印它,它会把东西剪掉。例如,如果它根据 array 长度创建页边距,我如何在每一页或每一页周围一直添加 1 英寸页边距?谢谢。

我将页面布局调整为:

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

这给了它我想要的边距。