Imprimir

6 respostas
S

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!

6 Respostas

oliveirarenan

Imprimir o que???

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

:lol: :lol: :lol:

S

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

wanderley.drumond

Tenta isso:

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");
            }
        }
    }
}

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

Respondido?

Ironlynx

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:

S

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!

S

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!!!

Criado 12 de dezembro de 2007
Ultima resposta 13 de dez. de 2007
Respostas 6
Participantes 4