Программное обеспечение для получения заданий на печать и отправки их на принтеры в локальной сети - PullRequest
1 голос
/ 03 августа 2010

Я хочу создать программное обеспечение, окна которого будут определять его как установленный драйвер принтера, и перечислить это программное обеспечение в разделе «Устройства и принтеры»

Так же, как программное обеспечение ImagePrinter , вы можете получить к нему доступ.это по следующей ссылке.http://sourceforge.net/projects/imageprinter/

когда этот принтер изображений установлен на компьютере, Windows перечисляет его в разделе «Принтеры и устройства», чтобы мы могли щелкнуть правой кнопкой мыши и поделиться им в нашей сети.Пользователи ЛВС могут добавить его в качестве удаленного принтера и отправить на него задания на печать, которые, в свою очередь, преобразуют эти задания на печать в формат изображения (jpg и т. Д.) И сохраняют в указанном каталоге.

Что мне нужно, так эточтобы получить эти задания на печать с других ПК в локальной сети, например, ImagePrinter, и отправить их на настоящие принтеры, используемые в локальной сети, как отправку с этого устройства.(например, компьютер, на котором запущено мое программное обеспечение, отправляющее эти задания на печать), чтобы их можно было распечатать.

, чтобы сделать это, мне нужно получить две вещи: 1 - создание программного обеспечения так, чтобы Windows обнаруживала его как принтер(чтобы можно было легко обмениваться данными и получать задания на печать)

2 - отправлять задания на печать на установленные удаленные принтеры, добавленные на машину, на которой запущено мое программное обеспечение, точно так же, как и на собственные задания на печать машины.чтобы сделать их в C # (потому что мой остальной код приложения на C #, в любом случае, если он может быть объединен вместе, то язык программирования не имеет значения.)

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

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

1 Ответ

3 голосов
/ 05 августа 2010

Это можно сделать, правильно комбинируя четыре компонента:

  • настройка очереди печати с драйвером принтера PostScript, совместно используемая в локальной сети;
  • Ghostscript (прокрутите вниз, чтобы получить gs871w{32,64}.exe), чтобы преобразовать PostScript в изображение;
  • Redmon (скачать redmon17.zip), чтобы служить «монитором порта принтера»;
  • пакетный файл DOS для выполнения именно того, что вы хотите;

В очереди печати будет использоваться порт * Red -irector Mon -itor 'длянаправьте входящие задания PostScript в программу / приложение / пакетный сценарий по вашему выбору.

Осталось сделать вашу работу: написать простую программу / приложение / пакетный сценарий, которая выполняет три действия:

  1. принять входящий PostScript в качестве ввода,
  2. вызвать командную строку Ghostscript для преобразования ввода в% imageformat% по вашему выбору,
  3. и, наконец, отправить% imageformat% в качестве заданий на принтерна ваш выбор.

Вот документ тВ этой статье описаны некоторые основные сведения о RedMon:


Вот несколько дополнительных советов:

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

Первый будет преобразовывать данные, поступающие со стандартного ввода (стандартный ввод, - в конце команды), в одностраничный черно-белый TIFF G4 с разрешением 600 точек на дюйм, где каждая страницаотдельный файл с именем page_001.tif, page_002.tif и т. д.:

gswin32c ^
   -dBATCH ^
   -dNOPAUSE ^
   -dSAFER ^
   -sDEVICE=tiffg4 ^
   -r600x600 ^
   -sOutputFile=c:/path/to/output/page_%03d.tif ^
   -                           ### <-- note this!

Вот командная строка Ghostscript, которая генерирует тот же вывод, но на этот раз как один многостраничный TIFF G4:

gswin32c ^
   -dBATCH ^
   -dNOPAUSE ^
   -dSAFER ^
   -sDEVICE=tiffg4 ^
   -r600x600 ^
   -sOutputFile=c:/path/to/output/multi_page_g4.tif ^
   -                           ### <-- note this!

Вам не нужен черный + белый G4 TIFF, но цветной TIFF, 32-битный CMYK?ОК, используйте другое устройство вывода для Ghostscript:

gswin32c ^
   -dBATCH ^
   -dNOPAUSE ^
   -dSAFER ^
   -sDEVICE=tiff32nc^
   -r600x600 ^
   -sOutputFile=c:/path/to/output/multi_page_color.tif ^
   -                           ### <-- note this!

Вы хотите JPEG?Извините, нет такой вещи, как многостраничный JPEG.Но на одной странице нет проблем:

set outputname=some-uniq-name && ^
gswin32c ^
   -dBATCH ^
   -dNOPAUSE ^
   -dSAFER ^
   -sDEVICE=jpeg ^
   -dJPEGQ=95 ^
   -r600x600 ^
   -sOutputFile=c:/path/to/output/%outputname%-page_%03d.jpeg ^
   -                           ### <-- note this!
...