C#打印机

转载 https://www.jb51.net/article/67938.htm
1.使用PrintDocument进行打印

using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
 
namespace PrintTest
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
      //实例化打印对象
      PrintDocument printDocument1 = new PrintDocument();
      //设置打印用的纸张,当设置为Custom的时候,可以自定义纸张的大小
      printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Custum", 500, 500);
      //注册PrintPage事件,打印每一页时会触发该事件
      printDocument1.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage);
      //开始打印
      printDocument1.Print();
    }
    private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
      //设置打印内容及其字体,颜色和位置
      e.Graphics.DrawString("Hello World!", new Font(new FontFamily("黑体"), 24), System.Drawing.Brushes.Red, 50, 50);
    }
  }
}

2.使用PrintDialog增加打印对话框

using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
 
namespace PrintTest
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
      //实例化打印对象
      PrintDocument printDocument1 = new PrintDocument();
      //设置打印用的纸张,当设置为Custom的时候,可以自定义纸张的大小
      printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Custum", 500, 500);
      //注册PrintPage事件,打印每一页时会触发该事件
      printDocument1.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage);
   
      //初始化打印对话框对象
      PrintDialog printDialog1 = new PrintDialog();
      //将PrintDialog.UseEXDialog属性设置为True,才可显示出打印对话框
      printDialog1.UseEXDialog = true;
      //将printDocument1对象赋值给打印对话框的Document属性
      printDialog1.Document = printDocument1;
      //打开打印对话框
      DialogResult result = printDialog1.ShowDialog();
      if (result == DialogResult.OK)         
        printDocument1.Print();//开始打印
    }
    private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
      //设置打印内容及其字体,颜色和位置
      e.Graphics.DrawString("Hello World!", new Font(new FontFamily("黑体"), 24), System.Drawing.Brushes.Red, 50, 50);
    }
  }
}

在这里插入图片描述
3.使用PrintPreviewDialog增加打印预览对话框
using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;

namespace PrintTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
  //实例化打印对象
  PrintDocument printDocument1 = new PrintDocument();
  //设置打印用的纸张,当设置为Custom的时候,可以自定义纸张的大小
  printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Custum", 500, 500);
  //注册PrintPage事件,打印每一页时会触发该事件
  printDocument1.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage);

  //初始化打印预览对话框对象
  PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
  //将printDocument1对象赋值给打印预览对话框的Document属性
  printPreviewDialog1.Document = printDocument1;
  //打开打印预览对话框
  DialogResult result = printPreviewDialog1.ShowDialog();
  if (result == DialogResult.OK)         
    printDocument1.Print();//开始打印
}
private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
  //设置打印内容及其字体,颜色和位置
  e.Graphics.DrawString("Hello World!", new Font(new FontFamily("黑体"), 24), System.Drawing.Brushes.Red, 50, 50);
}

}
}
在这里插入图片描述
注意:PrintDialog与PrintPreviewDialog位于名称空间System.Windows.Forms(程序集为System.Windows.Forms.dll)中,而PrintDocument位于名称空间System.Drawing.Printing(程序集为System.Drawing.dll)中。

您好!对于使用C#编程语言控制Zebra ZT210打印机,您可以通过以下步骤进行操作: 1. 首先,确保您已经安装了Zebra打印机驱动程序。您可以从Zebra官方网站上下载并安装最新的驱动程序。 2. 在C#项目中,您需要引用Zebra打印机的相关库。您可以从NuGet包管理器中搜索并安装Zebra打印机的软件开发包(SDK)。 3. 在代码中,您需要初始化打印机连接。可以通过以下代码示例来实现: ```csharp using System; using Zebra.Sdk.Comm; using Zebra.Sdk.Printer; public class ZebraPrinterControl { private Connection printerConnection; public void ConnectToPrinter(string printerIp) { printerConnection = new TcpConnection(printerIp, TcpConnection.DEFAULT_ZPL_TCP_PORT); printerConnection.Open(); } public void DisconnectFromPrinter() { printerConnection?.Close(); } public void SendZplCommands(string zplCommands) { ZebraPrinter printer = ZebraPrinterFactory.GetInstance(printerConnection); printerConnection.Write(Encoding.UTF8.GetBytes(zplCommands)); } } ``` 4. 您可以使用上述代码中的`ConnectToPrinter`方法来连接到打印机。请确保将打印机的IP地址传递给此方法。 5. 使用`SendZplCommands`方法发送ZPL命令到打印机。例如,要打印一段文本,您可以使用以下代码示例: ```csharp ZebraPrinterControl printerControl = new ZebraPrinterControl(); printerControl.ConnectToPrinter("打印机的IP地址"); printerControl.SendZplCommands("^XA^FO50,50^ADN,36,20^FDHello World^FS^XZ"); printerControl.DisconnectFromPrinter(); ``` 上述代码中的ZPL命令`^XA^FO50,50^ADN,36,20^FDHello World^FS^XZ`在打印纸上绘制了一个文本字符串"Hello World"。 请注意,以上代码仅为示例,您可能需要根据自己的需求进行适当的修改和调整。此外,在使用打印机之前,请确保您已经充分了解并熟悉了ZPL语言以及Zebra打印机的功能和配置。 希望对您有帮助!如果您还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值