[开源推荐] 基于 Vue 3 + Hiprint 的 Web 打印设计器 vg-print:拖拽设计、静默打印一站式方案

[开源推荐] 基于 Vue 3 + Hiprint 的 Web 打印设计器 vg-print:拖拽设计、静默打印一站式方案

在 Web 开发中, 打印功能 一直是一个让人头疼的痛点。传统的 CSS 打印难以精确控制分页、页眉页脚和复杂布局,而市面上的打印插件要么收费昂贵,要么集成复杂。

最近在项目中基于著名的 hiprint 库,封装了一套 开箱即用 的 Vue 3 打印设计组件库 —— vg-print 。它不仅支持可视化拖拽设计模板,还集成了预览、PDF/图片导出,甚至支持配合客户端实现 静默打印 。今天就把这个开源项目分享给大家,希望能帮到有类似需求的开发者。
为什么选择 vg-print?
vg-print 是一个基于 Vue 3 生态的打印解决方案。它不仅仅是对 hiprint 的简单封装,更提供了一个完整的 FullDesigner 设计器组件。

核心痛点解决:

  • 可视化设计 :不再手写复杂的打印样式,直接拖拽生成模板。
  • 开箱即用 :引入组件即可使用,无需繁琐的初始化配置。
  • 功能全面 :支持预览、打印、导出 PDF、导出图片。
  • 静默打印 :内置 WebSocket 连接功能,配合客户端可实现点击即打,无需弹出浏览器打印对话框。

无限制 :无域名限制,支持离线使用,完全免费。 功能展示

在这里插入图片描述

主要特性:

  1. FullDesigner 组件 :全功能设计器,集成了头部操作栏和预览功能。
  2. 多格式导出 :内置了 PDF 和图片导出插件,生成高清报表。
  3. 多语言支持 :支持中、英、德、法、日等多国语言,适合国际化项目。
  4. 响应式布局 :自动适应不同屏幕尺寸,小屏下自动折叠次要按钮。 快速上手
    下面演示如何在 Vue 3 项目中快速集成。
  5. 安装依赖
npm i vg-print 
  1. 引入样式

为了保证打印样式在不同环境下(如预览、直接打印)的一致性,建议将样式文件引入到项目中。

  1. 使用 FullDesigner 组件

这是最简单的集成方式,直接在页面中使用 :

<template><div class="print-page"><FullDesigner ref="designer":initial-template="initialTemplate":initial-print-data="printData"default-lang="cn" @save="handleSave"><!-- 自定义头部左侧 --><template #headerLeft><div class="header-title">我的打印设计器</div></template><!-- 自定义头部右侧按钮 --><template #headerRight><el-button type="primary" @click="handlePreview">预览</el-button><el-button type="success" @click="handlePrint">直接打印</el-button></template></FullDesigner></div></template><script setup>import{ ref }from'vue'// 引入 vg-print 组件(假设已全局注册或局部引入)const designer =ref(null)// 初始模板数据(可选)const initialTemplate ={panels:[]}// 打印测试数据const printData =[{name:'测试用户',id:1001}]// 保存模板回调consthandleSave=({ template, data })=>{ console.log('保存的模板JSON:',JSON.stringify(template))// 这里可以将 template 保存到后端数据库}// 调用组件内部方法consthandlePreview=()=>{ designer.value?.value?.preView()}consthandlePrint=()=>{ designer.value?.value?.print()}</script><style scoped>.print-page {height: 100vh;}.header-title { font-size: 18px; font-weight: bold;color: #fff; margin-left: 10px;}</style>

进阶:静默打印
对于需要高频打印的场景(如快递单、小票),浏览器自带的打印预览窗口非常影响效率。 vg-print 支持连接本地客户端进行静默打印。

只需配置 hi-host 和 hi-token 即可:

<FullDesigner :hi-host="'http://127.0.0.1:17521'":hi-token="token":hi-auto-connect="true"/>

配合配套的 Electron 客户端,即可实现点击按钮直接出纸。

在这里插入图片描述

配套客户端下载:

为了实现静默打印,需要安装专门的客户端工具。我已经将编译好的安装包上传到了 ZEEKLOG,大家可以直接下载使用:

