如题,如何用JAVA搜索局域网中存在的打印机
我试了下JAVA里面带的javax.print里面的PrintService ,可以查出,但那是已安装了打印驱动的
import javax.print.PrintService;
import javax.print.PrintServiceLookup;public class PrintTest { PrintService[] service = PrintServiceLookup.lookupPrintServices(null,null);
private void print(){
for(int i=0;i<service.length;i++){
System.out.println(service[i].getName());
}
}
public static void main(String[] args){
new PrintTest().print();
}}
现在就是想,一台什么都没做过的电脑上,通过java程序搜索到局域网中存在的打印机。如何实现?
我试了下JAVA里面带的javax.print里面的PrintService ,可以查出,但那是已安装了打印驱动的
import javax.print.PrintService;
import javax.print.PrintServiceLookup;public class PrintTest { PrintService[] service = PrintServiceLookup.lookupPrintServices(null,null);
private void print(){
for(int i=0;i<service.length;i++){
System.out.println(service[i].getName());
}
}
public static void main(String[] args){
new PrintTest().print();
}}
现在就是想,一台什么都没做过的电脑上,通过java程序搜索到局域网中存在的打印机。如何实现?
或把打印机的驱动改成JAVA实现,且在你的主机上实现
对于Windows系统,所有已经添加的打印机均会注册到注册表中:HKEY_CURRENT_USER/Printers。
同样,对于UNIX系统而言,所有的外设包括打印机也会在系统中注册。
PrintServiceLookup.lookupPrintServices只是查找这些已在本机注册的打印机而已。对于楼主的问题,我也无能为力。但Windows下有这样的服务Server。
支持计算机通过网络的文件、打印、和命名管道共享。当然也不觉得这样的功能有什么实际意义。要使用网络上共享的打印机,一般都需要用户名、密码,也就是说你能获得的也是特定的打印机。那还不如按正常流程,先在本机注册,然后再使用,同时添加时尽量使用主机名,而不是IP,以降低对网络环境的依赖
那我现在要实现的是打开软件能扫描出局域网里所有的打印机,然后根据需要操作对应的打印机,是不是java不怎么好实现了?
不懂了。
2.通过向每个IP地址发送SNMP Get/GetNext等命令获取 pring-mib库中的节点信息,能获取到就是打印机,获取不到就是别的机器推荐SNMP4J包。