I would suggest that you do NOT use tables for generating QR codes. This is way too much overhead for the browser, and if a browser renderes the box model that is off by 1 pixel, your whole image will be crap.
I would take a look at generating your images on the sever in php using GD2.
http://phpqrcode.sourceforge.net/
http://www.youtube.com/watch?v=sFVcOFmnZ9Y
If you really want to generate images inside the browser, you could probably get away with a HTML canvas tag.
If you want to add text I suggest you layer the text on-top using GD2. If you are using an SVG library I'm not exactly sure how to layer, but it should be simple. Here's an example of layering in GD2:
The thing to realize about QR codes is that they can store up to 30% redundant data. That means that you can "destroy" 30% of the code by layering an image on-top and it will still work. Here are some guides about customizing QR codes with logos etc: