Java - como crear un archivo de impresion en java

 
Vista:

como crear un archivo de impresion en java

Publicado por rasof (35 intervenciones) el 22/05/2009 08:25:34
Hola muy buenas:

tengo un problema, he desarrollado una aplicacion escritorio en java usando SWING. donde tengo datos de una base de datos en jTables, la cosa es que quiero crear un documento en que esten por ejemplo 10 tablas. y este documento lo pueda imprimir por impresora.

ahora mismo el codigo ke uso es este:

private void imprimirTabla() {
try {
if (! tablaGraficos.print()) {
System.err.println("Usuario canceló impresión");
}
} catch (PrinterException e) {
System.err.format("No se puedo imprimir. %s%n", e.getMessage());
}
}

la cosa es que con este codigo tendira ke imprimir una tabla por pagina y lo ke yo kiero es mandar por ejemplo 10 tablas a imprimir. ya ke de la manera ke tengo ahora como he dicho antes imprime una tabla por pagina y gasto muchisimo papel. lo ke yo kiero es crear un documento para imprimir con muchas tablas y despues lo imprima.

Estoy un poko desesperado ya, si alguien me puede ayudar estria mu agradecido y si no tambien!!!

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como crear un archivo de impresion en java

Publicado por Mario (40 intervenciones) el 22/05/2009 11:21:47
Busca informacion sobre iReports, es lo que yo uso para imprimir ; )

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como crear un archivo de impresion en java

Publicado por rasof (35 intervenciones) el 22/05/2009 11:43:44
muchas gracias por contestar, he estado leyendo un poko sobre ello y puff no encuentro ningun tutorial con un ejemplo sencillo. hablan muchas veces de un xml, paginas web... pero mi aplicacion es una aplicacion escritorio desrrollado con SWING, soy bastante novato y me esta costando el tema este de imprimir,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como crear un archivo de impresion en java

Publicado por Mario (40 intervenciones) el 22/05/2009 12:28:05
A ver, te comento por encima como va el tema, y si puedo echarte una mano lo haré.
Yo lo uso por ejemplo cuando quiero confeccionar una factura, un presupuesto, y en el ultimo caso por ejemplo, una solicitud oficial para un organismo de la administración pública.
No sé qué tipo de tablas quieres imprimir tú, pero si lo que haces es obtener los datos desde BD podrás usarlo sin problemas.
iReports te permite crear una "plantilla", tal y como se hacen los informes de access por ejemplo, es una forma muy similar.
Una vez que te creas esa plantilla (eso será cosa de trastear un poco con iReports antes y que ya después preguntes las dudas...) le asignas una consulta, y se define un parámetro (si es necesario). Por ejemplo... si yo quiero imprimir la factura 1234, realizo una consulta que me devuelva todos los datos de dicha factura (al menos los que quiero mostrar). Una vez hecho eso, se define que esa consulta tendrá un parámetro, que será el numero de la factura. En tu caso no sé que parámetros podría tener, si me comentas tu caso con un poco más de profundidad kizás pueda orientarte más.
Una vez hecho eso, el fichero compilado de dicho report (mireport.jasper x ejemplo) lo metes en los recursos de tu proyecto, y para finalizar, hay que crearse un método que use ese fichero, al que le pasaremos el parámetro (o parámetros) que necesitemos. De ese método te podría pasar yo algún ejemplo si finalmente te decides por esta forma para imprimir.
Si puedo ayudarte un poco mas... me lo comentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como crear un archivo de impresion en java

Publicado por rasof (35 intervenciones) el 25/05/2009 08:47:17
te voy a explicar concretamente que es lo ke kiero conseguir o imprimir.

tengo una aplicacion que crea turnos de trabajo, serian por ejemplo 10 turnos de trabajo y me gustaria mandar impirmir en un documento los 10 turnos de trabajo,

el turno 1:

HORA SALIDA || INICIO || FIN ||| DESCRIPCION || TIPO RUTA
6:10 LEMONA DURANGO LEMONA - DURANGO VACIO
6:30 DURANGO BILBAO DURANGO - BILBAO RELEVO
8:00 BILBAO DURANGO BILBAO - DURANGO RELEVO

EL TURNO 2:

HORA SALIDA || INICIO || FIN ||| DESCRIPCION || TIPO RUTA
9:10 LEMONA DURANGO LEMONA - DURANGO VACIO
10:30 DURANGO BILBAO DURANGO - BILBAO RELEVO
12:00 BILBAO DURANGO BILBAO - DURANGO RELEVO

(...)

