Java “Принтер не принимает задания” старые принтеры Brother
Вопрос
У меня есть клиент, у которого возникла проблема с печатью из JAVA-приложений, использующий старые принтеры Brother.Исключение, которое он получает, - "Принтер не принимает задания".
Другие приложения (не java-приложения) могут печатать с помощью этих принтеров.Он переключился на новый принтер (тоже Brother), не меняя драйвер, и тогда все заработало.
Идея заключается в том, что он не может поменять все принтеры, также он не хочет переустанавливать их все, так как у него сеть из сотен компьютеров и принтеров.
Я читал на разных форумах, что в Java версий 1.5 и 1.6 есть ошибка, но это приложение работает только с java 1.5 или выше...таким образом, он не может переключиться на java 1.4 (с java 1.4 печать работала).
Не могли бы вы, пожалуйста, как-нибудь помочь мне и дать какое-нибудь возможное решение этой проблемы?
Решение
Похоже, что это этот баг.К сожалению, он помечен как низкоприоритетный, и поскольку никто не потрудился проголосовать за него, он откладывается.
Эта тема форума дает некоторую полезную справочную информацию (ответ № 11) и обходной путь (ответ № 9), который игнорирует состояние принтера при попытке распечатать файл.
Если вы хотите исправить эту ошибку в Java 7, у вас еще есть время отправить патч.
Редактировать
Я знал, что кто-то оспаривал обходной путь, но у меня не укладывалась в голове эта проблема.Как бы то ни было, должна быть возможность разработать лучшую версию, либо используя тот же подход, либо другой.Если создание подклассов и использование отражения для настройки частного состояния не работают, вы можете загрузить исходный код Java 6, исправить ошибку и перестроить.
Я уверен, было бы неплохо, если бы у кого-нибудь нашлось решение для вас, но давайте будем реалистами.Это похоже на проблему, которая затрагивает очень немногих людей.ИМО, ваши наилучшие шансы на успех - это:
- самопомощь,
- оплата контракта на поддержку Oracle или
- найм независимого технического эксперта.
Из них у самопомощи больше всего шансов быстро найти решение...предполагая, что у вас есть люди, обладающие навыками для выполнения такого рода работы собственными силами.
Другие советы
Нашел обходной путь с использованием манипулирования кода байтов в http://copy-con.blogspot.com/2009/12/printer-is-not-accepting-job.html.