Boostrapを使って作ったサイトをPC用の表示で印刷したい!
Bootstrap利用して構築してあるWEBサイトを印刷すると、見たままの状態では印刷されず、紙媒体でも読みやすいように印刷時にレイアウト等が変更されて印刷されます。
以下のURLで印刷プレビューしてもらうと、Bootstrapのデフォルトの印刷スタイルを確認出来ます。
http://onocom.net/code/bootstrap-print/default.html
これは、Bootstrapには予め印刷用のスタイルが定義されており、それが印刷時に適用されるためです。
この印刷スタイルには、
・リンクテキストの後にリンク先のURLが表示される!(ハイテク!)
・背景がすべて消える(インク代節約!)
・レイアウトがシンプルになる(タブレットやスマホ用に近い、コンテンツを読みやすいレイアウトになる!)
などなどが含まれます。
デバイスに応じて適切なスタイル(CSS)を定義すべきという素晴らしい思想だと思います。
しかし、そんなことクライアント様には関係ないようで「印刷用のスタイル?わけがわからない。安く作ってくれればいい。」「印刷すると壊れる!(印刷するとレイアウト崩れておかしくなるの意)」などありがたい意見を頂くことがあります。
印刷する環境はやはりPCなので、PC表示を印刷できるようにして欲しい。という要望です。
[Bootstrap 印刷]とかで調べると、印刷時のURLを消す方法とかはよく出てくるのですが、見たまま印刷する方法って意外と出てこないので頭を抱えておりました。
私以外にもそういうお声に頭を悩ませている方がいることを願い、今回、Bootstrapで見たまま印刷する。という方法に真っ向から立ち向かってみました。
お役に立てれば幸いです。
Bootstrapで見たまま印刷する手順
以下の手順でBootstrapサイトを見たまま印刷できるようにしていきます。
- Bootstrap公式サイトから印刷用スタイル(@media print)を除外したパッケージをダウンロード
- 印刷調整用CSSの適用
- 微調整
1. Bootstrap公式サイトから印刷用スタイル(@media print)を除外したパッケージをダウンロード
まずは、Boostrapから印刷用のスタイル定義情報(@media print)を削除してあげます。
目視で該当部分を削除する方法もありますが、公式サイトのカスタマイズページやSass・Lessを使った方が間違いないでしょう。
ということでここでは、Bootsrap公式サイトのカスタマイズページを利用する前提で話を進めます。
Bootsrapのカスタマイズページ (Customize and download)
http://getbootstrap.com/customize/
このページはBootstrapのカラム幅や色など、多岐にわたるカスタマイズをウェブ上から簡単に行えるページです。
以下の方法で印刷用のスタイルを除外したBootstrapを取得します。
1-1:ページの最初の方にある大見出し「Less files」の中にある、中見出し「Common CSS」の中の「Print media styles」というチェックボックスのチェックを外し、一番下までスクロールします。
1-2:ページの一番下に「Compile and Download」というボタンがあるのでクリックしてダウンロードします。
ダウンロードしたZIPファイルには印刷スタイルの含まれないBootstrapが出来上がっています!すごい簡単!
1-3:ダウンロードしたZIPファイルの中からbootstrap.css,bootstrap.min.cssをコピーして現在のサイトで使っているBootstapファイルを上書きします。
ここまでの操作でBootstrapで構築されたサイトを印刷プレビューしてみましょう。
以下のURLで印刷プレビューしてもらうと、このステップが完了した状態の印刷スタイルを確認出来ます。
http://onocom.net/code/bootstrap-print/step1-complete.html
当初より大分改善はされているものの、スマホやタブレットのようなレイアウトになっているかと思います。手順2でその部分を改善していきます。
蛇足ですが、ダウンロードしたZIPファイルには「config.json」というファイルが含まれています。このファイル先ほどBootstrapのカスタマイズページの上部からアップロードしてあげることでカスタマイズ情報を引き継ぐことができます。
そのため、Bootstrapのバージョンが変わってもこのファイルをアップロードして再度Bootstrapをダウンロードすることで、印刷スタイルの定義されていないBootstrapのCSSファイルを簡単にダウンロードできるのです。
2. 印刷調整用CSSの適用
印刷用スタイルの定義されていないbootstrap.cssを利用すると印刷が見たままに多少近づきますが、レイアウトがスマホやタブレットのようになりがちです。
そこで私が特別に作った黒魔術のようなCSS(bootstrap-print.css)を以下からダウンロードしてサイトに適用してあげます。
bootstrap-print
https://github.com/onocom/bootstrap-print
するとどういうことでしょう。印刷プレビューがPC表示のままで印刷出来るようになっていませんか!?PC表示のまま印刷出来るという方はここまでで作業終了。
以下のURLで印刷プレビューしてもらうと、印刷対応が全て完了した状態の印刷スタイルを確認出来ます。
http://onocom.net/code/bootstrap-print/index.html
もし、一部印刷が上手く出来ない方は3.微調整を行っていきます。
3. 微調整
サイトによっては(と言うか殆どのサイトでは)、2の調整用のCSSを導入しただけでは細かな部分でおかしい箇所が出てくると思います。
そこは印刷調整用のCSSに追記するなどして一個ずつ潰していきましょう。
先ほどのbootstrap-print.cssに追記するか、以下の用にプリント用のCSS (@print)を作成して最終調整を行います。
bootstrap-print-adjuster.cssみたいなファイルを作成し、以下のように記述する
1 2 3 | @media print { /* ここに印刷調整用のスタイルを定義 */ } |
さぁ、これで印刷パーフェクトになったはずです!
まとめ
ここに辿り着くまでに意外と時間がかかりました(^_^;)
印刷調整用CSSはまだまだ改良の余地があると思いますので、お気づきの点などあればリクエストをお願いします。
皆様のウェブサイトが見たまま印刷出来るようになってくれることを願います!