Filtro CPL Polarizado ventajas

Crear PDF iText imagen plantilla personalizada

 Crearemos un PDF con iText a partir de una plantilla predeterminada creada por nosotros. Es decir, crearemos primero una plantilla personalizada y posteriormente haremos uso de esa plantilla desde otro programa. La plantilla incluirá una imagen de encabezado.


Primeramente crearemos un proyecto de Java Application en NetBeans. Crearemos una clase llamada Plantilla, ésta tendrá todo el contenido de la plantilla.
package plantillapdfmain;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
/**
*
* @author Navi
*/
public class Plantilla {
String nombre;
String apellido;
String fecha;
String rutaImagen;
Document documento;
FileOutputStream archivo;
Paragraph titulo;
public Plantilla(String nombre, String apellido, String fecha, String rutaImagen){
this.nombre = nombre;
this.apellido = apellido;
this.fecha = fecha;
this.rutaImagen = rutaImagen;
documento = new Document();
titulo = new Paragraph("Plantilla Personalizada");
}
public void crearPlantilla(){
try {
archivo = new FileOutputStream(nombre + ".pdf");
PdfWriter.getInstance(documento, archivo);
documento.open();
titulo.setAlignment(1);
Image image = null;
try {
image = Image.getInstance(rutaImagen);//carga imagen
image.scaleAbsolute(150, 100);//cambia tamaño
image.setAbsolutePosition(415, 750);//coloca imagen en la posicion
} catch (Exception e) {
}
documento.add(image);//agrega la imagen al documento
documento.add(titulo);
documento.add(new Paragraph("Nombre: " + nombre));
documento.add(new Paragraph("Apellidos: " + apellido));
documento.add(Chunk.NEWLINE);
Paragraph texto = new Paragraph("It is a long established fact that a reader will be distracted by the readable content of "
+ "a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution"
+ " of letters, as opposed to using 'Content here, content here', making it look like readable English. "
+ "Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for "
+ "'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, "
+ "sometimes on purpose (injected humour and the like).");
texto.setAlignment(Element.ALIGN_JUSTIFIED);
documento.add(texto);
documento.add(Chunk.NEWLINE);
documento.add(new Paragraph("Fecha: " + fecha));
documento.close();
System.out.println("Archivo creado correctamente!");
} catch (FileNotFoundException e) {
System.err.println(e.getMessage());
} catch(DocumentException e){
System.err.println(e.getMessage());
}
}
}
view raw Plantilla.java hosted with ❤ by GitHub
Estamos creando la clase Plantilla.java que tiene un constructor que recibe el nombre, el apellido, la fecha y la ruta de la imagen que queremos cargar al PDF. 
Esos parámetros se los pasaremos desde otra aplicación Java. Digamos que esos parámetros son personalizables y el cuerpo del documento es estático. 
Una vez que ya tenemos la clase Plantilla.java lista, tenemos que compilarla con el botón de martillo y limpiador. Nuestro .jar o librería o plantilla ya estará lista para importarla a cualquier otro programa Java. El .jar se encuentra en la ruta de nuestro proyecto.



Creamos otra aplicación de Java y en el main colocamos  el siguiente código. 

Le estamos pasando la el nombre, el apellido, la fecha y la ruta de una imagen que queramos.
Para que detecte nuestra plantilla tenemos que importarla, (Plantilla.jar) a nuestro a proyecto.

De esta manera ya podemos usar nuestra plantilla en cualquier programa Java, con solo crear un objeto de tipo Plantilla.

Esto sería todo por ahora.
Seguiré mejorando la plantilla con tablas y datos de bases de datos.
 

Cualquier duda dejen su comentario y con gusto estaré respondiendo.

Saludos!


Comentarios