CodeZine(コードジン)

特集ページ一覧

Java Graphicsを使ってかんたんプリント

JavaプログラムにAWTとJPSで印刷機能を実装する

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/05/21 14:00

本稿ではAWTやJPSを利用して、Javaプログラミングに印刷機能を実装する手順を説明します。Graphicsオブジェクトを使うことによって、以外に簡単にプリンタ出力が実現できます。

目次

はじめに

 紙ベースで情報をやりとりする必然性が減ってきたとはいえ、印刷機能はまだまだ業務的なニーズのある領域だと思います。JavaではGraphicsオブジェクトを使用することで、画面への描画と同じように印刷機能を実装することができます。これらは最新技術ではありませんがその面白さを知ってもらえればと思います。

Java Graphics

 印刷機能を説明する前にJavaのグラフィックス描画について簡単に説明します。Java Graphicsはユーザが出力先デバイスに対して描画を行うための「ペン」のような機能を提供します。以下のサンプルコードを見てください。

RoundDrwa.java
/**
* 複数の楕円を描画するクラス
*/
public class RoundDraw { private int width; private int height; //・・・中略・・・ public void draw(Graphics g){ g.setColor(Color.WHITE); //ペン先の色を白に g.fillRect(0, 0, width, height); //四角領域を塗りつぶす g.setColor(Color.BLUE); //ペン先の色を青に for (int x = 0; x < width; x +=10){ g.drawOval(x, 0, width - 2 * x, height); //楕円を描画 } for (int y = 0; y < height; y += 10){ g.drawOval(0, y, width, height - 2 * y); //楕円を描画 } } }

 サンプルのRoundDrawクラスは幅と高さを指定することで、その領域にたくさんの楕円を描画するためのクラスです。drawメソッドで描画処理を実装しています。setColorでペン先の色を決定し、fillRectで矩形領域を塗りつぶします。drawOvalは楕円形を描画するメソッドです。

 このRoundDrawクラスを内包したSwingコンポーネントを作成し、JFrameで動作確認します。JFrameウィンドウ上にたくさんの楕円形が描かれたグラフィックスが描画されました。

JFrameでGraphics描画を確認
JFrameでGraphics描画を確認

印刷機能の実装方法

 さて、Graphicsという「ペン」を使うことにより、画面に対して自由な描画ができることを確認しました。紙に印刷する場合でも基本的に要領は同じです。

 Javaでの印刷機能の実装には2種類の方法があります。1つはAWT Printで、もう1つはJPS(Java Print Service)です。JPSはJava 1.4から追加された新しいAPIです。JPSの方が細かい指定ができるのですが、AWT Printの方が適しているケースもあります。では、それぞれについて紹介していきます。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5