500分,如何将网页生成图片,不能是截屏。因为有时候网页一屏显示不完 500分,如何将网页生成图片,不能是截屏。因为有时候网页一屏显示不完 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用虚拟打印机一样可以办到.通过IHTMLDocument接口,获取到页面的实际宽度和高度(ScrollHeight/ScrollWidth)以及当前窗口宽度和高度(OffsetHeight/OffsetWidth),获取到IHTMLWindow2接口用来横向及纵向滚动,通过IViewObject接口的Draw方法,分别抓取每个当前窗口的图像,拼接起来即可。 http://download.csdn.net/source/1499743 妖哥说的对 不过不用分别抓取写了个例题http://download.csdn.net/source/1499743 一个列子:procedure TForm1.Button5Click(Sender: TObject);var viewObject : IViewObject; r : TRect; bitmap : TBitmap;begin if WebBrowser1.Document <> nil then begin WebBrowser1.Document.QueryInterface(IViewObject, viewObject) ; if Assigned(viewObject) then try bitmap := TBitmap.Create; try r := Rect(0, 0, wb.Width, wb.Height) ; bitmap.Height := wb.Height; bitmap.Width := wb.Width; viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ; bitmap.SaveToFile('D:\webpage.bmp') ; finally bitmap.Free; end; finally viewObject._Release; end; end;end; 楼上的还要 ScrollBy 再拼接起来才是楼主想要的 TheWorld做的很好,可以借鉴一下 花了5分,下载5楼的文件,生成出来的图片还是不对的 测试页面 http://www.ahjoe.com/ Draw这方法好象有点问题, 有一部分取不到 -----我测试http://www.ahjoe.com/ 没有问题 完整图片windows xp sp3 ahjoe 有打广告的嫌疑, 哈哈 不是打广告,测试系统是 Microsoft Windows Server 2003 Standard Edition Service Pack 2 懒的花费资源分下载CSDN的资源,还是等楼主现身说说效果吧。 在 Microsoft Windows XP Professional Service Pack2 下测试正常。 楼主好像没吭声,就暂时不冒风险写代码了。C++Builder那边还预约着两个帖子呢,等这边楼主有消息了我再来。 Snaglt实现了网页的全输出,看起来用的就是虚拟打印机。顺便期待下妖哥的代码。 来了,工作忙到疯起。问题解决,分马上给。再加个多问题,delphi webbrowser,使用久了,缓存如何清掉,只有关闭应用程序这个办法吗?加上这个问题,再加多500分 如果能得到IE里类似于TScrollBox的句柄可能能行吧 webbrowser,使用久了,缓存如何清掉,你打开网页用API清理那个地址的缓存就可以 有10个dbedit已经连接了数据库,修改的时候我想它们完全不相同,如果有任意两个相同则给出警告提示,怎么做? 请教一个移动窗体得问题。 怎么将listbox和edit关联? 怎麼樣判斷double形態的數組是否有賦值? 我用adoconnection连接execl文件时报错说找不到可安装的isam,怎么回事? 开发过工作流软件的弟兄请帮忙谁有可以用于让客户画流程的控件怎么可以买到 要国内的并有中文资料。谢谢 数据库的不爽:怎么删除? 如何定义某一列为文本 关于图形格式的问题 哪有介绍DELPHI中各个控件的属性的文章???? 请教一个SQL语句中类型转换问题 简单的按钮状态控制
写了个例题
http://download.csdn.net/source/1499743
一个列子:procedure TForm1.Button5Click(Sender: TObject);
var
viewObject : IViewObject;
r : TRect;
bitmap : TBitmap;
begin
if WebBrowser1.Document <> nil then
begin
WebBrowser1.Document.QueryInterface(IViewObject, viewObject) ;
if Assigned(viewObject) then
try
bitmap := TBitmap.Create;
try
r := Rect(0, 0, wb.Width, wb.Height) ;
bitmap.Height := wb.Height;
bitmap.Width := wb.Width;
viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ;
bitmap.SaveToFile('D:\webpage.bmp') ;
finally
bitmap.Free;
end;
finally
viewObject._Release;
end;
end;
end;
我测试http://www.ahjoe.com/ 没有问题 完整图片
windows xp sp3
ahjoe 有打广告的嫌疑, 哈哈
C++Builder那边还预约着两个帖子呢,等这边楼主有消息了我再来。