Créer des code-barres et des QR-codes avec barcode et qrencode sous Linux

Objectif : générer une page de QRcodes permettant de faciliter le nommage et l'inventaire des ordinateurs du fablab


Utilisation de barcode

Défaut : ne gère que les code-barres et pas les QR-code
Avantage : permet de générer une page avec plein de code-barres et un texte correspondant à chaque code-barre

for ((c=1001 ; c<1031 ; c++ )) ; do echo "HATLAB23-"$c ; done | barcode -t 3x10 -e 128  |ps2pdf - essai6.pdf


Utilisation de qrencode

Défaut : ne génère qu'une image à la fois et n'affiche pas le texte en dessous
Avantage : en qualité haute, est lu plus rapidement qu'un code-barre

echo "HATLAB23-1001" | qrencode -l H -o qr2.png


Références pour améliorations

https://unix.stackexchange.com/questions/654784/how-can-i-generate-qr-codes-with-subtitles ajout de texte sous chaque qrcode

https://www.inforbiro.com/blog/how-to-add-image-to-qr-code ajouter une image en dégradant le qrcode (il est redondant en utilisant l'option High)
https://www.stimulsoft.com/en/blog/articles/embedding-an-image-into-a-qr-code
https://scanova.io/blog/how-to-make-a-custom-qr-code/
https://qrexplore.com/blog/embed-logo-in-qr-code
https://www.researchgate.net/publication/262527881_QR_Images_Optimized_Image_Embedding_in_QR_Codes
https://www.qrcode-tiger.com/convert-image-to-qr-code


https://infosecwriteups.com/beginners-ctf-guide-finding-hidden-data-in-images-e3be9e34ae0d

Amélioration pour qrencode avec du texte dessous



qrcode_avec_texte.sh :

qrcode_avec_texte.sh
i=$1
#qrencode "$i" -t svg -l H -s 10 -o "$i.q.svg.orig"
qrencode "$i" -t svg -l H  -o "$i.q.svg.orig"
awk <"$i.q.svg.orig" >"$i.q.svg" -v txt="$i" '
/<svg /{ match($0,"height=\"([0-9.]+)",grp)
    ht = grp[1]*1.1
    ht = "height=\"" ht
    sub("height=\"([0-9.]+)",ht,$0)
    match($0,"viewBox=\"0 0 ([0-9]+) ([0-9]+)",grp)
    vb = int(grp[2]*1.1+.5)
    x = int(grp[1]/2+.5)
    y = grp[2]+1
    vb = "viewBox=\"0 0 " grp[1] " " vb
    sub("viewBox=\"0 0 ([0-9]+) ([0-9]+)",vb,$0)
}
/<rect x="0" /{
    match($0,"height=\"([0-9.]+)",grp)
    ht = int(grp[1]*1.1+.5)
    ht = "height=\"" ht
    sub("height=\"([0-9.]+)",ht,$0)
}
/<\/svg>/{
    printf "  <text font-family=\"DejaVu, SansMono\" font-size=\"3\" stroke-width=\"0\" text-anchor=\"middle\" x=\"%d\" y=\"%d\" xml:space=\"preserve\">%s</text>",x,y,txt
}
{print}
'


et automatisation de la génération de 30 QR-codes :

mkdir liste_qr  # répertoire dédié aux QR-codes générés
for ((numero=1001 ; numero <=1030 ; numero++ )) ; do ../qrcode_avec_texte.sh HATLAB23-$numero ; done


Importer dans Inkscape tous les SVG ainsi générés,
puis Menu Objet / Aligner et distribuer / onglet grille : 5 colonnes / 6 lignes
Cela devrait tenir sur une feuille A4 imprimable

Défaut : les QR-codes ne sont pas dans l'ordre

Note : le nommage hatlabYY-Annn permet d'avoir un nommage unique et court du PC pour identification dans l'inventaire GLPI (remontées automatiques)


l'idée c'est d'avoir le texte lisible sur les 4 côtés
et d'imprimer une page A4 avec les numéros/références

  <text font-family="DejaVu, SansMono" font-size="3px" stroke-width="0" x="4" y="32" xml:space="preserve" id="text331">HATLAB23-2002</text>
  <text font-family="DejaVu, SansMono" font-size="3px" stroke-width="0" x="-7" y="42" xml:space="preserve" transform="scale(-1)" id="text332">
		<tspan x="-29" y="-0.8">HATLAB23-2003</tspan></text>
  <text font-family="DejaVu, SansMono" font-size="3px" stroke-width="0" text-anchor="middle" x="-17" y="33" xml:space="preserve" transform="rotate(-90)" id="text333">HATLAB23-2004</text>
  <text font-family="DejaVu, SansMono" font-size="3px" stroke-width="0" text-anchor="middle" x="16" y="-0.1" xml:space="preserve" transform="rotate(90)" id="text334">HATLAB23-2005</text>

There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki