首页 > 编程语言 >C#通过ZXing 打印条形码

C#通过ZXing 打印条形码

时间:2024-11-18 14:22:18浏览次数:1  
标签:条形码 C# writer ZXing new btm using x1

1、通过nuget 安装 Zxing 插件并引用

using ZXing;
using ZXing.QrCode.Internal;
using ZXing.Common;
using ZXing.QrCode;

2、演示界面

 3、打印效果

 4、主要代码

双击 printDocument1控件,编写如下示例代码:

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            string batchNo;
            batchNo = textBox1.Text;
            Bitmap btm  = BarCode(batchNo);
            int num1 = 200;
            //标签文字开始X点
            //文字从第几列开始打,横坐标
            int x1 = 280;
            //文字开始打印的高度
            int y1 = 111;
            int yStep = 50;  //行间距
            Pen pen = new Pen(Color.Black, 1f);
            Font font = new Font("宋体", 17f, FontStyle.Bold);
            //黑色笔
            Brush fontColor = Brushes.Black;
            // 绘制到屏幕上。
            e.Graphics.DrawString(textBox1.Text, font, fontColor, x1, y1);
             x1 = x1 + 100;
        //消除锯齿 e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; e.Graphics.DrawImage(btm, x1,y1, btm.Width, btm.Height); }

  “打印”按钮的事件,就是调用printDocument1的print()函数 

 private void button1_Click(object sender, EventArgs e)
        {
            printDocument1.Print();
        }

条形码生成函数 

 //根据文字生成一维条形码函数 
        public static Bitmap BarCode(string text)
        {
            BarcodeWriter writer = new BarcodeWriter();
            writer.Format = BarcodeFormat.CODE_128;
            EncodingOptions options = new EncodingOptions()
            {
                Width = 150,
                Height = 50,
                Margin = 0,
                //true:一维码下方不显示文字  false:显示文字,默认是显示 
                PureBarcode = false
            };
            writer.Options = options;
            Bitmap map = writer.Write(text);
            return map;
        }

 

标签:条形码,C#,writer,ZXing,new,btm,using,x1
From: https://www.cnblogs.com/lrzy/p/18552519

相关文章

  • C++多线程编程
    一、概念多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。传统的C++(C++11标准之前)中并没有引入线程这个概念,在C++11出来之前,如果我们想要在C++中实现多线程,需要借助操作系统平台提供的API,比如Linux的<pthread.h>,或者windows下的<windows.h>。1.1其......
  • catia零部件装配结构搭建
    catia零部件装配结构搭建ProductCatia的product文件保存装配结构和各个零部件之间的参数关系与约束关系,不保存三维实体本身。装配结构搭建通常在装配结构搭建的时候不考虑零部件之间的约束关系,只保留装配结构与位置关系(零部件的三维坐标与当前的姿态)。程序思路一般情况下,会......
  • cron表达式
    一、Cron表达式0/10****?这种表达式称为cron表达式,通过cron表达式可以灵活的定义出符合要求的程序执行的时间。Cron表达式支持到7个域。cron表达式分为7个域,之间使用空格分隔。其中最后一个域(年)可以为空,每个域都有自己允许的值和一些特殊字符构成。使用这些特殊字......
  • 目前国内可用Docker镜像源汇总(截至2024年11月)
    本文主要讲述了由于特殊原因国内的Docker镜像源出现问题,国内许多常见的镜像源如网易、百度等已不可用。文中介绍了中科大镜像源的暂时关闭情况,以及阿里镜像源包括私人阿里镜像加速器的使用方式,并提供了一些可用的镜像源地址和相应的设置配置代码,最后强调了使用Docker应专注于......
  • 高效处理日均5000亿+数据:58集团基于Apache SeaTunnel的数据集成平台架构优化
    视频链接:58集团大数据平台基于ApacheSeaTunnel的架构演进https://www.bilibili.com/video/BV19GUPYcEgB/?vd_source=e139ecc995ab936267a7991b9de55f6c引言在数字化时代,数据已成为企业最宝贵的资产之一。58集团作为中国领先的生活服务平台,其大数据部在数据集成平台的建设上不......
  • ssm139选课排课系统的设计与开发+vue(论文+源码)_kaic
    摘 要互联网的普及,改变了人们正常的生活学习及消费习惯,而且也大大的节省了人们的时间,由于各种管理系统都再不断的增加,更方便了用户,也改良了很多的用户习惯。对于选课排课系统查询方面缺乏系统的管理方式,为提高选课排课系统效率,特开发了本选课排课系统。选课排课系统的设计......
  • spring cloud内容汇总(各个功能模块,启动,部署)
    SpringCloud是一套基于SpringBoot的框架集合,用于构建分布式微服务架构。它提供了一系列工具和库,帮助开发者更轻松地管理分布式系统中的关键问题,比如服务注册与发现、负载均衡、分布式配置管理、熔断与降级、链路追踪等。下图展示了微服务架构中每个主要功能模块的常用解决方......
  • cmu15545笔记-查询执行(Query Excution)Eu
    目录*执行模型IteratorModelMaterializationModelVectoriazationModel对比数据访问方式:豆荚加速器SequentialScanIndexScanMulti-IndexScanHalloweenProblem表达式求值执行模型执行模型(ProcessingModel)定义了数据库系统如何执行一个查询计划。Itera......
  • C++ 中的线程、锁和条件变量
    C++中的线程、锁和条件变量Created:2024-06-19T17:17+08:00Published:2024-11-18T10:39+08:00Categories:C-CPP目录线程创建与执行锁lockguardexamplemutex底层实现解释byGPT条件变量(conditionvariable)线程从cv.wait(lock)被唤醒后会自动抢锁虚假唤醒生产者消费......
  • leetcode面试题 17.17. 多次搜索
    给定一个较长字符串big和一个包含较短字符串的数组smalls,设计一个方法,根据smalls中的每一个较短字符串,对big进行搜索。输出smalls中的字符串在big里出现的所有位置positions,其中positions[i]为smalls[i]出现的所有位置。示例:输入:big="mississippi"smalls=["is","ppi",......