私はWebViewをPDFに保存して完全に立ち往生する方法を理解しようとしていますが、本当に助けに感謝しますか?WebViewをPDFに保存すると空白の画像が返されますか?
私はOSX上ココア&スウィフトでこれをやっているが、ここに私のコードは、これまでのところです:
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からコンテンツを取得しようとしましたが、喜びはありませんでした。
私は同じような問題を発見しました。How to take a screenshot when a webview finished rendingウェブビューをイメージに保存することに関しては、これまでOSXソリューションでは不運でした。
文書の寸法と関係がありますか? 、またはコンテンツがサブビュー内にあることを確認しますか? サブビューをキャプチャできないビューをキャプチャしたとしますか?
アイデア?
こんにちは。問題の解決策を見つけた場合は*回答を*として投稿し、質問に追加しないでください。また、タイトルに「解決済み」を追加しないでください。回答を投稿し、それを受け入れられたものとしてマークすることは、質問を「解決する」方法です。ありがとう。 – Moritz
申し訳ありませんが、行います。 –
問題はありません。私はすでにあなたの編集を元に戻しました。今すぐあなたの答えを投稿するだけです。ありがとう! :) – Moritz