Presentador Virtual e24Presenter
Encuentra usuarios de Twitter en tu ciudad con LocaFollow

votarCrear PDFs en ASP.NET

Autor: S3rGy0 | Archivado en: ASP, Recursos el día 6/Abr/2005

La vía “estandar” para crear documentos pdf en asp.net es mediante Crystal Reports, que yo, particularmente, odio hasta la muerte, ya que no he visto nada que falle tanto desde Windows ME. En este post quiero presentar una alternativa gratuita para crear pdfs sin necesidad de pegarse “cornás” con Crystal Reports.

Se trata de Report.NET, un proyecto donde se ha desarrollado una magnífica librería que contiene clases con las que podemos crear fácilmente un pdf desde el código servidor. Trae una ayuda con muchos ejemplos que hace que usarlo sea bastante sencillo. Otra característica resaltable es que permite la inserción de imágenes, opción que puede llegar a ser verdaderamente útil (doy fe de ello).

Aún no lo he investigado a fondo y hasta ahora sólo lo uso para pdfs relativamente sencillos donde no tengo que crear tablas ni realizar consultas muy complicadas, pero me está resultando especialmente útil para crear formularios simples (con simples me refiero a que sólo se obtienen datos de una única tabla y con clave única), ya que para los más complicados sigo usando Crystal Reports, aunque todo esto, por supuesto, depende del gusto de cada uno.

Por cierto, tiene licencia LGPL (creo que es la primera librería para .NET que he visto que no cueste dinero) y está escrita en C#.

S3rGy0.


  • Digg
  • del.icio.us
  • Facebook
  • Google
  • LinkedIn
  • Meneame
  • MySpace
  • Technorati
  • TwitThis
Posts Relacionados

