Java - Generar PDF apartir de un JTable

 
Vista:

Generar PDF apartir de un JTable

Publicado por Lucio (1 intervención) el 01/03/2016 20:00:45
Hola gente del foro. Estaria necesitand ayuda para generar un PDF a partir de un JTable, es decir, quisiera generar una factura a partir de los datos que tengo un un JTable e igualmente esos datos los tengo guardado en una tabla de mi BD que es Postgresql. Tengo hecho el modulo y todo. Me genera todo, pero desalineado. Como que todo esta corrido hacia la derecha y la ultima columna no me la muestra cuando genero el PDF. Estoy usando la libreria itextPDF. Vi que tambien para poder hacer esto esto se puede usar el JasperReport. Pero si alguien tiene una solucion para esto me vendria de 10.

Este es el codigo que hice que funciona, me genera el PDF y todo pero digamos que desaliniado.

Image portada;

// CREA DOCUMENTOS CON TAMAÑO CARTAS Y MARGENE DE TODO LADO DE 50
Document document = new Document(PageSize.LETTER, 50, 50, 50, 50);

try {
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("facturas/" + jTextFieldCodFacturas.getText() + ".pdf"));
document.open();

portada = Image.getInstance("ferreteria-la-llave-portada.jpg");
portada.setAlignment(Element.ALIGN_CENTER);
portada.scalePercent(45f);// tamaño de imagen

document.add(portada);
document.add(new Paragraph("---------------------------------------------------------"));
document.add(new Paragraph("| FACTURAS FERRETERÍA |"));
document.add(new Paragraph("---------------------------------------------------------"));
document.add(new Paragraph("Numero Fact. : " + jTextFieldCodFacturas.getText()));
document.add(new Paragraph("Cliente : " + txtNombre.getText() + " " + txtApellido.getText() + " - DNI : " + txtDni.getText()));
document.add(new Paragraph("Atendio por : " + txtNomVendedor.getText() + " " + txtApeVendedor.getText()));
document.add(new Paragraph("Fecha : [ " + jTextFieldFecha.getText() + " ] - Total a Pagar : $ " + totals + " pesos"));
document.add(new Paragraph(" "));
document.add(new Paragraph("|No.\t|COD. VENTA\t|COD. PRODUCTO\t|PRODUCTOS\t|CANT.\t|PRECIO UNIT\t|IMPORTE\t|"));
document.add(new Paragraph("----------------------------------------------------------------------"
+ "--------------------------------------------------------"));

// parte de dibujo la tabla
PdfContentByte cb = writer.getDirectContent();
PdfTemplate tp = cb.createTemplate(500, 500);
Graphics2D g2;
g2 = tp.createGraphicsShapes(500, 500);
//g2 = tp.createGraphics(500, 500);
JTableProduct.print(g2);
g2.dispose();
//posicion de la tabla de lista de compras
cb.addTemplate(tp, 50, -85);
//cierra el documento
document.close();
JOptionPane.showMessageDialog(null, "Generado PDF Exitosamente.");
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e);
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