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.
We will use a vCard file named
test.vcf which contains the following:
N:Family Name;First Name;;;
FN:First Name Family Name
TITLE:Your job title
ADR;HOME:;;123, avenue des Champs-Élysées;Paris;Île-de-France;75008;France
Generating the image
qrencodepackage with its dependencies.
Step by step
- In the Terminal, execute the following:
1cat 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.).
The same thing with an UI
You can also use frontends to generate QR encoded files:
qtqr package (available on Debian repository) seems interesting.
- 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…