捕获整个网页






4.56/5 (31投票s)
2007年8月6日

169148

10628
捕获整个网页并将其保存为图像。
更新
- 2007.08.15 - 用户自定义图像格式、保存路径、基本文件名、文本叠加/水印以及屏幕分辨率指南...以及一些其他待实现的想法。
引言
我见过其他文章描述了如何完成此操作,但无法让任何一个在 Internet Explorer 7 上正常工作。这是一个简单的示例,它捕获一个网页,包括折叠下方元素,并将其保存为图像。以下是您将看到的内容
请注意,此图已被调整大小,捕获的图像是实际大小。
使用代码
此示例仅包含基本功能。图像将作为 PNG 格式保存在与 exe 文件相同的目录中。保存为不同的图像格式、可变暂停以及给定的文件名应该相对容易添加。
Private Sub GetImage() If WebBrowser1.Document Is Nothing Then Return End If Try Dim scrollWidth As Integer Dim scrollHeight As Integer scrollHeight = WebBrowser1.Document.Body.ScrollRectangle.Height scrollWidth = WebBrowser1.Document.Body.ScrollRectangle.Width WebBrowser1.Size = New Size(scrollWidth, scrollHeight) Dim bm As New Bitmap(scrollWidth, scrollHeight) WebBrowser1.DrawToBitmap(bm, New Rectangle(0, 0, bm.Width, bm.Height)) Dim SaveAsName As String SaveAsName = Regex.Replace(textWebURL.Text, "(\\|\/|\:|\*|\?|\""|\<|\>|\|)?", "") bm.Save(SaveAsName & ".png", System.Drawing.Imaging.ImageFormat.Png) bm.Dispose() Catch ex As Exception MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally ' End Try buttonCapture.Enabled = True End Sub
关注点
在文档加载后等待一两秒钟,将允许更多客户端动画/js/等被捕获。如果网页保存为“白色”图像,请尝试上述方法。
环境
Vista / VS2005