gpt4 book ai didi

html - 如何在不使用网络浏览器的情况下呈现 HTML 元素?

转载 作者:技术小花猫 更新时间:2023-10-29 12:21:26 26 4
gpt4 key购买 nike

有没有一种方法可以在不使用任何网络浏览器控件的情况下在 Canvas 上绘制特定的 HTML 元素内容?

使用这段代码,我将元素呈现到表单的 Canvas 上(仅作为示例)。
它虽然有效,但这段代码不是一个好的做法 - 见下文,为什么......

uses
SHDocVw, MSHTML;

procedure TForm1.Button1Click(Sender: TObject);
var
WebBrowser: TWebBrowser;
HTMLElement: IHTMLElement;
HTMLRenderer: IHTMLElementRender;
begin
WebBrowser := TWebBrowser.Create(nil);
try
WebBrowser.ParentWindow := Application.Handle;
WebBrowser.Navigate('https://stackoverflow.com/questions/2975586/good-delphi-blogs');

while WebBrowser.ReadyState < READYSTATE_COMPLETE do
Application.ProcessMessages;

HTMLElement := (WebBrowser.Document as IHTMLDocument3).getElementById('question');
HTMLRenderer := (HTMLElement as IHTMLElementRender);
HTMLRenderer.DrawToDC(Canvas.Handle);

finally
HTMLElement := nil;
HTMLRenderer := nil;
WebBrowser.Free;
end;
end;

不好是因为

是否有使用 MSHTML 解决此问题的简洁方法?

最佳答案

DrawToDC 和 IViewObject两者都需要 TWebBrowser 控件将文档实际呈现到目标 DC。

关于html - 如何在不使用网络浏览器的情况下呈现 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8312170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com