Я хочу напечатать файл PDF из своего приложения (отчет rdlc).Поэтому мне нужно отобразить файл в браузере без загрузки с помощью Ajax.Следующий код пытается открыть файл с помощью тега <a>
(<a href="~/.../" target="_blank">print </a>
), но он не работает в вызове ajax.Пожалуйста, предоставьте образец кода или инструкцию на C #.
Вот генерация PDF из средства просмотра отчетов:
public void CreatePdfFromList(string fileName, string reportpath, ArrayList dsNameArray, ArrayList DTArray)
{
ReportViewer viewer = new ReportViewer();
Warning[] warnings = null;
string[] streamIds = null;
string mimeType = string.Empty;
string encoding = string.Empty;
string extension = string.Empty;
string filetype = string.Empty;
viewer.SizeToReportContent = true;
viewer.LocalReport.ReportPath = reportpath;
viewer.ProcessingMode = ProcessingMode.Local;
for (int i = 0; i < dsNameArray.Count; i++)
{
ReportDataSource rds1 = new ReportDataSource((string)dsNameArray[i], (IEnumerable)DTArray[i]);
viewer.LocalReport.DataSources.Add(rds1);
}
viewer.LocalReport.Refresh();
byte[] pdfContent = viewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);
Response.Buffer = true;
Response.Clear();
Response.ContentType = mimeType;
//Response.AddHeader("content-disposition", "attachment; filename=" + fileName + "." + extension);
Response.BinaryWrite(pdfContent);
//Response.Flush(); // send it to the client to download
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.End();
}
, а вот ajax:
$.ajax({
type: "GET",
url: "/.../",
data: {...},
success: function (json) {
//window.open(json);
//open file i think...
}
})
При попытке показать содержимое в формате pdf я использую console.log (json).Он показывает мне строку, но содержимое выглядит так:
�~