Como você descobriu, esse método é, na melhor das hipóteses, insatisfatório. Além do HTML, você precisará, no mínimo, de todas as imagens e CSS. Você também pode precisar de todo o Javascript. E depois há todo o negócio de renderizar essa bagunça.
Mas, para você, há boas notícias na forma de uma extensão Impressão de linha de comando que você pode instalar no Firefox .
Então:
firefox -print http://www.example.com/index.html
Existem mais exemplos na página de documentação da extensão.