C -Отлично, как открыть диалоговое окно принтера для печати после получения BLOB-объекта данных PDF из ответа AJAX - PullRequest
0 голосов
/ 14 апреля 2020

У меня во время выполнения есть скрипт, выполняющий Ajax запрос к контроллеру для генерации PDF-файла и отправки в ответ. Когда PDF-файл отправляется обратно в ответ BLOB, и я хочу просто напечатать сразу, и появится диалоговое окно принтера.

Я нашел различные способы печати pdf с использованием C#, такие как печать с использованием pdfAcrobat с указанием локального пути или программная печать PDF с указанием имен принтеров et c для отправки на печать в фоновом режиме.

Однако, то, что я хочу, - это диалоговое окно печати, которое появляется, когда ответ PDF возвращается как блоб из контроллера и отправляется на печать через диалоговое окно печати. Я НЕ ХОЧУ СОХРАНИТЬ PDF.

Это мой AJAX код скрипта внутри CS HTML для получения PDF-файла с контроллера:

$(".btnPrint").click(function (e) {
          finalComponentArray = { 'Ceiling': componentArrayCeiling, 'BackPanel': componentArrayBackPanel, 'CarDoor': componentArrayCarDoor, 'FrontPanel': componentArrayFrontPanel, 'COB': componentArrayCOB, 'HOB': componentArrayHOB, 'LeftPanel': componentArrayLeftPanel, 'Handrail': componentArrayHandrail, 'RightPanel': componentArrayRightPanel, 'Mirror': componentArrayMirror };
        var finalJson = JSON.stringify(finalComponentArray);
         var empId = @ViewBag.EmpId;
            console.log(finalJson);
        $.ajax({
            url: '@Url.Action("LiftCustomizePrint", "Lift")',
            method: "post",
            dataType:"json",
            data: { componentJson: finalJson, empId: empId },
            xhrFields: {
                responseType: 'blob'
            },
            success: function (data) {




                var blob = new Blob(data, { type: 'application/pdf' });

                ***//how to open up print dialog from here with the blob data ?***


            },
            error: function () { alert('error') }
            });
    });

Это мой частичный код функции от контроллера:

 [HttpPost]
        public virtual ActionResult LiftCustomizePrint(string componentJson, string empId)
        {
 int designId = Convert.ToInt32(TempData["Design"]);
.........
........
........................

  string title = "custom" + ".pdf";
            string imageBase64 = "";
            DesignComponent designComp = new DesignComponent();
            if (designId != 0)
            {
                designComp = dbConnection.DesignComponent.Where(p => p.Id == designId).FirstOrDefault();
            }
            else
            {
                designComp = dbConnection.DesignComponent.FirstOrDefault();
            }
            imageBase64 = designComp.DisplayImage;

            byte[] pdfInBytes = ExportManagementHelper.exportToPDF(liftChoice, title, title, imageBase64);


            return File(pdfInBytes, "application/pdf", title);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...