将pdf流式传输到winform上的.net webbrowser对象

将pdf流式传输到winform上的.net webbrowser对象,.net,pdf,streaming,browser,.net,Pdf,Streaming,Browser,我在winform上有一个webbrowser对象,我想用它来显示pdf。 pdf驻留在ftp服务器上。我已经能够通过下载来显示pdf 指向磁盘,并将webbrowser对象指向磁盘(导航),但我想流 这是出于安全考虑。是否有人能够将pdf流式传输到位于.Net winform上的webbrowser Dim URI As String = host & targetFilename Dim ftp As System.Net.FtpWebRequest = CType(

我在winform上有一个webbrowser对象,我想用它来显示pdf。 pdf驻留在ftp服务器上。我已经能够通过下载来显示pdf 指向磁盘,并将webbrowser对象指向磁盘(导航),但我想流 这是出于安全考虑。是否有人能够将pdf流式传输到位于.Net winform上的webbrowser

    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
我建议使用而不是web浏览器控件,因为web浏览器控件要求客户端安装PDF查看器


这还允许您将文档流式传输到它。

因为您已经在使用WebBrowser控件;为什么不让它指向包含嵌入标记的本地html文件:

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


我还没有测试过,但是pdf应该在控件的上下文中提供。

老板不喜欢必须分发更多文件才能完成这项工作的想法。如果我不能让webbrowser正常工作,我将使用PDF查看器控件。PDF Viewer控件是否能很好地处理流数据?Russ,我同意您的看法,PDF Viewer控件将是最“正确”的方式。我只是不想放弃webbrowser。PDF查看器控件可以处理流式数据。它也是开源的,因此只需要分发一个其他文件。这是一个比从没有杂技演员的愤怒的人得到的更好的选择,因为他们的PDF观众正在展示一个大的红色席Russ。谢谢你帮我解决这个问题!我将不得不暂停此项目,直到我可以分发所需的依赖项。您可以始终以明文形式传递凭据,但这并不安全。这样做的不安全方式是:感谢Gurdas的想法!安全问题(传递凭据)阻止我实现此解决方案。