C#?使用PrintDocument類打印標(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ī)名稱:
/// <summary>
/// 打印
/// </summary>
private void Myprinter()
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(printDocument_PrintA4Page);
pd.DefaultPageSettings.PrinterSettings.PrinterName = "ZDesigner GX430t"; //打印機(jī)名稱
//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);//畫刷
System.Drawing.Pen pen = new System.Drawing.Pen(System.Drawing.Color.Black); //線條顏色
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類打印標(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è)新的框架不但可以訪問(wèn)計(jì)算機(jī)上的串口,還可以和串口設(shè)備進(jìn)行通信,本文給大家介紹了C# SerialPort實(shí)現(xiàn)串口通訊,需要的朋友可以參考下2024-06-06
C# 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-11
C#創(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-11
C#程序中session值的保存方法以及轉(zhuǎn)為字符串的方法總結(jié)
這篇文章主要介紹了C#程序中session值的保存方法以及轉(zhuǎn)為字符串的方法總結(jié),經(jīng)常被用于ASP.NET網(wǎng)絡(luò)編程項(xiàng)目中,需要的朋友可以參考下2016-04-04
C#實(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)建方法讓用戶可以拖動(dòng)整個(gè)窗體,下面就介紹兩種方法來(lái)實(shí)現(xiàn),需要的朋友可以參考下2024-09-09

