BarCode 바코드 는 C\#GDI+의 실현 방법 에 따라 상세 하 게 설명 합 니 다.
5601 단어 barcode
public Bitmap GetCode39(string sourceCode)
{
int leftMargin = 5;
int topMargin = 0;
int thickLength = 2;
int narrowLength = 1;
int barCodeHeight = 35;
int intSourceLength = sourceCode.Length;
string strEncode = "010010100"; // “*”.
var font = new System.Drawing.Font("Segoe UI", 5);
string AlphaBet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*";
string[] Code39 =
{
/* 0 */ "000110100",
/* 1 */ "100100001",
/* 2 */ "001100001",
/* 3 */ "101100000",
/* 4 */ "000110001",
/* 5 */ "100110000",
/* 6 */ "001110000",
/* 7 */ "000100101",
/* 8 */ "100100100",
/* 9 */ "001100100",
/* A */ "100001001",
/* B */ "001001001",
/* C */ "101001000",
/* D */ "000011001",
/* E */ "100011000",
/* F */ "001011000",
/* G */ "000001101",
/* H */ "100001100",
/* I */ "001001100",
/* J */ "000011100",
/* K */ "100000011",
/* L */ "001000011",
/* M */ "101000010",
/* N */ "000010011",
/* O */ "100010010",
/* P */ "001010010",
/* Q */ "000000111",
/* R */ "100000110",
/* S */ "001000110",
/* T */ "000010110",
/* U */ "110000001",
/* V */ "011000001",
/* W */ "111000000",
/* X */ "010010001",
/* Y */ "110010000",
/* Z */ "011010000",
/* - */ "010000101",
/* . */ "110000100",
/*' '*/ "011000100",
/* $ */ "010101000",
/* / */ "010100010",
/* + */ "010001010",
/* % */ "000101010",
/* * */ "010010100"
};
sourceCode = sourceCode.ToUpper();
Bitmap objBitmap = new Bitmap(
((thickLength * 3 + narrowLength * 7) * (intSourceLength + 2)) + (leftMargin * 2),
barCodeHeight + (topMargin * 2));
Graphics objGraphics = Graphics.FromImage(objBitmap);
objGraphics.FillRectangle(Brushes.White, 0, 0, objBitmap.Width, objBitmap.Height);
for (int i = 0; i < intSourceLength; i++)
{
//
if (AlphaBet.IndexOf(sourceCode[i]) == -1 || sourceCode[i] == '*')
{
objGraphics.DrawString("Invalid Bar Code",
SystemFonts.DefaultFont, Brushes.Red, leftMargin, topMargin);
return objBitmap;
}
//
strEncode = string.Format("{0}0{1}", strEncode,
Code39[AlphaBet.IndexOf(sourceCode[i])]);
}
strEncode = string.Format("{0}0010010100", strEncode); // “*”
int intEncodeLength = strEncode.Length;
int intBarWidth;
for (int i = 0; i < intEncodeLength; i++) // Code39 barcode
{
intBarWidth = strEncode[i] == '1' ? thickLength : narrowLength;
objGraphics.FillRectangle(i % 2 == 0 ? Brushes.Black : Brushes.White,
leftMargin, topMargin, intBarWidth, barCodeHeight);
leftMargin += intBarWidth;
}
//
SizeF sizeF = objGraphics.MeasureString(sourceCode, font);
float x=(objBitmap.Width - sizeF.Width) / 2;
float y = objBitmap.Height - sizeF.Height;
objGraphics.FillRectangle(Brushes.White, x, y, sizeF.Width, sizeF.Height);
objGraphics.DrawString(sourceCode, font, Brushes.Black, x, y);
return objBitmap;
}
에 Winform 프로그램 을 새로 만 들 고 PictureBox 컨트롤 을 끌 고 돌아 오 는 그림 을 PictureBox 에 묶 으 면 결 과 를 볼 수 있 습 니 다.이상 코드 는 System.Drawing 네 임 스페이스 를 참조 해 야 합 니 다.
한 마디 로 바코드 글꼴 을 다운로드 한 다음 출력 할 때 글꼴 을 바코드 글꼴 로 설정 하 는 가장 쉬 운 방법 도 있다.하지만 모든 클 라 이언 트 에 이런 글씨 체 를 설치 하 라 고 요구 할 수 는 없다.이것 은 뚜렷 한 결함 이기 때문에 이런 방법 을 사용 하 는 것 을 추천 하지 않 는 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javascript로 유효한 코드 128 바코드 생성유효한 Code 128 바코드를 생성하려면 몇 가지 규칙을 따라야 합니다. 표시하려는 문자 집합을 나타내는 시작 문자를 포함해야 합니다. 데이터 문자, 인코딩될 문자; 오류 검사를 위한 단일 문자인 체크섬; 마지막으...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.