如何为 [String] 数组创建的 PDF 添加边距以进行打印?
How do I add margins to PDF created by [String] array for printing?
我有一个 iOS
项目,我正在使用 Xcode7
和 Swift2
。我有一个 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)
这给了它我想要的边距。
我有一个 iOS
项目,我正在使用 Xcode7
和 Swift2
。我有一个 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)
这给了它我想要的边距。