In our application we enable users to print pages. We do this by supplying a button which when click calls the window.print() function.
Some of the pages would look better i
Unfortunately, this is still not possible cross-browser. For Internet Explorer, there is an ActiveX control that does it.
Otherwise your best bet might be to offer the option of a PDF version for printing.
I think your question is not so much about using CSS to define print styles, but to force the print as landscape rather than portrait?
CSS 2 defined 'size', but I don't think this is widly supported: http://www.w3schools.com/css/css_ref_print.asp
CSS 3 has better print control, but again not widly supported.
Do it with CSS by including a print stylesheet thusly:
<style type="text/css" media="print">@import url("/inc/web.print.css");</style>
You should use a print stylesheet.
<link rel="stylesheet" href="print.css" type="text/css" media="print" />
More info...
How to print only parts of a page?
Edit: to coerce landscape orientation, apparently the standard is size: landscape
, but I have no idea how well that's supported across browsers.