53 Comentarios on “Crear PDFs en ASP.NET”

  1. #1 eMe dijo 7:55 pm el Abril 6th, 2005:

    Genial Sergyo!! Definitivamente, Crystal Reports es odioso, seguro que Simon opina como yo, verdad compi?


  2. #2 Simon dijo 10:59 pm el Abril 6th, 2005:

    Si. CR con la falta de ayuda de depuración que tiene no es la aplicacion mas facil de usar.


  3. #3 S3rGy0 dijo 12:14 am el Abril 7th, 2005:

    Ya no es sólo que dé problemas a la hora de programar, sólo os diré que en mi curro nos tumbó un servidor web porque no le permitía al ISS liberar memoria. Nos tiramos casi 4 meses para averiguar que CR era lo que estaba jodiendo el servidor!! Imaginaos un servidor web que se cae cada 40 minutos, y eso que tiene 2Gb de memoria… :P


  4. #4 Jose Luis dijo 11:51 pm el Mayo 20th, 2005:

    Hola Sergio he utilizado la dll y me ha funcionado de maravilla, pero empece a trabajar con imagenes y nada, no me reconoce la imagen el stream siempre queda nulo..
    No se si podrias explicarme un poco mas como se hace esto..
    Gracias


  5. #5 S3rGy0 dijo 9:45 am el Mayo 25th, 2005:

    Perdona que haya tardado en contestar, pero estoy hasta arriba de trabajo.

    Si puedes mandarme el código a mi correo intentaré ayudarte, pero cuando usé la DLL para insertar imágenes me guie por el fichero de ayuda que viene con la misma.

    Saludos.


  6. #6 Pedro dijo 3:03 am el Junio 15th, 2005:

    Hola sergio, tengo el mismo problema que se le presenta a Jose Luis, he probado todos los ejemplos, pero cuando intento cargar una imagen el error se presenta es una referencia null al objeto stream donde se deberia cargar la imagen, System.IO.Stream stream = GetType().Assembly.GetManifestResourceStream(”Equipo.jpg”); así estoy cargando la imagen, pero creo que el error es que estoy asumiendo que “Equipo.jsp” es la ruta relativa al archivo imagen que estoy intentando abrir, pero el metodo “GetManifestResourceStream” carga un recurso y la verdad no se como montar ese recurso con el archivo de imagen que quiero mostrar, porfa me puedes ayudar es urgente!, te agradesco lo que puedas hacer


  7. #7 S3rGy0 dijo 10:05 am el Junio 15th, 2005:

    Lo que pasa es que el ejemplo que ves en la su web es un poco confuso ya que lo que hacen es cargar la imagen de una dll. En esta dll se encuentran encriptadas las imagenes y la cargan en un Stream. Si buscas GetManifestResourceStream en el MSDN obtendrás esto:

    “Loads the specified manifest resource from this assembly.”

    Es decir, carga un recurso determinado de un Assembly.

    Lo que tú quieres hacer, por lo que me dices, es cargar desde un fichero, así que lo único que tienes que hacer es:

    Dim strm As IO.Stream = IO.File.Open(”RUTA IMAGEN”, IO.FileMode.Open)

    Simplemente cargas la imagen en un stream y una vez que lo tengas sólo tienes que insertarlo en el PDF.

    Espero haberte ayudado.

    Saludos.


  8. #8 Pedro dijo 3:36 pm el Junio 15th, 2005:

    Hola sergio, probe tu ejemplo y perfecto ya funciona, pero tambien encontre la manera de crear un recurso incrustado, es lo que tu dices hacer que elementos como una imagen se monten en una dll, en este caso lo monte en la dll que se genera con el proyecto donde estoy probando el pdf; la forma de hacerlo es primero dentro del proyecto crear o vincular la imagen, despues le das click derecho propiedades, y buscas la propiedad accion de generacion, cambias esa propiedad a Recurso Incrustado y listo, para llamar ese recurso incrustado lo haces con el nombre del proyecto y la dll que son el mismo y el nombre de la imagen separados por un “.”, en fin la linea que carga la imagen quedaría así :
    System.IO.Stream stream = GetType().Assembly.GetManifestResourceStream(”reporteweb.Equipo.jpg”); lo interesante de los recursos incrustados es que los procesos se hacen mas livianos y mejoran el rendimiento.. Bueno sergio muchas gracias por tu colaboración, y espero que con esto aporte algo a tu conocimiento.


  9. #9 Pedro Chacón dijo 3:46 pm el Junio 15th, 2005:

    Hola sergio probe tu recomendación y funciona bien, tambien encontré la forma de crear un recurso incrustado con una imagen, te voy a pasar el dato por si te interesa, para crear un recurso incrustado debes tener la imagen dentro de tu proyecto, luego desde la ventana Explorador de soluciones le das click derecho propiedades, buscas la propiedad Acción de Generación; y cambiala a Recurso incrustado; con esto haces que la imagen se cargue al dll que se genera con el proyecto y tienes tu recurso incrustado. Para utilizarlo lo llamas con el nombre de la dll y el nombre del recurso asi : nombre_recurso.nombre_imagen.jpg (”reporteweb.Equipo.jpg”); y para que lo puedas cargar en el archivo lo haces como en el ejemplo System.IO.Stream stream = GetType().Assembly.GetManifestResourceStream(”reporteweb.Equipo.jpg”); esto de los recursos incrustados hace los procesos mas rapidos y consume menos recursos; bueno gracias por la colaboración y espero poder aportar algo con esto…


  10. #10 S3rGy0 dijo 9:24 am el Junio 16th, 2005:

    Pues si que parece interesante, sobre todo por el aumento de eficiencia. La próxima vez que tenga que incrustar imagenes en un PDF lo voy a probar.

    Te agradezco tu aportación.

    Saludos.


  11. #11 jare dijo 6:05 pm el Julio 27th, 2005:

    Encuentro muy bueno tu aporte con esta libreria, pero cuando la quiero eliminar me acusa error que no se puede eliminar porque otro proceso la esta utilizando, como se puede solucionar esto


  12. #12 jare dijo 6:06 pm el Julio 27th, 2005:

    lo siento, pero cuando digo la quiero eliminar, me refiero al archivo pdf que se genera.


  13. #13 jare dijo 6:12 pm el Julio 27th, 2005:

    amigos, este es el ejemplo que realice y ahora puedo borrar los archivos temporales que me genera:

    Dim report As New Report(New PdfFormatter())
    Dim fd As New FontDef(report, “Helvetica”)
    Dim fp As New FontPropMM(fd, 8, System.Drawing.Color.Blue)
    Dim page As New Page(report)
    page.AddCB_MM(80, New RepString(fp, “4 PRUEBA DE PDFS”))
    Response.ClearContent()
    Response.ClearHeaders()
    Response.ContentType = “application/pdf”
    ‘If System.IO.File.Exists(”C:\TEMP\Actas” & Session.SessionID & “.pdf”) Then System.IO.File.Delete(”C:\TEMP\Actas” & Session.SessionID & “.pdf”)
    ‘RT.ViewPDF(report, “C:\TEMP\Actas” & Session(”usr”) & “.pdf”)
    ‘RT.ResponsePDF(report, Me)
    ‘grabando el archivo y luego leyendo con response me libera el archivo una vez cerrada la pagina
    report.Save(”C:\TEMP\Actas2″ & Session(”usr”) & “.pdf”)

    Response.WriteFile(”C:\TEMP\Actas2″ & Session(”usr”) & “.pdf”)
    Response.Flush()
    Response.Close()
    report = Nothing
    chaoooo


  14. #14 Edu® dijo 8:18 am el Julio 28th, 2005:

    Estimado Jare, nuestro experto en ASP.NET (S3rGyO) está ahora mismo de vacaciones. En cuanto vuelva, estoy seguro de que responderá gustosamente a tu pregunta.

    Un saludo.


  15. #15 Victor dijo 3:15 am el Septiembre 1st, 2005:

    hey en donde puedo encontrar documentacion sobre el uso de esta libreria, si alguien me puede ayudar se los agradeceria mucho.


  16. #16 S3rGy0 dijo 8:26 am el Septiembre 2nd, 2005:

    Pues en la misma web oficial puedes encontrarlo. En la sección files, además de estar la DLL, se encuentra un fichero .chm que es de ayuda.

    Saludos.


  17. #17 Victor dijo 9:06 pm el Septiembre 4th, 2005:

    ya he bajado supuestamente la ayuda y he estado modificando los ejemplos pero aun no he podido correr el que han puesto para conexion a base de datos si alguien tiene ejemplos sobre este tema les agradeceria mucho. Mi mail es vic_kry19@hotmail.com


  18. #18 Victor dijo 1:11 am el Septiembre 6th, 2005:

    alguien sabe como puedo obtener los datos de un form de una pagina para generar el reporte de acuerdo a los datos que se requieran? he intentado con ajustar los ejemplos para este fin pero al momento de cachar los valores me marca un error en la instruccion request la cual incluyo dentro de la clase que genera el pdf

    public class HelloWorld : Report {

    protected override void Create() {

    NameValueCollection myCollection = Request.QueryString;
    string selectedItem = myCollection.Get(”ID”);
    FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
    FontProp fp = new FontPropMM(fd, 20);
    new Root.Reports.Page(this);
    page_Cur.AddCB_MM(80, new RepString(fp, selectedItem));
    fp.rSizeMM = 7;
    page_Cur.AddCB_MM(120, new RepString(fp, DateTime.Now.ToString(”g”)));
    }
    }

    void Page_Load() {
    RT.ResponsePDF(new HelloWorld(), this);
    }


  19. #19 Antonino dijo 2:20 pm el Octubre 3rd, 2005:

    Hola, los codigos que todos usan me da este error: Que puede ser???

    Se denegó el acceso a la clave de Registro HKEY_CLASSES_ROOT\AcroExch.Document\shell\Open\command.


  20. #20 Antonino dijo 2:22 pm el Octubre 3rd, 2005:

    O sino me da error cuando esta ejecutando el archivo ieHelp.dll


  21. #21 Glad dijo 2:27 pm el Octubre 25th, 2005:

    Donde consigo la librería de Report.net


  22. #22 S3rGy0 dijo 11:41 am el Octubre 26th, 2005:

    Lo tienes en el post: http://report.sourceforge.net/

    Salu2.


  23. #23 Javi dijo 6:39 pm el Noviembre 14th, 2005:

    Tengo un problema con la ayuda. Me la descargo, la ejecuto, pero en todas las páginas me aparece el error de “No se puede mostrar la página”.
    ¿Sabeis porque puede ser?

    Saludos y muchas gracias
    Javi


  24. #24 josep dijo 11:14 pm el Noviembre 18th, 2005:

    Alguien sabe como crear documentos PDF en ASP (no ASP.NET),
    o donde se puede encontrar información?
    He visto algunos productos, casi todos de pago que tambien son instalables.
    Desearía hacer algun sistema que no necesitara de instalación de ningun software.
    Muchas gracias a todos.


  25. #25 josep dijo 11:16 pm el Noviembre 18th, 2005:

    me gustaria poder generar PDF a partir de una pagina ASP en mi web. Alguien sabe como hacerlo en ASP (NO ASP.NET). Muchas gracias.


  26. #26 El Predicador dijo 6:32 pm el Noviembre 23rd, 2005:

    Hola a todos, acabo de encontrar este site. Y por lo que contais creo que esa libreria me vendria como anillo al dedo.

    Pero no me la puedo descargar, se ve que en SourceForge estan de obras. Solo puedo descargar los ficheros de ayuda, el .DLL no aparece. Alguno podria enviarme, colgar o decirme otro sitio de donde bajarla. Gracias


  27. #27 El Predicador dijo 10:55 am el Noviembre 28th, 2005:

    Hola chicos, ya tengo el codigo descargado, al final lo encontre.

    Ahora tengo una nueva duda, ¿alguien ha conseguido hacer que funcione lo de crear tablas en un PDF? Mi aplicacion es ASP.NET y quiero crear un report con una tabla, que contenga el resultado de una busqueda en una Base de Datos(BD). Pero me surgen dos problemas.

    Primero si solo quiero mostrar la tabla con datos estaticos, no lo consigo. Eso de llamar al evento para que pinte le tabla no va bien. ¿No hay ninguna forma de pintar la tabla sin llamar a ese evento?

    Y lo segundo, cuando voy a crear la tabla y estoy creando las filas (tlm.NewRow()) da error en la reserva. Directamente falla.

    Bueno esas son mis dudas saludos.


  28. #28 karina dijo 9:51 pm el Noviembre 30th, 2005:

    Hola alguien me puede ayudar es que necesito abrir una imagen en mi reporte de crystal report pero no se como si alquien me puede ayudar se los agradeceria.lo que tengo es una imagen en el disco duro y trato de abrirla con Dim strm As IO.Stream = IO.File.Open(”FONDO.jpg”, IO.FileMode.Open)

    pero manda que no encuentra el archivo y ya no se que hacer.gracias


  29. #29 Alex dijo 12:06 pm el Diciembre 7th, 2005:

    Alguien sabe como pasar un archivo word a pdf con ASP.NET
    Grácias


  30. #30 Jore Maravilla dijo 6:37 pm el Diciembre 7th, 2005:

    como puedo crear un pdf a partir de un Recorset en asp.net ?????


  31. #31 G Nava dijo 7:55 pm el Diciembre 28th, 2005:

    Alguien me puede decir de donde puedo bajar la librearia y los ejemplos para generar el PDF desde .NET


  32. #32 Jaco dijo 9:30 pm el Enero 20th, 2006:

    quiero ocupar esta dll para accesar a datos en oracle alguien tiene algun ejemplo?


  33. #33 Marcelo Catalán dijo 5:07 pm el Enero 26th, 2006:

    Hola, yo logré generar un PDF en C# de ASP.NET llenando tablas, con el report.net, mejor les paso el ejemplo completo, lo guardan y a correrlo

    using Root.Reports;
    using System;
    using System.IO;
    using System.Data.OleDb;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Text;
    using System.Diagnostics;

    namespace CrearPDFFREE
    {
    ///


    /// Summary description for icm5.
    ///

    public class icm5 : System.Web.UI.Page
    {
    private void Page_Load(object sender, System.EventArgs e)
    {
    // Put user code to initialize the page here
    string usuario = Request.QueryString["usuario"];
    string partida = Request.QueryString["partida"];
    string tipo = Request.QueryString["tipo"];
    int gen_sigfe = int.Parse(Request.QueryString["gen_sigfe"]);

    DateTime fi = DateTime.Parse(Request.QueryString["fi"]);
    DateTime ft = DateTime.Parse(Request.QueryString["ft"]);
    RT.ResponsePDF(new SimpleFrame(), Response);
    RT.ResponsePDF(new SimpleFrame(), Response);

    }
    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: This call is required by the ASP.NET Web Form Designer.
    //
    InitializeComponent();
    base.OnInit(e);
    }

    ///


    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    ///

    private void InitializeComponent()
    {
    this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion
    }

    public class SimpleFrame : Report
    {
    private FontDef fd;
    private Double rPosLeft = 20;
    private Double rPosRight = 195;
    private Double rPosTop = 24;
    private Double rPosBottom = 278;

    protected override void Create()
    {
    fd = new FontDef(this, “Arial”);
    FontProp fp = new FontPropMM(fd, 1.9);
    FontProp fp_Header = new FontPropMM(fd, 1.9);
    fp_Header.bBold = true;

    Stream stream = GetType().Assembly.GetManifestResourceStream(”ReportSamples.Phone.jpg”);
    Random random = new Random(6);

    TableLayoutManager tlm = new TableLayoutManager(fp_Header);

    tlm.rContainerHeightMM = rPosBottom - rPosTop; // set height of table
    tlm.headerCellDef.rAlignV = RepObj.rAlignCenter; // set vertical alignment of all header cells
    tlm.cellDef.pp_LineBottom = new PenProp(this, 0.05, Color.LightGray);
    tlm.eNewContainer += new TableLayoutManager.NewContainerEventHandler(Tlm_NewContainer);

    TableLayoutManager.Column col;
    col = new TableLayoutManager.ColumnMM(tlm, “ID”, 13);
    col = new TableLayoutManager.ColumnMM(tlm, “Producto”, 100);
    col.cellDef.textMode = TableLayoutManager.TextMode.MultiLine;
    col = new TableLayoutManager.ColumnMM(tlm, “Cantidad Por Unidad”, 36);
    col = new TableLayoutManager.ColumnMM(tlm, “Unidades en Stock”, 16);
    col = new TableLayoutManager.ColumnMM(tlm, “Unidades a Ordenar”, 18);

    String sConnectionString = @”Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=(local)”;
    OleDbConnection oleDbConnection = new OleDbConnection(sConnectionString);

    oleDbConnection.Open();
    OleDbCommand odc = new OleDbCommand(”SELECT ProductID, ProductName, QuantityPerUnit, UnitsInStock, UnitsOnOrder FROM Products ORDER BY ProductID”, oleDbConnection);

    OleDbDataReader oddr = odc.ExecuteReader();

    while (oddr.Read())
    {
    tlm.NewRow();
    tlm.Add(0, new RepInt32(fp, oddr.GetInt32(0)));
    tlm.Add(1, new RepString(fp, oddr.GetString(1)));
    tlm.Add(2, new RepString(fp, oddr.GetString(2)));
    tlm.Add(3, new RepInt32(fp, oddr.GetInt16(3)));
    tlm.Add(4, new RepInt32(fp, oddr.GetInt16(4)));
    }

    foreach (Root.Reports.Page page in enum_Page)
    {
    Double rY = rPosBottom + 1.5;
    page.AddLT_MM(rPosLeft, rY, new RepString(fp, DateTime.Now.ToShortDateString() + ” ” + DateTime.Now.ToShortTimeString()));
    page.AddRT_MM(rPosRight, rY, new RepString(fp, page.iPageNo.ToString() + ” / ” + iPageCount.ToString()));
    }
    }

    private void Tlm_NewContainer(Object oSender, TableLayoutManager.NewContainerEventArgs ea)
    {
    new Root.Reports.Page(this);

    // first page with heading
    if (page_Cur.iPageNo == 1)
    {
    FontProp fp_Title = new FontPropMM(fd, 7);
    fp_Title.bBold = true;
    page_Cur.AddCT_MM(rPosLeft + (rPosRight - rPosLeft) / 2, rPosTop, new RepString(fp_Title, “Lista de Productos”));
    ea.container.rHeightMM -= fp_Title.rLineFeedMM; // reduce height of table container for the first page
    }

    // the new container must be added to the current page
    page_Cur.AddMM(rPosLeft, rPosBottom - ea.container.rHeightMM, ea.container);
    }

    }
    }


  34. #34 Adrian dijo 4:51 pm el Febrero 24th, 2006:

    No encuentro las dll en Report.net, si alguien me podria decir


  35. #35 Adrian dijo 5:02 pm el Febrero 24th, 2006:

    Hola me podrias decir donde consigo las dll, puesto que en el Report.Net no las encuantro. mil gracias


  36. #36 ? dijo 2:16 pm el Marzo 3rd, 2006:

    Como puedo abrir una documento pdf con VBNet y las reports.dll, inscrir algo y déspues imprimir este documento.


  37. #37 persoblock dijo 9:51 am el Marzo 9th, 2006:

    Es un poco offtopic pero otra librería que NO cuesta dinero, escrita en C# y es castellano es SwfDotnet (www.swfdotnet.com) que permite crear películas SWF dinámicamente desde windowsforms o desde asp.net.

    Muy buena, la recomiendo. En la web vienen varios ejemplos de código fuente.

    Un saludo


  38. #38 Piotre dijo 7:47 pm el Marzo 29th, 2006:

    Como puedo hacer funcionar la libreria?? Me he bajado la libreria version debug, eso es correcto? Una vez la tengo, que hago con ella para q el visual me la reconozca al compilar? Gracias.


  39. #39 Mire dijo 9:37 pm el Marzo 29th, 2006:

    Estoy probando la libreria con el ejemplo del Hola Mundo y me dice que la referencia a Page es ambigua. He puesto el using System.Web.UI; q es el espacio de nombres donde esta la clase Page. Ayuda please!


  40. #40 Luciana dijo 8:22 pm el Abril 6th, 2006:

    Estuve probando la librería con un reporte que tiene tablas y usando TableLayoutManager, la última página queda vacía.
    Alguna idea? Gracias.


  41. #41 Martín dijo 9:55 pm el Abril 11th, 2006:

    Buenas, muy buenos los comentarios y los ejemplos. Estuve mirando un poco esta dll pero no logró saber si tengo la posibilidad de convertir un archivo de excel a un pdf, si alguien encontró la forma por favor que la mande. Gracias


  42. #42 Luis dijo 1:03 pm el Mayo 10th, 2006:

    Me podrias ayudar estoy exportando crystal a pdf y me da el error:
    Query Engine Error: ‘c:\kk\rptEmpleados.rpt’
    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

    Detalles de la excepción: CrystalDecisions.CrystalReports.Engine.DataSourceException: Query Engine Error: ‘c:\kk\rptEmpleados.rpt’

    Error de código fuente:

    Línea 156: ‘crReportDocument.Export()
    Línea 157:
    Línea 158: crReportDocument.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Fname)
    Línea 159:
    Línea 160:

    Te lo agradeceria mucho

    gracias


  43. #43 edilberto dijo 4:52 pm el Junio 17th, 2006:

    Comment por Luciana — 6/4/2006 @ 8:22 pm
    Luciana el problema esta en o siguiente,como el tablelayoutmaneger es unico por lo del contenedor hay que ubicarle un espacio using y listo:)
    —————-fragmento del codigo—————-
    Stream stream = GetType().Assembly.GetManifestResourceStream(”ReportSamples.Phone.jpg”);
    Random random = new Random(6);
    //—-debe quedar asi
    using(TableLayoutManager tlm = new TableLayoutManager(fp_Header))
    {//using
    .
    .
    .
    while (oddr.Read())
    {
    tlm.NewRow();
    tlm.Add(0, new RepInt32(fp, oddr.GetInt32(0)));
    tlm.Add(1, new RepString(fp, oddr.GetString(1)));
    tlm.Add(2, new RepString(fp, oddr.GetString(2)));
    tlm.Add(3, new RepInt32(fp, oddr.GetInt16(3)));
    tlm.Add(4, new RepInt32(fp, oddr.GetInt16(4)));
    }
    }//using


  44. #44 EPROM dijo 10:21 pm el Agosto 3rd, 2006:

    Tengo que llenar 2 tablas dinamicamente, pero no se como darle la posicion a la segunda tabla, ya que por los datos de la primera quedan sobrepuestas aveces!

    Help!


  45. #45 Lupita dijo 12:52 am el Septiembre 13th, 2006:

    Hola!
    He estado checando los comentarios que me dejan y ojala puedan ayudarme con el problema que tengo:

    Necesito crear una tabla utilizando la libreria Report .Net con el codigo publicado se crea una tabla pero yo necesito que dentro de las columnas se inserte una imagen y que la tabla no tenga bordes o sean de color blanco.

    Ojala alguien pueda ayudarme con esto. Gracias…


  46. #46 Javier Lopez dijo 2:01 pm el Marzo 13th, 2007:

    Que tal amigos, estuve probando el Report.net en asp y anda a las mil maravillas, pero quisiera saber si se puede usar en java(eclipse).

    Saludos y gracias por todo


  47. #47 Javier Lopez dijo 10:12 pm el Abril 7th, 2007:

    Hola amigos, yo otravez , alguien sabe como hacer para que la pagina del pdf se carge apaisada??? osea acostada???

    Saludos y gracias


  48. #48 angelestradamx dijo 7:43 pm el Agosto 19th, 2007:

    Tengo un problema, hay un ejemplo en la red que indica como incrustar una imagen a una .dll (http://support.microsoft.com/kb/910445/es), sigo los pasos como indica el ejemplo y genero la .DLL, pero a la hora de copiar la dll al proyecto me marca un error cuando lo corro:

    Este es el código que uso:

    protected void Page_Load(object sender, EventArgs e)
    {

    RT.ResponsePDF(new CreatePDF(), this);

    }

    public class CreatePDF : Report
    {
    protected override void Create()
    {
    FontDef fd = new FontDef(this, FontDef.StandardFont.Helvetica);
    FontProp fp = new FontPropMM(fd, 3);

    new Root.Reports.Page(this);

    System.IO.Stream stream = GetType().Assembly.GetManifestResourceStream (”WebControlLibrary1.logo.jpg”);

    page_Cur.AddMM(20, 90, new RepImageMM(stream, 40, Double.NaN)); //


  49. #49 aonarres dijo 12:07 pm el Julio 8th, 2008:

    Hola,
    quiere generar un documento pdf desde una página aspx. El fichero cs tengo:

    protected void Page_Load(object sender, EventArgs e)
    {
    RT.ResponsePDF(new CreatePDF(), this);
    }

    public class CreatePDF : Report
    {
    protected override void Create()
    {

    Report report = new Report(new PdfFormatter());
    FontDef fd = new FontDef(report, FontDef.StandardFont.Helvetica);
    FontProp fp = new FontPropMM(fd, 25);
    Page page = new Page(report);
    page.AddCB_MM(80, new RepString(fp, “Hello World!”));
    }
    }

    Al ejecutar, me sale:

    %PDF-1.4 1 0 obj > endobj 2 0 obj > endobj 3 0 obj > endobj 4 0 obj > endobj xref 0 5 0000000000 65535 f 0000000009 00000 n 0000000097 00000 n 0000000203 00000 n 0000000224 00000 n trailer > startxref 277 %%EOF

    ¿Qué es lo que me falta?

    Gracias por vuestra ayuda.
    Ana.


  50. #50 davit dijo 7:57 pm el Febrero 18th, 2009:

    existirá algún tutorial step step para saber usarlo, ya que las clases y las funciones no dicen mucho con el nombre que tienen….y trate de correr los ejemplos que trae el zip..ninguno jala…ya referencie la dll, a mi proyecto, no me falta ningun namespace…
    que estará ocurriendo?


  51. #51 Luis dijo 5:38 pm el Marzo 3rd, 2009:

    no se pueden incrustar nuevas fonts :/

    alguien a podido con eso?


  52. #52 Uziel dijo 5:46 pm el Julio 21st, 2009:

    Esto tambien lo puedo ocupar para winform…¿?

    saludos..


  53. #53 jemato dijo 11:09 pm el Agosto 11th, 2009:

    Saludos.

    Me encontre la herramienta de Report.dll y localmente en mi maquina funciona muy bien. Tengo Windows XP Profesional SP 2 Framework 3.5.

    Mi problema es que a la hora de publicar el proyecto en una maquina con Windows 2003 Server SP 2 en Ingles Framework 3.5, me sale el siguiente error:

    System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture. Make sure “Root.Reports.RT.resources” was correctly embedded or linked into assembly “Reports” at compile time, or that all the satellite assemblies required are loadable and fully signed. at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) at System.Resources.ResourceManager.GetString(String name, CultureInfo culture) at System.Resources.ResourceManager.GetString(String name) at Root.Reports.RT.StartAcro(String sFileName, String sArguments, ProcessWindowStyle processWindowStyle) at Root.Reports.RT.ViewPDF(Report report, String sFileName) at com.sis.telecabletepa.caja.Ticket.PrintTicket() at Caja_Recibo.Page_Load(Object sender, EventArgs e)

    Soy nueva en esto y la verdad ya he buscado en muchos foros y ninguno me ha ayudado a resolver mi problema.



Deja un comentario.