loading

프로그래밍/C#

C# Zebra(제브라) 프린터 2D(이차원)바코드 출력하기

침착곰 2021. 4. 16. 15:10
반응형

안녕하세요

C# Zeber 프린터의 이차원 바코드를 출력하는 방법에 대해서 알아보겠습니다

1차원 바코드로 출력할 내용이 많아지는 경우 바코드가 너무 길어지는 문제가 발생할 수 있습니다

2차원 바코드로 출력을 하게되면 바코드에 들어가는 정보가 많아져도 작은 크기의 바코드에 그 정보들을 담을 수 있습니다

해당 프린터는 ZT410-203Dpi 모델로 테스트했습니다

2차원 바코드의 형식은 Data Matrix 사용했습니다

 

1. 최종 소스

Zebra2.zip
0.05MB

 

2. 디자인

 밑의 화면처럼 간단하게 디자인해줍니다

 바코드정보에 들어갈 LOT번호를 입력할 테스트박스와 품목명 및 생산일자 정보를 표시할 텍스트박스를 추가했습니다

 

3. 소스

 프로그램 전체 소스입니다

 프린트 다이얼로그를 세팅하고 프린트String을 만들어서 프린트String을 그대로 출력합니다

 2차원 바코드의 주석처리된 라인을 보시면 ^BXN을 넣어주면 해당 텍스트의 내용이 2차원 바코드로 출력이 됩니다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using MesSystem;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Zebra1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void btnPrint_Click(object sender, EventArgs e)
        {
            // 프린트 다이얼로그 선언
            PrintDialog pd = new PrintDialog();
            pd.PrinterSettings = new PrinterSettings();
 
            // 바코드String을 가져온다
            string BarCode = getbarcode();
 
            // 바코드 출력
            if (!(RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, BarCode)))
            {
                MessageBox.Show("에러!!!");
            }
            else
            {
 
            }
        }
 
        /// <summary>바코드 출력</summary>
        private string getbarcode()
        {
            string BarCode = string.Empty;
 
            BarCode = "^XA";                                                            // 시작
            BarCode = BarCode + "^SEE:UHANGUL.DAT^FS";                                  // 바코드 한글 처리
            BarCode = BarCode + "^CW1,E:KFONT3.FNT^CI26^FS";                            // 
            BarCode = BarCode + "\r\n^LH30,30";                                         // 기준점
            BarCode = BarCode + "\r\n^FO200,10^BXN,10,200^FD" + txtLot.Text + "^FS";    // 2차원바코드
            BarCode = BarCode + "\r\n^FO30,250^A1N,30,30^FD" + txtLot.Text + "^FS";     // 바코드 내용 표시
 
            BarCode = BarCode + "\r\n^FO30,310^A1N,35,35^FD" + "품 목 명 : " + txtItem.Text + "^FS";        // 품목명 표시
            BarCode = BarCode + "\r\n^FO30,350^A1N,35,35^FD" + "생산일자 : " + txtDate.Text + "^FS";        // 생산일자 표시
 
            BarCode = BarCode + "\r\n^XZ";
 
            return BarCode;
        }
    }
}
 
cs

 참고로 바코드 출력 시 RawPrintHelper.cs 파일을 참조했는데 이 파일을 프로젝트에 추가해야 프로그램 구현 시 에러가 없으실겁니다

 파일은 밑에 첨부하였습니다

RawPrinterHelper.cs
0.01MB

 

 

4. 참고사항

 바코드를 출력하였는데 품목명에 한글이 깨질 수가 있습니다

 그 경우는 Zebra 프린터의 한글설정을 하지 않아서 출력이 되지 않는 것입니다

 하단의 링크를 참고하여 프린터의 한글설정을 해줍니다

2021.04.16 - [프로그래밍/C#] - C# Zebra(제브라) 프린터 한글 출력하기

 

C# Zebra(제브라) 프린터 한글 출력하기

안녕하세요 이번에 Zebra 프린터로 바코드 출력 프로그램을 만들면서 생긴 에러사항에 대해서 설명하려고 합니다 Zebra 프린터는 기본적으로 한글을 제공하지 않아서 한글을 출력하려하면 글자가

crazykim2.tistory.com

 

5. 결과 화면

 프로그램에서 밑의 데이터를 입력하고 바코드 출력을 하면 해당 정보가 출력되는 것을 확인할 수 있습니다

여기까지 C#에서 Zebra 프린터의 2차원 바코드 출력방법에 대해서 알아봤습니다

만약 Zebra 프린터로 2차원 바코드 출력 프로그램을 개발한다면 참고가 되셨으면 좋겠습니다

반응형
그리드형