- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace Barcode_Printer
- {
- class GetBarcode
- {
- public static string BuildBarcode(string rawData)
- {
- int offset = 32;
- int highAssii = 18;
- char[] newCodeString = new char[rawData.Length + 3];
- newCodeString[0] = (char)(offset + highAssii + 303);
- int total = 104;
- for (int i = 0; i < rawData.Length; i++)
- {
- string character = rawData.Substring(i, 1);
- char ASCIIValue = character[0];
- int checkDigit = (ASCIIValue - offset) * (i + 1);
- total += checkDigit;
- newCodeString[i + 1] = ASCIIValue;
- }
- int check = total % 103;
- int holder = 0;
- if ((check + offset) >= 127)
- {
- holder = check + offset + highAssii;
- }
- else
- {
- holder = check + offset;
- }
- newCodeString[newCodeString.Length - 2] = (char)holder;
- holder = 289 + offset + highAssii;
- newCodeString[newCodeString.Length - 1] = (char)holder;
- for (int j = 0; j < newCodeString.Length; j++)
- {
- if (newCodeString[j] == 32)
- {
- newCodeString[j] = (char)128;
- }
- }
- return new string(newCodeString);
- }
- }
- }