Imprimir

Alguem conhece um tutorial ou coisa parecida de como imprimir (na impressora msm naum na tela) em java, uma coisa bem basica pra eu ter um ideia.
Obrigado!

Imprimir o que???

Relatorios?? use ireport e jasperreports…procure um tutorial aqui no guj…

:lol: :lol: :lol:

Imprimir uma JTable eu queria imprimir ela do msm jeito que é exibida, e com grades…

Tenta isso:

[code]import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

class Impressao implements Printable {
private static Formulario formulario;
JFrame frameToPrint;

public Impressao(JFrame f) {
    frameToPrint = f;
}

public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
    if (page > 0) {

        // Tem-se somente uma página, e a ?página? baseada em zero
        return NO_SUCH_PAGE;
    }

    /*
     *  User (0,0) is typically outside the imageable area, so we must
     * translate by the X and Y values in the PageFormat to avoid clipping
     */
    Graphics2D g2d = (Graphics2D) g;

    g2d.translate(pf.getImageableX(), pf.getImageableY());
    frameToPrint.printComponents(g);

    /* tell the caller that this page is part of the printed document */
    return PAGE_EXISTS;
}

public void imprimir() {
    PrinterJob job = PrinterJob.getPrinterJob();

    job.setPrintable(this);

    boolean ok = job.printDialog();

    if (ok) {
        try {
            job.print();
        } catch (PrinterException ex) {

            // O trabalho não terminou com sucesso
            JOptionPane.showMessageDialog(null, "Ocorreu um erro na impressão, por favor tente novamente");
        }
    }
}

}[/code]

Isso vai fazer vc imprimir como se fosse um JPEG. É necessário a API ImpressaoVisual.

Respondido?

Snoop, se a sua JTable estiver num jpanel, usando a dica de API do Wanderley(Sem usar PrinterJobAPI), é mais fácil ainda de imprimir(claro que dá parausar o método print da JSE5.0 se preferir):

//teste do impressão visual try{ brandao.swing.JVisualizarImpressao jvp = new brandao.swing.JVisualizarImpressao( new javax.swing.JFrame(), true ); jvp.getJVImpressao1().addPagina(SeuPanelComSuaJTable); jvp.getJVImpressao1().selecionarPagina(0); jvp.setVisible(true); } catch(Exception e){ System.out.println(e.getMessage()); }

O projeto:

Um breve tuto:

Eu comecei a tentar com o jasper e o iReport como já haviam recomendado, até pq tem um artigo aki sobre eles. Mas no exemplo do artigo msm jah da errado, dei uma procurada por aki mas nda q esclareça…
Esses erros aki

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
        at net.sf.jasperreports.engine.fill.JRBaseFiller.<clinit>(JRBaseFiller.java:95)
        at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)
        at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:83)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)
        at net.sf.jasperreports.engine.JasperManager.fillReport(JasperManager.java:764)

Obrigado!

Como jah haviam recomendado acabei usando o jasperreport e depois de apanha bastante funcionou… Mas tenhu uma duvida sobre ele; o relatorio eh gerado pode ser salvo em pdf ow impresso e blablabla, mas qnd eu vejo akela tela do jasperviewr ele fecha meu aplicativo junto, como eu faço pra impedir isso?
Valew!!!