我需要以PDF格式创建各种报告并通过电子邮件发送给特定的人。我设法将HTML模板加载到字符串中,并且正在替换某些"自定义标记"有真实的数据。最后,我有一个可查看的HTML文件。此文件现在必须打印成PDF格式,我可以在关注此链接后查看:https://www.appcoda.com/pdf-generation-ios/。我的问题是我不明白如何确定HTML文件中的页数,因为pdf渲染器需要逐页创建。
答案 0 :(得分:0)
我知道这是一个老话题,我想在这里留下这个答案。我也使用了你提到的同一个教程,这就是我做多页面的工作。只需修改drawPDFUsingPrintPageRenderer方法,如下所示:
func drawPDFUsingPrintPageRenderer(printPageRenderer: UIPrintPageRenderer) -> NSData! {
let data = NSMutableData()
UIGraphicsBeginPDFContextToData(data, CGRect.zero, nil)
printPageRenderer.prepare(forDrawingPages: NSMakeRange(0, printPageRenderer.numberOfPages))
let bounds = UIGraphicsGetPDFContextBounds()
for i in 0...(printPageRenderer.numberOfPages - 1) {
UIGraphicsBeginPDFPage()
printPageRenderer.drawPage(at: i, in: bounds)
}
UIGraphicsEndPDFContext()
return data
}
在自定义PrintPageRenderer中,您可以访问numberOfPages以获得页面总数