[Debian] Create a QRCode for a vCard file

Didactic

I am writing a little tutorial here for creating a QRCode for a vCard file. As I don’t use it that much, it feels like I need a memo for it.

Preparation

We will use a vCard file named test.vcf which contains the following:

BEGIN:VCARD
VERSION:2.1
N:Family Name;First Name;;;
FN:First Name Family Name
TITLE:Your job title
EMAIL:emailaddress@example.com
ADR;HOME:;;123, avenue des Champs-Élysées;Paris;Île-de-France;75008;France
TEL;TYPE=cell:+33 123456789
URL:http://example.com
END:VCARD

Result file

A vCard image QR encoded
A vCard QR encoded

Generating the image

Prerequisites

  • qrencode package with its dependencies.

Step by step

  1. In the Terminal, execute the following:
    cat test.vcf | qrencode -o "test.vcf.png"

That’s all! A file named test.vcf.png will be created or overwritten if it already exists.

If you want to change or get rid of the margin, use the -m option with the size in pixels:

cat test.vcf | qrencode -o "test.vcf.png" -m 0

If you want to change the dots size, use the -s option with the size in pixels:

cat test.vcf | qrencode -o "test.vcf.png" -s 4

Please check the manual if you need more options such as output format (PNG, EPS, SVG, ASCII, etc.).

Additional Notes

The same thing with an UI

You can also use frontends to generate QR encoded files: qtqr package (available on Debian repository) seems interesting.

vCard syntax

  • If you want to add or remove your own fields, my advice would be to check the properties on the Wikipédia page: https://en.wikipedia.org/wiki/VCard#Properties
  • Make sure to use the right properties for the right vCard version. I am using 2.1 in my example.

Things to consider to prevent reading failures

  • Make sure the color contrast between the dots and the background is sufficient.
  • Dots should remain dark and the background should remain clear.
  • Make sure the dots are large enough if you want devices with fixed focus (such as my Moto E 1st Gen) to read the image. For instance, the example image was generated with a 4px dot size; 3px dot size was not readable by my Moto E on a 22″ 1920×1080 screen.
  • If you resize your image in a graphics software, it is best to use nearest neighbor interpolation algorithm to preserve sharp dots.
  • If your dot size is 1px, don’t shrink your image as it will lose information. (pretty obvious)
  • Make sure the QR code users will physically have access to the space right in front of the image / print. So don’t put a barrier in front of the image…

Published by Dakwamine

Dakwamine, alias Quang-Minh Dang, né en 1987 en région parisienne. Un type sympa, pas bavard et pragmatique.