ranio Ответов: 0

Как решить эту проблему при экспорте в 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

Решение получено. Это была проблема, связанная с путем, которая была исправлена и теперь прекрасно работает и на хост-машине. Сработал тот же код.

0 Ответов