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 ?

1voto

Andreas Reiff Points 737

Il semble que les suspects habituels comme pdfsharp et migradoc ne soient pas en mesure de le faire (pdfsharp seulement si vous avez Acrobat (Reader) installé).

J'ai trouvé ici

https://vishalsbsinha.wordpress.com/2014/05/06/how-to-programmatically-c-net-print-a-pdf-file-directly-to-the-printer/

code prêt à être copié/collé. Il utilise l'imprimante par défaut et, d'après ce que je peux voir, il n'utilise même pas de bibliothèques, envoyant directement les octets pdf à l'imprimante. Je suppose donc que l'imprimante doit également le supporter, sur une imprimante vieille de 10 ans que j'ai testée, cela a fonctionné sans problème.

La plupart des autres approches - sans bibliothèques ou applications commerciales - vous obligent à vous dessiner dans le contexte du périphérique d'impression. C'est faisable, mais il faudra un certain temps pour le comprendre et le faire fonctionner sur toutes les imprimantes.

1voto

christiandersen Points 61

J'ai écrit et publié un petit paquet Nuget qui peut être utilisé pour imprimer un fichier PDF avec un pilote d'imprimante. Il peut également imprimer un fichier XPS ou un fichier PDF. Voici un lien à elle.

0voto

Dave81 Points 1114

Cela dépend de ce que vous essayez d'imprimer. Vous avez besoin d'une application d'impression pdf tierce ou si vous imprimez vos propres données, vous pouvez utiliser le visualiseur de rapports dans Visual Studio. Il peut produire des rapports vers des fichiers Excel et PDF.

0voto

yo hal Points 1949

Il est également possible de le faire avec un navigateur Web intégré. Notez cependant que, comme il peut s'agir d'un fichier local, et aussi parce qu'il ne s'agit pas directement du navigateur et qu'il n'y a pas de DOM, il n'y a pas d'état prêt.

Voici le code de l'approche que j'ai élaborée sur un contrôle de navigateur web de type win form :

    private void button1_Click(object sender, EventArgs e)
    {
        webBrowser1.Navigate(@"path\to\file");
    }  

    private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
    {   
        //Progress Changed fires multiple times, however after the Navigated event it is fired only once,
        //and at this point it is ready to print
        webBrowser1.ProgressChanged += (o, args) => 
        {
            webBrowser1.Print();//Note this does not print only brings up the print preview dialog
            //Should be on a separate task to ensure the main thread 
            //can fully initialize the print dialog 
            Task.Factory.StartNew(() => 
            {
                Thread.Sleep(1000);//We need to wait before we can send enter
                //This assumes that the print preview is still in focus
                Action g = () =>
                {
                    SendKeys.SendWait("{ENTER}");
                };
                this.Invoke(g);
            });
        };
    }

0voto

alexanoid Points 6568

Ouvrez, importez, modifiez, fusionnez, convertissez des documents Acrobat PDF avec quelques lignes de code en utilisant l'API intuitive d'Ultimate PDF. En utilisant un code 100% géré écrit en C#, le composant tire parti des nombreuses fonctionnalités intégrées du .NET Framework pour améliorer les performances. De plus, la bibliothèque est conforme à la norme CLS et n'utilise pas de blocs non sécurisés pour des exigences minimales en matière de permission. Les classes sont entièrement documentées avec un code d'exemple détaillé, ce qui permet de raccourcir la courbe d'apprentissage. Si votre environnement de développement est Visual Studio, profitez de l'intégration complète de la documentation en ligne. Il suffit de marquer ou de sélectionner un mot-clé et d'appuyer sur F1 dans votre IDE Visual Studio pour que la documentation en ligne soit représentée instantanément. Une bibliothèque PDF performante et fiable qui vous permet d'ajouter facilement des fonctionnalités PDF à vos applications .NET en quelques lignes de code.

Composant PDF pour NET

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