通过asp.net上的打印服务器打印文本(c#)

时间:2010-06-30 13:50:10

标签: c# asp.net

我需要打印文本内容,我使用此代码,但不起作用,论文是空的

      PrintDocument myPrintServer = new PrintDocument();

        myPrintServer.PrinterSettings.PrinterName = @"\\servername\printerName";
        StringReader myReader = new StringReader("test string content");
        myReader.Close();

有人能告诉我出了什么问题吗?

谢谢

2 个答案:

答案 0 :(得分:0)

您将myReader数据发送到打印服务器的哪个位置?我在你的代码片段中没有看到。

您可能需要查看example on msdn特别是显示PrintPageEventHandler用于在打印画布上实际绘制的部分。

答案 1 :(得分:0)

您必须添加代码才能将字符串渲染到您创建的PrintDocument对象的图形上下文中。请参阅example on MSDN并注意他们如何使用事件处理程序向页面呈现文本:

          pd.PrintPage += new PrintPageEventHandler
             (this.pd_PrintPage);
          pd.Print();

然后:

// The PrintPage event is raised for each page to be printed.
private void pd_PrintPage(object sender, PrintPageEventArgs ev) 
{

...

      ev.Graphics.DrawString(line, printFont, Brushes.Black, 
         leftMargin, yPos, new StringFormat());

...

}

如果您想要将预先格式化的数据从C#直接发送到打印机,您可以使用RawPrinterHelper defined in this MSDN example并执行类似的操作     string s =“Hello”; //依赖于设备的字符串,需要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);
}