C#?使用PrintDocument類(lèi)打印標(biāo)簽的方法
最近做了一個(gè)項(xiàng)目,使用不干膠標(biāo)簽貼在RFID抗金屬標(biāo)簽上,那么就會(huì)出現(xiàn)標(biāo)簽打印的問(wèn)題,該如何打印呢?后來(lái)經(jīng)過(guò)網(wǎng)上沖浪發(fā)現(xiàn),其實(shí)打印標(biāo)簽和打印A4紙的方法一樣,只不過(guò)就是布局、設(shè)置紙張大小的問(wèn)題。
本文介紹打印機(jī)初步配置,以及實(shí)現(xiàn)方法。標(biāo)簽主要展示資產(chǎn)基本信息以及二維碼。
首先設(shè)置打印機(jī)紙張大小,紙張高寬度以實(shí)際標(biāo)簽為準(zhǔn),設(shè)置好后可打印測(cè)試頁(yè)測(cè)試一下,以ZDesigner GX430t打印機(jī)為例。
創(chuàng)建PrintDocument實(shí)例,以及配置打印機(jī)名稱(chēng):
/// <summary> /// 打印 /// </summary> private void Myprinter() { PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler(printDocument_PrintA4Page); pd.DefaultPageSettings.PrinterSettings.PrinterName = "ZDesigner GX430t"; //打印機(jī)名稱(chēng) //pd.DefaultPageSettings.Landscape = true; //設(shè)置橫向打印,不設(shè)置默認(rèn)是縱向的 pd.PrintController = new System.Drawing.Printing.StandardPrintController(); pd.Print(); }
設(shè)置頁(yè)面布局,根據(jù)實(shí)際需求進(jìn)行排版
private void printDocument_PrintA4Page(object sender, PrintPageEventArgs e) { Font titleFont = new Font("黑體", 11, System.Drawing.FontStyle.Bold);//標(biāo)題字體 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);//畫(huà)刷 System.Drawing.Pen pen = new System.Drawing.Pen(System.Drawing.Color.Black); //線(xiàn)條顏色 try { e.Graphics.DrawString("標(biāo)題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("資產(chǎn)編號(hào):", fntTxt, brush, new System.Drawing.Point(20, 31)); e.Graphics.DrawString("123456789123465", fntTxt, brush, new System.Drawing.Point(80, 31)); e.Graphics.DrawString("資產(chǎn)序號(hào):", 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("此處為二維碼數(shù)據(jù)"); 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/1mWdjSPt282tKVz-B1VJoTA
提取碼: 517j
2019.09.04 補(bǔ)充:
增加一維碼打印
/// <summary> /// 創(chuàng)建條碼方法 /// </summary> /// <param name="asset"></param> /// <returns></returns> public static Bitmap CreateCode(string asset) { // 1.設(shè)置條形碼規(guī)格 EncodingOptions options = new EncodingOptions(); options.Height = 40; // 必須制定高度、寬度 options.Width = 120; // 2.生成條形碼圖片并保存 BarcodeWriter writer = new BarcodeWriter(); writer.Options = options; writer.Format = BarcodeFormat.CODE_128; //二維碼編碼 return writer.Write(asset); // 生成圖片 }
到此這篇關(guān)于C# 使用PrintDocument類(lèi)打印標(biāo)簽的文章就介紹到這了,更多相關(guān)C# 打印標(biāo)簽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# SerialPort實(shí)現(xiàn)串口通訊的代碼詳解
在.NET平臺(tái)下創(chuàng)建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空間是System.IO.Ports,這個(gè)新的框架不但可以訪(fǎng)問(wèn)計(jì)算機(jī)上的串口,還可以和串口設(shè)備進(jìn)行通信,本文給大家介紹了C# SerialPort實(shí)現(xiàn)串口通訊,需要的朋友可以參考下2024-06-06C# WinForm制作一個(gè)批量轉(zhuǎn)化文件格式的小工具
在生活中有時(shí)候會(huì)遇到批量轉(zhuǎn)換格式的需求,一個(gè)個(gè)點(diǎn)太麻煩了,一個(gè)能夠?qū)崿F(xiàn)批量文件格式轉(zhuǎn)換的工具非常有用,所以本文小編使用C# WinForm制作一個(gè)批量轉(zhuǎn)化文件格式的小工具,文中有具體實(shí)現(xiàn)代碼,需要的朋友可以參考下2023-11-11C#畫(huà)圖之餅圖折線(xiàn)圖的實(shí)現(xiàn)方法
這篇文章主要介紹了C#畫(huà)圖之餅圖折線(xiàn)圖的實(shí)現(xiàn)方法,以實(shí)例形式講述了C#畫(huà)圖的完整實(shí)現(xiàn)過(guò)程,是非常實(shí)用的技巧,有不錯(cuò)的借鑒價(jià)值,需要的朋友可以參考下2014-09-09C#創(chuàng)建一個(gè)Word并打開(kāi)的方法
這篇文章主要介紹了C#創(chuàng)建一個(gè)Word并打開(kāi)的方法,實(shí)例分析了C#操作word的常用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04詳解C#中HttpClient的用法及相關(guān)問(wèn)題的解決方法
相信大家在使用 HttpClient 的時(shí)候遇到過(guò) 遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接 的錯(cuò)誤。本文就來(lái)說(shuō)說(shuō)它的解決方法以及HttpClient的正確用法,需要的可以參考一下2022-11-11C#程序中session值的保存方法以及轉(zhuǎn)為字符串的方法總結(jié)
這篇文章主要介紹了C#程序中session值的保存方法以及轉(zhuǎn)為字符串的方法總結(jié),經(jīng)常被用于ASP.NET網(wǎng)絡(luò)編程項(xiàng)目中,需要的朋友可以參考下2016-04-04C#實(shí)現(xiàn)移動(dòng)窗體的兩種共方法
在C#Form窗體設(shè)計(jì)中,如果我們不需要使用默認(rèn)邊框設(shè)計(jì)自己個(gè)性化的窗體,這時(shí)候你會(huì)發(fā)現(xiàn)拖動(dòng)窗體的功能就沒(méi)有了,這里需要自己構(gòu)建方法讓用戶(hù)可以拖動(dòng)整個(gè)窗體,下面就介紹兩種方法來(lái)實(shí)現(xiàn),需要的朋友可以參考下2024-09-09