[c#]二维码打印

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
using ThoughtWorks.QRCode.Codec.Util;

namespace TwoDimensionCodePrint
{
    public partial class Print : Form
    {
        private int left = 0, top = 0, width = 150, height = 150;
        private string fileName = "d:\\二维码电子票\\红河谷大门票\\20141025111316红河谷大门票共30张.jpg";

        public Print()
        {
            InitializeComponent();
        }
        //打印
        private void btnPrint_Click(object sender, EventArgs e)
        {
            if (pictureBox1.Image == null)
            {
                MessageBox.Show("请选择二维码图片");
                return;
            }
            //打印预览
            PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
            PrintDocument printDocument = new PrintDocument();
            //设置边距
            try
            {
                left = int.Parse(txtLeft.Text);
                top = int.Parse(txtTop.Text);
                width = int.Parse(txtWidth.Text);
                height = int.Parse(txtHeight.Text);
            }
            catch
            {
                MessageBox.Show("请输入正确的数字");
            }

            Margins margin = new Margins(left, left + width, top, top + height);
            printDocument.DefaultPageSettings.Margins = margin;
            //打印事件设置
            printDocument.PrintPage += new PrintPageEventHandler(this.PrintPageEvent);
            // 打印预览
            //printPreviewDialog.Document = printDocument;
            //printPreviewDialog.ShowDialog();
            try
            {
                printDocument.Print();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
                printDocument.PrintController.OnEndPrint(printDocument, new PrintEventArgs());
            }
        }

        //打印事件处理
        private void PrintPageEvent(object sender, PrintPageEventArgs e)
        {
            //读取图片
            // 1 根据路径获取
            // Bitmap image = new Bitmap(fileName);
            // 2 从PictureBox获取
            // Image image = pictureBox1.Image;
            // 3 直接根据生成的二维码打印
            Image image = ProduceQRcode("司吉峰");
            //在指定区域打印二维码
            Rectangle destRect = new Rectangle(left, top, width, height);
            e.Graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, System.Drawing.GraphicsUnit.Pixel);
        }
        // 将结果填充到图片
        private void GetResultIntoImage(ref Image temp, string name, string date)
        {
            //读取图片
            Graphics g = Graphics.FromImage(temp);
            Font f = new Font("宋体", 12);
            Brush b = new SolidBrush(System.Drawing.Color.Black);
            //填充数据到图片
            g.DrawImage(temp, 0, 0, temp.Width, temp.Height);
            g.DrawString(name, f, b, 168, 105);
            g.DrawString(date, f, b, 176, 269);
            g.Dispose();
        }
        //生成二维码
        public Image ProduceQRcode(string TicketCodeContent)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeScale = 7;

            qrCodeEncoder.QRCodeVersion = 0;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
            qrCodeEncoder.QRCodeBackgroundColor = System.Drawing.Color.White;
            qrCodeEncoder.QRCodeForegroundColor = System.Drawing.Color.Black;
            return qrCodeEncoder.Encode(TicketCodeContent);
        }
    }
}

运行界面:

完整代码下载:点击打开链接

时间: 2024-08-25 23:31:19

[c#]二维码打印的相关文章

smartforms 二维码打印

1. 安装TBarCode_SAPwin软件 1) 下载Barcode软件  下载TBarCode_SAPwin 软件.(如需生成SAP"字符控制序列"则需一并下载TBarCode_Studio(V6)软件). 2) 安装Barcode软件  安装TBarCode_SAPwin,一路默认下一步. 选SAPlpd.exe 安装完成. 2. 设置SAP设备类型.系统条码及打印机.输出设备等 1) 拷贝设备类型  Tcode:SPAD 拷贝设备类型,推荐拷贝CNSAPWIN(对中文支持较好)

JAVA创建二维码打印代码

jsp前端代码: <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="printTag()">打印条码</a> //打印        function printTag() {            var row = $('#dg').da

wex5 实战 二维码生成,扫描,蓝牙打印

给人设计了一个小模块,要求是,把一个单号生成二维码,实现扫描查询单号具体信息,并能通过蓝牙把二维码打印出来.功能实现并不复杂,今天一口气把它搞定.来看效果. 一   效果演示: 二.二维码生成 1 在界面上放一个生成二维码的div (注意)id属性手动添加 2 ,下载并引入js文件 require("./js/jquery.qrcode.min"); 3. 修改js文件 (注)canvas演染快,支持复杂变量. text为字符串,对变量必须进行拼接,其它强制转换方法不行 js代码位置非

js 生成二维码并打印

该文章为了节约项目开发中内存空间,而通过js动态生成二维码,不生成图片保存在项目中,图片路径不需保存于数据库中该文章主要介绍web生成二维码,当然ios,android同样可通过QRCode生成二维码,之后介绍...... 1.引入js <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src

vue项目中批量打印二维码

前提:项目中要打印的二维码为后台返回,批量选择后,点击打印,先打开二维码预览界面,再执行打印. 以下代码中 codePicList为选中的二维码数组.重点css:page-break-after:always 在元素后插入分页符;在打印时,要分页(需求是每个二维码打印在一张纸上) // 此代码为浏览界面遍历出来的要打印的多个二维码<ul id="codeImgviewer" v-if="codePicList != null && codePicList

java实现二维码生成及调用打印机打印

在开发二维码打印的过程中走过几次弯路,所以在这里特意将其记录下来留作备忘.一开始参考其他博主写的文章,有介绍通过编写JAVA后台代码来获取本地默认打印机的驱动实现打印.BUT!这样就导致在本地开发测试时看似一切正常,一旦项目部署到linux环境下,就会完全失效了(JAVA后台代码去获取linux本地的打印机驱动).还有介绍并提供编写的插件的(不甚了解这块),鉴于时间要求比较苛刻,那就简单的来吧. 需求:生成带水印效果的二维码图片,可以批量预览,并连接打印机批量打印. 开发思路:1.编写二维码生成

微信分享二维码

某个业务场景使用微信生成了二维码,临时或是永久的,此时得到的二维码是一个链接. 若需要通过公众号将二维码发送给用户,或者分享二维码,只能分享链接. 如需要分享图片,则需要以下操作: 生成二维码 将二维码图片下载到本地保存. 将二维码与其他图片合成在一起.(可选,可以将logo或者其他广告图片作为背景,将二维码打印上去) 将本地二维码图片作为素材上传到微信服务器. 将二维码发送给用户.

微信二维码支付native原生支付开发模式二

模式一相比,流程更为简单,不依赖设置的回调支付URL.商户后台系统先调用微信支付的统一下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付.注意:code_url有效期为2小时,过期后扫码不能再发起支付. 1.业务流程时序图 图6.9原生支付模式二时序图 业务流程说明: 1)商户后台系统根据用户选购的商品生成订单. 2)用户确认支付后调用微信支付[统一下单API]生成预支付交易: 3)微信支付系统收到请求后生成预支付

恒久软件推出义齿二维码真伪查询功能

如今二维码在各行各业的运用已经越来越广泛,义齿行业也不例外,恒久软件推出二维码真伪查询功能, 扫描二维码,轻松查询真伪! 联系我们:0571-88014669 86076049 QQ:800070969 二维码打印效果图 手机扫描效果图