PDA

Ver la Versión Completa : generar un archivo pdf


cahosoft
10-10-2006, 16:27:52
hola como estan....
ya he averiguado sobre este tema en esta pagina
http://itextdocs.lowagie.com
ofrecen una libreria itext-1.4.5.jar
en esa misma pagina hay ejemplos pero no he podido hacerla funcianar....
si alguien tiene un war o un ejemplo con jsp se lo agredeceria....

epuigdef
10-10-2006, 17:26:22
Ahí va:

Este código genera una tabla java con los resultados de una sentencia SQL:



privatevoid generarPDF2(ConsultasPortletSessionBean b, String nombre, String path) {
try {
GestorPropiedades gp = GestorPropiedades.getInstance("sql");
Connection conexion = gp.obtenerConexion("sql");
Statement mandato = conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = mandato.executeQuery(b.getSentencia());

Document doc = new Document(PageSize.A4.rotate());
PdfWriter.getInstance(doc, new FileOutputStream(path + nombre));

int total = 0;
for(int i = 1;i<=rs.getMetaData().getColumnCount();i++)
total += rs.getMetaData().getColumnDisplaySize(i);

float[] widths = newfloat[rs.getMetaData().getColumnCount()];


for(int i = 1;i<=rs.getMetaData().getColumnCount();i++) {
widths[i-1] = 100*rs.getMetaData().getColumnDisplaySize(i) / total;

}

doc.open();
Font f = new Font(Font.HELVETICA, 18);
Paragraph par = new Paragraph(b.getConsultaCargada().getTitulo()+"\r\n\r\n", f);

doc.add(par);


PdfPTable table = new PdfPTable(rs.getMetaData().getColumnCount());
table.setWidths(widths);
for(short i = 1;i<=rs.getMetaData().getColumnCount();i++) {
table.addCell(rs.getMetaData().getColumnLabel(i));
}



while (rs.next()) {
for(short i = 1;i<=rs.getMetaData().getColumnCount();i++) {
table.addCell(rs.getString(i));
}
}
table.setWidthPercentage(100);
doc.add(table);
doc.close();
}
catch(Exception e) {
System.err.println(e.getMessage());
}
}



Un saludo

Edu

cahosoft
12-10-2006, 16:50:15
Gracias por tu atencion... Voy a probar el codigo.....

LucianoRey
17-10-2006, 02:07:50
Hola, yo tambien estoy probando itext para mis reportes, yo me guie por el ejemplo que esta en el apartado que dice iText in a Web Application (http://itextdocs.lowagie.com/tutorial/general/webapp/index.html) y el ejemplo que dice SilentPrintServlet (http://itextdocs.lowagie.com/examples/com/lowagie/examples/general/webapp/SilentPrintServlet.java) , solo genere el html ó jsp que llama este servlet y ya. Saludos.