Programmazione “Ciao mondo” predefinita Stampante lato SERVER in ASP.NET MVC

Ho installato la stampante e sto lavorando su un server intranet e voglio inviare “Ciao mondo” a quella stampante predefinita. Questa sembra la cosa più semplice ma sono stato googling per un paio d’ore senza successo. (nota: sto sviluppando asp.net mvc sulla macchina di distribuzione stessa che esegue Windows 7)

Ho cercato di tradurre un esempio da VB qui in C # ma diceva “nessuna stampante è installata”.

public void TestPrint() { var x = new PrintDocument(); x.PrintPage += new PrintPageEventHandler(PrintPage); x.Print(); } private void PrintPage(Object sender, PrintPageEventArgs e) { var textToPrint = "Hello world"; var printFont = new Font("Courier New", 12); var leftMargin = e.MarginBounds.Left; var topMargin = e.MarginBounds.Top; e.Graphics.DrawString(textToPrint, printFont, Brushes.Black, leftMargin, topMargin); } 

Avevo anche provato uno snippet da MSDN qui, ma ha detto che non riconosceva il nome della stampante.

 public void TestPrint(string msg) { var server = new LocalPrintServer(); var queue = LocalPrintServer.GetDefaultPrintQueue(); // Call AddJob var job = queue.AddJob(); // Write a Byte buffer to the JobStream and close the stream var stream = job.JobStream; var buffer = UnicodeEncoding.Unicode.GetBytes(msg); stream.Write(buffer, 0, buffer.Length); stream.Close(); } 

    Stampa “ciao mondo” lato server in .NET

    1. Condividi la stampante
    2. Creare un object PrintDocument
    3. Fare riferimento alla stampante per nome
    4. Aggiungi un metodo per fornire contenuti
    5. Stampare

    Codice

     using System.Drawing; using System.Drawing.Printing; public void Print() { var doc = new PrintDocument(); doc.PrinterSettings.PrinterName = "\\\\deployment-machine-name\\share-name"; doc.PrintPage += new PrintPageEventHandler(ProvideContent); doc.Print(); } public void ProvideContent(object sender, PrintPageEventArgs e) { e.Graphics.DrawString( "Hello world", new Font("Arial", 12), Brushes.Black, e.MarginBounds.Left, e.MarginBounds.Top); } 

    Prima di tutto dare un’opzione per selezionare una stampante. Il tuo intero requisito è già illustrato sul sito di supporto Microsoft.

    Dai un’occhiata qui.

    Un esempio da lì (nel caso in cui la pagina sia morta): –

     private void print_Click(object sender, System.EventArgs e) { string s = "Hello"; // device-dependent string, need a FormFeed? // Allow the user to select a printer. PrintDialog pd = new PrintDialog(); pd.PrinterSettings = new PrinterSettings(); if( DialogResult.OK == pd.ShowDialog(this) ) { // Send a printer-specific to the printer. RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, s); } }