Как распечатать внешние файлы (XLS, PDF, DOCX и т. Д.) Из ASP.NET? - PullRequest
0 голосов
/ 29 апреля 2009

У нас есть приложение в классическом ASP, которое позволяет пользователю «прикреплять» файлы к информации. Это могут быть файлы PDF, электронные таблицы, документы Word и т. Д.

В новой версии ASP.NET одна запрошенная опция была для «Печатать все» (у одного пользователя есть ситуация, когда есть 34 вложенных файла, и в текущей системе он должен открывать и распечатывать каждый из них по отдельности) .

Файлы хранятся в отдельном каталоге, а не встраиваются в базу данных. База данных просто содержит идентификационный номер и расширение файла, чтобы приложение затем выходило и открывало «2182.xls», если бы пользователь захотел его увидеть (в этом случае откроется окно Excel).

Есть ли способ отправить файл на принтер, когда у вас есть только полное имя файла? (Что я мог предположительно повторить 34 раза в приведенном выше примере)

Заранее спасибо.

1 Ответ

1 голос
/ 29 апреля 2009

Помните, что ваш код asp.net работает на веб-сервере. Он не работает на клиентском компьютере и не знает, какие принтеры (если есть!) Установлены там. Так работает сеть; По замыслу все, что может сделать веб-приложение, - это открыть диалоговое окно печати для текущей страницы. Все что угодно, и хакеры будут использовать наши веб-браузеры для того же вида спама, который вы получаете на факсимильном аппарате.

Тем не менее, могут быть некоторые вещи, которые вы можете сделать:

  • Добавьте элемент управления ActiveX, приложение Flash, приложение Silverlight, плагин Firefox или другой код плагина для поддержки этой функции.
  • Отображение всех вложений на сервере в один HTML-документ с соответствующими стилями и JavaScript, чтобы он печатался правильно и запрашивал пользователя при загрузке.
  • Если это для локального сайта интрасети (в отличие от общедоступного Интернета), где у вас есть специальные знания о том, какие принтеры доступны для текущего пользователя, вы можете настроить все принтеры на своем сервере и распечатать его в правильном месте от имени пользователя.
...