我只是开始to learn how to print a window in Java/Swing
(编辑:刚找到the Java Printing Guide)

当我这样做时:

protected void doPrint() {
    PrinterJob job = PrinterJob.getPrinterJob();
    job.setPrintable(this);
    boolean ok = job.printDialog();
    if (ok) {
        try {
            job.print();
        }
        catch (PrinterException ex) {
            ex.printStackTrace();
        }
        finally {

        }
    }
}

我得到此打印机对话框(在Windows XP上):

如何更改页面范围而不是1-9999?

编辑:使用Pageable/Book设置页面范围(如@t_barbz指出)需要PageFormat,在这种情况下,我有一个catch-22,因为我希望使用“打印”对话框来选择它,但我没有似乎从打印对话框中获得了返回值。

最佳答案

对于页面范围,我相信您需要使用PrinterJob的setPageable(Pageable document)方法。看起来应该可以解决问题。

protected void doPrint() {
PrinterJob job = PrinterJob.getPrinterJob();
Book book = new Book();
book.append(this, job.defaultPage());
printJob.setPageable(book);

boolean ok = job.printDialog();
if (ok) {
    try {
        job.print();
    }
    catch (PrinterException ex) {
        ex.printStackTrace();
    }
    finally {

    }
}
}

关于java:设置打印对话框的页面范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6216487/

10-09 15:44