Прослушивание события задания на печать, вызванного с помощью меню «Файл» из Java - PullRequest
0 голосов
/ 10 мая 2009

Мне интересно узнать, как моя Java-программа может прослушивать событие Print, генерируемое базовой ОС. Поскольку мой проект основан на Java, прослушиватель событий задания на печать не должен зависеть от платформы. Чтобы быть более точным, моя программа будет работать в фоновом режиме и должна быть уведомлена о задании на печать, если пользователь пытается распечатать страницы из MS Word (например). О событии следует уведомить не только о начале задания на печать, но и о других деталях, таких как количество страниц, местоположение документа и т. Д. (Если это возможно). Ссылка на полный учебник или некоторые фрагменты будет высоко ценится. Спасибо!

1 Ответ

1 голос
/ 10 мая 2009

Мы магазин C ++ и Java. Я написал код, который делает в значительной степени то, что вы просите. Он был написан на C ++ для Win32 (и был правильным исправлением ошибок - это одна из наименее хорошо документированных областей Win32 API), и разные принтеры отправляют разные потоки событий, поэтому может быть очень сложно разработать надежную очередь печати обработка).

Если кто-то создал библиотеку JNI для этого (маловероятно), то это не будет кросс-платформенным. Это потребует огромных усилий (разные ОС обрабатывают очереди печати и уведомления совершенно по-разному).

Я бы порекомендовал освежить ваше программирование на Win32 (с C / C ++). Если у вас все работает, если вам абсолютно необходимо, чтобы они взаимодействовали с вашим Java-приложением, вы можете использовать JNI, чтобы обернуть его.

Вот статьи MSDN о мониторинге уведомлений о смене принтера (сначала вам нужно вызвать OpenPrinter, но следующий вызов - FindFirstPrinterChangeNotification): http://msdn.microsoft.com/en-us/library/dd162722(VS.85).aspx

Если вы также пытаетесь поддерживать * nix и mac, вам придется копать их отдельно. Удачи.

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