我已经安装了打印机并在intranet服务器上工作,我想以编程方式向该默认打印机发送"hello world“。这看起来似乎是最简单的事情,但我已经用谷歌搜索了几个小时,但没有成功。(注意:我正在运行Windows7的部署机器上开发asp.net mvc )
我试图将VB here中的一个示例翻译成C#,但它显示“没有安装打印机”。
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 here中的一个代码片段,但它显示无法识别打印机名称。
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();
}发布于 2012-09-02 05:07:40
在.NET中打印"hello world“服务器端
PrintDocument by name(按名称添加方法以提供打印机)
代码
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);
}发布于 2012-09-02 01:29:55
首先给出一个选择打印机的选项。Microsoft支持网站上已经说明了您的全部要求。
Have a look here.
这里的一个样本(以防某一天页面死了):
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);
}
}https://stackoverflow.com/questions/12229823
复制相似问题