Popcorn Dave's reply is spot on. Generating PDFs is probably the way to go, as you should truly get reliably precise placement of things.
I would, however, like to note that I've gone down the HTML/CSS route to generate name badges before... and believe me, it's not a lot of fun. Maybe I was doing something wrong (*ahem* probably: I was using IE at the time, and my CSS skills weren't as well-honed as they are now), but every time I changed anything a minute amount, slight recalibration was necessary. Different printer, different settings. Different logo, different settings. Different text, different settings. You get the idea.
One thing I'd highly recommend if you go down this path, is *take very detailed notes*... because invariably, next year they're going to want you to print the badges again. At the last minute. With 2x as many badges this year. :)