Swift 如何从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

无法在iOS设备上从HTML模板生成PDF。它可以渲染除图像[本地]和服务器端图像之外的所有其他内容。即使使用了UIWebview(因为我的apps min 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样式。

我遇到了相同的问题,但仅在iOS 13中遇到了相同的问题,但仅在iOS 13中遇到了相同的问题