Afficher un PDF dans L'Application WPF [fermé]

<!-Comment afficher un fichier PDF dans une Application Windows WPF?


j'utilise le code suivant pour exécuter le navigateur, mais l' Browser.Navigate la méthode ne fait rien!

WebBrowser browser = new WebBrowser();
browser.Navigate("http://www.google.com");
this.AddChild(browser); // this is the System.Windows.Window
24
demandé sur Bobrovsky 2008-09-10 23:19:52

9 réponses

Oups. c'est pour une application winforms. Pas pour WPF. Je le posterai quand même.

essayez ceci

private AxAcroPDFLib.AxAcroPDF axAcroPDF1;
this.axAcroPDF1 = new AxAcroPDFLib.AxAcroPDF();
this.axAcroPDF1.Dock = System.Windows.Forms.DockStyle.Fill;
this.axAcroPDF1.Enabled = true;
this.axAcroPDF1.Name = "axAcroPDF1";
this.axAcroPDF1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAcroPDF1.OcxState")));
axAcroPDF1.LoadFile(DownloadedFullFileName);
axAcroPDF1.Visible = true;
10
répondu Gulzar Nazim 2014-05-15 12:22:52

vous pouvez obtenir le contrôle Acrobat Reader dans une application WPF en utilisant le contrôle WindowsFormHost. J'ai un blog sur le sujet ici:

http://hugeonion.com/2009/04/06/displaying-a-pdf-file-within-a-wpf-application/

j'ai aussi un 5 minutes de vidéo de démonstration de la façon dont je l'ai fait ici:

http://www.screencast.com/t/JXRhGvzvB

18
répondu 2009-04-06 06:25:06

vous pouvez simplement héberger un contrôle de navigateur Web sur le formulaire et l'utiliser pour ouvrir le PDF.

il y a un nouveau contrôle natif WPF "WebBrowser" dans .NET 3.51, ou vous pouvez héberger les fenêtres.Navigateur de formulaires dans votre application FPF.

11
répondu Guy Starbuck 2008-09-10 19:25:07

le code suivant s'attend à ce que Adobe Reader soit installé et à ce que L'extension Pdf soit connectée à celui-ci. Il fonctionne tout simplement:

String fileName = "FileName.pdf";
System.Diagnostics.Process process = new System.Diagnostics.Process(); 
process.StartInfo.FileName = fileName;
process.Start();
process.WaitForExit();
8
répondu davidsleeps 2013-02-20 03:50:52
7
répondu VahidN 2015-09-25 22:46:02

il suffit d'utiliser un cadre et d'un navigateur internet comme

Frame frame = new Frame();
WebBrowserbrowser = new WebBrowser();
browser.Navigate(new Uri(filename));
frame.Content = browser;

puis quand vous n'en avez plus besoin, faites ceci pour nettoyer:

WebBrowser browser = frame.Content as WebBrowser;
browser.Dispose();
frame.Content = null;

si vous ne le nettoyez pas, vous pourriez avoir des problèmes de fuite de mémoire en fonction de la version de .NET que vous utilisez. J'ai vu de mauvaises fuites de mémoire dans .NET 3.5 si je ne nettoyais pas.

6
répondu odyth 2011-04-22 19:14:02

Information: Voici un produit commercial, et je travaille pour cette société.

je me rends compte qu'une réponse a déjà été acceptée, mais ce qui suit ne nécessite pas Adobe Reader/Acrobat et c'est une solution WPF - par opposition à Winforms. Je me rends compte aussi que c'est une vieille question mais elle vient d'être mise à jour donc je suppose qu'elle est toujours actuelle.

PDFRasterizer.NET 3,0 vous permet de rendre à un document fixe WPF. Il préserve tous les graphiques vectoriels (PDF graphiques sont convertis en éléments plus ou moins équivalents du FPF. C'est probablement le plus proche de ce dont vous avez besoin.

using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
{
  pdfDoc = new Document(file);

  ConvertToWpfOptions convertOptions = new ConvertToWpfOptions();
  RenderSettings renderSettings = new RenderSettings();
  ...

  FixedDocument wpfDoc = pdfDoc.ConvertToWpf(renderSettings, convertOptions, 0, 9, summary);
}

Vous pouvez passer le wpfDoc à, par exemple, le WPF DocumentViewer pour implémenter rapidement un viewer.

1
répondu Frank Rem 2013-10-17 10:15:33

vous pouvez également utiliser FoxitReader. Il est gratuit et est livré avec un contrôle ActiveX qui s'enregistre dans les navigateurs web (IE et autres) après que vous installez l'application FoxitReader. Ainsi, après avoir installé FoxitReader sur le système, mettez un contrôle WebBrowser et définissez sa propriété Source pour pointer vers le chemin du fichier de votre fichier PDF.

0
répondu Mohammad Heskol 2013-01-05 18:19:35

Check this out:http://itextsharp.sourceforge.net/ Vous devrez peut-être utiliser un WindowsFormsHost, mais comme il est open source, vous pourriez être en mesure de le rendre un peu plus élégant dans WPF.

-2
répondu GEOCHET 2008-09-10 19:21:22