one word: "htmlize
well, actually more, depending on how you pronounce it: "htmlize.el" is actually the file that you need to perform this minor miracle.
it was written by Hrvoje Niksic, and is downloadable from
Once you've gotten the file, byte compiled, (you do byte compile all your elisp, don't you?), and installed it, you simply do M-x htmlize-buffer, and presto!, a miracle of transsubstantiation occurs, and you have a html that looks like your emacs buffer. hurrah!