# printing-aggregation **Repository Path**: amottk/printing-aggregation ## Basic Information - **Project Name**: printing-aggregation - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-01 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 打印聚合桌面应用 基于 Electron、Vue 3 和 `vue-plugin-hiprint` 的本地打印模板设计工具。当前项目已经具备模板设计、打印机获取、静默打印和桌面端打包能力,适合用作标签、单据或自定义打印内容的设计与输出入口。 ## 当前能力 - 基于 Electron 构建桌面应用,支持 Windows、macOS、Linux 打包 - 基于 Vue 3 + Element Plus 提供界面与交互 - 集成 `vue-plugin-hiprint`,支持拖拽设计打印模板 - 内置常用设计元素: - 文本 - 图片 - 长文本 - 表格 - HTML - 横线 / 竖线 - 矩形 / 椭圆 - 二维码 / 条形码 - 支持切换 A3、A4、A5、B3、B4、B5 和自定义纸张尺寸 - 支持缩放画布、清空画布 - 通过 Electron IPC 获取本机打印机列表 - 支持将设计结果转为 HTML 并发起静默打印 ## 技术栈 - Electron - electron-vite - Vue 3 - Vue Router - Element Plus - Pinia - Sass - electron-builder - vue-plugin-hiprint ## 目录结构 ```text . ├── build/ # 打包图标与平台配置 ├── resources/ # 应用资源与设计器图标 ├── src/ │ ├── main/ # Electron 主进程 │ ├── preload/ # 预加载脚本,向渲染进程暴露 IPC 能力 │ ├── ipcManFuns/ # IPC 处理函数,当前主要为打印相关逻辑 │ └── renderer/ # Vue 渲染进程 │ ├── public/ # 静态资源 │ └── src/ │ ├── layouts/ # 页面布局 │ ├── pages/ # 页面模块 │ ├── routes/ # 路由配置 │ ├── store/ # 状态管理 │ └── utils/ # 工具方法 ├── electron.vite.config.mjs # Electron + Vite 配置 ├── electron-builder.yml # 打包配置 └── package.json # 依赖与脚本 ``` ## 页面说明 ### 首页 `/home` 当前为基础工作台页面,包含: - 新建 - 打开 - 最近使用 - 我的云端 - 我的分享 - 共享模板 该页面的列表与数据接入能力目前还在预留阶段。 ### 设计页 `/design` 当前项目的核心页面,包含: - 左侧物料面板:拖拽元素到画布 - 顶部工具栏:纸张尺寸、缩放、清空、打印机选择、打印 - 中间设计画布:基于 hiprint 进行模板设计 - 右侧属性面板:配置当前选中元素属性 ## IPC 能力 当前通过预加载脚本向渲染进程暴露 `printUtils`: - `getPrinterDevices` - 获取当前系统可用打印机列表 - `htmlPrint(params)` - 接收 HTML 内容和打印机名称 - 由主进程创建隐藏窗口并发起静默打印 相关实现位置: - `src/preload/index.js` - `src/main/setMain.js` - `src/ipcManFuns/print.js` ## 开发环境 建议环境: - Node.js 18 及以上 - npm 9 及以上 安装依赖: ```bash npm install ``` 启动开发环境: ```bash npm run dev ``` 预览构建结果: ```bash npm run start ``` 代码检查: ```bash npm run lint ``` 代码格式化: ```bash npm run format ``` ## 打包 先执行渲染进程与 Electron 构建,再由 `electron-builder` 生成安装包。 通用构建: ```bash npm run build ``` 按平台打包: ```bash npm run build:win npm run build:mac npm run build:linux ``` 仅生成未打包目录: ```bash npm run build:unpack ``` ## 配置说明 ### Electron 开发配置 `electron.vite.config.mjs` 当前配置: - 渲染进程别名:`@renderer -> src/renderer/src` - 开发服务端口:`5173` - 开发服务地址:`0.0.0.0` ### 打包配置 `electron-builder.yml` 当前配置: - `appId`: `com.electron.app` - `productName`: `my-app` - Windows 使用 NSIS - Linux 支持 `AppImage`、`snap`、`deb` - macOS 包含基础权限说明 ## 当前状态与注意事项 - 项目名称、`appId`、`productName` 仍是通用占位值,正式发布前应统一替换 - 首页目前以静态结构为主,尚未接入模板管理、云端存储或分享能力 - 设计页中的“新建 / 打开 / 保存”按钮目前只有界面,未接入文件读写流程 - 打印逻辑当前依赖本机打印环境,联调时需要在目标系统安装可用打印机 - 自动更新地址仍为示例地址,发布前需要替换为真实更新服务 ## 后续建议 - 接入模板的本地保存、打开、导入、导出能力 - 增加模板 JSON 持久化与版本管理 - 完善首页的数据来源与模板列表展示 - 补充打印结果反馈、错误处理和日志记录 - 在预加载层统一整理 IPC API,明确返回值与调用方式