# hiprint-transporter-java
**Repository Path**: dut_cc/hiprint-transporter-java
## Basic Information
- **Project Name**: hiprint-transporter-java
- **Description**: hiprint-transit-java 是一个基于 node-hiprint-transit 基底开发,用于在 electron-hiprint 客户端和 vue-plugin-hiprint 库之间充当中转服务,实现这些组件之间的无缝连接和打印操作。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2025-08-14
- **Last Updated**: 2025-11-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# hiprint-transit-java
`hiprint-transit-java` 是一个基于node-hiprint-transit与node-hiprint-pdf基底开发,用于在 `electron-hiprint` 客户端和 `vue-plugin-hiprint`
库之间充当中转服务,实现这些组件之间的无缝连接和打印操作以及用于在 HTML、PDF、图像(PNG)中生成 vue - plugin - hiprint 打印模板的 Java 服务器。
## 免费服务-用爱发电
| 版本 | 服务器信息 | 服务商 | 地域 | 有效期 | 服务器地址 | Token |
|-------|---------------|---------------|----|------------|-----------------------------|-----------|
| 0.0.5 | 2C2G4M 300G/m | Tencent Cloud | GZ | 2026-07-16 | https://v5.printjs.cn:17521 | hiprint\* |
以上服务免费开放,0.0.3 版本未进行 token 隔离,仅推荐用于开发测试。
本项目免费开源,承诺不会窃取以上免费服务运行中产生的任何数据,但不能保证服务过程中不会受到黑客攻击而导致数据泄露问题。
如果你的服务追求更高的 **稳定性、安全性、可靠性**,建议自行独立部署,有自研能力的团队可以使用后端语言重新编写。
## 使用 JDK 启动项目
### 1. 命令执行
```shell
nohup java -Dname=hiprint-transporter.jar -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC -jar hiprint-transporter.jar --spring.config.location=config/application.yml
```
## 配置
首次使用时,您需要需要修改配置文件
这将会引导你一步步完成初始化
./resources/application-prod.yml
```yaml
hiprint:
host: 0.0.0.0
# 服务端端口
port: 17521
epoll: false
# 服务端token
auth-token: print_mes
# 附件存储路径(/root/upload/files---liunx配置)
active: D:/root/upload/files/
```
如果你的配置有误或需要调整修改端口、token值,只需要重启即可。
(eg: 个人习惯都是把配置文件单独放在一个目录,方便修改)
## events打印注意:
1. 从 `hiwebSocket` 中发送 `news`、`render-print` 、`render-jpeg`、`render-pdf` ,目前参数接收为Object参数(其他参数会报错),
2. `hiwebSocket`进行emit时对应提交事件名称(
参考文档[docs](https://gitee.com/CcSimple/vue-plugin-hiprint/blob/main/apiDoc.md#312-render-api-%E8%8E%B7%E5%8F%96-jpegpdf%E6%89%93%E5%8D%B0))
**eg:(新增render类型事件回调成功、失败数据显示)**
```js
// java对应的注册事件注解中引用对应的是emit仲提交事件名称
`@OnEvent("news")`, `@OnEvent("render-print")` , `@OnEvent("render-jpeg")`, `@OnEvent("render-pdf")`
// hiwebSocket之间提交事件
const socket = hiwebSocket.socket;
socket.emit("render-jpeg", {
template: panel, // 模板对象
data: printData, // Object打印数据
});
```
> 如果你不提供 client 中转服务将抛出一个 error
## Window 系统启动项目
### 1. 下载打包文件
[点击下载](https://gitee.com/Xavier9896/node-hiprint-transit/blob/main/out/transit-setup-0.0.5.exe)
### 2. 指定解压缩路径
### 3. 运行 `start.bat` 脚本
## 模板生成 矢量 pdf、image、html
## API {{模板载入}}
**功能描述**: {{该接口模板JSON转换成PDF、图像(PNG)矢量附件,以及HTML结点获取}
**提示**
基于playwright 实现
首次使用会自动下载开源浏览器,并初始化
若转换内容有缺失,可尝试调整页面加载状态
options模板json数据缓存是两个小时;
附件下载与预览url缓存为永久不失效,获取到url时,务必保存,请勿丢失
```java
// 初步构建html转换器时候
HtmlConvertor convertor = PdfHandler.getDocumentConvertor().getHtmlConvertor();
convertor.setPageState(PageLoadState.NETWORKIDLE);
```
### 请求说明
**请求地址**
```http request
POST /api/template/load
```
### 参数说明
**query参数**
| 参数名 | 类型 | 必填 | 描述 |
|:----:|:------:|:--:|:--------------------------:|
| type | string | 否 | 类型参数image、pdf、html(默认为pdf) |
**Body参数**
```Body
{
"domId": "#hiprintTemplate", string 节点参数(type为html是,此参数必填)
"printData":{}, map 模板数据
"template": {} map 模板JSON
}
```
**响应参数**
```response
{
"code": 200,
"msg": "success",
"data": {
"html": "", string type为html会返回该参数,节点html
"downloadUrl": "", string 附件下载url
"viewUrl": "" string 附件预览url
}
}
```
> eg:
> 考虑构思每日定时清理附件生成问题,期待....
### 如果该项目对你有所帮助,请给我一个 star,谢谢!
## 周边生态项目
| 项目名称 | 项目地址 | 下载地址 | 描述 |
|----------------------|-------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|-------------------------------------------------------|
| vue-plugin-hiprint | [github](https://github.com/CcSimple/vue-plugin-hiprint)、[gitee](https://gitee.com/CcSimple/vue-plugin-hiprint) | [npm](https://www.npmjs.com/package/vue-plugin-hiprint) | 打印设计器 |
| electron-hiprint | [github](https://github.com/CcSimple/electron-hiprint)、[gitee](https://gitee.com/CcSimple/electron-hiprint) | [releases](https://github.com/CcSimple/electron-hiprint/releases) | 直接打印客户端 |
| node-hiprint-transit | [github](https://github.com/Xavier9896/node-hiprint-transit)、[gitee](https://gitee.com/Xavier9896/node-hiprint-transit) | - | web 与客户端中转服务 Node 实现 | | - | web 与客户端中转服务 Java 实现 |
| uni-app-hiprint | [github](https://github.com/Xavier9896/uni-app-hiprint) | - | uni-app 项目通过 webview 使用 vue-plugin-hiprint demo |
| node-hiprint-pdf | [github](https://github.com/CcSimple/node-hiprint-pdf) | - | 提供通过 node 对 vue-plugin-hiprint 模板生成 矢量 pdf、image、html |