La stampa avviene dopo la chiusura del programma perche' tu non usi l'istruzione
Printer.EndDoc
che chiude il documento e indica allo spooler di mandarlo in stampa ...
Ma questo e' il secondo problema ... il primo, quello che riguarda la formattazione, non lo puoi risolvere facilmente perche' questa riguarda unicamente il controllo RichText ...