如何使用delphi将网站的一部分呈现为位图?
最近我见过Raudus框架,它是Delphi的ExtJs绑定/包装器。然而,有什么独特之处,它确实使组件看起来与浏览器完全一样。简单来说,它就像delphi IDE中Javascript组件的WYSIWYG设计器一样。我无法尝试,因为我正在使用delphi个人(它需要dbrtl)。 然而,在演示电影上看它需要一些时间来渲染组件(即使在调整它们之后),因此我相信它是通过Web浏览器渲染引擎或类似的东西呈现的......
如果有人知道类似但开源的东西,请告诉我... 提前致谢, 米
答案 0 :(得分:3)
前段时间我发现了一个神秘的ActiveX调用:OleDraw。事实证明,使用嵌入式WebBrowser组件(IWebBrowser2)来呈现HTML并将输出抓取到位图中非常有用。
代码可能看起来像这样:
uses ActiveX, OleCtrls, SHDocVw;
b:=TBitmap.Create;
try
b.Width:=SizeX;
b.Height:=SizeY;
OleDraw(WebBrowser1.OleObject,DVASPECT_CONTENT,b.Canvas.Handle,Rect(0,0,SizeX,SizeY));
b.SaveToFile(FileName);
finally
b.Free;
end;
答案 1 :(得分:0)
如果您对Internet Explorer呈现页面的方式很满意,它将在TWebBrowser(内置组件)中正确显示,您可以从那里生成位图。
答案 2 :(得分:0)
Dave Baldwin's HTML display components现在是免费软件源(甚至是专业版),并且在Delphi中工作到2006年(也就是2007年)。我不知道这些是否会有所帮助,因为你没有指定你正在使用哪个版本的Delphi。