Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi HTML-Fragment vom Browser in die Zwischenablage kopieren und dann original anzeigen? (https://www.delphipraxis.net/211135-html-fragment-vom-browser-die-zwischenablage-kopieren-und-dann-original-anzeigen.html)

PeterPanino 1. Aug 2022 19:57

HTML-Fragment vom Browser in die Zwischenablage kopieren und dann original anzeigen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, vielleicht kann mir jemand zu dieser Frage einen Tipp geben?
Ich habe diese Auswahl aus dem Browser in die Zwischenablage kopiert:
Anhang 55269

In der Zwischenablage befindet sich nun ein Fragment im HTML-Format, das ungefähr so aussieht:

Version:1.0
StartHTML:000000096
EndHTML:000002304
StartFragment:000000186
EndFragment:000002290
<html><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"></head><body><meta charset='utf-8'><h3 style="font-size: 1em; font-weight: bold; margin: 3px 0px 0px; color: rgb(70, 80, 123); font-family: Tahoma, FreeSans, Verdana, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Willkommen in der Delphi-PRAXiS</h3><div class="dpdivider" style="font-size: 12px; background-color: rgb(50, 60, 108); height: 2px; max-width: 100%; margin: 0px 0px 15px; color: rgb(0, 0, 0); font-family: Tahoma, FreeSans, Verdana, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></div><span style="color: rgb(0, 0, 0); font-family: Tahoma, FreeSans, Verdana, sans-serif; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Ein herzliches Willkommen in der freundlichen Entwickler-Community rund um Embarcaderos Entwicklertool "Delphi". Unser Ziel ist es, eine Diskussionsplattform für den Gedankenaustausch zwischen Menschen zu schaffen, die sich beruflich oder privat mit Delphi befassen. In unserem Archiv mit mehr als 1.470.000 Beiträgen finden sich Lösungen für die unterschiedlichsten Problemstellungen.</span></body></html>

Wie kann ich dieses HTML-Fragment nun so in einer geeigneten Komponente anzeigen, dass es möglichst so wie im Original aussieht?

Delbor 1. Aug 2022 20:36

AW: HTML-Fragment vom Browser in die Zwischenablage kopieren und dann original anzeig
 
Hi PeterPanino

Grundsätzlich gibt es im Browser (ich nehme mal an, egal, in welchem), ein Property <InnerHtml>. Dieses enthält den vom Browser ausgegebenen HTML-Text, also das, was du am Bildschirm siehst. Dieses Innerhtml enthält allerdings den kompletten vom Browser sichtbar darzustellenden Text und nicht nur einen bestimmten Abschnitt. Aber einen solchen mit Delphis Stringverarbeitungsroutinen zu finden, dürfte nicht allzu problematisch sein.

Gruss
Delbor

PS: Eventuell könntest du mal versuchen, den gezeigten Text statt in die Zwischenablage zu kopieren, mit Innerhtml auszulesen und in einem eigenen Browser auszugeben.

Redeemer 1. Aug 2022 21:08

AW: HTML-Fragment vom Browser in die Zwischenablage kopieren und dann original anzeig
 
Er will das anzeigen, nicht kopieren. Kopiert hat er es ja schon.

Man kann das Kopierte natürlich zwischenspeichern und dann in einen TWebBrowser/TEdgeBrowser laden. Kann man sicherlich auch anders da rein bekommen. Im IE konnte man früher HTML rendern, indem man "about:" gefolgt von HTML-Code in die Adresszeile eingegeben hat (ja, da geht/ging nicht nur about:blank!). Ob er das immer noch kann, weiß ich nicht. Das war sozusagen eine frühe Form von Data-URI. Data-URI könnte hier sogar auch die Lösung sein, also dass man die Seite
Delphi-Quellcode:
'data:text/html,' + URLEncode(HTML)
lädt. Ich hab von TWebBrowser/TEdgeBrowser aber nicht so viel Ahnung.

PeterPanino 1. Aug 2022 23:06

AW: HTML-Fragment vom Browser in die Zwischenablage kopieren und dann original anzeig
 
Ich habe hier eine Lösung von David Heffernan gefunden, um den HTML-Code aus dem Clipboard zu extrahieren:

https://stackoverflow.com/questions/...oard-in-delphi

Das funktioniert sehr gut.

Jetzt muss man den HTML-Code nur noch in eine moderne Browser-Komponente reinbekommen. Welche moderne Browser-Komponente für Delphi macht am wenigsten Probleme?

jaenicke 2. Aug 2022 13:11

AW: HTML-Fragment vom Browser in die Zwischenablage kopieren und dann original anzeig
 
Zitat:

Zitat von PeterPanino (Beitrag 1509636)
Jetzt muss man den HTML-Code nur noch in eine moderne Browser-Komponente reinbekommen. Welche moderne Browser-Komponente für Delphi macht am wenigsten Probleme?

Man kann Chromium mitliefern (über 100 MiB) oder TEdgeBrowser verwenden, das es mittlerweile in Delphi gibt und auf dem integrierten Edge-Control (WebView2) basiert, siehe hier.

Alternativ gibt es noch verschiedene HTML-Viewer, die sich aber nicht 1:1 wie die aktuellen Browser verhalten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz