|
|
|
<p align="center">
|
|
|
|
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-dd77653d7c9f197dd9d93684f3c8dcfbab6.png">
|
|
|
|
</p>
|
|
|
|
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v4.7.9</h1>
|
|
|
|
<h4 align="center">基于SpringBoot开发的轻量级Java快速开发框架</h4>
|
|
|
|
<p align="center">
|
|
|
|
<a href="https://gitee.com/y_project/RuoYi/stargazers"><img src="https://gitee.com/y_project/RuoYi/badge/star.svg?theme=gvp"></a>
|
|
|
|
<a href="https://gitee.com/y_project/RuoYi"><img src="https://img.shields.io/badge/RuoYi-v4.7.9-brightgreen.svg"></a>
|
|
|
|
<a href="https://gitee.com/y_project/RuoYi/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
|
|
|
|
</p>
|
|
|
|
#技术方案
|
|
|
|
|
|
|
|
##方案介绍
|
|
|
|
轻量级独立的打印服务,用于打印集中管理,远程打印服务,提供远程接口访问,打印任务下发,打印日志,打印方案配置,模版管理,是否用户鉴权(IP校验、客户端ID)的能力
|
|
|
|
|
|
|
|
#核心内容
|
|
|
|
1、打印服务模块:使用JPS进行无状态的打印任务下发;
|
|
|
|
2、服务接口:提供rest接口,通过接口调用进行打印数据、打印任务的创建;任务创建的结果反馈
|
|
|
|
3、打印日志:打印任务的创建、模版、数据、方案配置等历史记录的查询和补打
|
|
|
|
4、模版管理:设置打印的模版、纸张类型、打印参数等配置
|
|
|
|
|
|
|
|
#架构图
|
|
|
|
|
|
|
|
技术路线:
|
|
|
|
若依单体框架-最新班4.7.9-springboot3版本
|
|
|
|
springBoot 3.3.1
|
|
|
|
springboot-freemarker-3.3.1
|
|
|
|
com.itextpdf-5.5.13
|
|
|
|
com.google.zxing-3.5.3
|
|
|
|
ueeditor
|
|
|
|
jdk17版本
|
|
|
|
|
|
|
|
系统结构图
|
|
|
|
![img.png](img.png)
|
|
|
|
系统功能
|
|
|
|
![img_1.png](img_1.png)
|
|
|
|
|
|
|
|
模版的说明
|
|
|
|
目前系统只支持thymeleaf的模版、freemarker和纯html的模版渲染打印
|
|
|
|
|
|
|
|
基础配置说明:
|
|
|
|
外置模版路径配置:aplication.yml win.path.template 路径 默认当前应用路径下/models
|
|
|
|
客户端编码设置 : aplication.yml win.clientCode 多客户端端时配置,服务根据此编码获取打印任务
|
|
|
|
数据字典:
|
|
|
|
模版类型 :系统内置(CLASS),文件路径(FILE),数据模版(STRING)
|
|
|
|
系统内置:集成在系统class目录中,不能修改
|
|
|
|
文件路径:可配置模版的存储路径
|
|
|
|
数据模版:存储在数据库中的字符串模版
|
|
|
|
参数类型:STRING 字符串 ,QRIMG,二维码类型(系统将吧传入的内容转换成Base64格式的二维码图片)
|
|
|
|
接口说明:
|
|
|
|
/service/print/model
|
|
|
|
post 方法
|
|
|
|
参数说明
|
|
|
|
/**客户端编码-目标打印机的客户端*/
|
|
|
|
private String clientCode;
|
|
|
|
/**要打印的数据集合,根据配置的打印模版参数,参数编码需要和配置一致,*/
|
|
|
|
private List<JSONObject> printData;
|
|
|
|
/**
|
|
|
|
* 模版编码 使用的模版编码,如果为空,则使用配置的默认模版,如果不为空优先使用传入的模版编号
|
|
|
|
* */
|
|
|
|
private String modelCode;
|
|
|
|
/**
|
|
|
|
* 单页模式还是多页模式,默认1单页单任务,多条数据时所有数据合成一个页面打印; 2 一条数据一个打印文件
|
|
|
|
* */
|
|
|
|
private String docModel="1";
|
|
|
|
/**
|
|
|
|
* 打印机名称必须传
|
|
|
|
* */
|
|
|
|
private String printerName;
|
|
|
|
/**
|
|
|
|
* 计划打印时间,
|
|
|
|
* */
|
|
|
|
private String printDate;
|
|
|
|
/**任务ID
|
|
|
|
* */
|
|
|
|
private String taskId;
|
|
|
|
/**打印类型
|
|
|
|
* */
|
|
|
|
private String printType;
|
|
|
|
/**打印分数
|
|
|
|
* */
|
|
|
|
private Integer copyCount;
|
|
|
|
请求格式样例:
|
|
|
|
{"clientCode":"node_001",
|
|
|
|
"modelCode":"test_file_model001",
|
|
|
|
"docModel":"1", 不传默认为1
|
|
|
|
"printerName":"大厅 (HP Color LaserJet MFP M277dw)",
|
|
|
|
"printType":"code", 不传默认为空
|
|
|
|
“printTime”:“2024-07-25 ” ,不传默认为当前系统时间
|
|
|
|
copyCount:1 不传默认为1
|
|
|
|
"printData":[根据模版的参数进行设置,支持多条数据]}
|
|
|
|
|
|
|
|
文档打印接口
|
|
|
|
/service/print/doc
|
|
|
|
POST方法
|
|
|
|
参数说明 MultipartFile file:打印的文件
|
|
|
|
String clientCode, /**客户端编码-目标打印机的客户端*/
|
|
|
|
String printerName, 打印机名称必须传
|
|
|
|
String printType,不传默认为空
|
|
|
|
String printTime,计划打印时间,不传默认为当前系统时间
|
|
|
|
Integer copyCounts 打印数量不传默认为1
|