Javaで画面を印刷する方法

1概要

デスクトップ上で画面印刷アクションを実行する必要があるときは、キーボードに「PrntScr」ボタンが組み込まれています。

時にはそれで十分です。

しかし、プログラムでそのアクションを実行する必要があるときに問題が発生します。

簡単に言うと、Javaを使って現在のスクリーンショットを画像ファイルとして保存する必要があるかもしれません。

それができる方法を見てみましょう。

2 Robot クラス

Java java.awt.Robot クラスは、これから使用する予定のメインAPIです。

この呼び出しは ' createScreenCapture 'と呼ばれるメソッドを含みます。

robot.createScreenCapture(rectangle);

上記のメソッドは java.awt.image.BufferedImage インスタンスを返すので、取得したイメージを javax.imageio.ImageIO ユーティリティクラスを使用してファイルに書き込むだけです。

3画像ファイルのキャプチャと保存

画像のキャプチャと保存のためのJavaコードは次のとおりです。

public void getScreenshot(int timeToWait) throws Exception {
    Rectangle rec = new Rectangle(
      Toolkit.getDefaultToolkit().getScreenSize());
    Robot robot = new Robot();
    BufferedImage img = robot.createScreenCapture(rectangle);

    ImageIO.write(img, "jpg", setupFileNamePath());
}

ここでは、 java.awt.Rectangle インスタンスに必要なサイズを設定することによって画面の一部をキャプチャすることが可能です。ただし、上記の例では、現在の画面サイズを設定することによって全画面をキャプチャするように設定されています。

4結論

このチュートリアルでは、Javaでの印刷画面の使用法について簡単に説明しました。上記の例のソースコードはhttps://github.com/eugenp/tutorials/tree/master/core-java/src/main/java/com/baeldung/printscreen[GitHubプロジェクト]にあります。