Webサイトの印刷機能をつくるのに最も手軽なjQueryプラグインjPrintAreaを使ってみたのでメモ。
photo credit: driek via photopin cc
サマリー
1.指定範囲を簡単に印刷するjQueryプラグインjPrintArea.jsとは
2.使ってみる
3.感想
1.指定範囲を簡単に印刷するjQueryプラグインjPrintArea.jsとは
jQuery.jPrintArea.jsは、少しコードを書き足すだけで指定範囲のみを印刷できるというお手軽プラグインです。
Web界隈では何年も前から「簡単で便利」と評されながら、本家サイトからもかなり前から姿を消している貴重なプラグインである模様。手軽さゆえに重宝されていたのか、本家サイトから消えた後も、いくつかのブログにコードが載せてあるのも見かけたが、試してみると動くものがなかなかない。下記はちゃんと動きます。
2.使ってみる
下記はjQuery2.1.0で動作確認済み(1系でも当然いけました)。
(1)本家にはないので、以下のコードをコピペして、「jQuery.jPrintArea.js」などの名前で保存。
$.jPrintArea=function(el){ var iframe=document.createElement('IFRAME'); var doc=null; $(iframe).attr('style','position:absolute;width:0px;height:0px;left:-500px;top:-500px;'); document.body.appendChild(iframe); doc=iframe.contentWindow.document; var links=window.document.getElementsByTagName('link'); for(var i=0;i<links.length;i++) if(links[i].rel.toLowerCase()=='stylesheet') doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>'); doc.write('<div class="'+$(el).attr("class")+'">'+$(el).html()+'</div>'); doc.close(); iframe.contentWindow.focus(); iframe.contentWindow.print(); alert('Printing...'); document.body.removeChild(iframe); }
(2)head内で読み込む
<script type="text/javascript" src="lib/jquery-2.1.0.js"></script> <script type="text/javascript" src="lib/jquery.jPrintArea.js"></script> <script text="javascript/text"> $(function(){ $('#btn_print').click(function(){ $.jPrintArea("#printarea"); }); });
(3)印刷ボタン(またはリンク)を設置
idを指定し(2)で書いた要素名とあわせておく。
<input type="button" id="btn_print" value="範囲印刷">
または
<a href="#" id="btn_print">範囲印刷</a>
(4)印刷範囲をid指定する
<div id="printarea"> 囲まれた範囲が印刷される。 </div>
3.感想
評判通り簡単に指定範囲印刷の実装ができるので、こだわりがない場合はこれで十分。それにしても、一通り検索したつもりだが印刷用プラグインはあまり存在しないように感じた。そもそも印刷機能自体の需要があまりないのかな?
- 作者: 株式会社シフトブレイン
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2013/11/27
- メディア: 大型本
- この商品を含むブログ (4件) を見る
jQueryデザインブック 仕事で絶対に使うプロのテクニック
- 作者: MdN編集部
- 出版社/メーカー: MdN
- 発売日: 2011/08/25
- メディア: 単行本
- 購入: 3人 クリック: 77回
- この商品を含むブログ (3件) を見る