Générer sa carte de visite en QRcode

QR code exemple
Image via Wikipedia

Les QRCode sont des matrices de points plus riches que les codes barres mais suffisamment concis pour être interprété rapidement  grâce notement à une redondance qui corrige les erreurs.

La génération de qrcode est aisée sous linux où il existe l’outil qrencode disponible dans le dépôt Ubuntu. Les QRCode peuvent contenir du texte ou des données binaires. On peut donc y stocker une carte de visite au format vcard qui est du texte (qui peut contenir du binaire comme on le verra).

Notre carte de visite est saisie à un seul endroit disons dans notre machine de bureau qui est sous Ubuntu bien entendu. Dans les informations personnelles de l’utilisateur sont présentes toutes les données de la carte de visite. On va voir comment les extraires dans un vcard puis générer le qrcode correspondant.

Extraction du vcard

Sous Ubuntu c’est au bureau GNOME que nous nous adressons afin d’obtenir la carte de visite de l’utilisateur. Nous passons par le binding python de Evolution (suite communicante mail, agenda etc) et la bibliothèque vobject:

Voici le script myvcard.py :

#!/usr/bin/python
# -*- encoding: UTF-8 -*-
import evolution
c = evolution.ebook.get_self_contact()
v = c.get_vcard_string()
import vobject
vo = vobject.readOne(v)
# remove photo because too big for qrcode and N900 may not handle it
del vo.photo
print vo.serialize()

Ce script affiche sur la sortie standard la vcard de l’utilisateur.

Génération du qrcode

Maintenant que le contenu de la vcard est obtenu il suffit de générer le qrcode. Pour cela il suffit de lancer le script suivant, myvcard2qrcode.sh:

#!/bin/bash
./myvcard.py | qrencode -o $1

Il prend un argument qui est le fichier PNG de sortie. Par exemple:

./myvcard2qrcode.sh tb.png

va générer le fichier tb.png, image du qrcode !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.