Skip to content

打印服务,解决web系统打印必须显示浏览器的打印窗口,减少打印操作步骤

License

Notifications You must be signed in to change notification settings

zzutligang/printservice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

printservice

打印服务,解决web系统打印必须显示浏览器的打印窗口,减少打印操作步骤 本系统使用QT6.6.2开发,可以支持windows,linux,macos安装为服务

安装与使用

一、安装

1、程序的获取和安装

请下载打印服务程序压缩包,一般文件名为printservice.zip。将本压缩包复制到用户的操作电脑上并解压,例如:解压到C:\目录下,解压后的文件路径应如下图所示:

其中printservice.exe及是打印服务系统的主程序。

2、测试运行

点击windows的开始按钮,选择运行,输入cmd,打开一个命令行窗口,输入

cd /d c:\printservice

切换到程序文件夹,然后输入

printservice.exe -e

即可启动控制台运行状态,看到如下界面:

表示打印服务程序启动成功。然后在财务核算系统里按文档说明配置打印凭证使用本地打印服务,既可以测试绕过浏览器直接打印凭证到打印机。提高打印效率。

3、安装为系统服务

凭证打印服务程序可以安装到操作系统的服务里,随操作系统一起自动启动。

操作步骤如下:(这里假设打印服务程序还是解压到c:\printservice文件夹)

打开一个命令行窗口(注意:必须使用管理员身份运行),输入

cd /d c:\printservice

进入到打印服务程序文件夹,然后输入

printservice.exe -i

系统提示安装成功。

然后在桌面上我的电脑(此电脑)点鼠标右键,选择管理,打开计算机管理窗口:

在这里你可以找到一个名字叫Print Daemon的服务,启动类型是自动,状态列没有显示信息,用鼠标右键点击该服务,选择启动,即可启动成功。以后用户关机后重启电脑,该服务会自动运行。

二、开发API

本打印服务,提供了RESTfull的API接口,对接步骤如下:

1、获取打印机列表接口

url: http://127.0.0.1:8080/printersetup?action=get

访问该接口,会返回如下数据:

其中

rtnCode:0表示操作成功,其他数字表示失败

rtnMsg:如果发生错误,这里显示具体的错误原因

availablePrinterNames:json数组,包括当前系统安装的所有打印机(注意,如果是通过服务的形式运行,将无法获取到直接共享的网络打印机,有两种方法解决该问题:第一:为此打印机安装本地打印驱动程序,并连接到该打印机;第二:不要用服务方式运行,而是通过命令行加-e参数直接运行。这是由于windows的服务系统访问限制造成的。)

systemDefaultPrinter:操作系统默认的打印机

userPrinter:用户指定的打印机,如果未设置,或则无法找到配置文件,则该成员为空串

2、设置用户默认打印机

url: http://127.0.0.1:8080/printersetup?action=set&printer=打印机名称

url: http://127.0.0.1:8080/printersetup?action=set&printerIndex=打印机列表索引号

访问该接口,系统返回如下信息:

表示设置成功,如果使用printer参数设置默认打印机,则必须提供完整的打印机名称,如果使用printerIndex参数设置默认打印机,则参数数值必须大于等于0并且小于全部打印机个数,具体打印机个数以第一个接口返回的availablePrinterNames数组里的数据个数为准。

3、打印服务程序健康检查

url: http://127.0.0.1:8080/health

访问该接口,系统返回如下信息:

4、打印凭证

之前页面访问后台获取待打印凭证接口传递到本打印机服务程序,即可实现如果浏览器直接打印到打印机的效果。

url: http://127.0.0.1:8080/printpz?URL=http://192.168.0.121:8899/h5api/ef/protable/printout/cwpzPrint?state=3%26isKmhz=0%26PROOF_ID=1219648266933764096

注意事项:

  1. 之前的url里的&符号要替换成%26。
  2. 访问该接口,需要在请求头里增加Authorization头信息,并把当前登录用户的jwt放到该头信息里,否则,系统会返回401。

如果传递信息正常系统返回如下信息:

此时,打印机就已经开始动作,开始打印凭证了。

更多功能

系统后续会提供更多功能,敬请期待。

About

打印服务,解决web系统打印必须显示浏览器的打印窗口,减少打印操作步骤

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages