背景
VB.NETバックエンドを備えたASP.NETWebアプリケーションがあります。このアプリケーションでは、ユーザーは支払い要求を作成できます。支払い要求は、さらに処理するために買掛金に送られる前に、マネージャーによって承認される必要があります。リクエストページ(ユーザーがリクエスト情報を入力するページ)内に、リクエストの印刷プレビューを提供する別の.aspxページにリンクするボタンがあります。要求が必要なすべての承認者によって承認されると、VB.NET関数が作成されます。この関数にはWebBrowser
、舞台裏で印刷プレビューページに移動してスナップショットを撮り、それを.tiffファイルとして保存するオブジェクトが含まれています。内部ファイル共有は、内部プロセスによって取得され、OnBaseと呼ばれる別の内部アプリケーションにインポートされて、買掛金の処理を実行します。
問題
私の問題は、my関数が印刷プレビューページのスナップショットを撮るときに、保存された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ファイルの解像度は実際には変更されません。私はこれを何度もグーグルで解決策を見つけようとしましたが、有用なものは何も見つかりませんでした。
前もって感謝します