La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Cómo exportar páginas jsp a formato pdf?

¿Cómo exportar páginas jsp a formato pdf?

El archivo PDF se genera primero en el servidor y luego el usuario elige descargarlo o abrirlo haciendo clic en el hipervínculo que apunta al archivo PDF. Esta es una idea, o una de las ideas. Este artículo realiza esta idea y da otra idea y la implementa de dos maneras.

1) Generar archivos PDF directamente en el servidor.

lt; @ importación de página="com.lowagie.text.*

, com.lowagie.text.pdf.*, java.io.*"gt;

lt;

String filename =

"PDF" (new Random()).nextInt() ".pdf" ;

Documento documento =

nuevo documento(PageSize.A4);

ServletOutputStream out1

= respuesta.getOutputStream();

probar{

PdfWriter escritor =

PdfWriter.getInstance(documento,

nuevo FileOutputStream(nombre de archivo));

document.open();

p>

document.add(new Paragraph("Hola Mundo"));

document.close();

}

catch(Exception e){}

gt;

El programa anterior genera un archivo PDF estático en el servidor. Obviamente, el nombre del archivo PDF obtenido en cada ejecución debe ser único y no duplicado. Este programa utiliza una función aleatoria para nombrar los archivos PDF generados. La desventaja de este programa es que cada vez que se ejecuta, se generará un archivo PDF en el servidor. Si no se elimina a tiempo, el número aumentará cada vez más. Esto es obviamente algo que el responsable del sitio no quiere. ver.

2) Transporte el archivo PDF al caché del cliente en forma de secuencia. La ventaja de esto es que no dejará ninguna "reliquia" en el servidor.

i) Generar directamente a través de la página JSP

lt; @

page import="java.io.*,

java. awt.Color, com.lowagie.text.*,

com.lowagie.text.pdf.*"gt;

lt;

response.setContentType

( "aplicación/pdf" );

Documento documento = nuevo documento();

Búfer ByteArrayOutputStream

= nuevo ByteArrayOutputStream( );

PdfWriter escritor=

PdfWriter.getInstance(documento, búfer);

document.open();

documento. add(new Paragraph("Hola mundo"));

document.close();

Salida de salida de datos =

nueva secuencia de salida de datos

( respuesta.getOutputStream() );

byte[] bytes = buffer.toByteArray();

respuesta.setContentLength(bytes.length);

for( int i = 0;

i lt; bytes.length;

i )

{

salida.writeByte( bytes [i] );

}

gt;

ii) Generado mediante Servlet

import java.io.*;

p>

importar javax.servlet.*;

importar javax.servlet..lowagie.text.*;

importar com.lowagie.text. pdf.*;

public void doGet

(solicitud HttpServletRequest,

respuesta HttpServletResponse)

lanza IOException, ServletException

{

Documento documento =

nuevo documento(PageSize.A4, 36, 36, 36, 36);

ByteArrayOutputStream ba

= new ByteArrayOutputStream();

prueba

{

PdfWriter escritor =

PdfWriter.getInstance(document, ba) ;

document.open();

document.add(new

Párrafo("Hola mundo"));

>

}

catch(DocumentException de)

{

de.printStackTrace();

System.err.println

("Un error de documento:" de.getMessage());

}

document.close();

respuesta .setContentType

("application/pdf");

response.setContentLength(ba.size());

ServletOutputStream out

= respuesta.getOutputStream();

ba.writeTo(out);

out.flush();

}