il codice è quasi a posto, ti basta fare queste due modifiche al foglio di stile per la stampante
il div container contiene la tabella ed era in posizione assoluta, quindi
	codice:
	div#container{
   width: 95%;
   position: static; /* 1 position static qui (era absolute) */
   top:1cm; /* in stampa di solito si usano mm e cm */
   left:1cm;
   right:1cm;
}
 
Alla tabella va impostata height: auto;
	codice:
	table#cassa{
border: none; 
border-collapse: collapse; 
width: 85%; 
margin: 6em auto 2em;
float:none;
position: static;
height: auto; /* 2 height auto qui */
}
 
Ho provato a replicare la tua tabella aumentando il numero di righe e in anteprima di stampa su FF mi fa vedere tutte le righe esistenti nella pagina (anche in IE se può servire).
Naturalmente la regola di annullamento dei float e di position va fatta solo se hai cambiato le relative proprietà... se ad esempio la tabella non è flottata nel foglio di stile "all" non serve poi dichiarare float: none nel css di stampa.
Prima o poi sarò necessario scrivee una pillola su quest'argomento... in rete c'è così poco materiale approfondito sui css per la stampa...
Ciao
 