как распечатать файл на определенный принтер - PullRequest
1 голос
/ 20 августа 2011

Я разработал службу Windows с C #. Сейчас я ищу способ, которым он может напечатать определенный файл (может быть TIFF, PDF, HTML, MHT или Text) на определенный принтер. Проблема в том, что когда я делаю это с Process и печатаю как глагол, как я могу установить определенный принтер? И возможен ли способ использования Процесса в Службе Windows? - Это не должно показывать окно.

Ответы [ 3 ]

2 голосов
/ 20 августа 2011

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

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

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

2 голосов
/ 20 августа 2011

глаголу "Printto" нужен аргумент для имени принтера. См. этот образец в MSDN для получения дополнительной информации.

0 голосов
/ 22 августа 2011

Имейте в виду, что автоматическая печать PDF нарушает лицензионное соглашение Adobe в случае PDF. Предполагая, что расширение .pdf связано с Adobe PDF Reader (или принтером в этом сценарии ...).

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