C# 如何高清打印标签纸

打印要用到C#自带的打印机的组件

建议窗体添加PageSetupDialog(对打印的页进行设置),PrintDialog(选择打印机,设置一些打印参数),PrintDocumentDialog(执行打印的对象),PrintProviewDialog(打印预览)

打印操作在二维码,条形码生成的文章中说道,二维码和条形码生成的时候要用PictureBox,要显示的码以图片的形式生成在PictureBox中,要打印的内容放置Labe控件即可,上面是模拟打印可视化的效果,并不是真正的打印效果,真正的打印效果是需要自己根据标签的尺寸进行布局的,下面介绍如何进行打印布局。

前面提到的四个打印的Dialog,除了PrintDocumentDialog,其他的都是可以以ShowDialog的方式进行显式配置的,对于PrintDocumentDialog,我们要在它的可生成的事件中添加PrintPage事件,在该事件中进行打印的布局,通过CodePrintDocument.Print();函数触发该事件,其中CodePrintDocument是用PrintDocumentDialog创建的对象。FarmProductPrintOperation函数为自定义函数,在PrintPage事件中调用。

protected void FarmProductPrintOperation(System.Drawing.Printing.PrintPageEventArgs e)
        {
            Font qr_print_font = new Font("楷体", 4, FontStyle.Regular);                             //打印字体的选择
            SolidBrush qr_draw_brush = new SolidBrush(Color.Black);
            StringFormat qr_drawFormat = new StringFormat();                                          //打印字体时的分辨率选择
            qr_drawFormat.FormatFlags = StringFormatFlags.DirectionVertical;
            float qr_y_offset_value = 4;
            float qr_y_start_position = 11 + qr_y_offset_value;
            float qr_x_start_position = 62;
            float qr_offset_position = 8;
            float qr_text_y_start_opsition;
            //此时的内容包含了“产品:”
            if (percent_farm_prinf_infor.ProductName.Length >= 12)
            {
                qr_text_y_start_opsition = qr_y_start_position + 6;
            }
            else
            {
                qr_text_y_start_opsition = qr_y_start_position;
            }

//重点部分,高清打印采用下面的方式,在打印时显示的图片用e.Graphics.DrawImage,显示的文字用e.Graphics.DrawString,后面的坐标为在标签中打印内容的位置,具体的布局自己实现
            e.Graphics.DrawImage(QRCodePictureBox.Image, 3, 3 + qr_y_offset_value, QRCodePictureBox.Width, QRCodePictureBox.Height);
            e.Graphics.DrawString(percent_farm_prinf_infor.ProductName, qr_print_font, qr_draw_brush, qr_x_start_position, qr_y_start_position);
            e.Graphics.DrawString(percent_farm_prinf_infor.ProductModel, qr_print_font, qr_draw_brush, qr_x_start_position, qr_text_y_start_opsition + qr_offset_position * 1);
            e.Graphics.DrawString(percent_farm_prinf_infor.BatteryCapacity, qr_print_font, qr_draw_brush, qr_x_start_position, qr_text_y_start_opsition + qr_offset_position * 2);
            e.Graphics.DrawString(percent_farm_prinf_infor.PowerInput, qr_print_font, qr_draw_brush, qr_x_start_position, qr_text_y_start_opsition + qr_offset_position * 3);
            e.Graphics.DrawString(percent_farm_prinf_infor.CompanyName, qr_print_font, qr_draw_brush, qr_x_start_position, qr_text_y_start_opsition + qr_offset_position * 4);
            qr_print_font = new Font("楷体", 6, FontStyle.Regular);
            e.Graphics.DrawString(percent_farm_prinf_infor.IMEI, qr_print_font, qr_draw_brush, 34, 64 + qr_y_offset_value);
        }

题外扩展:在产品进行产测时,一般要求产测PC端软件生成的产测的日志文件记录产测的情况,给产测成功的产品进行贴标签(条形码或是二维码以及相关内容的打印)的操作,产测完成后,使用扫描枪对产品进行入库操作

实现了高清的标签打印后,使用扫描枪对打印出来的条形码和二维码进行扫描操作,请查看另外一篇C#关于扫描枪的操作

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值