トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

Java でプリンタへ出力する

大きく2つの方法がある。
java.awt.print を使う方法
javax.print (Java Print Service) を使う方法

java.awt.print を使う方法

http://d.hatena.ne.jp/shin/20110623/p1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
PrinterJob job = PrinterJob.getPrinterJob();
Printable painter = new Printable() {

    @Override
    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
        if(pageIndex > 0){
            return NO_SUCH_PAGE;
        }
        
        graphics.setColor(Color.RED);
        graphics.fillRect(10, 20, 100, 200);

        graphics.setColor(Color.BLACK);
        graphics.setFont(new Font("MS ゴシック",Font.PLAIN , 24));
        graphics.drawString("印刷されていますか?", 100, 50);

        return PAGE_EXISTS;
    }
};
job.setPrintable(painter);

boolean print = job.printDialog();
if(print){
    job.print();
}

javax.print を使う方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 印刷物の元データの情報(PDFとかテキストだとか)
DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;

// プリンタへ渡すパラメータ(紙のサイズとか両面印刷だとか)
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.ISO_A4);

// プリンタの取得
PrintService[] pservices =
PrintServiceLookup.lookupPrintServices(flavor, aset);
if (pservices.length > 0) {
  DocPrintJob pj = pservices[0].createPrintJob();
  try {
    FileInputStream fis = new FileInputStream("test.ps");
    Doc doc = new SimpleDoc(fis, flavor, null);
    pj.print(doc, aset);
  } catch (FileNotFoundException fe) {
  } catch (PrintException e) { 
  }
}

[カテゴリ: プログラミング言語 > Java]

[通知用URL]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2012年09月10日 23時40分01秒