背景
我有一个带有 VB.NET 后端的 ASP.NET Web 应用程序。在此应用程序中,用户可以创建付款请求,这些请求必须由经理批准,然后才能发送到应付账款进行进一步处理。在我的请求页面(用户输入请求信息的页面)中,我有一个链接到单独的.aspx 页面的按钮,该页面提供请求的打印预览。当请求被所有必需的批准者批准时,我有一个 VB.NET 函数,其中包含一个WebBrowser
对象,该对象导航到幕后的打印预览页面并对其进行快照,然后将其保存为 .tiff 文件到内部文件共享,然后由内部进程获取并导入另一个名为 OnBase 的内部应用程序,以处理应付账款。
问题
我的问题是,当我的函数拍摄打印预览页面的快照时,保存的 tiff 的分辨率低于预期。换句话说,当它通过 OnBase 查看和打印出来时,它看起来有点糟糕。
问题
如何在生成网页快照时提高生成的 .tiff 文件的分辨率?
编码
Private Sub CaptureWebPage()
Try
Dim tiffFileName As String
tiffFileName = OnBasePath & "CheckRequest_" & CurrentRequestId & ".tiff"
Dim impersonateCode As New AliasAccount("TheUsername", "ThePassword")
impersonateCode.BeginImpersonation()
Dim browser As Windows.Forms.WebBrowser = New Windows.Forms.WebBrowser
browser.ScrollBarsEnabled = False
browser.ScriptErrorsSuppressed = True
browser.Navigate(OnBasePath & htmlFileName)
While browser.ReadyState <> Windows.Forms.WebBrowserReadyState.Complete
System.Windows.Forms.Application.DoEvents()
End While
System.Threading.Thread.Sleep(1500)
browser.ClientSize = New Size(950, 768)
Dim Height As Integer = browser.Document.Body.ScrollRectangle.Bottom
browser.ClientSize = New Size(950, Height)
Dim bmp As Bitmap = New Bitmap(browser.Bounds.Width, Height)
browser.DrawToBitmap(bmp, browser.Bounds)
If File.Exists(tiffFileName) Then
File.Delete(tiffFileName)
End If
If File.Exists(OnBasePath & htmlFileName) Then
File.Delete(OnBasePath & htmlFileName)
End If
bmp.Save(tiffFileName.ToString(), ImageFormat.Tiff)
bmp.Dispose()
impersonateCode.EndImpersonation()
Catch ex As Exception
Throw
End Try
End Sub
附加信息
我尝试使用.SetResolution
我的位图对象的方法,但它实际上并没有改变生成的 .tiff 文件的分辨率。我已经多次尝试谷歌找到解决方案,但没有发现任何有用的东西。
提前致谢