.net open PDF dans winform sans dépendances externes

est-il une bibliothèque gratuite qui me permettra d'ouvrir un pdf et de le montrer sur un projet winform. Je sais que je pourrais l'ouvrir dans adobe reader ou quelque chose, mais il semble toujours tellement gonflé pour moi et je serais fier d'être installé. Y at-il une alternative légère nice où je pourrais juste inclure une dll dans mon projet ou similaire évitant des dépendances externes.

je n'ai pas besoin de beaucoup de fonctionnalité vient d'afficher, de modifier la page de zoom..

j'ai vu quelques bibliothèques, mais ils semblent être sur la création de PDF pas de visualisation.

12
demandé sur PeteT 2009-02-14 21:29:08

9 réponses

le contrôle ActiveX installé avec acrobat reader devrait fonctionner, soit le déposer via le concepteur ou utiliser quelque chose comme ce .

cela exigera la version pertinente du lecteur est installé sur le client, mais puisque vous indiquez que vous pouvez tout simplement lancer que de toute façon ce ne devrait pas être un problème. lecteur

4
répondu ShuggyCoUk 2009-02-14 20:30:01

je voudrais regarder dans Foxit Reader comme une alternative légère à Adobe Reader. Il se compose d'un seul .exe fichier que vous pouvez regrouper avec votre application et ne devrait donc pas nécessiter une installation. Selon leur CLUF, cela est autorisé, tant que votre application n'est pas installé sur les appareils mobiles. Tout ce que vous avez à faire est de lancer le lecteur comme un nouveau processus, pointant vers le pdf correspondant. Évidemment, l'inconvénient de cette approche est qu'il ne sera pas intégré dans l'interface de votre application.

5
répondu tbreffni 2009-02-15 18:42:44

vous devez d'abord faire référence au contrôle ActiveX D'Adobe Reader

Adobe Acrobat Contrôle De Navigateur De Bibliothèque De Type 1.0

%programfiles&\Common Files\Adobe\Acrobat\ActiveX\AcroPDF.dll

ensuite, il vous suffit de le glisser dans votre formulaire Windows à partir de la boîte à outils.

et utilisez un code comme celui-ci pour initialiser le contrôle ActiveX.

private void InitializeAdobe(string filePath)
{
    try
    {
        this.axAcroPDF1.LoadFile(filePath);
        this.axAcroPDF1.src = filePath;
        this.axAcroPDF1.setShowToolbar(false);
        this.axAcroPDF1.setView("FitH");
        this.axAcroPDF1.setLayoutMode("SinglePage");
        this.axAcroPDF1.Show();
    }
    catch (Exception ex)
    {
        throw;
    }
}

assurez-vous que lorsque votre formulaire ferme que vous disposez du contrôle ActiveX

this.axAcroPDF1.Dispose();
this.axAcroPDF1 = null;

sinon Acrobate pourrait rester allongé.

5
répondu Omar Shahine 2009-02-17 06:27:54

Je ne suis pas sûr de ce que vous appelez une "dépendance" puisque vous devrez toujours compter sur un code externe pour rendre le PDF à moins que vous ne regroupez l'ensemble des sources de rendu PDF dans votre projet.

il y a quelques locataires commerciaux et très peu gratuits.

si vous voulez éviter les dépendances que vous ne pouvez pas empaqueter alors peut-être que vous pourriez jeter un oeil au code source pour SumatraPDF , un visualiseur PDF OpenSource pour windows qui utilise MuPDF .

Il y a aussi Poppler , un moteur d'équarrissage qui utilise Xpdf comme moteur d'équarrissage. Tous ces éléments sont excellents, mais il faudra un engagement considérable pour les faire fonctionner et établir une interface avec eux .Net.

la plupart des autres bibliothèques open source ne sont utilisées que pour la création et la gestion de PDF pages et je ne sais pas tout ce que fait réellement le rendu, c'est un problème difficile à résoudre droit.

vous pouvez toujours envisager d'utiliser GhostScript comme interprète car rendre des pages est un processus assez simple.

L'inconvénient est que vous aurez besoin de re-package à installer avec votre application, ou de faire un pré-requis (ou au moins une partie de votre processus d'installation).

Ce n'est pas un grand défi, et c'est certainement plus facile que d'avoir à masser les autres moteurs de rendu .Net.

regarder cela DONC, la question j'ai répondu aujourd'hui.

Il contient plus d'informations et un lien vers quelque working.Net code j'ai posté sur un autre forum il y a quelques mois.

5
répondu Renaud Bompuis 2017-05-23 11:45:28

regardez ça. Il nécessite pas mal de bibliothèques (y compris GhostScript), donc ce n'est pas très léger. Mais toutes les dépendances incluaient la lecture native de PDF. C'est en VB--mais pourrait être traduit si vous avez besoin de C#:

http://www.codeproject.com/Articles/37458/PDF-Viewer-Control-Without-Acrobat-Reader-Installe

1
répondu scotru 2013-07-17 09:09:33

Il y a une PDF library . Il s'agit principalement d'éditer le contenu, mais cela pourrait aider.

0
répondu Codingday 2009-02-14 23:01:00

c'est une supposition.

La façon dont le navigateur de rendu PDF à l'intérieur avec un plug-in. Je ne suis pas sûr que l'application doive être installée.

vous pouvez utiliser Foxit reader ou Sumatra PDF.

Et, vous pouvez héberger le contrôle du navigateur sur votre winform.

0
répondu shahkalpesh 2009-02-15 09:42:55

mettez un contrôle webBrowser sur votre formulaire. strPdfFile = "C:\SomeFile.PDF" webBrowser.Url = New Uri (strPdfFile);

cela fonctionne pour nous jusqu'à ce que essayé sur un système Win7-64bit. Besoin de faire un peu de débogage maintenant.

0
répondu CW1255 2014-03-05 17:24:10

vous pouvez utiliser la flèche.PDFViewer de Nuget. Voir ici

0
répondu Diego 2017-12-05 12:38:32