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