二维码,打印

 转自:https://www.cnblogs.com/swjian/p/9540682.html

最近做了一个项目,使用不干胶标签贴在RFID抗金属标签上,那么就会出现标签打印的问题,该如何打印呢?后来经过网上冲浪发现,其实打印标签和打印A4纸的方法一样,只不过就是布局、设置纸张大小的问题。

本文介绍打印机初步配置,以及实现方法。标签主要展示资产基本信息以及二维码。

首先设置打印机纸张大小,纸张高宽度以实际标签为准,设置好后可打印测试页测试一下,以ZDesigner GX430t打印机为例。



创建PrintDocument实例,以及配置打印机名称:

复制代码
/// <summary>
/// 打印
/// </summary>
private void Myprinter() 
{ 
    PrintDocument pd = new PrintDocument();      
    pd.PrintPage += new PrintPageEventHandler(printDocument_PrintA4Page);
     
    pd.DefaultPageSettings.PrinterSettings.PrinterName = "ZDesigner GX430t";       //打印机名称
    //pd.DefaultPageSettings.Landscape = true;  //设置横向打印,不设置默认是纵向的
    pd.PrintController = new System.Drawing.Printing.StandardPrintController();   
    pd.Print();  
}
复制代码
设置页面布局,根据实际需求进行排版

复制代码
private void printDocument_PrintA4Page(object sender, PrintPageEventArgs e)
{
    Font titleFont = new Font("黑体", 11, System.Drawing.FontStyle.Bold);//标题字体           
    Font fntTxt = new Font("宋体", 10, System.Drawing.FontStyle.Regular);//正文文字         
    Font fntTxt1 = new Font("宋体", 8, System.Drawing.FontStyle.Regular);//正文文字           
    System.Drawing.Brush brush = new SolidBrush(System.Drawing.Color.Black);//画刷           
    System.Drawing.Pen pen = new System.Drawing.Pen(System.Drawing.Color.Black);           //线条颜色         

    try
    { 
        e.Graphics.DrawString("标题name", titleFont, brush, new System.Drawing.Point(20, 10));

        Point[] points111 = { new Point(20, 28), new Point(230,28) };
        e.Graphics.DrawLines(pen, points111); 

        e.Graphics.DrawString("资产编号:", fntTxt, brush, new System.Drawing.Point(20, 31));
        e.Graphics.DrawString("123456789123465", fntTxt, brush, new System.Drawing.Point(80, 31));
        e.Graphics.DrawString("资产序号:", fntTxt, brush, new System.Drawing.Point(20, 46));
        e.Graphics.DrawString("123456789131321", fntTxt, brush, new System.Drawing.Point(80, 46));

        e.Graphics.DrawString("底部name", fntTxt1, brush, new System.Drawing.Point(100, 62));

        Bitmap bitmap = CreateQRCode("此处为二维码数据");
        e.Graphics.DrawImage(bitmap, new System.Drawing.Point(240, 10));  

    }
    catch (Exception ee)
    {
        MessageBox.Show(ee.Message);
    }
}
复制代码
二维码生成方法,我这里使用zxing

复制代码
/// <summary>
/// 二维码方法
/// </summary>
/// <param name="asset"></param>
/// <returns></returns>
public static Bitmap CreateQRCode(string asset)
{
    EncodingOptions options = new QrCodeEncodingOptions
    {
        DisableECI = true,
        CharacterSet = "UTF-8", //编码
        Width = 80,             //宽度
        Height = 80             //高度
    };
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
    writer.Options = options;
    return writer.Write(asset);
}
复制代码
效果图:



最后附上源码,里面有zxing.dll

  链接: https://pan.baidu.com/s/1ebIILBJuhI2n02C_l-_gUQ

  密码: w1jc

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值