Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I change page layout when using window.print()?

Tags:

javascript

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 if they were printed in landscape mode rather than portrait. Is there a way to control the page layout from JavaScript?

Update: Following the advice given here I looked for "css landscape" in google, and found the following article that showed ways of css-ly defining landscape:

like image 917
Lea Cohen Avatar asked Oct 27 '08 06:10

Lea Cohen


3 Answers

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.

like image 152
eyelidlessness Avatar answered Oct 20 '22 01:10

eyelidlessness


Do it with CSS by including a print stylesheet thusly:

<style type="text/css" media="print">@import url("/inc/web.print.css");</style>
like image 44
da5id Avatar answered Oct 20 '22 01:10

da5id


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.

like image 2
Ady Avatar answered Oct 20 '22 00:10

Ady