CreatePdf Versión 1.2
[Creación de Informes]

Fecha: 29/Jun/2004
Autor: Unai Zorrilla Castro
Escríbeme

 


Debido a la continua demanda de información sobre la creación de documentos PDF y sobre todo a las sugerencias de los lectores del artículo anterior ( CreatePDF ) me he animado ha realizar una nueva versión del ensamblado y ha tratar de resolver algunas dudas que se me plantearon sobre la anterior versión.

Como novedades podemos destacar la creación de Informes ( Report ) en PDF a partir de datos de una BD, así mismo se mejoraron los procesos de manipulación de Tipos de Fuente y Color del texto. Es posible también en esta versión establecer la orientación de los documentos ( Portrait o LandScape ). Al contrario del artículo anterior en este veremos ejemplos de las nuevas funcionalidades por separado para facilitar la comprensión del código y mostraremos así mismo el resultado.

Empezamos con algo sencillito :

using System;
using PDFCreate;
namespace PdfReportTest
{
   /// <summary>
   /// Ejemplos de uso de PDFCreate para www.elguille.info
   /// </summary>
   class MainClass
   {
     /// <summary>
     /// Punto de entrada principal de la aplicación.
     /// </summary>
     [STAThread]
     static void Main(string[] args)
     {
       /*
        * Creamos el objeto pdf
        */
       PDFCreate.NewPDF pdf = new PDFCreate.NewPDF("c:\\unai_landscape.pdf");
       using(pdf)
       {
         pdf.Create(NewPDF.OrientacionPagina.LandScape);
         pdf.AddTexto(" Colabora.NET en la web de www.elguille.info ");
       }
       
     }
   }
}

 


En en anterior tip podemos ver como crear un documento PDF con orientación LandScape ( ver resultado ) . Me comentaron que algunas personas estaban teniendo problemas con los Dispose de la anterior versión. Bueno como podéis observar yo no implemento de manera directa el Dispose, por contra uso using con el fin de asegurarme que aunque la creación del documento lance alguna excepción al salir del using se llama implícitamente al Dispose del objeto.

En los siguientes tip's veremos como crear informes en pdf a partir de un BD. El primer método y más directo se implementa con CreateReport de la siguiente forma ( Se supone en los ejemplos la existencia de la base de datos bdtest.mdb en c:\ ) :

 

using System;
using PDFCreate;
namespace PdfReportTest
{
   /// <summary>
   /// Ejemplos de PdfCreate para www.elguille.info
   /// </summary>
   class MainClass
   {
     /// <summary>
     /// Punto de entrada principal de la aplicación.
     /// </summary>
     [STAThread]
     static void Main(string[] args)
     {
       /*
        * Creación del objeto pdf
        */
       PDFCreate.NewPDF pdf = new PDFCreate.NewPDF("c:\\unai_createreport1.pdf");
       //Especificacion de los anchos de las columnas
       float[] anchos  = new float[3]{7,12,12};
       //Nombre de las columnas
       string[] nombres = new string[3]{"Id","Nombre","Apellidos"};
       //ConnectionString   para la base de datos
       string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=c:\\bdtest.mdb";
       using(pdf)
       {
         try
         {
            pdf.CreateNew();
            pdf.CreateReport("Test de Informe",connstring,"select * from test",PDFCreate.NewPDF.DataProvider.OleDb,nombres,anchos);
         }
         catch(Exception err)
         {
            Console.WriteLine(err.Message.ToString());
            Console.ReadLine();
         }
       }
       
     }
   }
}


La creación del Informe es sencilla, usando los anchos de las columnas podemos ajustar el formato tal y como deseemos y si la consulta obtiene muchas columnas siempre podemos poner la orientación a LandScape con la sobrecarga de CreateNew(OrienteacionPagina.LandScape). El resultado del tip anterior lo veremos en resultado.

Con el fin de mejorar la presentación de los informes CreateReport posee otras sobrecargas, en estas podremos especificar la fuente para el titulo, la fuente para los datos y colores. Vemos un ejemplo para una de estas sobrecargas.

 

using System;
using PDFCreate;
namespace PdfReportTest
{
   /// <summary>
   /// Ejemplos de PdfCreate para www.elguille.info
   /// </summary>
   class MainClass
   {
     /// <summary>
     /// Punto de entrada principal de la aplicación.
     /// </summary>
     [STAThread]
     static void Main(string[] args)
     {
       /*
        * Creación del objeto pdf
        */
       PDFCreate.NewPDF pdf = new PDFCreate.NewPDF("c:\\unai_createreport2.pdf");
       //Especificacion de los anchos de las columnas
       float[] anchos  = new float[3]{15,15,30};
       //Nombre de las columnas
       string[] nombres = new string[3]{"Id","Nombre","Apellidos"};
       //ConnectionString   para la base de datos
       string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=c:\\bdtest.mdb";
       using(pdf)
       {
         try
         {
            pdf.CreateNew(NewPDF.OrientacionPagina.LandScape);
            pdf.CreateReport("Test de Informe",connstring,"select * from test",PDFCreate.NewPDF.DataProvider.OleDb,nombres,anchos,NewPDF.TipoColor.Amarillo,NewPDF.TipoFuente.Times_Negrita,NewPDF.TipoFuente.Helvetica_Cursiva,30,9);
         }
         catch(Exception err)
         {
            Console.WriteLine(err.Message.ToString());
            Console.ReadLine();
         }
       }
       
     }
   }
}


Vemos el resultado y comparamos ( resultado ).

Con esto terminamos, espero que os resulten de utilidad y que si tenéis alguna sugerencia o problemilla no dudéis en comentármelo.


ir al índice

Nuevos Ensamblados CreatePdf1.2 (382 KB)

Índice de la sección dedicada a punto NET (en el Guille)