sábado, 21 de julio de 2012

Reportes PDF con ItextSharp en C# 2010

Hola, aquí les mostrare otro ejemplo más de mis investigaciones y que ayudara en sus proyectos.
Itextsharp es una dll que nos ayudara en la creación documentos pdf, html, rtf, doc, txt, xml.


En ElGuille. también encontraran información relevante para esta dll.
Realizaremos un reporte pdf con ayuda de Itextsharp, para nuestra aplicación en C# 2010.
Bueno pueden descargar Itextsharp desde http://sourceforge.net/projects/itextsharp/ para poder usarlo deberás importarlo a tu proyecto.
Para mostrarles la utilidad me basare en un pequeño proyecto realizado.

Primero, agregamos el dll descargado como referencia en nuestro proyecto.

Buscamos el archivo itextsharp.dll, lo agregamos y le damos Aceptar, ahora se muestra incluido en nuestro proyecto.
Debemos agregar un botón a nuestro formulario en el cual estará el código para generar nuestro reporte
Bueno no esta demás decirles que si quieren personalizar el nombre con el que se guardara su reporte pdf  deberán agregar al formulario un saveFileDialog1.

Y he aquí el código que usaremos para el botón.

private void button1_Click(object sender, EventArgs e )
{
saveFileDialog1.Filter="PDF Files (*.pdf)|*.pdf|All Files (*.*)|*.*"; 
if (saveFileDialog1.ShowDialog() == DialogResult.OK)    
{
//Configuramos para que el tamaño de la hoja sea A4            

Document document = new Document(iTextSharp.text.PageSize.A4);        
// Este metodo nos servira para la orientacion del documento
document.PageSize.Rotate();                
//Aqui se define el autor del documento.      
document.AddAuthor("INFO PC FREELANCE");      
// El creador del mismo        
document.AddCreator("INFO PC FREELANCE");        
//Insertamos la fecha de creacion del documento
document.AddCreationDate();        
//El título    
document.AddTitle("Reporte INFO PC FREELANCE");       
//El asunto        
document.AddSubject("Informacion Sistema");
//Palabras claves        
document.AddKeywords("pdf, PdfWriter; Documento; iTextSharp");
//Se crea una instancia del objeto escritor del documento        
PdfWriter writer = PdfWriter.GetInstance(document, new System.IO.FileStream(saveFileDialog1.FileName, System.IO.FileMode.Create));
//Esto, hará que veamos al inicio, todas la páginas del documento
//en la parte izquierda
writer.ViewerPreferences = PdfWriter.PageModeUseThumbs;
//Con esto el documento se presentara en una sola columna
writer.ViewerPreferences = PdfWriter.PageLayoutOneColumn;
//abrimos el documento para agregarle contenido      

document.Open();        
//Creamos la fuente        
iTextSharp.text.Font myfont = new iTextSharp.text.Font(FontFactory.GetFont(FontFactory.COURIER, 10,iTextSharp.text.Font.ITALIC));        
//Creamos un objeto párrafo
Paragraph myParagraph = new Paragraph("",myfont);
for (int i = 0; i<listBox1.Items.Count;i++)
{
listBox1.SelectedIndex= i;
myParagraph.Add(new Paragraph(listBox1.Text,myfont));        
}               
//Agregamos todo el parrafo al documento       
document.Add(myParagraph);        
//Debemos cerrar el document pues no se creara el pdf.
document.Close();        
//Esto es para ver el documento inmediatamente después de su creación        System.Diagnostics.Process.Start("AcroRd32.exe", saveFileDialog1.FileName);    
}  
}


En este ejemplo yo use un listbox de donde saldran los datos para el reporte.
Espero esta información les sea de utilidad.

3 comentarios:

  1. como sabes en que directorio quedan alojados o como se le podría dar una dirección de alojamiento

    ResponderEliminar
    Respuestas
    1. pues puedes establecer el directorio con savefiledialog1.initialdirectory...
      o declarando una variable string con la ruta del archivo y usarla al momento guardar el archivo.

      Eliminar
  2. Qué tal disculpa algún ejemplo de cómo pasar datos de xml a un pdf?

    ResponderEliminar

Obtener el residuo de la division de dos numeros en C++

Un pequeño ejemplo de programacion en C++. #include<conio.h> #include<stdio.h> #include<math.h> int num1,num2,residuo...