Formato PDF

PuchiJL
13 de Marzo del 2004
Alguien sabe como se pueden generar archivos PDF con servlets de java y jsp, gracias

kapper
13 de Marzo del 2004
Hola. Hace poco tuve el mismo problema y no encontre ninguna solucion amigable. ASi que me tuve que remitir a una no-amigable.
Busca en google donde bajar el iText.jar. Una vez que lo tienes y esta en el classpath, desde el jsp lo puede invocar de la sgte manera:

<%@
page import="java.io.*, java.awt.*, com.lowagie.text.*, com.lowagie.text.pdf.* , java.util.*"
%><%
response.setContentType( "application/pdf" );

Document document = new Document();

ByteArrayOutputStream buffer = new ByteArrayOutputStream();
PdfWriter.getInstance( document, buffer );

document.open();


Chunk ch = null;
Table t1= new Table(1);
t1.setBorder(0);
t1.setDefaultCellBorderWidth(0);
t1.setDefaultCellBorder(0);
t1.setWidth(100);
Cell c1=new Cell(" ");
t1.addCell(c1);
c1=new Cell(" ");
t1.addCell(c1);
ch = new Chunk("este texto aparece en el pdf!!", FontFactory.getFont(FontFactory.TIMES_ROMAN, 10, com.lowagie.text.Font.NORMAL));
c1=new Cell(ch);
c1.setLeading(5);
c1.setHorizontalAlignment(Element.ALIGN_RIGHT);
t1.addCell(c1);
c1=new Cell(" ");
t1.addCell(c1);
document.add(t1);
document.close();
DataOutput output = new DataOutputStream( response.getOutputStream() );
byte[] bytes = buffer.toByteArray();
response.setContentLength(bytes.length);
for( int i = 0; i < bytes.length; i++ )
{
output.writeByte( bytes[i] );
}
%>

Te vas a dar cuenta que es muy complicado formatear la salida para que queda a gusto. Ten paciencia y juega un poco con el bocque donde se arma el Chunck, el Table y el resto. Una vez que te acostumbres te costara menos. Pero nunca sera tan facil como hacer un <table> de HTML...
(Creo que no hace falta... pero lo aclaro de todas maneras: este codigo deberia ir encapsulado en un objeto, que te podria devolver el objeto Document y en el jsp solo lo iterarias y lo mostrarias... Pero a modo de ejemplo y para hacer "prueba-y-error" es mas comodo que lo tengas en principio directamente pegado en el jsp...)
Si no encuentras el jar, posteame y te lo envio por mail. Pesa menos de 1Mb...

Espero que te sea util.

Exitos!