59 votes

Comment rendre pdfs en utilisant C #

Je veux charger et dessiner des fichiers pdf graphiquement en utilisant C. Je n'ai pas besoin de les modifier ou quoi que ce soit, il suffit de les rendre à un niveau de zoom donné.

Les bibliothèques pdf que j'ai trouvé semblent être axées sur la génération. Comment puis-je faire cela?

Merci.

47voto

Renaud Bompuis Points 10330

Il y a un peu d'autres choix dans le cas où le Adobe ActiveX n'est pas ce que vous cherchez (depuis Acrobat doit être installé sur l'ordinateur de l'utilisateur et vous ne pouvez pas expédier par vous même).

Pour la création de la prévisualisation des fichiers PDF, d'abord jeter un oeil à quelques autres discussions sur le sujet sur StackOverflow:

Dans les deux derniers je parle de quelques choses que vous pouvez essayer:

  • Vous pouvez obtenir un commercial renderer (PDFViewForNet, PDFRasterizer.NET, ABCPDF, ActivePDF, XpdfRasterizer et d'autres dans les autres réponses...).
    La plupart sont assez cher, surtout si vous vous souciez est un simple aperçu/vignettes.

  • En plus de Omar Shahine de l'extrait de code, il y a un CodeProject article qui montre comment utiliser le logiciel Adobe ActiveX, mais il peut être mis à jour, facilement brisée par les nouvelles versions et de sa légalité est glauque (en gros, c'est ok pour un usage interne, mais vous ne pouvez pas expédier et vous ne pouvez pas l'utiliser sur un serveur pour produire des images de PDF).

  • Vous pourriez avoir un coup d'oeil au code source de SumatraPDF, une OpenSource PDF viewer pour windows.

  • Il est également Poppler, un moteur de rendu qui utilise Xpdf comme un moteur de rendu. Tous ces sont grands, mais ils nécessitent une bonne quantité de l'engagement de faire de leur faire le travail et de l'interface avec .Net et ils ont tendance à être distribué sous la licence GPL.

  • Vous pouvez envisager d'utiliser GhostScript comme un interprète, car le rendu 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 il est certainement plus facile que d'avoir à masser les autres moteurs de rendu en coopérant avec .Net.
    J'ai fait un petit projet que vous trouverez sur le Developer Express forums comme une pièce jointe.
    Être attentif aux exigences de la licence pour GhostScript travers.
    Si vous ne pouvez pas sortir avec qui puis d'un logiciel commercial est probablement votre seul choix.

13voto

Omar Shahine Points 886

Voici ma réponse à partir d'une question différente.

Vous devez d'abord référence Adobe Reader Contrôle ActiveX

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

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

Ensuite, il suffit de le glisser dans votre Formulaire Windows à partir de la boîte à outils.

Et utiliser 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 se ferme que vous disposez du Contrôle ActiveX

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

sinon Acrobat pourrait être laissé traîner.

1voto

user81888 Points 31

ABCpdf va faire ceci et beaucoup d'autres choses pour vous.

Non ony va rendre vos documents PDF en de divers formats (par exemple, JPEG, GIF, PNG, TIFF, JPEG 2000; vecteur EPS, SVG, Flash et PostScript), mais il peut aussi le faire dans une variété d'espaces de couleurs (par exemple, niveaux de Gris, RVB, CMJN) et les profondeurs de bits (par exemple, 1, 8, 16 bits par composante).

Et ce n'est que certains de ce qu'il va faire!

Pour plus de détails, voir:

http://www.websupergoo.com/abcpdf-8.htm

Oh, et vous pouvez obtenir gratuitement des licences via le sans système de licence.

Il y a CLUF des problèmes avec l'utilisation d'Acrobat pour faire de rendu PDF. Si vous voulez aller dans cette voie vérifier la légalité très soigneusement d'abord.

0voto

Sesh Points 3270

Utilisez le contrôle du navigateur Web. Cela nécessite lecteur Adobe à être installé, mais très probablement vous l'avez de toute façon. Définir l'UrL du contrôle à l'emplacement du fichier.

-1voto

Paul Lefebvre Points 3624

Dynamic PDF Viewer à partir du logiciel ceTe peut faire ce que vous cherchez. J'ai utilisé leur logiciel générateur et a été assez heureux avec elle.

http://www.dynamicpdf.com/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X