Есть штука с названием @page: W3C, htmlbook, MDN. С ее помощью можно задать размер страницы, ее ориентацию и поля. Увы, поддерживается далеко не всеми. Больше для печати в HTML ничего не придумано, и поэтому все используют PDF.
Так «вручную» я уже делал, мне была интересна готовая библиотека.
Как, куда? На нормальный принтер напрямую, на простенький через PCL, ну а на иммитацию принтера через тормоза тоже можно.