Générer un code barre ean13 et le sauvegarder dans un pdf (avec pdfsharp)

Description

Ce petit code génère un code barre EAN13 sur base de son numéro et le sauvegarde dans un fichier PDF grâce à la librairie PDFsharp !

REM : Vous devez avant toutes choses, installer la police : "ean13.ttf"
Pour se faire, copier/coller dans "c:\Windows\Fonts"

Source / Exemple :


Voici la partie de création de la phrase qui deviendra le code barre :

            String code = "9780201185379"; // Exemple de code EAN13
            /*String code = args[0];*/ //Pour récupérer le code EAN13 placé en paramètre

            /* prend le premier chiffre du string et le transforme en int */
            int nombre = Convert.ToInt32(new string(code[0], 1));  

            String resultat = "";
            resultat += nombre;

            /* le premier nombre détermine la séquence de codage de la première moitier du code EAN13 */
            switch (nombre)
            {
                case 0:
                        for (int i = 1; i < 7; i++)
                        {
                            nombre = Convert.ToInt32(new string(code[i], 1));
                            resultat += odd(nombre);
                        }
                        break;
                case 1: resultat += odd (Convert.ToInt32(new string(code[1], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[2], 1)));
                        resultat += even(Convert.ToInt32(new string(code[3], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[4], 1)));
                        resultat += even(Convert.ToInt32(new string(code[5], 1)));
                        resultat += even(Convert.ToInt32(new string(code[6], 1)));
                        break;
                case 2: resultat += odd (Convert.ToInt32(new string(code[1], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[2], 1)));
                        resultat += even(Convert.ToInt32(new string(code[3], 1)));
                        resultat += even(Convert.ToInt32(new string(code[4], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[5], 1)));
                        resultat += even(Convert.ToInt32(new string(code[6], 1)));
                        break;
                case 3: resultat += odd (Convert.ToInt32(new string(code[1], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[2], 1)));
                        resultat += even(Convert.ToInt32(new string(code[3], 1)));
                        resultat += even(Convert.ToInt32(new string(code[4], 1)));
                        resultat += even(Convert.ToInt32(new string(code[5], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[6], 1)));
                        break;
                case 4: resultat += odd (Convert.ToInt32(new string(code[1], 1)));
                        resultat += even(Convert.ToInt32(new string(code[2], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[3], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[4], 1)));
                        resultat += even(Convert.ToInt32(new string(code[5], 1)));
                        resultat += even(Convert.ToInt32(new string(code[6], 1)));
                        break;
                case 5: resultat += odd (Convert.ToInt32(new string(code[1], 1)));
                        resultat += even(Convert.ToInt32(new string(code[2], 1)));
                        resultat += even(Convert.ToInt32(new string(code[3], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[4], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[5], 1)));
                        resultat += even(Convert.ToInt32(new string(code[6], 1)));
                        break;
                case 6: resultat += odd (Convert.ToInt32(new string(code[1], 1)));
                        resultat += even(Convert.ToInt32(new string(code[2], 1)));
                        resultat += even(Convert.ToInt32(new string(code[3], 1)));
                        resultat += even(Convert.ToInt32(new string(code[4], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[5], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[6], 1)));
                        break;
                case 7: resultat += odd (Convert.ToInt32(new string(code[1], 1)));
                        resultat += even(Convert.ToInt32(new string(code[2], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[3], 1)));
                        resultat += even(Convert.ToInt32(new string(code[4], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[5], 1)));
                        resultat += even(Convert.ToInt32(new string(code[6], 1)));
                        break;
                case 8: resultat += odd (Convert.ToInt32(new string(code[1], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[2], 1)));
                        resultat += even(Convert.ToInt32(new string(code[3], 1)));
                        resultat += even(Convert.ToInt32(new string(code[4], 1)));
                        resultat += even(Convert.ToInt32(new string(code[5], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[6], 1)));
                        break;
                case 9: resultat += odd (Convert.ToInt32(new string(code[1], 1)));
                        resultat += even(Convert.ToInt32(new string(code[2], 1)));
                        resultat += even(Convert.ToInt32(new string(code[3], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[4], 1)));
                        resultat += even(Convert.ToInt32(new string(code[5], 1)));
                        resultat += odd (Convert.ToInt32(new string(code[6], 1)));
                        break;
            }

            /* Ajout du caractère séparateur !*/
            resultat += '*';

            /* codage de la deuxième moitier du code EAN13 */
            for (int i = 7; i < 13; i++)
            {
                nombre = Convert.ToInt32(new string(code[i], 1));
                resultat += right(nombre);
            }

            /* Ajout du caractère de fin */
            resultat += '+';

            /* Affichage de la phrase générée à partie du code EAN */
            Console.WriteLine("Phrase codée : " + resultat);
         }

                public static char tete(int num)
        {
            switch (num)
            {
                case 0: return '#';
                case 1: return '$';
                case 2: return '%'; 
                case 3: return '&'; 
                case 4: return '(';
                case 5: return ')';
                case 6: return '*'; 
                case 7: return '+'; 
                case 8: return ',';
                case 9: return '-';
            }
            return ' ';
        }

        public static char odd(int num)
        {
            switch (num)
            {
                case 0: return 'A';
                case 1: return 'B';
                case 2: return 'C';
                case 3: return 'D';
                case 4: return 'E';
                case 5: return 'F';
                case 6: return 'G';
                case 7: return 'H';
                case 8: return 'I';
                case 9: return 'J';
            }
            return ' ';
        }

        public static char even(int num)
        {
            switch (num)
            {
                case 0: return 'K';
                case 1: return 'L';
                case 2: return 'M';
                case 3: return 'N';
                case 4: return 'O';
                case 5: return 'P';
                case 6: return 'Q';
                case 7: return 'R';
                case 8: return 'S';
                case 9: return 'T';
            }
            return ' ';
        }

        public static char right(int num) 
        {
            switch (num)
            {
                case 0: return 'a';
                case 1: return 'b';
                case 2: return 'c';
                case 3: return 'd';
                case 4: return 'e';
                case 5: return 'f';
                case 6: return 'g';
                case 7: return 'h';
                case 8: return 'i';
                case 9: return 'j';
            }
            return ' ';
        }

Conclusion :


en espérant que ce code puisse vous aider !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.