[英]Stream PDF from a server to a web client vb.net
我們有一個Servlet,可以將PDF報告發送到瀏覽器。 我們也有一個運行.net應用程序的IIS服務器,我們希望將servlet中的PDF作為流返回到.Net應用程序,然后.Net應用程序會將PDF呈現給瀏覽器(出於這種原因,我們使用此技術不需要進入這里)。 我不是一個VB / Visual Studio開發者,通過使用Web請求,此代碼可以工作:
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從一台服務器流傳輸到另一台服務器?
僅需要進行一些非常細微的調整(對我而言,它們似乎微不足道且不直觀)。
在設置內容類型之前,我添加了以下內容:
Response.Clear()
Response.ClearHeaders()
我在reader.Close()之后添加了以下內容
Response.End()
就是這樣 現在,PDF文件可以很好地從Java servlet流到IIS服務器以及最終用戶的瀏覽器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.