L'affichage d'un fichier pdf à partir de Winform
Je suis juste la création d'une simple calculatrice en C# (windows form)
J'ai créé un Utilisateur "Aide" qui est un fichier pdf, ce que je veux, c'est pour l'affichage du fichier pdf si l'utilisateur clique sur le bouton "Aide" dans le WinForm. Si supposé que Adobe reader est pré-installé sur la machine de l'utilisateur....
Comment ouvrir le fichier pdf sur le bouton cliquez sur en winForm?
Je n'ai pas l'intention de fournir ce fichier pdf sur le disque dur de l'utilisateur. Ce qui signifie que je dois intégrer ce pdf dans la calculatrice (winForm) et ont pour l'afficher sur le bouton.
De bien vouloir me guider avec la meilleure pratique pour l'affichage d'un fichier incorporé dans winForm.
- Pourquoi ne voulez-vous pas avoir le pdf en tant que fichier séparé?
- Bcoz si prendre u "distribution" en cosideration, puis de développer un utilitaire ne doit pas être en morceaux. Juste le fichier exe (sans installaion) fonctionne parfaitement comme un simple "Calculatrice", offrant des morceaux de fichiers avec elle n'est pas une bonne pratique, je crois. U peut me corriger si je me trompe.
Vous devez vous connecter pour publier un commentaire.
Je voudrais le mettre dans mon dossier de programme, ajouter un lien dans mon Menu Démarrer dossier pour permettre un accès direct (sans démarrer mon outil) et juste à sur certaines événement click
System.Diagnostics.Process.Start(@".\Manual.pdf");
Mise à jour
Ok, maintenant, nous arrivons à une nouvelle question: Comment intégrer un fichier dans mon dossier de candidature et de le lancer?
Pour cette question, vous trouverez déjà quelques réponses ici, mais voici la version courte:
byte[]
deProperties.Resources.NameOfResource
Avec ces étapes, vous faites référence à votre fichier à l'endroit où elle existe au sein de votre structure. Si vous souhaitez qu'une copie de votre fichier pdf sera mis dans un sous-dossier de Ressources au sein de votre projet, il suffit de sauter les points un et deux dans la liste ci-dessus.
Pour obtenir votre pdf maintenant ouvert, vous aurez à écrire le byte[] vers le bas sur le disque (peut-être avec
Path.GetTempFileName()
) et de le démarrer avec Adobe Reader. (Ne pas oublier de supprimer le fichier après utilisation)Vous pouvez référencer le site d'Adobe Reader contrôle ActiveX et le bundle avec votre application.
Simplement ajouter
AcroPDF.PDF.1
à votre boîte à outils de l'onglet Composants COM (à droite cliquez sur boîte à outils et cliquez surChoose Items...
), puis faites glisser une occurrence sur votre Winform pour avoir le concepteur de créer le code pour vous. Alternativement, après l'ajout de la référence nécessaire, vous pouvez utiliser le code suivant:AxInterop.AcroPDFLib.dll
etInterop.AcroPDFLib.dll
) qui l'utilise pour afficher le PDF.Vous pouvez utiliser le Contrôle WebBrowser et laissez-IE charger un lecteur de PDF pour vous si il y a un d'installé sur la machine.
Toutefois, la dernière fois que j'ai essayé, j'ai dû écrire le fichier PDF sur le disque d'abord, si je le pouvais point le contrôle WebBrowser à elle.
Il y a un C# pdf visionneuse de projet sur google code. http://code.google.com/p/pdfviewer-win32/
il est le spectateur et il est à la bibliothèque qu'il utilise disponible qui utilise mupdf et xpdf pour rendre les documents pdf dans votre winforms programme. Je suis en train de développer un contrôle de l'Utilisateur de la bibliothèque pour les personnes à utiliser et déposez-les dans leurs programmes pour pdf capacités de visualisation. il fonctionne très bien.
Si vous souhaitez afficher un pdf à l'intérieur de votre application, le contrôle WebBrowser est probablement préférable sur le site d'Adobe Reader contrôle, comme il va ouvrir le fichier avec beaucoup de douceur en PDF Reader ou quel que soit IE est à l'aide en tant que par défaut pour ouvrir les fichiers pdf. Il suffit d'ajouter le contrôle WebBrowser à un existant ou nouveau formulaire et accédez au fichier pdf.
Jamais supposons qu'un utilisateur dispose d'Adobe ou de tout autre tiers, les contrôles ou les bibliothèques installé sur leurs machines, toujours package avec votre exécutable ou vous pouvez avoir des problèmes.
Adobe Reader contrôle n'est évidemment pas s'intégrer aussi bien avec .NET est un intrinsèques des composants Windows. En règle générale, j'ai toujours privilégier l'utilisation de construite en .Net contrôles des fournisseurs tiers. Aussi loin que d'intégrer le fichier dans le fichier exécutable; arrivera pas jusqu'à ce que Microsoft décide de tout les vieux PDF peut être travaillé dans le CLS et compilé dans MSIL. Ce que vous avez lorsque vous développez une application dans .NET est un code qui peut être compilé en intermédiaire MSIL être traduits à l'exécution, par le CLR en code natif et exécutés dans les OS.
Si votre utilisateur dispose d'Adobe Reader (ou tout autre lecteur de PDF) installé sur leur machine, vous pouvez utiliser:
Espère que cette aide.
Remarque: Évidemment, ceci ne fonctionnera pas si l'utilisateur ne dispose pas de Lecteur PDF installé des applications.
Je suggère de convertir votre fichier pdf en un fichier d'aide Microsoft, de sorte que vous n'avez pas besoin d'avoir Adobe Reader installé (c'est le buggy, et a beaucoup trop de problèmes de sécurité). Vous ne pouvez pas attendre les utilisateurs à ce.
En réponse à la du starter commentaire:
Oui vous avez besoin pour créer votre fichier d'aide en tant que document HTML au lieu d'un fichier pdf. Il n'y a pas de moyen facile de convertir des fichiers pdf au format HTML.
Il pourrait être possible d'intégrer d'Adobe Reader dans votre formulaire comme un composant ActiveX. Mais cela signifie que vous aurez à vous assurer Reader est installé sur l'ordinateur client pour que cela fonctionne.
Dans le cas où il n'a pas à être strictement intégré vous suffit de lancer le fichier PDF et de le laisser quelle que soit la visionneuse de l'utilisateur a l'ouvrir.
Comment ouvrir le fichier PDF avec le chemin d'accès relatif
Dans ce cas, l'Application doit s'exécuter sur plusieurs Pc. Pour faire référence à un fichier qui n'est pas dans le réseau, mais dans le Programm Dossier lui-même, utilisez l'Extrait de code suivant:
Tout d'abord inclure la Bibliothèque suivante:
Ensuite utiliser un Bouton, picturebox, ou quelle que soit pour créer un ClickEvent et d'utiliser l'extrait de code suivant:
|Pouce vers le haut|
Obtenir le fichier incorporé ne devrait pas être un problème du tout. Ce n'est pas dépendante de l'être .format pdf, et vous pouvez simplement regarder pour une autre solution.
Pour l'affichage, sauf si vous savez Acrobat ou similaire est installé (bien, même Bord peut ouvrir ces fichiers de nos jours), ou si vous souhaitez afficher le fichier incorporé dans une application WinForms, il est
Codeproject Solution
https://www.codeproject.com/Articles/37458/PDF-Viewer-Control-Without-Acrobat-Reader-Installe
écrite en VB en s'appuyant sur des lots de (partiellement commercial, si votre solution est commercial) des bibliothèques.
PdfiumViewer
https://github.com/pvginkel/PdfiumViewer
est grande et est également disponible via NuGet.
Il est un tout-en-un solution pour l'affichage et vient avec un convivial licence Apache 2.0.
edit, ajout d'un exemple de code, pour votre commodité 🙂 j'ai inclus les suivantes
Cela génère un formulaire à la volée, bien sûr, vous pouvez également utiliser le concepteur.