PDF レポートをブラウザーに配信するサーブレットがあります。また、IIS サーバーで .net アプリを実行しており、サーブレットからの PDF をストリームとして .Net アプリに返したいと考えています。次に、.Net アプリが PDF をブラウザーにレンダリングします (この手法を使用しているのは、私が理由のためです)。ここに入る必要はありません)。私は、Web リクエストを使用してこのコードが動作するため、VB/Visual Studio の開発者ではありません。
Dim BUFFER_SIZE As Integer = 1024
' Create a request for the URL.
Dim serveraction As String = "https://OurSeverName/ServletContext/Dispatch?action=ajaxRunReport&reportName="
Dim request As WebRequest = _
WebRequest.Create(serveraction + ReportName.Text)
' Get the response.
Dim res As WebResponse = request.GetResponse()
' Get the stream containing content returned by the server.
Dim dataStream As Stream = res.GetResponseStream()
' Open the stream using a BinaryReader for easy access.
Dim reader As New BinaryReader(dataStream)
' Read the content.
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "inline; filename=reportfile.pdf")
Dim bytes = New Byte(BUFFER_SIZE - 1) {}
While reader.Read(bytes, 0, BUFFER_SIZE) > 0
Response.BinaryWrite(bytes)
End While
reader.Close()
' Clean up the streams and the response.
Response.Flush()
Response.Close()
唯一の問題は、コードがすばやく実行されても、Chrome と IE で PDF をレンダリングするのに 20 ~ 30 秒かかりますが、FireFox では数秒しかかからないことです。PDFのレンダリングに遅延がある理由は何ですか? あるサーバーから別のサーバーに PDF をストリーミングするより良い方法はありますか?