Печать с одного Клиента на другого Клиента через Сервер - PullRequest
0 голосов
/ 23 мая 2011

Не знаю, звучит ли это безумно, но вот сценарий -
Мне нужно распечатать документ через Интернет. Мой компьютер ClientX инициирует процесс, используя веб-браузер для доступа к ServerY в Интернете, и принтер подключен к ClientZ (может быть, вашим).
1. Документ хранится на сервере Y.
2. ClientZ - это просто клиент; нет IIS, нет сервера печати и т. д.
3. У меня есть конкретные данные о ClientZ, IP, порту и т. Д.
4. Это будет полностью приложение на стороне сервера (и не на стороне клиента на ClientZ) с ASP.NET & C #
- так это возможно? Если да, пожалуйста, дайте некоторую подсказку. Спасибо заранее.

1 Ответ

0 голосов
/ 23 мая 2011

Это довольно большой вопрос для SO, но в основном вам нужно сделать следующее:

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

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

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

Уведомления могут быть простыми или сложными в зависимости от того, как вы хотите это сделать.Вы можете отправить сообщение обратно на html-страницу, но в зависимости от того, сколько времени потребуется для выполнения задания, было бы неплохо иметь опцию электронной почты.

Вам также необходимо подумать об ошибках.Что произойдет, когда закончится бумага или тонер или кто-то попытается что-то напечатать на бумаге формата А4?Кто-то должен быть уведомлен, чтобы задания не просто создавались.

На сервере я запустил бы только часть взаимодействия с пользователем в Интернете и запустил «демон печати», работающий в качестве службы для управления получениемраспечатка документов и контроль их статуса.Я бы использовал WCF для выполнения IPC между ними.

Внутри демона печати вам понадобится набор компонентов для печати различных типов документов.Я бы сделал одну сборку для каждого типа (или кластера типов) и загрузил бы их в ваш сервис как плагины, используя MEF.

извините, это настолько общий вопрос, но вы задаете довольно общий и трудный вопрос для ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...