👉 点击下载:静默打印客户端工具 (Windows/Mac)

欢迎大家下载体验,如果有问题可以在评论区留言或者在 GitHub 上提 Issue!

Read more

Flutter for OpenHarmony:nm — Linux 风格的网络底层管控实践(适配鸿蒙 HarmonyOS Next ohos)

Flutter for OpenHarmony:nm — Linux 风格的网络底层管控实践(适配鸿蒙 HarmonyOS Next ohos)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 前言 在鸿蒙(OpenHarmony)桌面版或车载系统中,底层常沿用 NetworkManager 架构。nm 库通过 D-Bus 总线与系统守护进程交互,为开发者提供了切换 WiFi、配置 IP 及监控网卡状态等工业级网络管控能力。 一、核心价值 1.1 基础概念 nm 库是一个 D-Bus 客户端包装,它实现了 NetworkManager 的对象映射。 D-Bus 指令 鸿蒙 Flutter 应用 NetworkManager 守护进程 WiFi 管理模块 以太网/蜂窝网模块 VPN/路由配置 鸿蒙系统底层网卡驱动 1.2 进阶概念

By Ne0inhk
【2026版】Windows 安装 Docker 保姆级教程

【2026版】Windows 安装 Docker 保姆级教程

🚀 告别环境配置烦恼,一键部署容器化应用 一、为什么选择 Docker? * ✅ 跨平台一致性:一次构建,处处运行 * ✅ 资源高效利用:秒级启动,隔离进程 * ✅ 微服务友好:简化复杂应用部署 * ✅ 生态丰富:海量官方镜像开箱即用 二、安装前必读:两大版本区别 版本适用设备市场占有率AMD64Intel/AMD 主流 CPU 的 Win10/11>99%ARM64Surface Pro X 等 ARM 架构设备<1% 💡 普通用户 99% 选 AMD64! 查看本机架构:设置 > 系统 > 关于 → 检查 “系统类型” 三、安装步骤详解(以

By Ne0inhk
自动化机器学习实战:从调参苦力到AI工程师的解放

自动化机器学习实战:从调参苦力到AI工程师的解放

目录 摘要 1. 🎯 开篇:为什么我们需要AutoML? 2. 🧮 核心技术:超参数优化与神经架构搜索 2.1 超参数优化:从网格搜索到贝叶斯优化 2.2 神经架构搜索:让AI设计AI 3. ⚙️ 主流框架:AutoGluon vs TPOT 3.1 AutoGluon:亚马逊的工业级AutoML 3.2 TPOT:基于遗传算法的AutoML 3.3 框架性能对比 4. 🛠️ 实战:完整AutoML系统构建 4.1 自定义AutoML框架 4.2 分布式AutoML架构 5. 🏢 企业级应用:金融风控AutoML系统 5.1 系统架构设计 5.2 完整实现代码

By Ne0inhk
KWDB 3.1.0 在 Ubuntu 22.04 部署实战:TLS 配置、踩坑复盘与轻量压测

KWDB 3.1.0 在 Ubuntu 22.04 部署实战:TLS 配置、踩坑复盘与轻量压测

KWDB 作为一款易用性不断优化的数据库产品,其 3.1.0 版本在运维脚本、配置管理等方面的升级为部署带来了便利,但新手在单机部署过程中仍易因环境适配、依赖缺失、配置不当等问题踩坑。为帮助开发者快速落地 KWDB 单机环境,本文以 Ubuntu 22.04 为基础环境,从实战角度出发,完整拆解 KWDB 3.1.0 单机部署的全流程:不仅明确版本选型依据和部署目标,还细化了环境核查、安装包获取、依赖配置、部署脚本执行等关键操作,针对性解决部署中的高频问题,并通过服务验证、性能基线测试完成最小化验收,最终实现 “安装即能用、问题有解法、效果可验证” 的部署目标,为 KWDB 入门者提供清晰、可复现的实操指引。 文章目录 * 1. 版本与部署路线怎么选 * 2. 目标:这篇文章读完,能带走哪些“

By Ne0inhk