Swift 如何从UIWebview生成PDF
无法在iOS设备上从HTML模板生成PDF。它可以渲染除图像[本地]和服务器端图像之外的所有其他内容。即使使用了UIWebview(因为我的apps min iOS目标是10.3),但仍然无法渲染为pdf。我已经成功地在UIWebview上显示了预览,但对于pdf,我只获得了动态文本,没有其他内容Swift 如何从UIWebview生成PDF,swift,xcode,uiwebview,Swift,Xcode,Uiwebview,无法在iOS设备上从HTML模板生成PDF。它可以渲染除图像[本地]和服务器端图像之外的所有其他内容。即使使用了UIWebview(因为我的apps min iOS目标是10.3),但仍然无法渲染为pdf。我已经成功地在UIWebview上显示了预览,但对于pdf,我只获得了动态文本,没有其他内容 @objc func downloadPDF(){ let render = UIPrintPageRenderer() render.addPrintFormatter(webVi
@objc func downloadPDF(){
let render = UIPrintPageRenderer()
render.addPrintFormatter(webView.viewPrintFormatter(), startingAtPageAt: 0);
let page = CGRect(x: 0, y: 10, width: webView.frame.size.width, height: webView.frame.size.height) // take the size of the webView
let printable = page.insetBy(dx: 0, dy: 0)
render.setValue(NSValue(cgRect: page), forKey: "paperRect")
render.setValue(NSValue(cgRect: printable), forKey: "printableRect")
// 4. Create PDF context and draw
let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRect.zero, nil)
for i in 1...render.numberOfPages {
UIGraphicsBeginPDFPage();
let bounds = UIGraphicsGetPDFContextBounds()
render.drawPage(at: i - 1, in: bounds)
}
UIGraphicsEndPDFContext();
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
print(documentsPath)
pdfData.write(toFile: "\(documentsPath)/\(self.pdfTitle).pdf", atomically: true)
AppConfigurations.shared.popAlert(To: "PDF Generate", for: documentsPath, callingView: self)
self.pdfPath = "\(documentsPath)/\(self.pdfTitle).pdf"
}
@objc func downloadPDF(){
let render = UIPrintPageRenderer()
render.addPrintFormatter(webView.viewPrintFormatter(), startingAtPageAt: 0);
let page = CGRect(x: 0, y: 10, width: webView.frame.size.width, height: webView.frame.size.height) // take the size of the webView
let printable = page.insetBy(dx: 0, dy: 0)
render.setValue(NSValue(cgRect: page), forKey: "paperRect")
render.setValue(NSValue(cgRect: printable), forKey: "printableRect")
// 4. Create PDF context and draw
let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRect.zero, nil)
for i in 1...render.numberOfPages {
UIGraphicsBeginPDFPage();
let bounds = UIGraphicsGetPDFContextBounds()
render.drawPage(at: i - 1, in: bounds)
}
UIGraphicsEndPDFContext();
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
print(documentsPath)
pdfData.write(toFile: "\(documentsPath)/\(self.pdfTitle).pdf", atomically: true)
AppConfigurations.shared.popAlert(To: "PDF Generate", for: documentsPath, callingView: self)
self.pdfPath = "\(documentsPath)/\(self.pdfTitle).pdf"
}
我的期望是,我希望生成具有适当背景图像的PDF,以及具有本地和服务器端图像的html样式。我遇到了相同的问题,但仅在iOS 13中遇到了相同的问题,但仅在iOS 13中遇到了相同的问题