Dans certains cas, il peut être nécessaire d'encoder dans un code-barre au format PDF-417 un fichier binaire. Par exemple pour ajouter un certificat à un document à imprimer.
Pour encoder du binaire dans le PDF417, il faut convertir le buffer d'entrée :
- indiquer au Code Barre que l'on utilise les caractères de contrôle
- commencer la séquence par <BC> pour passer en mode Binaire
- convertir les 0 binaire en <NUL>
- doubler les < et >
Voici le code d'une procédure qui réalise opération :
PROCÉDURE AffecteCBBinaire(sFicherAEncoder est une chaîne)
// On charge le contenu du fichier dans un buffer
bufContenuCB est un Buffer = fChargeBuffer(sFicherAEncoder)
// Affectation du contenu du Champ CODE_BARRE
nSigneInf est un entier sans signe sur 1 octets = Asc("<")
nSigneSup est un entier sans signe sur 1 octets = Asc(">")
// On va utiliser les caractère de controle
CODE_BARRES..Option+=CB_CaractèresContrôle
// initialise a <BC> pour indiquer que l'on va encoder du binaire
s est une chaîne ANSI = "<BC>"
// On parcours chaques octets pour traiter les cas particuliers.
POUR i=1 _À_ Taille(bufContenuCB)
nVal est un entier sans signe sur 1 octets = bufContenuCB[i]
SELON nVal
// On transforme le 0 binaire un un caractère spécial <NUL>
CAS 0: s+="<NUL>"
// Le symbol "<" doit être doublé sinon, il sera pris pour un caractère de controle
CAS nSigneInf: s+="<<"
// Le symbol ">" doit être doublé sinon, il sera pris pour un caractère de controle
CAS nSigneSup: s+=">>"
// les autres caractère sont ajouté directement
AUTRE CAS
s+=Caract(nVal)
FIN
FIN
// affecte le CB
CODE_BARRES = s
|