Ho la stampante installata e funzionante 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)Stampante lato server predefinita "Hello World" in ASP.NET MVC
Ho provato a tradurre un esempio da VB here 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 un frammento da MSDN here ma ha detto che non ha riconosciuto 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();
}
Metterò un dollaro sul "server intranet" essere macchina diversa da quella su cui viene testato questo codice. –
Cosa comprerò con un dollaro? – Benjamin
@HansPassant per favore aiuto! Prometto che restituirò il tuo dollaro. – Benjamin