Wie kann man alle WKWebView On- UND Offscreen-Inhalte drucken? OSX und iOS

Diese Frage bezieht sich auf das Drucken ALLER Inhalte (einschließlich Off-Screen-Inhalten) von WKWebView. Derzeit (noch ab iOS 10.2 oder OSX 10.12) gibt es KEINE funktionierende Lösung und keine der angeblichen Lösungen für Stackoverflow funktioniert. Geben Sie hier nur eine Antwort ein, wenn Sie sich verifiziert haben, dass Sie OFF SCREEN CONTENT drucken können, und wenn Sie dann den funktionierenden Beispielcode angegeben haben.

Ich versuche zu druckenALL der Inhalt eines WKWebView oder WebView unter OSX 10.10 oder höher (wird derzeit unter 10.11.2 ausgeführt). Zum Beispiel eine breite HTML-Tabelle, in der die Spalten nicht sichtbar sind und rechts daneben stehen. Frühere Versionen von OSX paginierten automatisch und druckten den gesamten HTML-Code korrekt aus.

Ich habe versucht, die hier auf Stackoverflow und anderswo verfügbaren Lösungen zu verwenden. Alle sagen im Wesentlichen das gleiche, was das @ zu drucken idocumentView wie so:

[[NSPrintOperation printOperationWithView:_webView.mainFrame.frameView.documentView printInfo:pInfo] runOperation];

Dies funktioniert nicht mehr für beide WKWebView oder WebView in 10.10. Wenn du das tust

    [[NSPrintOperation printOperationWithView:_wkWebView printInfo:pInfo] runOperation];

Sie erhalten eine Paginierung, aber der Ausdruck enthält Bildlaufleisten.WebView, und der andereWKWebView gibt Ihnen leere Seiten.

Ich kann in der Apple-Dokumentation keine Erwähnung zum Drucken für @ finde WKWebView unter OSX. Ich kann auch keine Antwort finden, die OSX-spezifisch ist und nicht iOS.

Hat jemand eine Idee, wie man diese unter OSX druckt?

AKTUALISIERE: Dies ist ein Fehler in WebView [Radar: 23159060] (noch offen 2/2018) und WKWebView scheinen nicht einmal das Drucken unter OSX zu adressieren. Nachdem ich das Open Source für diese Klasse im Netz untersucht habe, sehe ich, dassall der Klassen, die irgendetwas mit Drucken zu tun haben, befinden sich in einem bedingten Kompilierungsblock, der nur die Plattform unterstützt: iOS.

UPDATE Part Deux: Erstaunlicherweise gibt es diesen lächerlichen Fehler in ALLEN Implementierungen dieser Klasse, einschließlich derer unter iOS! Ich finde es lächerlich, dass diesimmer noc wurde zu diesem späten Zeitpunkt nicht festgelegt, obwohl in der Dokumentation angegeben wurde, dies (und nur diese Klasse) in Apps zu verwenden, die iOS 8 oder höher unterstützen. Es ist jetzt UNMÖGLICH, alle Bildschirm- undoff screen -Inhalt eines WebView unter iOS oder OSX. Apple scheitern. Zeit, DIESES ZU FIXIEREN! Wir alle wissen, was Steve darüber gesagt hätte ...

Hinweis Außerdem glaube ich, dass die Hauptursache für dieses Problem darin besteht, dass es nicht möglich ist, ALLE Inhalte von WKWebView als Image zu speichern. Früher gab es einige Techniken, die mit einer UIWebView verwendet werden konnten, um den gesamten On- und Offscreen-Inhalt von WebView in einem Bild zu speichern. Ich habe noch keine funktionierende Lösung gefunden.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage