【问题标题】:Get rendered content of WKWebView获取 WKWebView 的渲染内容
【发布时间】:2020-12-13 02:29:33
【问题描述】:

我知道如何获取 webview 的 html,但就我而言,很多 html 只是加载内容的 javascript。有没有办法获取窗口中显示的内容?我登录了 webview.enclosedScrollView.documentView 并返回 nil。

有没有办法捕捉渲染的内容?

【问题讨论】:

    标签: wkwebview documentviewer


    【解决方案1】:

    您可以从 HTML 生成 PDF - 请参阅以下网站: https://coderwall.com/p/gssuka/rendering-html-pdf-report-for-printing-from-uiwebview

    我目前正在将该代码与 WKWebview 一起使用。首先阅读文章,因为您将需要 PRV300dpiPrintRenderer 类(您可能需要将其更新为更新的 Swift 语法)。我的代码:

       func printHTMLContents() -> NSData {
          /* Generates PDF from HTML */
          self.setDictationIcon(display: false)
          let A4Size = CGSize(width: 2480, height: 3504) // A4 in pixels at 300dpi
          let renderer = PRV300dpiPrintRenderer()
          let formatter = webView.viewPrintFormatter()
          formatter.perPageContentInsets = UIEdgeInsets.zero
          renderer.addPrintFormatter(formatter, startingAtPageAt: 0)
          let topPadding: CGFloat = 115.0
          let bottomPadding: CGFloat = 117.0
          let leftPadding: CGFloat = 100.0
          let rightPadding: CGFloat = 100.0
          let printableRect = CGRect.init(x: leftPadding, y: topPadding, width: A4Size.width - leftPadding - rightPadding, height: A4Size.height - topPadding - bottomPadding)
          let A4Rect = CGRect.init(x: 0, y: 0, width: A4Size.width, height: A4Size.height)
          renderer.setValue(NSValue.init(cgRect: A4Rect), forKey: "paperRect")
          renderer.setValue(NSValue.init(cgRect: printableRect), forKey: "printableRect")
          let data = renderer.pdfData()
          return data
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多