株式会社イーブ|未経験・転職の方も就職可能。Javaプログラマー育成のエキスパート

HOMEJAVA技術者育成システム開発求人情報個人情報保護

第 87 回 ~ Java Print Service API その6 ~

トップページ > Java技術者育成 > Javaワンポイント > 第 87 回 ~ Java Print Service API その6 ~

引き続き「Java Print Service API」について学んでいきます。


今回はストリーム印刷サービスを使用した書式の変換を学びます。


Java Print Service APIでは、ストリーム印刷サービスを使用して、書式を変換できます。
対応プリンタが少ない書式でも、手持ちのプリンタで出力可能な書式にすればよいわけですね。


ストリーム印刷サービスを表すのはStreamPrintServiceクラスです。
通常のPrintServiceと異なり、StreamPrintServiceFactoryクラスを使用してインスタンスを取得します。


では、実際にストリーム印刷サービスを使用した書式の変換を行ってみましょう。
今回のサンプルでは、JPEG画像をPostscriptに変換します。(Java5以降)



import java.io.FileInputStream;
import java.io.FileOutputStream;


import javax.print.DocFlavor;
import javax.print.SimpleDoc;
import javax.print.StreamPrintService;
import javax.print.StreamPrintServiceFactory;


public class StreamPrintServiceTest {
    public static void main(String args[]) throws Exception {
        FileInputStream fileInputStream = null;
        FileOutputStream fileOutputStream = null;
        try {
            // 入力ファイル
            fileInputStream = new FileInputStream("D:\\sample.jpg");
            DocFlavor docFlavor = DocFlavor.INPUT_STREAM.JPEG;


            // 出力ファイル
            fileOutputStream = new FileOutputStream("D:\\sample.ps");
            String mimeType = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType();


            // ストリーム印刷サービス取得
            StreamPrintServiceFactory[] streamPrintServiceFactoryArray = StreamPrintServiceFactory.lookupStreamPrintServiceFactories(docFlavor, mimeType);
            if (streamPrintServiceFactoryArray.length != 0) {
                // 印刷
                StreamPrintService streamPrintService = streamPrintServiceFactoryArray[0].getPrintService(fileOutputStream);
                streamPrintService.createPrintJob().print(new SimpleDoc(fileInputStream, docFlavor, null), null);
            }
        } finally {
            fileInputStream.close();
            fileOutputStream.close();
        }
    }
}



[Javaワンポイント]内の前後の記事
第 88 回 ~ 入出力の基本 ~
→ 第 87 回 ~ Java Print Service API その6 ~
第 86 回 ~ Java Print Service API その5 ~


■更新日時での前後の記事
1月21日 お天気
→ 第 87 回 ~ Java Print Service API その6 ~
1月20日 お天気