Я пытаюсь преобразовать HTML в PDF и загрузить его.У меня есть вызов Ajax для контроллера, и там я написал код для преобразования и загрузки строки HTML.Но я получаю исключение ошибки
Сервер не может очистить заголовки после отправки заголовков HTTP.
var param = { entityId: entityId, fromDate: fromdate, toDate: todate, serviceIds: serviceIds, customfields: customfields, reportformattype: reportformatType, requestType: requestType };
$.ajax({
url: "/ReportingAnalytics/GenerateReport",
type: "GET",
data: param,
dataType: "json",
contentType: "application/json",
success: function (data) {
if (data != "" && data != "undefined" && data.IsSuccess != "") {
showFCMessage('SUCCESS', 'Report generated and downloaded successfully', GlobalEnums.MessageType.Success);
}
else {
showFCMessage('ERROR', 'No data found with selected filters', GlobalEnums.MessageType.Error);
}
},
error: function () {
$('#DataLoading').removeClass('show');
showFCMessage('ERROR', 'Error happened while getting data', GlobalEnums.MessageType.Error);
}
});`
Это мой метод контроллера
[HttpGet]
public JsonNetResult GenerateReport(int entityId, string fromDate, string toDate, string serviceIds, string customfields, string reportformattype, string requestType)
{
bool isSuccess = false;
string reportdata = "";
try
{
//Need to generate/convert report based on 'reportformatType' if Data exist
bool IsDownloaded = false;
reportdata = "<b>Hello!.. </b><i>This is Kaptain!</i>";
IsDownloaded = GenerateAndDownloadReport(reportdata, reportformattype);
//Once report generated and downloaded
isSuccess = true;
}
catch (Exception e)
{
}
return new JsonNetResult(new
{
IsSuccess = isSuccess
});
//return RedirectToAction("ReportingAnalytics");
}
Это мой метод для конвертации и скачивания
public bool GenerateAndDownloadReport(string reportdata, string formattype)
{
if (!string.IsNullOrEmpty(reportdata) && !string.IsNullOrEmpty(formattype))
{
switch (formattype.ToLower())
{
case "pdf":
PDFManager pdfmgr = new PDFManager();
byte[] _pdfReport = null;
_pdfReport = pdfmgr.ConvertHTMLtoPDF(reportdata, "", "");
DownloadReport(_pdfReport, "", "pdf",".pdf");
Byte[] bytes = _pdfReport;
System.Web.HttpContext.Current.Response.Clear();
MemoryStream ms = new MemoryStream(_pdfReport);
System.Web.HttpContext.Current.Response.ContentType = "application/pdf";
//Response.AddHeader("content-disposition", "attachment;filename=test.pdf");
System.Web.HttpContext.Current.Response.Buffer = true;
ms.WriteTo(Response.OutputStream);
System.Web.HttpContext.Current.Response.End();
System.Web.HttpContext.Current.Response.ClearHeaders();
break;
case "word":
var strBody = new StringBuilder();
//-- add required formatting to html
AddFormatting(strBody, reportdata);
DownloadReport(null, reportdata, "msword",".doc");
break;
case "excel":
break;
}
}
return true;
}