直接上代码,见注释说明
// 初始化可变data类型变量接收scrollview转换的数据
let pdfData:NSMutableData = NSMutableData.init()
// 展开画布并开始转换
UIGraphicsBeginPDFContextToData(pdfData, CGRect(x:0,y:0, width:scrollView.contentSize.width, height:scrollView.contentSize.height), nil)
// 展开PDF页面
UIGraphicsBeginPDFPageWithInfo(CGRect(x:0, y:0,width: scrollView.contentSize.width,height:scrollView.contentSize.height), nil)
// 获取当前上下文
let pdfContext = UIGraphicsGetCurrentContext()
let originSize = scrollView.frame
var newSize = originSize
newSize.size = scrollView.contentSize
scrollView.frame = newSize
// 将scrollview数据渲染到上下文
scrollView.layer.render(in: pdfContext!)
scrollView.frame = originSize
// 停止转换/关闭画布
UIGraphicsEndPDFContext()
var filePath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).first
filePath = filePath!+"/test.pdf"
// 写入本地PDF文件
pdfData.write(toFile: filePath!, atomically: true)
网友评论