IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

WebBrowser WPF avec flux/stream PDF


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 17
    Par défaut WebBrowser WPF avec flux/stream PDF
    Bonjour,

    Ma question : afficher un flux Pdf dans le composant wpf webbrowser sans générer le fichier sur disque au préalable. Actuellement le flux provenant d'un service Web, complété d'un entête, s'affiche en ascii dans le webbrowser.

    Mon Code :

    Codes dans le présentateur :

    Initialisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
           Stream source = ExportJournal();
                        vue.fichier = source;
    méthode de génération du flux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     /// <summary>
            /// Export journal (génération contenu cote serveur
            /// </summary>
            /// <returns>Flux Pdf</returns>
            public Stream ExportJournal ()
            {
                try
                {
                    Byte[] flux = srvFicNet.ImpressionJournal(
                           "STE TEST DEMONSTRATION",
                           "00123456601",
                           new DateTime( 2008, 2, 1 ),
                           new DateTime( 2009, 1, 31 ),
                           vue.CheminApplication + @"\rptJournal.rdlc",
                           string.Empty,
                           "AC", 2, 2008 );
     
                    string mimeType = "Content-type: application/pdf\r\n";
                    string attachement = "Content-Disposition: attachment; filename=Journal_AC_022008_02008_WCF.pdf\r\n";
     
                    UTF8Encoding encodage = new UTF8Encoding();
                    MemoryStream memStream = new MemoryStream();
                    //
                    // Ecriture de l'entete PDF
                    Debug.WriteLine( string.Format( "mimeType.Length : {0}", mimeType.Length.ToString() ) );
                    Byte[] tbMimeType = encodage.GetBytes( mimeType );
                    memStream.Write( tbMimeType, 0, tbMimeType.Length );
     
                    Byte[] tbattachement = encodage.GetBytes( attachement );
                    Debug.WriteLine( string.Format( "(int)memStream.Position : {0}", ( (int) memStream.Position ).ToString() ) );
                    memStream.Write( tbattachement, 0, tbattachement.Length );
                    //
                    // Ecrire les bits de donnees
                    Debug.WriteLine( string.Format( "(int)memStream.Position : {0}", ( (int) memStream.Position ).ToString() ) );
                    memStream.Write( flux, 0, flux.Length );
                    memStream.Position = 0;
                    //
                    memStream.Flush();
                    memStream.Seek( 0, SeekOrigin.Begin );
                    //
                    return memStream; 
                }
                catch ( Exception ex )
                {
                    Debug.WriteLine( ex );
                    throw ex;
                }
            }
    Code dans l'interface :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public Stream fichier
            { 
                set
                { 
                    this.wbDocumentPdf.NavigateToStream( value );
                }
            }
    Merci
    JF.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par jfpacory Voir le message
    Ma question : afficher un flux Pdf dans le composant wpf webbrowser sans générer le fichier sur disque au préalable.
    Donc comment veux-tu que le composant sache ce qu'il doit afficher ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 17
    Par défaut
    La doc msdn dit simplement :

    Si le paramètre de flux n'est pas dans un format HTML valide, il sera affiché sous forme de texte brut.
    doit-on comprendre que seul un flux texte html est exploitable dans ce composant ...

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par jfpacory Voir le message
    doit-on comprendre que seul un flux texte html est exploitable dans ce composant ...
    Disons que tant que c'est du texte, ca va: c'est comme lorsque tu cliques sur une URL qui contient un TXT: celui-ci s'affiche directement dans ton browser...

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    tu ne peux pas essayer de construire ton fichier html ?

    Du style :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string strHtml = "<html><object type='application/pdf' standby='Chargement en cours...' width='100%' height='100%' >
                          <param name='src' value='www.le_site_web/.../fichier.pdf'/>
                  </object></html>";

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/04/2015, 15h53
  2. PHP probleme avec flux RSS, XML
    Par sirbaldur dans le forum Langage
    Réponses: 4
    Dernier message: 06/06/2006, 15h34
  3. problème avec objet Stream
    Par Poussy-Puce dans le forum ASP
    Réponses: 3
    Dernier message: 02/06/2006, 23h30
  4. problème avec les streams
    Par skywaukers dans le forum Langage
    Réponses: 3
    Dernier message: 10/01/2006, 21h37
  5. Limite du WebBrowser.Navigate avec un About:
    Par Bill14 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 30/03/2005, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo