Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia

15/4/10

Crear PDF desde java

JAN29

En esta ocasion crearemos un archivo PDF desde java utilizando el IDE netbeans 6.0, y la libreria ITEXT. pero y ¿que es Itext?

Segun SantaWikipedia:

iText es una biblioteca Open Source para crear y manipular archivos PDF, RTF, y HTML en Java. Fue escrita por Bruno Lowagie, Paulo Soares, y otros; está distribuida bajo la Mozilla Public License con la LGPL como licencia alternativa.


El mismo documento puede ser exportado en múltiples formatos, o múltiples instancias del mismo formato. Los datos pueden ser escritos a un fichero o, por ejemplo, desde un servlet a un navegador web.


Más recientemente, ha sido extendida a una biblioteca PDF de propósito general, capaz de rellenar formularios, mover páginas de un PDF a otro, y otras cosas. Estas extensiones son a menudo mutuamente excluyentes. Una clase te permite rellenar en formularios, mientras una clase diferente e incompatible hace posible copiar páginas de un PDF a otro.

Basta de teoria, vamos a lo que interesa que es el codigo, lo que debes hacer primero claro esta, es bajarte esa biblioteca desde este enlace, la ultima version es la itext 5.0.2, baja el *.jar o si lo deseas puedes bajarte todo las fuentes mas documentacion incluida, obvio que en ingles. Una vez que bajaste la libreria, debes instalar esta en Netbeans, si no sabes como, te recomiendo te des una vuelta por aqui "instalar nuevas librerias a netbeans".

El proyecto:

1.- Crea un nuevo proyecto en netbeans, dale un nombre, para este ejemplo "javapdf", añade un JFrame:editor, y coloca los objetos y sus respectivos nombres como se ve en la captura de pantalla:

2. Crea una nueva clase "javapdf.java" y añade el siguiente codigo:


package javapdf;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
//archivos
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
//librerias ajenas a itext
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */
public class javapdf {
   
    private File ruta_destino=null;
    
    public javapdf(){    
    }
    
    /* metodo que hace uso de la clase itext para manipular archivos PDF*/
    public void crear_PDF(String t, String a, String s, String k, String c){
        //abre ventana de dialogo "guardar"
        Colocar_Destino();
        //si destino es diferente de null
        if(this.ruta_destino!=null){
            try {
                // se crea instancia del documento
                Document mipdf = new Document();
                // se establece una instancia a un documento pdf
                PdfWriter.getInstance(mipdf, new FileOutputStream(this.ruta_destino + ".pdf"));
                mipdf.open();// se abre el documento
                mipdf.addTitle(t); // se añade el titulo
                mipdf.addAuthor(a); // se añade el autor del documento
                mipdf.addSubject(s); //se añade el asunto del documento
                mipdf.addKeywords(k); //Se agregan palabras claves  
                mipdf.add(new Paragraph(c)); // se añade el contendio del PDF
                mipdf.close(); //se cierra el PDF&
                JOptionPane.showMessageDialog(null,"Documento PDF creado");
            } catch (DocumentException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }            
        }        
    }
    /* abre la ventana de dialogo GUARDAR*/
    public void Colocar_Destino(){
       FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivo PDF","pdf","PDF");
       JFileChooser fileChooser = new JFileChooser();       
       fileChooser.setFileFilter(filter);
       int result = fileChooser.showSaveDialog(null);
       if ( result == JFileChooser.APPROVE_OPTION ){   
           this.ruta_destino = fileChooser.getSelectedFile().getAbsoluteFile();
        }
    }    
}

El codigo de la clase ya esta comentado y creo que es bastante obvio. para un usuario intermedio de java sera de facil comprension.

3. Para terminar, debes implementar esta clase en el JFrame, asi:
y eso es todo, te crea el PDF como se ve en la captura de pantalla

22 comentarios:

Anónimo dijo...

oe tio tu explicacion ta de la patada, me llamo juan de peru y ps me haz salvado un poco la vida con este codigo

Anónimo dijo...

gracias carnal por compartirlo, siguele asi compa!!

Anónimo dijo...

buena man...se ve q tienes experiencia en esto..corre bien chevere...sigue asi..danos tips para nosotros los novatos...de parte mia ...te agradesco mucho

pablo dijo...

alguien sabe como abrir automaticamente el doucmento de pdf despues de averlo guardadpo??? porfavor grax!!!

Anónimo dijo...

muchas gracias brother, una pregunta, como puedo hacer para conectar access 2003 con una aplicación en netbeans? se que suena a mentada pero desgraciadamente así me lo pidieron, y la neta ya intenté muchas formas y no me queda. he leido el API de Netbeans sobre el caso y no me queda claro.

Eliu Lacan dijo...

Ha Gracias por subir ejemplos como este, me ayudastes bastante, que suerte tuve al buscarlo por imagenes !!!

Eliu Lacan dijo...

x cierto como puedo guardar imagenes ??

Anónimo dijo...

Bueno Itext no e sla mejor opcion de hecho aun no he encontrado una buena opcion para java, en principio itext maneja los headres y footers de forma compleja, no s epuede incluir una tabla o imagen en el footer y para lograr los bordes redondeados y coasa por el estilo hay que codificar mas, una buena opcion pero que solo fucniona muy bien con SQL es ireport ademas solo permite crear reportes principal-detalle que tambien no es lo que busco, ahora ando probando dynamic jasper que ques tabasado en jasper y uas plantillas de ireport solo espero que esa vez si pueda generar el reporte que estoy deseando, un salu2

Cueto Re Cabron dijo...

saludos...

gracias por el ejemplo muy bueno para empezar con itext....


me servio mucho..

save dijo...

Excelente el tutorial y muy bien explicado. Espero que sigas realizando mas tutoriales, ya que son una gran fuente de información y de inspiración.

Mi mas sincera enhorabuena.

Unknown dijo...

hola solo queria saber si con itext se puede genarar una factura para que se muestre en PDF pero quiero extrarer la informacion de una base de dato no si se me puedad orientar en eso soy nuevo en esto de aplicaciones de escritorio y itext gracias saludos!!!

jc mouse dijo...

gracias a todos :)

Adiosrock_182 ahora estoy corto de tiempo pero si puedo este fin de semana subire un ejemplo completo de lo que dices, en realidad no es dificil, solo es una consulta a la DB y colocar esos datos en itext

saludos

innuendo dijo...

Hola buenas,tengo un problema, me crea el pdf bien pero al abrirlo me dice que esta dañado y no se abre,me puedes ayudar?

Gracias por el ejemplo.

Anónimo dijo...

Hola, muy bueno tu aporte! Me piden que genere un pdf pero con datos que se encuentran en diferentes jFrame Forms osea un unico botón en mi menú principal que recopile todos los datos. Como se haria esto?

mouse dijo...

innuendo: no cvreo que sea problema de java, fijate probando otra version de adobe

anonimo ultimo: lo que dices no tiene nada que ver con generarb el PDF sino en recoger todos los datos de tu aplicacion, y eso depende de como este programado tu aplicacion, aunque talves utilizando un static en las variables que necesites te solucione el problema

Anónimo dijo...

pues el tutorial esta muy bien, pero me gustaria que para imprimir en pdf usara jc creator de java para ver como pones la libreria y pues lo que yo quiero hacer es iprimir una jtable en pdf sus datos

Anónimo dijo...

REALMENTE MUCHAS GRACIAS ME SALVASTE DE UN PROBLEMA ENORME, PERO QUIERO PEDIRTE ALGO: TRABAJO CON NETBEANS, Y DESCARGUÉ EL IREPORTS ADEMAS DE LA PAGINA DE NETBEANS DESCARGUÉ EL PLUGIN DE IRREPORT PARA NETBEANS, PERO VEO LOS PLUGINS Y NO SON LOS QUE TU DICES QUE SE NECESITAN SOLO HAY COMO 4 PLUGINS Y NO SON O NO SE LLAMAN COMO TU MENCIONAS, ADEMAS DE ESO NO TIENE LA EXTENXION .JAR OSEA ESTAN EN OTRO FORMATO Y CUANDO LOS AGREGO A NETBEANS COMO UN PLUGIN EL NETBEANS LOS LEE PERO NO APARECEN POR NINGUN LADO CUANDO LOS INSTALO, OSEA LOS INSTALO PERO AL BUSCAR LOS PLGINS INSTALADOS NO ME APARECEN. SI PUDIERAS Y ME HACES EL FAOR DE SUBIR UN PAQUETE COMPRIMIDO CON LOS JARS O PLUGINS NECESARIOS PARA CORRER Y PROBAR LAS APLCACIONES QUE TU PONES AQUI. GRACIAS PORFA SI PUEDES CONTESTAME A MI CORREO DE SER POSIBLE, TE LO AGRADECERIA MUCHO. BYE GRACIAS.

Anónimo dijo...

gracias tu aporte me ayudo mucho pero tengo una duda, como se puede meter una imagen al pdf y unas margenes

Anónimo dijo...

GRacias mouse por el aporte es excelente una nota me sirvio de pucho pero en el metodo colocarDesino(); no se ve bien el String que lee pasa al objeto filter que dice hay??? alguien me podria decir Archivos ???que?? porfavor

Anónimo dijo...

Gracias por tu ejemplo, fue el único ejemplo completo y decente que hay, los demás no explican o solo dan extractos de código que hasta parecen pseudocódigo.
Muy útil se agradece. Saludos.

Anónimo dijo...

me salvaste de que me corran de servicio social jaja

Anónimo dijo...

Gracias bro tu info es muy buena solo cual es el codigo del boton para que haga la funcion de guardar el documento en pdf ???

Post recomendado