Feedback

C# - Barcodestring Code128B berechnen

Veröffentlicht von am 5/3/2007
(1 Bewertungen)
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;
        }
Abgelegt unter Barcode, Code128B.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!