2

Java 印刷 API を使用してプリンターからページを印刷するプログラムを作成しました。ページサイズをレターに設定するコードを入れたと思いますが、それでもプリンターのデフォルトのサイズで印刷されます。これが私のprintPage()方法です:

public void printPage() {
    getTot();
    PrinterJob job = PrinterJob.getPrinterJob();
    PageFormat pf = job.defaultPage();
    Paper paper = pf.getPaper();
    paper.setSize(8.5 * 72, 11 * 72);
    paper.setImageableArea(0.5 * 72, 0.0 * 72, 7.5 * 72, 10.5 * 72);
    pf.setPaper(paper);
    job.setPrintable(this);
    boolean ok = job.printDialog();
    if (ok) {
        if (cov)
            try {
                for (j = 0; j < printPaths.size(); j++)
                    job.print();
                cov = false;
            } catch (PrinterException ex) {
                System.out.println(ex.getMessage());
            }
        if (summ)
            try {
                job.print();
                summ = false;
            } catch (PrinterException ex) {
                System.out.println(ex.getMessage());
            }
    }

}

私は何を間違っていますか?

4

2 に答える 2

4

このコードを追加して再実行してみてください:

Book book = new Book();//java.awt.print.Book
book.append(this, pf);
job.setPageable(book);

それ以外の

job.setPrintable(this);
于 2011-11-29T17:20:16.607 に答える