Maison >développement back-end >C++ >Comment imprimer automatiquement des PDF sur une file d'attente d'imprimante spécifique ?

Comment imprimer automatiquement des PDF sur une file d'attente d'imprimante spécifique ?

DDD
DDDoriginal
2025-01-23 22:07:081040parcourir

How to Automatically Print PDFs to a Specific Printer Queue?

Automatisation de l'impression PDF sur une imprimante désignée

Problème : Comment un fichier PDF, créé sur le bureau d'un utilisateur, peut-il être automatiquement envoyé vers une file d'attente d'imprimante locale spécifique lors d'une action initiée par l'utilisateur ?

Solution : tirer parti de la bibliothèque PdfiumViewer

La bibliothèque Google Pdfium, ainsi que son wrapper .NET PdfiumViewer, fournissent une solution simple. Vous trouverez ci-dessous un exemple illustrant l'impression PDF silencieuse avec des paramètres personnalisables :

<code class="language-csharp">public bool PrintPDF(string printerName, string paperSizeName, string filePath, int numberOfCopies)
{
    try
    {
        // Configure printer settings
        var printerSettings = new PrinterSettings
        {
            PrinterName = printerName,
            Copies = (short)numberOfCopies
        };

        // Configure page settings
        var pageSettings = new PageSettings(printerSettings)
        {
            Margins = new Margins(0, 0, 0, 0) // Set margins to zero
        };

        // Find the specified paper size
        foreach (PaperSize paperSize in printerSettings.PaperSizes)
        {
            if (paperSize.PaperName == paperSizeName)
            {
                pageSettings.PaperSize = paperSize;
                break;
            }
        }

        // Initiate PDF printing
        using (var pdfDocument = PdfDocument.Load(filePath))
        using (var printDocument = pdfDocument.CreatePrintDocument())
        {
            printDocument.PrinterSettings = printerSettings;
            printDocument.DefaultPageSettings = pageSettings;
            printDocument.PrintController = new StandardPrintController(); //Ensures standard printing behavior
            printDocument.Print();
        }
        return true;
    }
    catch (Exception ex)
    {
        //Handle exceptions appropriately (log, display error message, etc.)
        return false;
    }
}</code>

Considérations clés :

  • Installez le package PdfiumViewer NuGet pour utiliser cette bibliothèque.
  • Ajustez le code pour s'adapter à différents nombres de copies et configurations d'imprimante selon vos besoins.
  • La nature open source de PdfiumViewer (licence Apache 2.0) le rend adapté à diverses applications. N'oubliez pas de gérer les exceptions potentielles pour une gestion robuste des erreurs.

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