Я был укушен этой старой ошибкой / отсутствующей функцией в Java:
http://bugs.sun.com/view_bug.do;jsessionid=b2ac8ea11f05c16d948e24d36fb5?bug_id=4673406
Дело в том, что кнопка "Свойства" в стандартном диалоговом окне печати Java, по-видимому, всегдаотключено в Windows.Кнопка активна, только если PrintService.getServiceUIFactory () возвращает что-то, что не является нулевым.К сожалению, экземпляры Win32PrintService всегда возвращают ноль.Всегда.
Погуглив, я обнаружил, что вы можете вызвать диалоговое окно собственных свойств печати Windows, вызвав rundll32:
rundll32 printui.dll,PrintUIEntry /e /n "name of printer here"
Я надеюсь, что смогу использовать это, чтобы обойти ошибку /отсутствует функция в Win32PrintService.Однако я не знаю, как я могу запросить диалог PrintUIEntry для выбора пользователя.
Другими словами, как я могу получить результат вышеуказанного вызова rundll32?(Если мне нужно что-то написать в C / JNI и использовать Windows API напрямую, пусть будет так. Я бы предпочел этого не делать.)
Или есть лучший способ решить эту проблему?