Как слушать задания на печать в Java - PullRequest
1 голос
/ 18 января 2012

Я хочу знать, как получить информацию о печати, которую любое другое приложение (Word, Excel, PDF reader) отправило на принтер в приложении Java. Это означает, что пользователь отправляет различные типы документов на принтеры с одного ПК.

Мое Java-приложение должно подсчитать, сколько документов отправлено на принтеры.

Как я могу получить эти данные в приложении Java SE? Любой ресурс, полезная ссылка, руководство высоко ценится.

1 Ответ

3 голосов
/ 18 января 2012

Это нельзя сделать напрямую с помощью Java, но есть обходной путь.

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

Один файл с расширением .SHD для настроек задания и один с расширением .SPL для команд рисования.

Эти файлы могут храниться в определенном пользователем месте на-принтер основы.Расположение по умолчанию для всех заданий диспетчера очереди печати c:\windows\system32\spool\PRINTERS.

Чтобы установить расположение для каждого принтера

  1. Нажмите Пуск, нажмите Выполнитьвведите regedit в открывшемся окне и нажмите кнопку ОК.

  2. Найдите следующий раздел реестра, где <printername> - имя вашего принтера:

    HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ Print \ Printers \

    На правой панели щелкните правой кнопкой мыши SpoolDirectory и выберите команду Изменить.

  3. В поле «Значение» введите местоположение, в котором вы хотите хранить файлы буфера.Например, введите c:\windows\system32\spool\printers в качестве местоположения по умолчанию.

  4. Закройте редактор реестра.Перезапустите службу диспетчера очереди печати. ​​

Все новые задания будут иметь форму XXXXX.SPL и XXXXX.SHD и будут пронумерованы в соответствии с их идентификаторами JobID.

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

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