Как распечатать PDF файл, который находится в исходном расположении приложения в ASP.NET
How to Print PDF that is located in the Application Source Location in ASP.NET either by using client side coding or code behind coding
Что я уже пробовал:
protected void PrintPDF(string path) { try { using (Process printjob = new Process()) { printjob.StartInfo.FileName = path; printjob.StartInfo.Verb = "Print"; printjob.StartInfo.CreateNoWindow = true; printjob.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; PrinterSettings setting = new PrinterSettings(); setting.DefaultPageSettings.Landscape = true; printjob.Start(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
F-ES Sitecore
Хранится ли файл на клиенте или на сервере? Также код вы вставили не будет работать с asp.net, что код приложения WinForms. Кроме того, если ваше намерение состоит в том, чтобы печатать автоматически с веб-сайта, то вы не можете этого сделать. Загрузите файл клиенту (если он находится на сервере), и они просто должны будут распечатать его сами.
JanardhanSharma
но это работает для asp.net и еще. по умолчанию он позволяет открывать pdf-файл в adobe reader, но через некоторое время он также открывается в OneNote.. как только он отображается в OneNote, pdf-файл закрывается.. все это происходит в считанные секунды. я не понимаю этого ненормального поведения.
Richard Deeming
Если вы запускаете код в Visual Studio, он может появиться но это только потому, что сервер и клиент в данном конкретном случае являются одним и тем же компьютером.
Как только вы развернетесь на реальном сервере, код перестанет работать. То MessageBox.Show
будет либо выбрасывать исключение, либо выводить сообщение на сервер и зависать в ожидании, пока кто-то нажмет на кнопку.
И даже если бы вы могли заставить серверный код печатать, что потребовало бы изменения разрешений и редактирования реестра, выходные данные будут поступать с принтера сервера, а не с принтера клиента.