- PR -

印刷時の用紙設定

1
投稿者投稿内容
Z.J.W
会議室デビュー日: 2001/10/30
投稿数: 11
投稿日時: 2001-11-26 17:55
また、お世話になります。
印刷で用紙をプログラムで設定したいですが、以下のソースを使って、ページ設定ダイアログを表示しないと、印字ができません。
なぜですか?
PrintTest.java

import java.awt.print.PrinterJob;
import java.awt.print.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.*;

public class PrintTest implements Printable {

PageFormat pf=null;

public PrintTest() {
if(pf==null) pf=(PrinterJob.getPrinterJob()).defaultPage();
/*A4横*/
Paper p=new Paper();
p.setSize(21.0/2.54*72,29.7/2.54*72);
p.setImageableArea(72,72,21.0/2.54*72-144,29.7/2.54*72-144);
pf.setPaper(p);
    pf.setOrientation(PageFormat.REVERSE_LANDSCAPE);

}

public void doIt() {

PrinterJob pj=PrinterJob.getPrinterJob();
/* 下のダイアログを実行しないと、印刷してくれない。なぜ?*/
// pf=pj.pageDialog(pf);

pj.setPrintable(this,pf);
if (pj.printDialog()){
try {
pj.print();
} catch (Exception ex) {
ex.printStackTrace();
}

}
}


public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {


if (pi >= 1) {
return Printable.NO_SUCH_PAGE;
}
Graphics2D g2 = (Graphics2D) g;
g2.drawString("プリンタテスト",100,100);
return Printable.PAGE_EXISTS;
}

public static void main(String s[]){
PrintTest f = new PrintTest();
f.doIt();
}

}

Z.J.W
会議室デビュー日: 2001/10/30
投稿数: 11
投稿日時: 2001-11-26 18:00
補足です。
JDK1.3では問題がありません。
JDK1.2.2では上の問題が発生しまった。
1

スキルアップ/キャリアアップ(JOB@IT)