我有同样的问题,试试这个代码:
let render = UIPrintPageRenderer()
render.addPrintFormatter(webView.viewPrintFormatter(), startingAtPageAt: 0)
let paperRect = CGRect(x: 0, y: 0, width: 595.2, height: 841.8)
let printableRect = paperRect.insetBy(dx: 10, dy: 10)
render.setValue(NSValue(cgRect: paperRect), forKey: "paperRect")
render.setValue(NSValue(cgRect: printableRect), forKey: "printableRect")
let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRect.zero, nil)
for i in 0 ..< render.numberOfPages {
UIGraphicsBeginPDFPage()
let bounds = UIGraphicsGetPDFContextBounds()
render.drawPage(at: i, in: bounds)
}
UIGraphicsEndPDFContext()
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let filePath = "\(documentsPath)/name.pdf"
pdfData.write(toFile: filePath, atomically: true)
let url = URL(fileURLWithPath: filePath)
webView.loadRequest(urlRequest)
对不起,迟到的回复,我不小心留下我的Mac在办公室。 我可以知道你说的_webView是什么吗? 它是webview的出路吗? – Lee
我尝试了你的建议,但在webview中加载会影响字体和大小。并为您的自定义类,我什么也看不到,除了你的页脚 – Lee
_webview是一个简单的UIWebView,是它的一个插座, 请检查https://gist.github.com/vinbhai4u/899869df4f1538ffc7d6#file-pdf-creation -from-ios-swift – vinbhai4u