Informes
Hola queria saber que tengo que hacer para poder hacer informes en java.
gracias.
gracias.
Los listados a los que te refieres, no sé si te refieres a poner los datos en la ventana. y para imprimirlo puedes poner lo siguientes:
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.ISO_A4);
aset.add(new Copies(1));
// Create a print job
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(this);//la clase en la que estas (implements Printable)y tienes que implementar el método print, ahi es como quieres que te lo imprima
// locate a print service that can handle the request
PrintService service[] = PrinterJob.lookupPrintServices();
try {
pj.setPrintService(service[0]);
//pj.pageDialog(aset);
if(pj.printDialog(aset)) {
pj.print(aset);
}
} catch (PrinterException pe) {
}
Ejemplo de print:
public int print(Graphics g,PageFormat pf,int pageIndex) {
// Comprueba que la página vaya a contener datos
if (pageIndex < (1 + (cadena.size() / 30))) {
// Toma las caracterÃsticas de impresión
Graphics2D g2d= (Graphics2D)g;
g2d.setColor(g.getColor());
// Impone que la letra sea monospaced
g2d.setFont(new java.awt.Font("Monospaced", 0, 8));
double posX = pf.getImageableX();
double posY = pf.getImageableY();
// Calcula la última lÃnea que se va a imprimir
int ultimaLinea = (pageIndex + 1) * 30;
if(ultimaLinea > cadena.size()){
ultimaLinea = cadena.size();
}
// La primera lÃnea siempre está vacÃa
g2d.drawString("", (int) posX, (int) posY);
posY += 15;
for(int y = (pageIndex * 30); y < ultimaLinea; y++){
g2d.drawString(cadena.elementAt(y).toString(), (int) posX, (int) posY);
posY += 15;
}
return Printable.PAGE_EXISTS;
} else {
return Printable.NO_SUCH_PAGE;
}
}
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.ISO_A4);
aset.add(new Copies(1));
// Create a print job
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(this);//la clase en la que estas (implements Printable)y tienes que implementar el método print, ahi es como quieres que te lo imprima
// locate a print service that can handle the request
PrintService service[] = PrinterJob.lookupPrintServices();
try {
pj.setPrintService(service[0]);
//pj.pageDialog(aset);
if(pj.printDialog(aset)) {
pj.print(aset);
}
} catch (PrinterException pe) {
}
Ejemplo de print:
public int print(Graphics g,PageFormat pf,int pageIndex) {
// Comprueba que la página vaya a contener datos
if (pageIndex < (1 + (cadena.size() / 30))) {
// Toma las caracterÃsticas de impresión
Graphics2D g2d= (Graphics2D)g;
g2d.setColor(g.getColor());
// Impone que la letra sea monospaced
g2d.setFont(new java.awt.Font("Monospaced", 0, 8));
double posX = pf.getImageableX();
double posY = pf.getImageableY();
// Calcula la última lÃnea que se va a imprimir
int ultimaLinea = (pageIndex + 1) * 30;
if(ultimaLinea > cadena.size()){
ultimaLinea = cadena.size();
}
// La primera lÃnea siempre está vacÃa
g2d.drawString("", (int) posX, (int) posY);
posY += 15;
for(int y = (pageIndex * 30); y < ultimaLinea; y++){
g2d.drawString(cadena.elementAt(y).toString(), (int) posX, (int) posY);
posY += 15;
}
return Printable.PAGE_EXISTS;
} else {
return Printable.NO_SUCH_PAGE;
}
}