[c#]二維碼列印

來源:互聯網
上載者:User

標籤:二維碼   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);        }    }}


運行介面:





完整代碼下載:點擊開啟連結



[c#]二維碼列印

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.