2009-10-22 39 views
0

我在一個winform上有一個webbrowser對象,我想用它來顯示pdf。 pdf駐留在ftp服務器上。我已經能夠通過將 下載到磁盤並將web瀏覽器對象指向它(導航)來顯示pdf,但出於安全原因,我想流式傳輸 。有沒有人能夠將PDF流式傳輸到位於.Net winform上的瀏覽器?將PDF流式傳輸到winform上的.net網頁瀏覽器對象

Dim URI As String = host & targetFilename 
    Dim ftp As System.Net.FtpWebRequest = CType(FtpWebRequest.Create(URI), FtpWebRequest) 

    ftp.Credentials = New System.Net.NetworkCredential(userName, passWord) 
    ftp.KeepAlive = False 
    ftp.UseBinary = True 
    ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile 

    Using webResp As System.Net.FtpWebResponse = DirectCast(ftp.GetResponse(), System.Net.FtpWebResponse) 
     Using respStream As Stream = webResp.GetResponseStream 
      If GetFileExtension(targetFilename) = "PDF" Then 
       WebBrowser1.DocumentStream = respStream 
       Application.DoEvents() 
      End If 

      respStream.Close() 
     End Using 
    End Using 

回答

1

由於您已經使用WebBrowser控件,爲什麼不把它指向包含嵌入標籤的本地HTML文件:

<embed src="ftp://ftpserver/yourpdf.pdf" /> 

我沒有測試過,但應該PDF控制的範圍內送達。

+1

您始終可以以明文形式傳遞憑據,但這並不安全。不安全的做法是:ftp:// user:[email protected]/yourpdf.pdf – 2009-10-22 22:37:19

+0

感謝Gurdas的想法!安全問題(通過證書)阻止我執行此soln。 – sparkkkey 2009-10-23 15:50:44

1

我會建議使用PDF Viewer Control,而不是一個Web瀏覽器控件,如網頁瀏覽器控件將要求客戶端安裝PDF閱讀器。

這也將允許您將文檔流式傳輸到它。

+0

老闆不喜歡分發更多文件來完成這項工作的想法。如果我無法使Web瀏覽器正常工作,我將使用PDF Viewer Control。 PDF查看器控件能夠與流數據一起使用嗎? – sparkkkey 2009-10-22 22:18:48

+0

Russ,我同意你的看法,PDF Viewer Control是最「正確」的方式。我只是不想放棄網頁瀏覽器。 – sparkkkey 2009-10-22 22:25:21

+0

PDF查看器控件可用於流式數據。它也是開源的,所以只需要另外一個文件分發。這比從沒有安裝Acrobat的憤怒的人接聽電話要好得多,因爲他們的pdf查看器顯示一個大紅色X – 2009-10-22 22:33:05

相關問題