背景
我有一個帶有VB.NET後端的ASP.NET web應用程序。在這個應用程序中,用戶可以創建支付請求,這些支付請求必須經過經理的批准才能發送到應付賬款進行進一步處理。在我的請求頁面(用戶輸入請求信息的頁面)中,我有一個鏈接到單獨的.aspx頁面的按鈕,該頁面提供請求的打印預覽。當請求被所有需要的審批者批准時,我有一個VB.NET函數,其中包含一個WebBrowser
對象,該對象導航到幕後的打印預覽頁面並快速拍攝,然後將其保存爲.tiff文件內部文件共享,然後由內部進程拾取並導入另一個名爲OnBase的內部應用程序以處理應付帳款。VB.NET WebBrowser對象在低分辨率下捕獲遠程網頁
的問題
我的問題是,當我的函數將打印預覽頁面的快照,保存的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文件的分辨率。我試圖谷歌這無數次找到解決方案,但沒有發現任何有用的東西。
提前致謝
我考慮過這個,但我不知道它如何在OnBase中縮放。無論哪種方式,我會給它一個鏡頭,看看它是如何結果。再次感謝。 – ORION
我還沒有找到一個好的解決方案,但我感謝您花時間回答我的問題。謝謝。 – ORION
謝謝你的時間。不勝感激。 +1 – ORION