L'affichage d'un PDF dans une Application WPF ne fonctionne Pas - WebBrowser ou Adobe Contrôle
J'ai besoin d'afficher un PDF dans une application WPF. De tous à la lecture, j'ai été faire en ligne, il semble que le [?] des manières d'afficher un PDF dans une application WPF est via Adobe contrôle ou un contrôle WebBrowser. J'ai essayé d'utiliser Adobe contrôles, cependant, j'ai été incapable d'ajouter le Lecteur de contrôle parce que, pour une raison que je ne trouve pas cela comme quelque chose que je peux ajouter à ma boîte à outils (même une fois l'ajout de la référence nécessaire). Je suis sous Windows 7 (64-bit), VS2010, .NET 4.0, et d'avoir Adobe Acrobat 7.0 Professional et Adobe Acrobat 9 Pro Extended installé, si cela n'a rien à faire avec elle. De toute façon, j'ai décidé de l'essayer dans un contrôle WebBrowser hébergé dans un WindowsFormsHost. Le code XAML j'ai, c'est ceci:
<WindowsFormsHost x:Name="FormsHost" Visibility="Visible" Grid.Column="1" Margin="7,0,0,0">
<WF:WebBrowser x:Name="WebBrowser" Dock="Fill" IsWebBrowserContextMenuEnabled="False" ScriptErrorsSuppressed="True" WebBrowserShortcutsEnabled="False" Margin="7,0,0,0" />
</WindowsFormsHost>
et puis ce, dans le code C# derrière:
WebBrowser.Navigate(new System.Uri(FileName));
où FileName == l'emplacement exact de l' .fichier pdf j'ai besoin d'afficher. Cependant, lorsque je lance ce tout ce que je vois est complètement vide, le blanc de la zone où le contrôle WebBrowser est. J'ai aussi essayé de réglage de l' .pdf fichier comme ceci:
WebBrowser.Url = new System.Uri(FileName);
et j'obtiens exactement la même chose. Je sais que le PDF est créé à l'emplacement correct, comme je peux manuellement le parcourir et ouvrir amende.
Quelqu'un a une idée pourquoi cela ne fonctionne pas? Ou, éventuellement, pourquoi je ne semble pas avoir le Lecteur de contrôle qu'une option? À ce stade, la solution serait très bien, ils ont juste aucun des deux ne semblent être au travail!
Merci!
Le problème est que je n'ai pas pu voir le Adobe de contrôle, même lors de l'ajout de la bonne Acrobat de référence, puis d'aller à la boîte à outils -> Choisir les Éléments -> Composants COM. Le Lecteur de contrôle n'est pas là, donc je ne peux pas l'utiliser sur un contrôle de l'utilisateur. Je n'ai aucune idée du pourquoi il n'apparaît pas comme une option 🙁
OriginalL'auteur JToland | 2011-05-13
Vous devez vous connecter pour publier un commentaire.
Je crains que vous êtes coincé à l'aide de la WinForms PDF de contrôle et d'hébergement dans votre application WPF. C'est un peu ennuyeux, mais ce n'est pas difficile à faire. Voici un article et un exemple de code source:
http://hugeonion.com/2009/04/06/displaying-a-pdf-file-within-a-wpf-application/
Avez-vous essayé "contrôle de Navigateur"? Il ressemble à ce que vous avez besoin.
Travailler avec maintenant. En essayant de l'utiliser de la même façon que le lien référencé utilise le Lecteur de contrôle me fait de frapper un "Cross-thread opération" exception en disant: j'ai consulté le contrôle à partir d'un thread autre que celui qui l'a créé...
OriginalL'auteur Matt West
Voici ce que j'ai fait...
FENÊTRE PRINCIPALE XAML
DE LA FENÊTRE PRINCIPALE DE CODE DERRIÈRE
OriginalL'auteur agency30
Réponse tardive, mais il pourrait aider d'autres personnes.
Je suis en train de travailler sur un Windows 8.1 x64-linge.
Ma tâche était de permettre aux utilisateurs de visualiser des documents PDF sur l'appareil (Tablette avec Windows OS). Après beaucoup de recherche je ne pouvais pas trouver tout à fait réalisable, ou ce que je devrais dire à l'aide de WindowsFormsHost se sent tout simplement sale!
Ce que j'ai fait est d'utiliser un contrôle WebBrowser comme suit:
Note:
Le
pack://siteoforigin:
fait référence à un emplacement lorsque votre application est en cours d'exécution. Donc, assurez-vous que votre.html
fichiers sont mis àContent
etCopy Always
.Maintenant que votre html a été mis en place, vous devez maintenant télécharger ou tout simplement copier et coller ce qui suit
.js
code:Qui a été utilisé à partir de gihub référentiel
Maintenant, une fois que vous avez mis en place, vous devez maintenant installer Adobe Reader
Votre
html
page devrait ressembler à ceci (pour les tests):Maintenant la partie difficile.
Vous avez besoin pour obtenir ce
html
la page à afficher dans votreWebBrowser
de contrôle, en cas de succès, vous serez invité à installer une mise à jour d'acrobat reader.Après la mise à jour a été un succès au redémarrage de l'application et de votre fichier doit maintenant apparaître sur votre page!
Amusez-vous bien!
OriginalL'auteur XAMlMAX
https://stackoverflow.com/a/14074771/5370609
ce code fonctionne pas pour les liens vers des fichiers pdf à l'intérieur de l'pdf illustré.
Je ne sais pas pourquoi.
et ne pas éviter la messagebox télécharger le fichier au lieu de l'afficher le fichier pdf,
OriginalL'auteur luka