![]() |
TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Moin,
ich habe ein TWebbrowser und lade so eine PDF-Datei:
Code:
Klappt auf vielen System. Bei einem Kunden wird die PDF-Datei jedoch nicht im TWebbrowser dargestellt, sondern es erscheint gleich ein Download-Dialog vom Browser. Das verwirrt den Kunden und ist auch nicht hilfreich, da ich die PDF-Datei öfter als Druckvorschau neu lade.
webbrowser1.navigate('C:\meinpdf.pdf')
Wie kann ich dem TWebbrowser sagen, dass er NIE den Download-Dialog zeigen soll? |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Stell den TWebBrowser auf Edge-Modus. Ansonsten läuft der im uralten Internet Explorer-Modus, und der kann von sich aus überhaupt keine PDFs anzeigen. Es sei denn, der Benutzer hat aus alten Zeiten noch ein PDF-Plugin (wie z.B. Adobe Acrobat) installiert.
|
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
WebBrowser.SelectedEngine = EdgeOnly oder EdgeIfAvailable
oder direkt TEdgeBrowser verwenden (TWebBrowser verwendet den auch intern, wenn Engine=Edge) |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Ergänzung.
Der IE kann keine PDF anzeigen. Er "kann" es nur wenn ein PDF-Viewer sich im IE als Plugin registriert hat. Und diese Technik/Lösung wird in kürze bei keinen mehr funktionieren, da jede IT aus Sicherheitsgründen den IE mehr und mehr lahm legen wird. |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
OK, danke. Habe es auf Edge geändert.
|
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Ich habe es nun beim Kunden getestet. Er hat Edge installiert. TWebBrowser steht auf "EdgeOnly". Wenn ich nun das PDF in den TWebBrowser laden möchte, flackert die Sanduhr kurz auf und der Browser bleibt komplett weiß. Mehr wird nicht angezeigt. Woran liegt das?
Wenn ich den Edge ganz normal als Programm starte und dort die PDF-Datei öffne wird sie normal angezeigt. |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
.. kannst Du mal schauen, ob das Verzeichnis von TEdgeBrowser.UserDataFolder auf ein beschreibbares Verzeichnis zeigt?
Grüße Klaus |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Fehlt vielleicht die WebView2Loader.dll?
|
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Edge ist seit mehreren Windows-Versionen/HalbjahresUpdates quasi überall automatisch installiert.
Wie schon beim alten IE/TWebBrowser, kann auch der EmbeddedEdge/TEdgeBrowser im Funktionsumfang/Plugins eingeschränkt sein, gegenüber dem großen Browser. Vielleicht mal auf Fehler prüfen? * Rückgabe-Werte des .Navigate und dann .LastErrorCode (beim TEdgeBrowser) * Ereignisse ala OnNavigateError, OnThirdPartyUrlBlocked, OnShowScriptError * oder direkt TEdgeBrowser verwenden und da OnProcessFailed, OnPermissionRequested * beim EdgeBrowser mal ausgeben, was z.B. BrowserVersionInfo, BrowserProcessID oder ScriptEnabled sagen * ... |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Zitat:
|
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Wie kann ich herausfinden, welche DLL-Version ich brauche? Einfach die neueste DLL nehmen obwohl mein Delphi-Projekt mit Delphi 11.0 kompiliert ist?
|
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Wenn du das EdgeView2 SDK über GetIt installiert hast, sollte die passende DLL bei den Reditributionsdaten zu finden sein:
Code:
C:\Program Files (x86)\Embarcadero\Studio\22.0\Redist
|
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Zitat:
![]() Bis bald... Thomas |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Die richtige WebView2Loader.dll ist nun im Programmordner und EdgeOnly ist gesetzt. In einer Test-VM funktioniert es. Beim Kunden bleibt der TWebBrowser einfach weiß. Da komme ich auf die Idee mal zu schauen, ob er überhaupt den Edge installiert hat. Der Kunde sagt dann: "Mein IT-Techniker als den Edge deinstalliert, da ich ihn nicht mag."
Dann fällt der TWebBrowser anscheinend wieder auf den IE zurück. Und durch EdgeOnly zeigt er dann gar nichts an. Was kann ich in so einem Fall machen, um verlässlich ein PDF in meiner Anwendung anzuzeigen? Chrome mitzuliefern würde die ganze Anwendung um 100+ MB aufblasen. Das wäre zu viel. Warum kann man den Edge überhaupt reselos entfernen? Geht doch mit dem IE auch nicht. So kann ich nie darauf vertrauen, dass es einen bestimmten Browser gibt, den ich einbinden kann. |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Den Edge wieder installieren lassen (ihn als Mindestanforderung definieren).
Es ist ja damit zu rechnen, dass der IE irgendwann rausfliegt und durch den Edge ersetzt wird ... nur "noch" nicht passiert, da er "leider" zu tief im System verankert ist. (selbst Explorer und Desktop nutzen ihn) Das perverse Acrobat einbinden, oder halbwegs kompatible Alternativen ala Foxit. Direkt das ![]() Oder FremdKomponenten, welche PDF rendern können, als ActiveX, Waraper mit vorkompilierter C++-Komponente oder direkt als Delphi-Komponente. z.B. von DevExpress (TdxPDFDocument/TdxPDFViewer), Synopse (SynPDF) usw. |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Zitat:
![]() Bis bald... Thomas |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Zitat:
Formulare gehen allerdings nicht, und editieren kann man das PDF auch nicht. |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Sumatra: Guckst Du hier:
![]() Alles, was den AcrobatReader angeht, kannst Du einfach rauswerfen und von Delphi 7 auf deine Delphiversion anpassen (soweit da Änderungen erforderlich sein sollten). |
AW: TWebBrowser zeigt PDF nicht an sondern DownloadDlg
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz