Saturday, April 17, 2010

CARGAR CADENA DE TEXTO EN 'PDF'.

En muchas ocaciones se tiene la necesidad de que nuestros listados o mensajes que mostramos en una Grilla o un TextArea los exportemos en un .PDF para que con esto lo podamos imprimir o llevarlo en un USB a otro destino. Para este ejemplo nos apoyamos en un ejemplo básico en la clase 'ITEXT'. Y el truco está en jugar con la concatenacion de los datos de dicho listado en un dato de tipo String y mandarlo de parametró al método mostrado en el ejemplo.

El código es el siguiente:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;

/**
* @author Cesar Ricardo.
* @clase: MuestraTextoPDF.java
* @descripción descripción de la clase.
* @author_web: http://frameworksjava2008.blogspot.com
* http://viviendoconjavaynomoririntentandolo.blogspot.com
* @author_email: nombre del email del autor.
* @author_company: nombre de la compañía del autor.
* @fecha_de_creación: dd-mm-yyyy.
* @fecha_de_ultima_actualización: dd-mm-yyyy.
* @versión 1.0
*/
public class MuestraTextoPDF{

private static final String RUTA_PATH = System.getProperty( "user.dir" );
private static final String FICHERO = "Reporte_2010.pdf";

/**
* main
* @param argumentos
*/
public static void main( String[] argumentos ){

String tituloPDF = "...::: PROFILE 2010 :::...";
String textPDF = " Cesar Ricardo Guerra Arnaiz: " + "\n" + "\n" +
" Informático, interesado en Tecnología, Herramientas OpenSource, Motores de Datos, Lenguajes de Programación, " +
" Frameworks, WebService, XML, SOA, Message Broker, Websphere, Ides, Ajax, etc. Abocado y especializado a todo " +
" lo relacionado al mundo JAVA. ";

MuestraTextoPDF pdf = new MuestraTextoPDF();
pdf.muestraTextoEnPDF( textPDF, tituloPDF );
}

/**
* muestraTextoEnPDF
* @param textPDF
* @param tituloPDF
*/
public void muestraTextoEnPDF( String textPDF, String tituloPDF ){

int ancho = 800;
int alto = 600;

Rectangle objRectangulo = null;
Document objDocumento = null;
Paragraph objParagraph = null;

File archivoSalida = null;
FileOutputStream archivoOutput = null;

String rutaFichero = null;

try{
objRectangulo = new Rectangle( ancho, alto );
objDocumento = new Document( objRectangulo );
archivoOutput = new FileOutputStream( FICHERO );

PdfWriter.getInstance( objDocumento, archivoOutput );

objDocumento.addTitle( tituloPDF );
objDocumento.open();

objParagraph = new Paragraph( textPDF );
objDocumento.add( objParagraph );

rutaFichero = (RUTA_PATH + "/" + FICHERO);

System.out.println( "RUTA PATH: " + rutaFichero );

archivoSalida = new File( rutaFichero );
}
catch( IOException e ){
e.printStackTrace();
}
catch( Exception e ){
e.printStackTrace();
}
finally{
if( objDocumento != null ){
if( objDocumento.isOpen() == true ){
objDocumento.close();
}
}
}

try{
//Manda Abrir Fichero 'PDF'.
//Desktop.getDesktop().open( archivoSalida );
Runtime.getRuntime().exec( "rundll32 url.dll, FileProtocolHandler " + archivoSalida );
}
catch( Exception e ){
e.printStackTrace();
}
}
}

No comments: