java: define o intervalo de páginas para o diálogo de impressão

9

Estou apenas começando para aprender a imprimir uma janela em Java / Swing . (edit: acabou de encontrar o Guia de Impressão em Java )

Quando faço isso:

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 {

        }
    }
}

Eu recebo esta caixa de diálogo da impressora (no Windows XP):

Comoalteroointervalodepáginasparaquenãosejade1a9999?

edite:usandoPageable/Bookparadefinirointervalodepáginas(como@t_barbzapontacominteresse)requerumPageFormat , nesse caso eu tenho um catch-22, pois gostaria que a caixa de diálogo Imprimir selecionasse isso, e parece que não consigo um valor de retorno da caixa de diálogo de impressão.

    
por Jason S 02.06.2011 в 17:14
fonte

2 respostas

4

Para o intervalo de páginas, acredito que você precise usar o método setPageable (documento paginável) do PrinterJob. Parece que deveria fazer o truque.

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 {

    }
}
}
    
por t_barbz 02.06.2011 / 17:32
fonte
1

Finalmente, aqui está um código simples:

PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(this);
PrintRequestAttributeSet printAttribute = new HashPrintRequestAttributeSet();
printAttribute.add(new PageRanges(1, 100));        
boolean ok = job.printDialog(printAttribute);
if (ok) {
     try {
          job.print();
     } catch (PrinterException ex) {
      /* The job did not successfully complete */
     }
}
    
por Dani 07.08.2017 / 23:17
fonte