このページを印刷する
window オブジェクトの print メソッドを呼び出すだけです。ブラウザの印刷ダイアログを表示するところまでで,実際に印刷が実行されるわけではありません。上のサンプルで使用しているアイコンは Tango Icon Gallery から頂きました。
GMail での実装を見るとwindow.print(); の直前に document.body.offsetHeight;と書かれていますがこの部分の意図は不明。何かのhack?
Web制作者にはCSSの画面上での見栄えだけでなく,印刷された時の見栄えも気にして欲しいですね。印刷するとサイドバーやAdSenseだけで1ページもって行かれたり,記事本文がページ末端でブチ切れて肝心の部分が見えなかったりと悲惨なページに遭遇することがあります。記事以外の広告やブログパーツ,最近のコメント一覧などのユーザの印刷物にとって不要な部分には display:none; を指定した印刷用の CSS を用意するだけでとりあえずは十分です。自分のサイトをお持ちの方は一度,印刷プレビューでどのように見えるかチェックしてみるとよいかもしれません。
加えてヘッダの直後やテーブル組みの途中での改ページを制御すれば完璧でしょう。このサイトでもテーブルの途中で改ページされたりする記事があるので後で対応しようと思います。