Создать PDF из HTML и показать этот файл в браузере через AJAX - PullRequest
0 голосов
/ 11 июля 2019

Я хочу создать PDF-файл из HTML, который будет загружен в браузере. Файл сгенерирован успешно, но я не знаю, как показать этот файл в браузере, загружающем через ajax, я попытался сделать это с постом ajax, но это не сработало. это работало с методом get как: window.location = "/Proposal/DownloadProposal?companyName=" + companyText + "&message=" + message; Но длина моего сообщения превышает 2000 символов, и вызовы не выполняются на сервере. Мой код выглядит следующим образом: Это мой вызов ajax.

$("#btnDownloadProposal").on("click", function () {
        var message = $("#rtxtContent").data("kendoEditor").value();

        var download = true;
        var companyText = $("#ddlCompany").data("kendoComboBox").text();

        if (download) {
            showLoading();
            message = encodeURIComponent(message);
            //window.location = "/Proposal/DownloadProposal?companyName=" + companyText + "&message=" + message;
            //hideLoading();

            try {
                $.ajax({
                    url: '@Url.Action("DownloadProposal", "Proposal")',
                    data: { companyName: companyText, message: message },
                    dataType: "json",
                    //contentType: "application/json; charset=utf-8",
                    type: "POST",
                    error: function (data) {
                        hideLoading();
                    },
                    success: function (returnValue) {
                        debugger;
                        //window.location = '/Proposal/DownloadProposal?file=' + returnValue;
                    }
                });
            }
            catch (e) {
                hideLoading();
                console.log(e.message);
            }
        }

    });

Это код c # на стороне сервера.

[ValidateInput(false)]
        [HttpPost]
        public ActionResult DownloadProposal(string companyName, string message)
        {

            Byte[] result = null;
            var memStream = new MemoryStream();
            var pdf = TheArtOfDev.HtmlRenderer.PdfSharp.PdfGenerator.GeneratePdf(message, PdfSharp.PageSize.A4);
            pdf.Save(memStream);
            result = memStream.ToArray();

            var contentType = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);

            return File(result, contentType.ToString(), "Proposal.pdf");
        }

Заранее спасибо, пожалуйста, предоставьте мне решение ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...