You might want to try Data Matrix.
The density is higher (less non-data content, smaller quiet zone) at
smaller sizes, but reading is substantially harder. However when the
space is a real premium (like embedding into existing labels) it might
For our application I ended up choosing Data Matrix over QR Code,
due to the very limited 1x1 cm zone I needed to squeeze the code into.
This allowed to replace the 29x29 QR Code (21x21 +4,4,4,4 for quiet
zone) with an 18x18 Data Matrix (16x16 +1,1,1,1 for quiet zone). That
allowed the dots to be substantially bigger, which effectively made
reading easier even with really poor fixed-focus cameras.
The good thing about the ZXing Bar-code Scanner is that it behaves
the same way when reading URL (or any other content for that matter)
from either QR Code, or Data Matrix.
Found this on the net, that might help you:
2012/8/20 Bernardo <jbv...@gmail.com
> I am trying to use QR codes in very limited spaces to place website URLs.
> With some tests, level 1 code works great but level 2 not so much with many
> Seeing the specs at http://www.qrcode.com/en/vertable1.html
it should be
> possible to place up to 25 alphanumeric chars with Level 1 density, but the
> zxing generator (http://zxing.appspot.com/generator/
> seems to allow only 23 of these chars.
> I only use the chars in this set: 0-9, A-Z [upper-case only], space, ., /, :
> Is it possible to use the other 2 chars? Just the "HTTP://" part eats 7
> chars but with 25 I can encode an identifier long enough.
> I found this bug report about the same issue, but with numeric chars: