Этот вопрос относится к macOS, а не к iOS.
Обратите внимание, что этот вопрос сообщается как дубликат этого вопроса . Ответы на этой странице относятся либо к iOS (неактуально), либо к использованию устаревшего WebView
в качестве решения, о чем в первую очередь и идет мой вопрос.
Итак, Apple устарела WebView
в пользу WKWebView
, но я не вижу рабочего решения для возможности экспортировать (или распечатать) PDF-файл из нового типа представления. Я пробовал следующее (и многое другое) из метода делегата webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
1.
let pdfData = webView.dataWithPDF(inside: webView.frame)
try? pdfData.write(to: URL(fileURLWithPath: "/filepath/to/test.pdf"))
В результате получился буквальный пустой файл pdf.
2.
webView.takeSnapshot(with: nil) { (image, error) in
if let error = error {
print("Error: \(error)")
return
}
guard let image = image else {
print("No image")
return
}
try? image.tiffRepresentation?.write(to: URL(fileURLWithPath: "/path/to/test.tif"))
}
И хотя это действительно содержало изображение, это было (гигантское) визуализированное растровое изображение, потерявшее все свои текстовые / строковые данные, которые также отображали только то, что было видно на экране, ничего за краями окна.
Между тем, следуя многочисленным примерам, доступным в Интернете, использование WebView работает хорошо и, как и ожидалось. Могу ли я поверить, что Apple выпустила наполовину готовую замену устаревшей структуре, или я делаю что-то не так?