Я нашел несколько ответов об использовании контроллера для создания PDF-файла из EvoPDF, однако ни один из них не имеет отношения к контроллеру, вызываемому через jQuery AJAX.Возврат PDF из контроллера, вызванного через jQuery AJAX
У меня есть простая функция JQuery, которая посылает данные в контроллер так же, как и многие другие в моем приложении:
$.ajax({
url: "/AnnualFees/showStatement",
cache: false,
data: {
authKey: memberData.authKey,
entityId: memberData.entityId,
barNumber: memberData.barNumber,
statementHTML: encodeURIComponent($("#statementBody").html())
},
method: "POST",
success: function (data) {
},
});
я следовал всем образцам и иметь этот код. Я могу изменить его, чтобы сохранить PDF-файл и подтвердить, что PDF-файл создается.
public ActionResult getStatementPDF(string statementHTML)
{
//initialize the PdfConvert object
PdfConverter pdfConverter = new PdfConverter();
// set the license key - required
pdfConverter.LicenseKey = "uzUmNCcnNCYsIjQgOiQ0JyU6JSY6LS0tLQ==";
StringBuilder PDFBody = new StringBuilder();
PDFBody.Append("<!DOCTYPE html>");
PDFBody.Append("<html lang=\"en\">");
PDFBody.Append("<head>");
PDFBody.Append(" <meta charset=\"utf - 8\">");
PDFBody.Append(" <title>Statement</title>");
PDFBody.Append("</head>");
PDFBody.Append("");
PDFBody.Append("<body>");
PDFBody.Append("Hello world.");
PDFBody.Append("</body>");
PDFBody.Append("</html>");
byte[] outPdfBuffer = pdfConverter.GetPdfBytesFromHtmlString(PDFBody.ToString());
// Send the PDF file to browser
FileResult fileResult = new FileContentResult(outPdfBuffer, "application/pdf");
fileResult.FileDownloadName = "Statement.pdf";
return fileResult;
}
Я могу подтвердить их ошибок нет, и что 200 успеха возвращается с правом применения/типа PDF и примерно такого же размера, как и на диске. Однако ни один PDF не появляется, в браузере ничего не открывается.
Nothing происходит потому, что обратный вызов ничего не делает в ответ на запрос AJAX. Плюс загрузка файла не будет работать с ajax. Вы хотите сгенерировать и сохранить файл PDF на сервере и вернуть URL-адрес, указывающий на этот файл, чтобы браузер мог быть перенаправлен в обратном вызове. – marekful
Я хотел бы во что бы то ни стало избежать сохранения PDF-документа, так как на этом этапе PDF является черновиком окончательного документа. Я вижу пример кода для потоковой передачи PDF в браузер, но он просто не работает. Разве это невозможно? –