Salut à tous !
Voilà, je m'en remets à vous car après maintes recherches, impossible de trouver une solution à mon problème (en espérant poster au bon endroit)...
Mon projet est très simple : il s'agit d'un composant WebBrowser placé simplement sur la fenêtre principale.
J'y affiche une page me permettant, via un appel JavaScript, de changer le contenu d'un DIV comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.getElementById("mainContainer").innerHTML = "<object id=\"docPreview\" type=\"application/pdf\" data=\""+docUrl+"\"></object>";
Vous l'avez compris, le but est d'implémenter un visualiseur PDF (et autres formats qui eux fonctionnent bien).
J'ai donc mon fichier HTML en local, qui marche à merveille si je le teste directement sous Internet Explorer.
Dans mon projet, la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part webBrowser1.Url = new Uri(@"C:\Users\...\viewer.html");
me permet d'afficher la page dans le controle, et tout fonctionne parfaitement.
Si j'appelle ma fonction depuis mon projet C#, Adobe Reader se lance dans le navigateur et m'affiche le PDF comme prévu.
Jusque la, tout va bien.
Mais voila, j'aimerais inclure mon fichier HTML dans mon programme sous forme de byte[] ou de resource, et l'afficher via la propriété DocumentStream du WebBrowser comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part webBrowser1.DocumentStream = new MemoryStream(htmlContent);
Et c'est la que ca coince !
La page s'affiche correctement, mais quand je demande l'affichage d'un PDF, le plugin ne démarre pas.
Si je regarde dans la liste des processus, AcroRd32.exe se lance correctement, mais rien ne s'affiche sur ma page...
Je soupçonne Adobe Reader de ne pas apprécier l'URL about:blank, qui est automatiquement chargée lors de l'attribution de DocumentStream ...
Quelqu'un aurait-il une idée pour pouvoir embarquer la page dans mon projet sans toutefois gêner l'exécution du plugin ?
Je sais que je pourrais utiliser directement un contrôle Adobe Reader en parallèle dans mon application, mais je préfère éviter cette solution si possible, et utiliser le composant WebBrowser pour l'affichage.
Merci d'avance pour votre aide,
A bientôt
Arnaud.
Partager