场景:

向数据库中添加一条记录时,调用客户端局域网中的打印机自动将数据打印出来。(当然是客户端打印,服务器端打印还要控件???)

要求:

  1. 不弹出、不打印预览、直接自动打印。(静默打印)
  2. 需要兼容各大浏览器(火狐、ie、360、谷歌、edge)
  3. 开机自启

没办法,看了网上许多博客,都是推荐JPC或者lodop的,都是要钱滴,JPC免费版只支持ie的静默打印,被逼无奈,只能手写一个,原本用C#写了一个,但是上司说不要用C#,用java写。(像控件这样的桌面程序,肯定是用C#好实现)。

成果:

java指定网络打印机ip 端口打印 javaweb调用打印机_客户端

就是这个二十多兆的程序,用java写的服务,里面包含一个bat文件,用于实现开机自启。

使用方法:

简单,鼠标右击 以管理员身份运行 即可。

之后查看任务管理器会出现打印服务:

java指定网络打印机ip 端口打印 javaweb调用打印机_字符串_02

打开浏览器:输入http://localhost:5777/print。

java指定网络打印机ip 端口打印 javaweb调用打印机_java_03

此控件是以POST方式,接收文件的base64字符串,会调用客户端的默认打印机打印。在前台使用ajax调用即可,如下:

$.ajax({
      url: "http://127.0.0.1:5777/print",
      type:"post",
      data: 文件的base64字符串,
      dataType : "json",
      success:function(result){
          console.log(result);//会返回打印结果
          return true;
     },
     error:function(){
           return false;
    }
});

源码请移步:打印控件