打印服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
4.0 KiB

<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>
#技术方案
4 months ago
##方案介绍
轻量级独立的打印服务,用于打印集中管理,远程打印服务,提供远程接口访问,打印任务下发,打印日志,打印方案配置,模版管理,是否用户鉴权(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