Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I force an HTML document to be one page long?

I am generating a document from HTML. Is there any way to force the HTML page to be one rendered as one printed page long?

I've done most of the page with <table> and <div> tags.

like image 692
Joe Morgan Avatar asked Jan 21 '09 13:01

Joe Morgan


4 Answers

Not exactly, but you can use a print-stylesheet:

<link rel="stylesheet" type="text/css" media="print" href="print.css" />

To set font sizes, paddings, etc. to physical units like 'pt' (that should never be used in a screen-stylesheet!) so that it ends up being more or less an A4 page, when rendered in a typical browser, with typical fonts, with a following wind. Nothing is guaranteed but you can optimise for the common case.

In print you don't have to worry so much about font size preferences or dpi settings, but you still can't control the margins the browser uses or the actual page size (US Letter is smaller than A4), so leave a good amount of wiggle room and test on the major browsers.

like image 178
bobince Avatar answered Oct 17 '22 10:10

bobince


No. You can't control the user's zoom level, printer settings, paper size (is he using A4 paper in Europe or legal in the US?) and all of the various other things that affect printer output using HTML.

The best you can do with HTML is make a very simple "printer-friendly" page and keep the content short. Alternatively you can build a PDF, which is designed to let you control how it's printed.

like image 31
Welbog Avatar answered Oct 17 '22 08:10

Welbog


Use PDF. You can force many things like font size, font type and many other parameters but any browser can decide they don't care and use whatever they want and so violate your prerequesites or decisions. HTML is not (repeat after me: is NOT) a presentation language.

In many cases, it will mostly work but nothing is certain.

like image 27
Keltia Avatar answered Oct 17 '22 09:10

Keltia


You can use CSS to style the page and set it to a certain height / width... There's a good tutorial here.

like image 26
Eppz Avatar answered Oct 17 '22 09:10

Eppz