Mit Hilfe dieser Methode wird ein übergebener String in einen "Barcodestring" (inkl. Start-, End- und berechnetem Prüfzeichen) umgewandelt. Dieser kann dann mit Hilfe einer Code128 TTF (einfach google'n) ausgegeben werden.
public static string GetCode128BString(string textToConvert)
{
/* Diese Methode wandelt den übergebenen String in einen String um, welcher mit Hilfer einer Code128-Schrift
* ausgegeben werden kann. Es wird ein Start- und Endzeichen eingefügt und die erforderliche Prüfsumme
* berechnet. */
char[] convertCharArray = textToConvert.ToCharArray();
char startSign = (char)204, endSign = (char)206;
string barcodeString = startSign.ToString();
int index = 1; // Multiplikator zum Berechnen der Prüfsumme
int checkDigitValue = 104; // Code 128B erfordert einen Startwert von 104
/* Inhalt des zu codierenden Strings zeichenweise wieder zum Ergebnisstring hinzufügen und dabei die
* Prüfsumme mitberechnen. Enthält der zu codierende String ein Zeichen, welches sich nicht im gültigen
* ACSII-Bereich befindet, wird der Vorgang abgebrochen und ein leerer String zurückgegeben. */
foreach (char c in convertCharArray)
{
if (((int)c < 32) || ((int)c > 126)) return string.Empty;
barcodeString += c.ToString();
checkDigitValue += ((int)c - 32) * index;
++index;
}
// Das Prüfzeichen bei Code128B setzt sich aus dem Rest der Division durch 103 zusammen.
checkDigitValue = checkDigitValue % 103;
if (checkDigitValue > 94) checkDigitValue += 100; else checkDigitValue += 32;
// Prüfzeichen und Endzeichen zum Ergebnisstring hinzufügen
barcodeString += ((char)checkDigitValue).ToString() + endSign.ToString();
return barcodeString;
}
Kommentare zum Snippet