【JavaScript入門】print()メソッドの使い方をわかりやすく解説!

こんにちは!エンジニアのワクテカと申します。

JavaScriptでWEBページを印刷したい、と思ったことはありませんか?

今回は、JavaScriptに用意されているprintメソッドを使って、表示されているWEBページを印刷する方法を解説したいと思います!

この記事では、

・printメソッドの基本
・printメソッドのサンプルコードと使い方

などのprintメソッドの基本から、

・特定の要素を印刷させない方法
・特定のスタイルシートを適用させない方法

など、さらに応用的なprintメソッドの使い方まで解説していきます!

目次

printメソッドとは

printメソッドとは、HTMLドキュメント(一般的なWEBページ)を印刷するためのメソッドです。

まずは、ブラウザのコンソールを開いて、以下のコードを実行してみましょう。

// 表示中の画面を印刷する
window.print();

実行すると、次のような印刷画面が表示されます。

印刷確認画面

このように、javascriptでは1行で印刷するためのコードを書くことができます。

また、他の言語を触ったことがある方は、printと聞くとコンソールへ出力するためのメソッドのように思う方もいるかも知れません。

javascriptでコンソールに文字を出力する場合は「console.log(“出力する文字”)」を使います。

詳しい書き方は以下記事に詳しくまとめているため、そちらを知りたい方はぜひ見てみて下さいね!

それでは、より実践的な使い方をみていきましょう!

printメソッドの使い方

クリック処理で印刷を実行する

印刷処理は、ボタンやリンクをクリックして実行するケースが多いので、印刷ボタン、リンクの作り方について説明します!

クリック処理にwindows.print()を直接書くことで、簡単に印刷用のボタン、リンクを作ることができます。

ボタン:

<input type="button" value="印刷" onclick="window.print();" />

リンク:

<a href="#" onclick="window.print(); return false;">印刷</a>

とてもシンプルなコードで作ることができるので、便利ですね。

印刷時のスタイルを変更する方法

印刷用のcssを指定することで、印刷時に印刷用のスタイルを適用したり、不要なボタンなどを隠すことができます。

特定の要素を印刷する/させないようにする

・印刷用のスタイルシートを読み込む

cssを読み込むlinkタグに、「media="print"」を指定することで、そのスタイルシートは印刷でのみ適用されます。

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

・印刷用のスタイルを指定する

@mediaを使用して、CSS内で印刷用のスタイルを切り分けることも可能です。

@media print{
  .no-print-area {
    display: none;
  }
}

これで、「no-print-area」のクラスが指定された要素は印刷されないようになります。

printメソッドの注意点

これは、windowを印刷するための書き方になります。windowとは、HTMLドキュメントを収めるウィンドウを指しています。これだけで、表示中の画面(この記事)が印刷できます。

また、このメソッドはwindowオブジェクトに用意されたもので、特定の要素を印刷したりすることはできませんので、注意しましょう。

var heading = document.createElement("h1");
heading.print();

実行結果:

> Uncaught TypeError: heading.print is not a function

まとめ

いかがだったでしょうか。今回はWEBページの印刷できるprintメソッドについて解説しました。

printメソッドを活用するには、HTMLとCSSをうまく変更することが必要です。また、iframeを使用して特定のPDFを印刷できるようにする方法も学習しました。

印刷ができるようになると、「WEB文書ではなく実際の紙を使用したい」というユーザーやクライアントにとってはとても便利ですので、覚えておきましょう!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次