IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VB.Net] Créer un code barre 128


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 16
    Points
    16
    Par défaut [VB.Net] Créer un code barre 128
    Salut à tous,

    mercredi j'ai posté pour demander comment faire pour appeler une dll qui converti une chaîne de caractères en code barre (la dll seqlib32 fournit avec fontbar).

    Je me suis répondu tout seul ( ) en disant que le problème venait d'un paramètre et que ça fonctionnait.

    Et bien je me suis un peu enflammé parce que ça ne marche pas lol

    Donc j'ai recherché sur Internet un script qui ressemblerait à ce que je cherchais, j'ai trouvé mon bonheur, et l'ai réécrit en VB.Net.

    Donc si ça intéresse quelqu'un, je suis prêt donner la fonction (avec la police adéquate), ou même à la filer aux modérateurs pour qu'ils la mette sur le site.

    Il est à noter que le code barre retourné est au format code128, utilisant les tables B et/ou C.

    A+, Oliv'

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Vasy envoie
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    Public Function MakeBarCode(ByVal DataToBarCode As String)
            Dim mini, i, dummy As Short
            Dim checksum As Integer
            Dim tableB As Boolean
            MakeBarCode = ""
            If Len(DataToBarCode) > 0 Then
                'Vérifier si caractères valides
                For i = 1 To Len(DataToBarCode)
                    Select Case Asc(Mid(DataToBarCode, i, 1))
                        Case 32 To 126
                        Case Else
                            i = 0
                            Exit For
                    End Select
                Next
                'Calculer la chaine de code en optimisant l'usage des tables B et C
                MakeBarCode = ""
                tableB = True
                If i > 0 Then
                    i = 1 'i% devient l'index sur la DataToBarCode
                    Do While i <= Len(DataToBarCode)
                        If tableB Then
                            'Voir si intéressant de passer en table C
                            'Oui pour 4 chiffres au début ou à la fin, sinon pour 6 chiffres
                            mini = IIf(i = 1 Or i + 3 = Len(DataToBarCode), 4, 6)
                            mini = mini - 1
                            If i + mini <= Len(DataToBarCode) Then
                                Do While mini >= 0
                                    If Asc(Mid(DataToBarCode, i + mini, 1)) < 48 Or Asc(Mid(DataToBarCode, i + mini, 1)) > 57 Then Exit Do
                                    mini = mini - 1
                                Loop
                            End If
                            If mini < 0 Then 'Choix table C
                                If i = 1 Then 'Débuter sur table C
                                    MakeBarCode = Chr(205)
                                Else 'Commuter sur table C
                                    MakeBarCode = MakeBarCode & Chr(199)
                                End If
                                tableB = False
                            Else
                                If i = 1 Then MakeBarCode = Chr(204) 'Débuter sur table B
                            End If
                        End If
                        If Not tableB Then
                            'On est sur la table C, essayer de traiter 2 chiffres
                            mini = 2
                            mini = mini - 1
                            If i + mini <= Len(DataToBarCode) Then
                                Do While mini >= 0
                                    If Asc(Mid(DataToBarCode, i + mini, 1)) < 48 Or Asc(Mid(DataToBarCode, i + mini, 1)) > 57 Then Exit Do
                                    mini = mini - 1
                                Loop
                            End If
                            If mini < 0 Then 'OK pour 2 chiffres, les traiter
                                dummy = Val(Mid(DataToBarCode, i, 2))
                                dummy = IIf(dummy < 95, dummy + 32, dummy + 100)
                                MakeBarCode = MakeBarCode & Chr(dummy)
                                i = i + 2
                            Else 'On n'a pas 2 chiffres, repasser en table B
                                MakeBarCode = MakeBarCode & Chr(200)
                                tableB = True
                            End If
                        End If
                        If tableB Then
                            'Traiter 1 caractère en table B
                            MakeBarCode = MakeBarCode & Mid(DataToBarCode, i, 1)
                            i = i + 1
                        End If
                    Loop
                    'Calcul de la clé de contrôle
                    For i = 1 To Len(MakeBarCode)
                        dummy = Asc(Mid(MakeBarCode, i, 1))
                        dummy = IIf(dummy < 127, dummy - 32, dummy - 100)
                        If i = 1 Then checksum = dummy
                        checksum = (checksum + (i - 1) * dummy) Mod 103
                    Next
                    'Calcul du code ASCII de la clé
                    checksum = IIf(checksum < 95, checksum + 32, checksum + 100)
                    'Ajout de la clé et du STOP
                    MakeBarCode = MakeBarCode & Chr(checksum) & Chr(206)
                End If
            End If
        End Function

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Par contre pour la police, je ne sais pas comment faire pour la mettre sur le site

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    sinon vous pouvez trouver pas mal d echoses sur http://www.idautomation.com

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 77
    Points : 72
    Points
    72
    Par défaut
    Bonjour,
    j'ai un petit soucis quant à l'utilisation de ce code. Je veux générer un code barre sur un document à imprimer.
    Pour cela, j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.Graphics.DrawString(MakeBarCode("05050714-001"), New Font("Code 128", 30), New System.Drawing.SolidBrush(Color.Black), CSng(X + 300), CSng(Y + 300), strFormat)
    Mais tout ce qui apparaît est une suite de caractères incompréhensibles (%Î...). Comment faire pour afficher le code barre?
    Merci d'avance pour la réponse

    PS : Même problème si j'essaie dans un objet Label

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    j'ai moi aussi le meme pb. Comment faire pour qu'un label récupère la chaine en code barre?

    Merci d'avance

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 7
    Points : 13
    Points
    13
    Par défaut Plus d'info ?
    Il aurait suffit de dire que ça venait (La fonction et la police) du site http://grandzebu.net pour que chacun puisse aller y chercher l'info !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer des codes-barres 128 en VBA
    Par Domi2 dans le forum VBA Access
    Réponses: 68
    Dernier message: 23/10/2020, 14h19
  2. [AC-2007] Créer des codes-barres 128 en VBA
    Par symbiioz dans le forum VBA Access
    Réponses: 14
    Dernier message: 05/01/2018, 07h49
  3. [VB.NET] Impression de code barre 128
    Par fuhraih dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/12/2006, 22h30
  4. Créer un code barre Datamatrix
    Par PedroBD dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 20/06/2006, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo