Segun SantaWikipedia:
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:
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:
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
gracias carnal por compartirlo, siguele asi compa!!
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
alguien sabe como abrir automaticamente el doucmento de pdf despues de averlo guardadpo??? porfavor grax!!!
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.
Ha Gracias por subir ejemplos como este, me ayudastes bastante, que suerte tuve al buscarlo por imagenes !!!
x cierto como puedo guardar imagenes ??
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
saludos...
gracias por el ejemplo muy bueno para empezar con itext....
me servio mucho..
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.
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!!!
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
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.
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?
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
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
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.
gracias tu aporte me ayudo mucho pero tengo una duda, como se puede meter una imagen al pdf y unas margenes
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
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.
me salvaste de que me corran de servicio social jaja
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 ???
Publicar un comentario