Esto es lo que querria conseguir, si para hacer esto tengo ke usar ireports no me importa para nada, eso si, si podrias darme algun ejemplo o asi estaria muy agradecido ya ke me esta constando bastante el tema este y por la red no encentro nada que entienda con claridad.

muchas gracias por toda tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como crear un archivo de impresion en java

Publicado por rasof (35 intervenciones) el 25/05/2009 09:16:59
e conseguido crear un pdf y ke me imprima una tabla con itext, no se si lo de ireport al fin y al cabo sera algo parecido, pero tengo el mismo problema no logro cargar en el pdf mas de una tabla, solo consigo una tabla. te adjunto el codigo con el ke creo el pdf.

private void print() {
Document document = new Document(PageSize.A4);
try {
//donde guardar el pdf, el documento que creamos
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\Documents and Settings\egoitz\Escritorio\jTable.pdf"));
//abrir el documento que queremos crear
document.open();
PdfContentByte cb = writer.getDirectContent();

cb.saveState();
Graphics2D g2 = cb.createGraphicsShapes(500, 800);

Shape oldClip = g2.getClip();
g2.clipRect(0, 0, 500, 500);

table.print(g2);
g2.setClip(oldClip);

g2.dispose();
cb.restoreState();
} catch (Exception e) {
System.err.println(e.getMessage());
}
document.close();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como crear un archivo de impresion en java

Publicado por Mario (40 intervenciones) el 25/05/2009 10:34:09
Yo es que con iText no he trabajado. Va creándote una especie de plantilla tb?? Mediante ireports creo que sería fácil crear lo que tú kieres. Mira, mi msn es [email protected], si quieres, agrégame y te comento como va el tema x alli cuando coincidamos, aunque creo que asta el miercoles o el jueves estaré poco tiempo conectado.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como crear un archivo de impresion en java

Publicado por rasof (35 intervenciones) el 26/05/2009 11:56:15
muchas gracias mario!! pero al final ya he conseguido lo ke keria, no se si de manera mas sencilla o no, pero al final me ha salido lo ke keria con itext. voy a poner lo ke he hecho aqui por si a alguien le viene bien y por si tu kieres empezar a usar lo del itext ,jajjaja

muchas gracias mario, as sido de mucha ayuda!!

private void printPropio(){
Document document = new Document(PageSize.A4);
PdfWriter writer;

try {
writer = PdfWriter.getInstance(document, new FileOutputStream(textRuta.getText()+"\"+textNombrePDF.getText()+".pdf"));
System.out.println(textRuta.getText()+"\"+textNombrePDF.getText()+".pdf");
document.open();
Object o[]=recogerValoresLista();
int luz=o.length;
for(int i=0;i<luz;i++){
float [] widths1 = {1f,2f,1.1f,1f};
PdfPTable table = new PdfPTable(widths1);
PdfPCell cell = new PdfPCell(new Paragraph("GRAFICO "+o[i]));
cell.setColspan(4);
cell.setBorder(0);
table.addCell(cell);
DescripcionGraficosDAO cdao = new DescripcionGraficosDAO();
//este es el rs que necesitamos para llenar la tabla
ResultSet rs =(ResultSet)cdao.getDescripcionGraficosByIdGraf(Integer.parseInt(o[i].toString()));
cell = new PdfPCell(new Paragraph("HORA SALIDA"));
cell.setBackgroundColor(new Color(193, 205, 205));
table.addCell(cell);
cell = new PdfPCell(new Paragraph("DESCRIPCION"));
cell.setBackgroundColor(new Color(193, 205, 205));
table.addCell(cell);
cell = new PdfPCell(new Paragraph("TIPO RUTA"));
cell.setBackgroundColor(new Color(193, 205, 205));
table.addCell(cell);
cell = new PdfPCell(new Paragraph("S.A.E"));
cell.setBackgroundColor(new Color(193, 205, 205));
table.addCell(cell);
while(rs.next()){
table.addCell(rs.getObject(1).toString());
table.addCell(rs.getObject(2).toString());
table.addCell(rs.getObject(3).toString());
table.addCell(rs.getObject(4).toString());
}
//PARA LA FILA EN BLANCO ANTES DEL SIGUIENTE GRAFICO
cell = new PdfPCell(new Paragraph(""));
cell.setColspan(4);
cell.setBorder(0);
table.addCell(cell);
table.addCell(cell);
//AÑADIR TABLA AL GRAFICO
document.add(table);
}
document.close();
} catch (Exception e) {System.out.println(e);}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como crear un archivo de impresion en java

Publicado por Mario (40 intervenciones) el 26/05/2009 13:48:18
Siempre está bien conocer nuevas cosillas, así que me lo apunto :P
Me alegro de que al final lo pudieras sacar
Suerte para lo demás!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar