Сохраните PDF-файл из WKWebView - PullRequest
1 голос
/ 17 июня 2020

Этот вопрос относится к 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 выпустила наполовину готовую замену устаревшей структуре, или я делаю что-то не так?

...