Как решить эту проблему при экспорте в PDF в ASP.NET-что?
Мне нужно решить эту проблему при экспорте данных из PDF в asp.net-да. Здесь я использую Itextsharp dill. Проблема в том, что PDF поврежден или поврежденное сообщение приходит при открытии PDF после завершения экспорта.Локально это работало нормально. Но проблема происходит в какой-то другой машине, размещенной на хостинге.
Что я уже пробовал:
Пожалуйста, найдите полный код:
MISReport objclass = new MISReport(); try { if (validation() == 0) { DataSet ds = objclass.getPageAccessReport(ViewState["FDOB"].ToString(), ViewState["TDOB"].ToString(), drdRoleName.SelectedValue); DataTable dt = new DataTable(); if (ds.Tables[0].Rows.Count > 0) { dt = ds.Tables[0]; grdExport.DataSource = dt; grdExport.DataBind(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=PageAccesLog_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf"); //Response.Cache.SetCacheability(HttpCacheability.NoCache); StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); grdExport.AllowPaging = false; grdExport.DataBind(); grdExport.RenderControl(hw); // grdExport.HeaderStyle.Width = "1"; // grdExport.HeaderRow.Style.Add("font-size", "10px"); grdExport.Style.Add("text-decoration", "none"); grdExport.Style.Add("font-family", "Arial, Helvetica, sans-serif;"); grdExport.Style.Add("font-size", "8px"); string strHead = strReportHeading + " FROM " + ViewState["FDOB"].ToString() + " TO " + ViewState["TDOB"].ToString(); StringBuilder strbn = new StringBuilder(); //string Imagepath = Common.SITE_URL + "logo_barclays.gif"; strbn.Append("<span style="float: right; text-align: right; font-weight: bold">Date:" + DateTime.Today.ToString("dd-MMM-yyyy") + "</span><div style="text-align: center; font-weight: bold; background-color: White; width: 100%; font-size: 20px; text-decoration: underline"> " + strHead + "</div> <br>"); strbn.Append(sw.ToString()); StringReader sr = new StringReader(strbn.ToString()); Document pdfDoc = new Document(PageSize.A2, 7f, 7f, 7f, 0f); HTMLWorker htmlparser = new HTMLWorker(pdfDoc); PdfWriter.GetInstance(pdfDoc, Response.OutputStream); pdfDoc.Open(); htmlparser.Parse(sr); pdfDoc.Close(); Response.Write(pdfDoc); Response.End(); } else { Common.showMessage("No Records Found", this); return; } } } catch (Exception ex) { }
Gerry Schmitz
Ваши 2 "функции" (создание pdf-файла; отправка pdf-файла), которые были превращены в одну кучу грязи, должны быть разделены; таким образом, они могут быть протестированы должным образом.
Ваша проблема, вероятно, заключается в том, что ваш pdf-файл не создается должным образом в первую очередь ... но кто может судить по этой грязи?
ranio
Я обновил часть кода для вашего лучшего понимания. Локально с тем же обновленным кодом все в порядке. Вопрос рассматривается после таких
ranio
Решение получено. Это была проблема, связанная с путем, которая была исправлена и теперь прекрасно работает и на хост-машине. Сработал тот же код.