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