Невозможно создать PDF из шаблона HTML на устройствах iOS. Он отображает все остальное, кроме Image [Local, а также Image на стороне сервера. Даже использовал UIWebview (так как моя цель приложения iOS - 10,3), но все еще не может отрендериться в PDF. Я успешно отобразил предварительный просмотр в UIWebview, но когда дело доходит до 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"
}
@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-стилизация с локальным и серверным изображением.