以编程方式“你好世界"ASP.NET MVC 中的默认服务器端打印机 [英] Programmatically "hello world" default SERVER-side printer in ASP.NET MVC
问题描述
我安装了打印机并在 Intranet 服务器上工作,我想以编程方式将hello world"发送到该默认打印机.这似乎是最简单的事情,但我已经用谷歌搜索了几个小时但没有成功.(注意:我正在运行 Windows 7 的部署机器上开发 asp.net mvc)
I have the printer installed and working on an intranet server and I want to programmatically send "hello world" to that default printer. This seems like the simplest thing but I've been googling for a couple hours with no success. (note: I am developing asp.net mvc on the deployment machine itself which is running Windows 7)
我试图从 VB 这里翻译一个例子进入 C# 但它说没有安装打印机".
I tried to translate an example from VB here into C# but it said "no printers are installed".
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);
}
我还尝试了 MSDN 中的一个片段 此处 但它说它无法识别打印机名称.
I had also tried a snippet from MSDN here but it said it did not recognize the printer name.
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();
}
推荐答案
在 .NET 中打印hello world"服务器端
Print "hello world" server-side in .NET
- 共享打印机
- 创建一个
PrintDocument
对象 - 按名称引用打印机
- 添加提供内容的方法
- 打印
代码
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);
}
这篇关于以编程方式“你好世界"ASP.NET MVC 中的默认服务器端打印机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!