我正在尝试弄清楚如何将 WebView 保存到 PDF 并且完全卡住了,真的很感激一些帮助吗?
我在 OSX 上的 Cocoa 和 Swift 中执行此操作,这是到目前为止我的代码:
import Cocoa
import WebKit
class ViewController: NSViewController {
override func loadView() {
super.loadView()
}
override func viewDidLoad() {
super.viewDidLoad()
loadHTMLString()
}
func loadHTMLString() {
let webView = WKWebView(frame: self.view.frame)
webView.loadHTMLString("<html><body><p>Hello, World!</p></body></html>", baseURL: nil)
self.view.addSubview(webView)
createPDFFromView(webView, saveToDocumentWithFileName: "test.pdf")
}
func createPDFFromView(view: NSView, saveToDocumentWithFileName fileName: String) {
let pdfData = view.dataWithPDFInsideRect(view.bounds)
if let documentDirectories = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first {
let documentsFileName = documentDirectories + "/" + fileName
debugPrint(documentsFileName)
pdfData.writeToFile(documentsFileName, atomically: false)
}
}
}
这非常简单,我正在做的是创建一个 WebView 并向其写入一些基本的 html 内容,以呈现以下内容:
然后获取视图并将其保存到 PDF 文件,但显示为空白:
我尝试从 webView 和 View 中获取内容,但没有任何乐趣。
我在这里发现了类似的问题webview渲染完成后如何截图 https://stackoverflow.com/questions/15051007/how-to-take-a-screenshot-when-a-webview-finished-rending关于将 webview 保存到图像,但到目前为止 OSX 解决方案还没有成功。
是否与文档尺寸有关?
或者内容在子视图中?
也许如果你捕获了视图,你就无法捕获子视图?
有任何想法吗?