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
Libérer: 2025-01-23 22:13:09
original
240 Les gens l'ont consulté

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 :

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;
    }
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal