I defined the following command to export file selection into html file and then use Google Chrome to open it for printing
command! -range WebPrint <line1>,<line2>call Print()
function! Print()
:'<,'>TOhtml
:wq
:!/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome %:p.html
endfunction
One annoying thing is that every time I execute the command, the vim section is gone and I have to type Ctrl-c to go back (hitting <Enter> weirdly execute the command once again). If there a way to automatically return to vim section after the command is run?