生成PDF然后打印C#

时间:2018-04-17 03:20:04

标签: c# ajax asp.net-mvc-4 pdf printing

调用API获取数据后,我需要使用默认的可用生成PDF文件到PRINT。 目前,我能够获取数据,但不生成或下载PDF。

AJAX代码调用控制器来处理请求。

$(document).on('click', '#RePrint', function (event) {
        var checkedVals = $('.ExportOrder:checkbox:checked').map(function () {
            var orderId = this.value;
            var status = document.getElementById(orderId).innerText;
            if (status != "Received")
            {
                return this.value;
            }
        }).get();
        if (checkedVals.length > 0) {
            $.ajax({
                url: '/Orders/RePrintLabel',
                type: 'POST',
                data: { ExportOrder: checkedVals },
                dataType: "json",
                async: true
            });
        }
    });

控制器:

public ActionResult RePrintLabel(string[] ExportOrder)
        {
            var orders = ExtractOrders(ExportOrder, "Reprint");
            if (orders.Count() > 0)
            {
                foreach (var item in orders)
                {
                    var label = _orderMgr.RePrintLabel(item);

                    //Generate PDF For Label
                    if (label != null)
                    {
                        if (label.success)
                        {
                            byte[] byteContent = label.labels[0];
                            MemoryStream pdf = new MemoryStream(byteContent);
                            Response.Clear();
                            Response.ContentType = "application/pdf";

                            string pdfName = label.order_number;
                            Response.AddHeader("Content-Disposition", "attachment; filename=" + pdfName + ".pdf");
                            Response.ContentType = "application/pdf";
                            Response.Buffer = true;
                            Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
                            Response.BinaryWrite(byteContent);
                            Response.End();
                            Response.Close();
                        }
                    }
                }
            }

            return RedirectToAction("Export");
        }

数据已成功返回并且能够执行,直到此代码Response.Close(); pdf未下载或显示以进行打印。

有没有办法可以在生成PDF文件后立即自动打印PDF文件,或使用默认打印机成功返回数据?

提前感谢您的帮助。真的很感激。

0 个答案:

没有答案