【发布时间】:2011-07-01 23:08:54
【问题描述】:
我被 Java 中的这个旧错误/缺失功能所困扰:
http://bugs.sun.com/view_bug.do;jsessionid=b2ac8ea11f05c16d948e24d36fb5?bug_id=4673406
问题是 Java 标准打印对话框中的“属性”按钮在 Windows 上似乎总是被禁用。该按钮仅在 PrintService.getServiceUIFactory() 返回非空值时启用。不幸的是 Win32PrintService 实例总是返回 null。总是。
通过谷歌搜索,我发现您可以通过调用 rundll32 来调用 Windows 自己的打印属性对话框:
rundll32 printui.dll,PrintUIEntry /e /n "name of printer here"
我希望我可以使用它来规避 Win32PrintService 中的错误/缺失功能。但是,我不知道如何查询 PrintUIEntry 对话框以获取用户的选择。
换句话说,我怎样才能得到上述rundll32-invocation的结果? (如果我必须用 C/JNI 编写一些东西并直接使用 Windows API,那就这样吧。不过我宁愿不这样做。)
或者有没有更好的方法来解决这个问题?
【问题讨论】:
-
@prep:与错误报告一起,
rundll32有一个代码 sn-p。你试过吗?
标签: java windows printing rundll32