2009-10-22 6 views
0

J'ai un objet webbrowser sur un winform que je voudrais utiliser pour afficher un pdf. Le fichier pdf se trouve sur un serveur ftp. J'ai pu montrer le pdf en le téléchargeant sur le disque et en pointant l'objet webbrowser dessus (naviguez), mais je veux streamer pour des raisons de sécurité. Quelqu'un a-t-il pu diffuser un fichier pdf sur un navigateur Web situé sur une winform .Net?flux un pdf à un objet webbrowser .net sur une winform

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 

Répondre

1

Étant donné que vous utilisez déjà le contrôle WebBrowser; pourquoi ne pas avoir pointer vers un fichier HTML local qui comprend une balise embed:

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

Je ne l'ai pas testé, mais le pdf doit être servi dans le cadre du contrôle.

+1

vous pouvez toujours passer les informations d'identification en texte brut, mais ce n'est pas sûr. la façon dangereuse de le faire serait: ftp: // utilisateur: [email protected]/yourpdf.pdf –

+0

Merci pour l'idée Gurdas! Les problèmes de sécurité (transmission des informations d'identification) m'empêchent d'implémenter cette solution. – sparkkkey

1

Je recommande d'utiliser un PDF Viewer Control plutôt que d'un contrôle de navigateur Web, comme le contrôle du navigateur Web, il faudra que le client dispose d'une visionneuse PDF.

Cela vous permettra également de diffuser un document.

+0

Le patron n'aime pas l'idée de devoir distribuer plus de fichiers pour obtenir ce travail. Je vais utiliser un contrôle PDF Viewer si je ne peux pas faire fonctionner le navigateur Web. Est-ce que PDF Viewer Control fonctionnera bien avec les données diffusées? – sparkkkey

+0

Russ, je suis d'accord avec vous que le PDF Viewer Control serait le moyen le plus "correct" de le faire. Je ne veux tout simplement pas abandonner sur le webbrowser pour le moment. – sparkkkey

+0

Le contrôle PDF Viewer fonctionnera avec les données diffusées. Il est également open source donc il n'y aura besoin que d'un autre fichier à distribuer. C'est une bien meilleure alternative que d'obtenir des appels de personnes en colère qui n'ont pas Acrobat installé parce que leur visualisateur pdf montre un grand rouge X –

Questions connexes