Have you specified a print stylesheet, or a print @media section inside your existing stylesheet?
By default a stylesheet will work on-screen fine (as you've have discovered); However unless you explicitly specify a print CSS Stylesheet, when printing the page out, it will default to the browsers default styling (usually 15pt Times New Roman etc.).
Solution 1: Add a second, print stylesheet
Include both tags below in your HTML head:
<link rel="stylesheet" type="text/css" href="screenstyles.css" media="screen" /> <link rel="stylesheet" type="text/css" href="printstyles.css" media="print" />
Then copy the required formatting styles from screenstyles.css to printstyles.css (or just make both 's link to your screen stylesheet).
Solution 2: Only 1 stylesheet, but has print @media in it
Your single CSS stylesheet would like like this (omit the media="" from your css link rel tag