Sto cercando di capire come salvare una WebView in un PDF e completamente bloccato, apprezzerebbe davvero qualche aiuto?Salvataggio di WebView in PDF restituisce un'immagine vuota?
sto facendo questo a Cocoa & Swift su OSX, ecco il mio codice finora:
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)
}
}
}
E 'piuttosto semplice, quello che sto facendo è la creazione di una WebView e la scrittura di alcuni contenuti HTML di base ad esso che rende questo:
e poi prende la vista e lo salva in un file PDF, ma che esce in bianco:
Ho provato ad afferrare il contenuto da WebView e View ma non è stato piacevole.
Ho trovato un problema simile qui How to take a screenshot when a webview finished rending relativo al salvataggio della visualizzazione Web su un'immagine, ma finora non ho avuto fortuna con una soluzione OSX.
Potrebbe essere qualcosa a che fare con le dimensioni del documento? o che il contenuto è in una sottoview? forse se si cattura la vista non è possibile acquisire la sub immagine?
Qualche idea?
Ciao. Se hai trovato una soluzione al tuo problema, * pubblicalo come risposta *, non aggiungerlo alla tua domanda. Inoltre, per favore non aggiungere "risolto" al titolo. Pubblicare una risposta e contrassegnarla come accettata è il modo di "risolvere" una domanda. Grazie. – Moritz
Scusa, lo farò. –
Nessun problema: ho già ripristinato la modifica, devi solo pubblicare la tua risposta ora. Grazie! :) – Moritz