45 votes

Imprimer Pdf en C#

Je suis novice en C#. J'ai cherché partout sur le net des tutoriels sur la façon d'imprimer des pdf, mais je n'en ai pas trouvé.

Je me suis alors demandé s'il était possible de le lire en utilisant itextpdf, comme indiqué ici.

Lire le contenu d'un PDF avec la dll itextsharp en VB.NET ou C#

puis l'imprimer. Si oui, comment ?

5voto

Poxet Points 111

Vous pouvez créer le document PDF en utilisant PdfSharp . Il s'agit d'une bibliothèque .NET à code source ouvert.

Lorsque j'essaie d'imprimer le document, la situation se dégrade. J'ai cherché partout un source ouverte manière de le faire. Il y a quelques façons de le faire en utilisant AcroRd32.exe mais tout dépend de la version, et cela ne peut pas être fait sans qu'acrobat reader reste ouvert.

J'ai fini par utiliser SDK de VintaSoftImaging.NET . Cela coûte un peu d'argent mais c'est beaucoup moins cher que l'alternative et cela résout le problème très facilement.

var doc = new Vintasoft.Imaging.Print.ImagePrintDocument { DocumentName = @"C:\Test.pdf" };
doc.Print();

Cela imprime juste sur l'imprimante par défaut sans que cela soit visible. Il existe plusieurs alternatives et options.

3voto

Thái Linh Points 31

La meilleure façon d'imprimer automatiquement des pdf à partir de C# est d'utiliser la fonction "direct pdf" de l'imprimante. Il vous suffit de copier le fichier pdf vers le nom de domaine réseau de l'imprimante. Le reste sera pris en charge par l'imprimante elle-même.

La vitesse est 10 fois plus rapide que toutes les autres méthodes. Cependant, les conditions requises sont un modèle d'imprimante prenant en charge l'impression directe de PDF et disposant d'au moins 128 Mo de mémoire, ce qui est facile pour toute imprimante moderne.

2voto

zuko Points 532

La méthode la plus simple consiste à créer un processus C# et à lancer un outil externe pour imprimer votre fichier PDF.

private static void ExecuteRawFilePrinter() {
    Process process = new Process();
    process.StartInfo.FileName = "c:\\Program Files (x86)\\RawFilePrinter\\RawFilePrinter.exe";
    process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    process.StartInfo.Arguments = string.Format("-p \"c:\\Users\\Me\\Desktop\\mypdffile.pdf\" \"gdn02ptr006\"");
    process.Start();
    process.WaitForExit();
}

Le code ci-dessus lance RawFilePrinter.exe (similaire à 2Printer.exe), mais avec un meilleur support. Il n'est pas gratuit, mais en faisant un don, vous pouvez l'utiliser partout et le redistribuer avec votre application. Dernière version à télécharger : http://bigdotsoftware.pl/rawfileprinter

1voto

Mark Redman Points 10816

Il est possible d'utiliser Ghostscript pour lire des fichiers PDF et les imprimer sur une imprimante nommée.

1voto

Mikhael Bolgov Points 41

Je vous conseille d'essayer l'outil de ligne de commande 2Printer : http://www.doc2prn.com/

Exemple de ligne de commande pour imprimer tous les fichiers PDF du dossier " C:\Input "se trouve ci-dessous. Vous pouvez simplement l'appeler depuis votre code C#.

2Printer.exe -s " C:\Input *.PDF" -prn "Imprimante Canon MP610 series"

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