Ответ 1
Решено! Это работает для меня
window.open('/Export/PrintPdf');
Цель:
Мне нужно распечатать PDF файл на новой вкладке после того, как некоторые задачи закончены правильно.
Шаги: Я хочу выполнить метод, который должен перейти на сервер, взять PDF и открыть его на новой вкладке, я пытался с ними, но не работал:
Контроллер: экспорт
public ActionResult PrintPdf()
{
Response.AppendHeader("Content-Disposition", "inline; filename= " + MyClassPdfWriter.GetFileName);
return File(MyClassPdfWriter.GetMemoryStream, "application/pdf");
}
Просмотр:
function TasksSucced(){
$.get('@Url.Action("PrintPdf", "Export", "new {target = _blank}")');
}
Решено! Это работает для меня
window.open('/Export/PrintPdf');
$("a[target!='_blank'][href$='.pdf']").attr("target", "_blank");
Если у кого-то есть аналогичная проблема, ни один из вышеперечисленных решений не работал у меня в Google Chrome (они работали в Firefox)
Этот код работал во всех основных браузерах:
var a = document.createElement('A');
var filePath = 'https://pathtopdf.com/file.pdf';
a.href = filePath;
a.download = filePath.substr(filePath.lastIndexOf('/') + 1);
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
Вы можете использовать следующее решение
jQuery('<form target="_blank" action="' + URL + '" method="get"></form>').appendTo('body').submit().remove();
где URL - это URL-адрес pdf...
Вы можете попробовать использовать jQuery.deffered. Я подготовил образец функции для вас. Он обработает вызов getPdf, а затем разрешит обещание. Надеюсь это поможет
function getPDF() {
return '';
}
getPdf()
.then(function(response) {
console.log('response here' + response);
window.open(response);
}).fail(function(){
console.error('failed reposne');
});
Есть несколько способов скачать или просмотреть PDF.
Вы можете установить тип контента как application/pdf в заголовке ответа так же, как Content-Type: application/pdf
И чтобы открыть его на новой вкладке в javascript, добавьте этот код.
window.open("Here Download PDF url", '_blank');
Вам необходимо установить тип содержимого как application/octet-stream в заголовке ответа так же, как application/octet-stream
.
И добавить скачать атрибут HTML5 в тег или просто цель = "_blank".
<a href="PDF URL" download="pdf">Download</a>
<a href="PDF URL" target="_blank">Download</a>
Таким образом, вы можете использовать PDF.js или 3-ю библиотеку для просмотра PDF в iFrame или на встроенной странице.