venerdì 11 aprile 2025

C# stampare una scritta su un file pdf, con l'uso della classe printDocument

Tramite le classi .Net relative alla stampa , in particolare alla classe PrintDocument, possiamo effettuare la stampa del testo con il linguaggio di programmazione C# .
L'esempio di codice qui di seguito, illustra come stampare una scritta su un file pdf e salvarlo su un pc.
Il progetto di esempio è di tipo "Windows Application".


Di seguito si riporta la funzione, che passando l'oggetto printDocumenti ed il percorso e nome del file che si vuole salvare, permette di creare il file fisico dallo stream dei dati.


C#

private static void SalvaDocumentoDaStampare(PrintDocument printDocument, string filePath)

        {

            //Stream per il salvataggio del file

            using (MemoryStream stream = new MemoryStream())

            {

                //Gestore della stampante

                PrintController printController = new StandardPrintController();

                

                printDocument.PrintController = printController;

                printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";

                //Percorso dove stampare il file

                printDocument.PrinterSettings.PrintToFile = true;

                printDocument.PrinterSettings.PrintFileName = filePath;

                printDocument.Print();

 

                //Salva lo stream dati su percorso.

                File.WriteAllBytes(filePath, stream.ToArray());

            }

        }




Di seguito il gestore dell'evento print, della classe PrintDocument, con il quale si stampa il testo


C#

private static void PrintPage(object sender, PrintPageEventArgs e)

        {

            //Esempio del testo da stampare

            string testo = "Testo da stampare!";

            Font font = new Font("Arial", 14);

            e.Graphics.DrawString(testo, font, Brushes.Black, 100, 100);

        }




Di seguito la creazione dell'oggetto printDocument richiamato dall'evento click di un pulsante, che imposta il gestore dell'evento printPage e  la chiamata alla funzione per il salvataggio del file pdf dell'oggetto printDocument.



C#

private void BtnStampa_Click(object sender, EventArgs e)

        {

              

            //Oggetto documento di stampa

            PrintDocument printDocument = new PrintDocument();

            printDocument.PrintPage += new PrintPageEventHandler(PrintPage);

 

            //Salva il file su file

            SalvaDocumentoDaStampare(printDocument, @"c:\varie\stampaPrintDocumento.pdf");

 

 

        }

Nessun commento: