Maison >développement back-end >C++ >Comment puis-je automatiser l'impression PDF sur une imprimante spécifique sans interaction de l'utilisateur ?

Comment puis-je automatiser l'impression PDF sur une imprimante spécifique sans interaction de l'utilisateur ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-23 22:13:09153parcourir

How Can I Automate PDF Printing to a Specific Printer Without User Interaction?

Utilisez la bibliothèque Google Pdfium pour réaliser l'impression automatique de fichiers PDF

Question :

Les fichiers PDF générés par l'application de bureau doivent être imprimés. Comment puis-je envoyer ces fichiers directement à l’imprimante sans intervention de l’utilisateur ?

Solution :

La bibliothèque Google Pdfium (package .NET nommé PdfiumViewer) fournit une solution pour imprimer de manière transparente des documents PDF. Voici un guide étape par étape :

1. Installez le package PdfiumViewer NuGet :

Dans le projet Visual Studio, installez le package PdfiumViewer NuGet via le gestionnaire de packages NuGet.

2. Créer les paramètres de l'imprimante :

Construisez les objets PrinterSettings et PageSettings pour définir l’imprimante cible et le format de papier.

3. Charger le document PDF :

Utilisez PdfDocument.Load(filename) pour charger le fichier PDF à imprimer.

4. Créer un document imprimé :

Utilisez document.CreatePrintDocument() pour générer un objet PrintDocument afin de connecter le document PDF aux paramètres de l'imprimante.

5. Imprimer le document :

Enfin, exécutez printDocument.Print() pour démarrer le processus d'impression.

Exemple de mise en œuvre :

L'extrait de code suivant montre comment imprimer silencieusement plusieurs copies d'un fichier PDF :

<code class="language-csharp">public bool PrintPDF(string printer, string paperName, string filename, int copies)
{
    try
    {
        var printerSettings = new PrinterSettings
        {
            PrinterName = printer,
            Copies = (short)copies
        };

        var pageSettings = new PageSettings(printerSettings)
        {
            Margins = new Margins(0, 0, 0, 0)
        };

        foreach (PaperSize paperSize in printerSettings.PaperSizes)
        {
            if (paperSize.PaperName == paperName)
            {
                pageSettings.PaperSize = paperSize;
                break;
            }
        }

        using (var document = PdfDocument.Load(filename))
        {
            using (var printDocument = document.CreatePrintDocument())
            {
                printDocument.PrinterSettings = printerSettings;
                printDocument.DefaultPageSettings = pageSettings;
                printDocument.PrintController = new StandardPrintController();
                printDocument.Print();
            }
        }

        return true;
    }
    catch
    {
        return false;
    }
}</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn