none
Necesito ayuda! Problema al generar PDF con HTML usando iTextSharp .NET Framework RRS feed

  • Pregunta

  • Muy buenas a todos, tengo un problema al transformar un contenido HTML a PDF y es el siguiente. Para resumir, el programa envia un mail con un cotización (y un pdf adjunto con dicha cotización) y sus respetivos productos, precio, cantidad etc, en el mail en si se ve bien, pero al abrir el pdf, los titulos de los productos se ven desorganizados (esto pasa cuando se tiene mas de una pagina). Les dejo el codigo a continuacion

    StringWriter sw2 = new StringWriter();
                                HtmlTextWriter w2 = new HtmlTextWriter(sw2);

                                divContentEmail.Style.Add("padding-top", "210px;");
                                divContentEmail.Style.Add("padding-bottom", "210px;");
                                divContentEmail.RenderControl(w2);
                              

                                StringReader sr = new StringReader(sw2.GetStringBuilder().ToString());

                                iTextSharp.text.Document pdfDoc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 8f, 8f, 8f, 5f);

                                

                                using (MemoryStream memoryStream = new MemoryStream())
                                {
                                    iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, memoryStream);
                                   
                                    string urlHeader, urlFooter = "";
                                    if (!string.IsNullOrEmpty(oConfigComercial.Header))
                                    {
                                        urlHeader = oConfigComercial.Header;

                                        if (!string.IsNullOrEmpty(oConfigComercial.Footer))
                                        {
                                            urlFooter = oConfigComercial.Footer;
                                        }

                                        writer.PageEvent = new ITextEvents(urlHeader, urlFooter);
                                    }
                                    pdfDoc.Open();
                                   
                                    iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
                                    System.Threading.Thread.Sleep(100 * divContentEmail.ToString().Length);
                                    writer.CloseStream = false;
                                    sw2.Flush();
                                    w2.Close();
                                    sr.Close();
                                    pdfDoc.Close();
                                    writer.Close();
                                    memoryStream.Position = 0;
                                    fArchivo fArchivo = new fArchivo { content = Convert.ToBase64String(memoryStream.ToArray()), nombre = "Cotización.pdf" };
                                    oEmail.archivosAdjuntos.Add(fArchivo);
                                }
                                divContentEmail.Style.Remove("padding-top");
                                divContentEmail.Style.Remove("padding-bottom");

    Desde ya muchas gracias!

    martes, 20 de octubre de 2020 17:27