.NET打印
在.NET下进行打印并不太困难。您可以看一下这里 和在msdn上了解更多。
如果要打印到POS / 收据打印机,与打印到其他打印机相同,只要它是Windows打印机、网络或其他类型的打印机。如果您使用串口打印机,可能会更加困难,因为您很可能需要使用制造商特定的API,幸运的是,现今大多数优秀的POS打印机都得到操作系统的全面支持。
首先,您需要在项目中添加对System.Printing
dll的引用。
然后,打印就像这样简单:
private void PrintText(string text)
{
var printDlg = new PrintDialog();
var doc = new FlowDocument(new Paragraph(new Run(text)));
doc.PagePadding = new Thickness(10);
printDlg.PrintDocument((doc as IDocumentPaginatorSource).DocumentPaginator, "Print Caption");
}
To use..
PrintText("Hello World");
你也可以利用
PrintDialog.PrintVisual,并使用xaml模板定义你的文档。
打印设置可以使用PrintDialog属性进行设置。
获取想要打印的打印机。
private PrintQueue FindPrinter(string printerName)
{
var printers = new PrintServer().GetPrintQueues();
foreach (var printer in printers)
{
if (printer.FullName == printerName)
{
return printer;
}
}
return LocalPrintServer.GetDefaultPrintQueue();
}
当打印到收据打印机时,需要注意一些事项,您需要考虑格式。更具体地说,您需要考虑页面宽度以及每行可以容纳多少个字符;对我来说,这需要大量的试错,尤其是在不同字体大小的情况下。
在大多数情况下,您实际上不需要担心分页问题,打印机将在完成文档后自动切割纸张。