Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas ITextSharp y Asp.Net

Estas en el tema de Problemas ITextSharp y Asp.Net en el foro de .NET en Foros del Web. Hola a todos. Hoy vengo con un problema con el ITextSharp que me ayuda a pasar una página html a pdf, el caso es que ...
  #1 (permalink)  
Antiguo 23/10/2013, 12:12
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años, 7 meses
Puntos: 3
Problemas ITextSharp y Asp.Net

Hola a todos.

Hoy vengo con un problema con el ITextSharp que me ayuda a pasar una página html a pdf, el caso es que funciona bien si quiero descargar un pdf, al querer descargar más de uno no lo hace, solo descarga uno siempre, me imagino que es problema de los navegadores o al menos algo de eso he leído. He intentado varias cosas pero ninguna me permite crear varios pdf desde código, aquí les dejo el código para generar los pdf, funciona con una variable de sesión que guarda el id actual y en la consulta busca por el siguiente y así hasta recorrerlos todos, mandando un mensaje de que terminó sin problemas:

Código ASP.NET:
Ver original
  1. DataTable DT;
  2.                     string directorio = oMBDD.Consulta1Dato("consulta");
  3.  
  4.  
  5.                     if (!Directory.Exists(Server.MapPath("~/" + directorio)))
  6.                     {
  7.                         Directory.CreateDirectory(Server.MapPath("~/" + directorio));
  8.                     }                    
  9.  
  10.                     if (Session["paciente_id"] == null)
  11.                         DT = oMBDD.ConsultaDT("consulta limit 1");
  12.                     else
  13.                         DT = oMBDD.ConsultaDT("consulta limit 1");
  14.                     if (DT.Rows.Count > 0)
  15.                     {
  16.                         try
  17.                         {                                                                                  
  18.                             Session["paciente_id"] = DT.Rows[0]["id"].ToString();                              
  19.                             capa.InnerHtml += "<h2>" + DT.Rows[0]["nombre"].ToString() + "</h2>";
  20.                            
  21.                             StringWriter sw = new StringWriter();
  22.                             HtmlTextWriter hw = new HtmlTextWriter(sw);
  23.                             this.Page.RenderControl(hw);
  24.                             StringReader sr = new StringReader(sw.ToString());
  25.                             Document pdfDoc = new Document(PageSize.LETTER, 5f, 5f, 5f, 5f);
  26.                             HTMLWorker htmlparser = new HTMLWorker(pdfDoc);                                
  27.                             PdfWriter.GetInstance(pdfDoc, new FileStream(Server.MapPath("" + directorio + "/" + DT.Rows[0]["nombre"].ToString() + ".pdf"), FileMode.Create));                                
  28.                             pdfDoc.Open();
  29.                             htmlparser.Parse(sr);
  30.                             pdfDoc.Close();  
  31.                             Response.Write(pdfDoc);
  32.                             Response.End();
  33.                             Response.Redirect("Expediente.aspx");
  34.                             string x = "window.location='http://dozsoluciones.com.mx/reportesdozmed/Expediente.aspx';";
  35.                             string script = @"<script type='text/javascript'>" + x +
  36.                             "</script>";
  37.  
  38.                             ScriptManager.RegisterStartupScript(this, typeof(Page), "Alerta2", script, false);
  39.                            
  40.                         }
  41.                         catch (Exception ex)
  42.                         {
  43.                             Response.Write(ex.Message);
  44.                         }
  45.                     }
  46.                     else
  47.                         Response.Write("Respaldo finalizado exitosamente");

Y este es el error que me indica:

A page can have only one server-side Form tag.

De hecho la generación del pdf funciona bien y lo guarda en el servidor, pero el que salga ese error no permite que la página se este "refrescando" y por ende creando automáticamente los pdf, además de que no es muy bonito que le esté saliendo una ventana de error tan fea como esa xD.

Gracias de antemano y ojalá alguien sepa como arreglar esto o como debería ser el código para que no marque este error (ni ningún otro xD).

Etiquetas: control, itextsharp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:45.