Заставить PDF открыть в новой вкладке

0

В настоящее время я работаю над приложением, в котором появляется диалоговое окно с информацией о получаемом элементе (пользователь просто вводит полученную сумму). Пользователь вводит изменения (полученную сумму), а затем сохраняет. После сохранения я предлагаю пользователю создать pdf файл с подтверждением (клиент хотел увидеть изменения в печатном виде). PDF правильно генерируется и предлагается пользователю через диалог Open/Save/Cancel.

Мой вопрос в том, есть ли способ просто заставить PDF открыть автоматически без приглашения на открытие/сохранение/отмена? Причина, по которой я хочу, чтобы можно было закрыть диалог за кулисами, когда всплывает pdf, поэтому пользователю не нужно закрывать его самостоятельно.

Ниже я до сих пор.

Посмотреть

$.getJSON('@Url.Action("ReceiveProduct", "PurchaseOrder")', model, function (result) {
                    //Save was successful
                    if (result) {
                        var createPrintOut = confirm("Do you wish to create a print out?");
                        if (createPrintOut) {
                            var url = '@Url.Action("ViewPrintOut", "PurchaseOrder")';
                            window.location = url + "?POId=" + $("#PurchaseOrderId").val() + "&PId=" + $("#ProductId").val();
                        }

контроллер

public ActionResult ViewPrintOut(int POId, int PId)
        {
            //Make sure user has proper permissions
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageOrders))
                return AccessDeniedView();

            var purchaseOrder = _purchaseOrderService.GetPurchaseOrderById(POId);

            string fileName = string.Format("purchaseorderproduct_{0}_{1}.pdf", PId, DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"));
            string filePath = System.IO.Path.Combine(this.Request.PhysicalApplicationPath, "content\\files\\ExportImport", fileName);
            _pdfService.PrintPurchaseOrderProductsToPdf(purchaseOrder, PId, _workContext.WorkingLanguage, filePath);
            var bytes = System.IO.File.ReadAllBytes(filePath);
            return File(bytes, "application/pdf", fileName);
        }
Теги:
pdf
asp.net-mvc-3

1 ответ

1

Добавьте следующую строку перед оператором return.

Response.AppendHeader("Content-Disposition", "inline; filename="+ filename);

и удалите ссылку на имя файла в Return.

return File(bytes, "application/pdf");

Измените Window.Location на

window.open(Yoururl,'_blank');
  • 0
    Спасибо за этот ответ. Еще один вопрос. Как сделать так, чтобы он отображался на другой вкладке? Я не хочу потерять страницу, на которой сейчас находится пользователь.
  • 0
    Добавьте target = "_ blank" к ссылке, которую вы используете для запуска операции (я имею в виду в подтверждении Print Pdf), не так ли?
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню