我正在我的应用程序中开发一个功能,该功能允许用户将他们的数据导出到设计精美的 PDF 中。
我正在使用UIGraphicsPDFRenderer
这个,我浏览了Apple 的文档。
我在添加像“y 页 x”这样的页脚时遇到问题。虽然“x”很容易 - 我在确定“y”时遇到了麻烦,因为我只知道在完全呈现 PDF 后我的文档有多少页。由于布局相当复杂,我无法提前确定页数。
现在我也知道新页面是用beginPage()
. 有没有办法转到上一页?- 因为那时我可以简单地浏览文档并添加缺少的页脚。
这是我在 Swift 4 中使用的代码(非常简化,但应该足以理解):
let pdf = renderer.pdfData { (context) in
let attributes = [ NSFontAttributeName : UIFont.boldSystemFont(ofSize: 15) ]
// page 1
context.beginPage()
NSAttributedString(string: "Page 1", attributes: attributes).draw(in: CGRect(x: 0, y: 0, width: 500, height: 200))
// page 2
context.beginPage()
NSAttributedString(string: "Page 2", attributes: attributes).draw(in: CGRect(x: 0, y: 0, width: 500, height: 200))
// page 3
context.beginPage()
NSAttributedString(string: "Page 3", attributes: attributes).draw(in: CGRect(x: 0, y: 0, width: 500, height: 200))
// Now that I know that the PDF will have 3 pages, add the footer on all 3 pages - but how?
}
}