MVC распечатывает PDF без отображения в диалоговом окне печати - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть приложение MVC, в котором пользователь должен нажать «Печать», а в следующем диалоговом окне печати проверить целевой принтер, количество копий и т. Д. И нажать «Печать». Я рендеринг документа PDF и возвращаю документ таким образом:

return File(printJob.Bytes, "application/pdf");

Это довольно хорошо отображает документ в браузере. Как в Chrome, так и в Edge, когда пользователь нажимает кнопку «Печать», он получает предварительный просмотр страницы в диалоговом окне печати. Таким образом, пользователь нажимает кнопку «Печать», просматривает предварительный просмотр, нажимает «печать», снова просматривает предварительный просмотр и затем нажимает «печать». Кто-нибудь знает, возможно ли отобразить документ PDF, не отображая его в браузере, и вместо этого просто предоставить пользователю диалоговое окно печати?

Спасибо заранее!

1 Ответ

0 голосов
/ 07 сентября 2018

Когда вы возвращаете PDF со своего веб-сайта, браузер затем выступает в качестве средства просмотра PDF вместо веб-браузера, поэтому вам нужно получить PDF-файл для запроса диалога печати при открытии, а не веб-сайт.

Этого можно добиться, добавив javascript документа this.print(true) в создаваемый вами PDF-файл.

Вы можете проверить это в Adobe Acrobat, перейдя в Javascript -> Редактировать все Javascripts и просто вставив this.print(true) в верхней части любой именованной функции.

Протестировано и работает на Chrome, как только вы открываете PDF, открывается диалоговое окно печати. ​​

Ссылка на Acrobat Javascript здесь здесь , ссылка на функцию печати на стр. 179.

...