Печать из Интернета на стороне клиента

Как мы можем печатать с использованием печатного документа, чтобы мы могли контролировать размер бумаги принтера?

  • Его необходимо контролировать после того, как веб-хостинг будет выполнен без всплывающего диалогового окна печати или всплывающего окна JavaScript.
  • Он должен печататься на принтере клиента после веб-хостинга без диалогового окна печати и установки размера бумаги.
  • Это должно быть сделано в C # .net

person Community    schedule 25.11.2008    source источник
comment
Не могли бы вы объяснить немного больше? Вы пишете клиентское приложение или веб-приложение? или оба?   -  person Colin Pickard    schedule 25.11.2008


Ответы (6)


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

По соображениям безопасности я надеюсь, что это невозможно.

person dexter    schedule 25.11.2008

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

Обход диалогового окна печати является ограничением безопасности, ActiveX или расширение firefox - ваша единственная альтернатива, что может быть приемлемым для веб-приложения на основе интрасети.

person jishi    schedule 25.11.2008

Единственный способ, которым я смог получить такой контроль над клиентской стороной принтера, - это создать компонент ActiveX, который будет обрабатывать интерфейс печати и работать с ним. Это не кроссброузер, не самое чистое решение; однако это единственный способ управлять размером бумаги. Я изучил параметры CSS @print, но не смог найти тот, который действительно мог бы контролировать размер.

Единственная другая возможность - посмотреть, какие возможности печати есть у чего-то вроде Flash или Silverlight. Я недостаточно знаком, чтобы сказать, есть ли у них то, что вы ищете; однако это может быть другой вариант.

person JamesEggers    schedule 25.11.2008

Я считаю, что Java-апплет может устанавливать размер бумаги, если вы предоставите ему соответствующие права. Я думаю, вашим пользователям почти наверняка придется прыгать через обручи, чтобы это сработало ...

person Eli    schedule 25.11.2008

Может быть, слишком поздно, но я добавляю на будущее; вы можете использовать своего рода утилиту менеджера загрузки / печати. Представьте себе торрент-магнитные ссылки, вы нажимаете ссылку и торрент-файл, открытый торрент-клиентом, он считывает необходимую информацию, а все остальное делает на сайте клиента.

Поэтому вам нужно написать небольшую утилиту, которая распознает эти «задания на печать» с вашего веб-сайта. Вы щелкаете ссылку [Распечатать счет-фактуру], и браузер загружает уникальный файл .print, а утилита фиксирует его.

Файл .print состоит из двух частей: 1. Заголовок и 2. Файл (pdf / jpg / любой). Заголовок содержит предопределенный принтер / размер бумаги / ориентацию / и т. Д. Или просто запрашивает ввод данных пользователем. А затем распечатывает файл из 2. части / тела.

Вы также можете ставить задания на печать в очередь и управлять ими.

Вам необходимо установить эту утилиту; определите протокол, например http: // или ftp: //, для захвата ссылок для печати из утилиты. И настройте принтеры / бумагу / и т. Д. Для определенных заданий, таких как счета / цветная печать и т. Д.

Именно этим я и займусь, когда перенесу наше приложение winforms в Интернет. Плюс, если вы работаете в локальной сети, вы можете распечатать данные с веб-сервера на сетевых принтерах.

person Nime Cloud    schedule 13.11.2013

Я изучал это раньше, и единственный способ заставить такие вещи, как портрет / пейзаж и т. Д., - это заставить пользователя установить элемент управления ActiveX (или аналогичный).

Только Javascript или CSS не могут этого сделать.

person Magnus Smith    schedule 25.11.2008