[开源推荐] 基于 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

SQL之用户管理——权限与用户

SQL之用户管理——权限与用户

目录 1. 用户相关 1.1 查看已存在用户的信息 1.2 创建新用户 1.3 删除用户 1.4 修改用户登入密码 2. 权限相关 2.1 给用户权限 2.2 回收权限 我们在MySQL的学习过程中一开始基本上都是使用root用户来进行各种操作的,但是其实这样是不好的,因为我们在以后工作的时候是不可能给你root用户来进行操作的,所以我们在这里要提前适应普通用户。 1. 用户相关 我们首先要学会查看用户的信息,再我看来这是第一步,接着我们在学会创建,销毁用户之类的操作。 1.1 查看已存在用户的信息 use mysql; select host,user,authentication_string from user; 我们需要使用到上面两条指令来进行查看信息。 不知道各位有没有这个疑惑,就是我是查看用户信息又不是所有某一个数据库,为什么需要先use mysql呢?

By Ne0inhk
Flutter 组件 okay 的适配 鸿蒙Harmony 实战 - 驾驭类型化结果包装、实现鸿蒙端函数式异常处理与逻辑自愈架构方案

Flutter 组件 okay 的适配 鸿蒙Harmony 实战 - 驾驭类型化结果包装、实现鸿蒙端函数式异常处理与逻辑自愈架构方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 okay 的适配 鸿蒙Harmony 实战 - 驾驭类型化结果包装、实现鸿蒙端函数式异常处理与逻辑自愈架构方案 前言 在鸿蒙(OpenHarmony)生态的分布式事务处理、金融支付核心链路以及对系统鲁棒性有极致要求的复杂业务逻辑开发中,“错误的精确支配”是工程质量的最后一道防线。面对一个可能因断网、鉴权失效或数据格式错误而失败的 API 调用。如果仅仅依靠原始的 try-catch 捕获所有 Exception。那么不仅会导致业务逻辑代码中充斥着大量的跳转噪音、使代码流程变得支离破碎。更会因为无法在类型层面强制开发者处理异常逻辑,引发严重的运行时“空指针引发的崩溃”事故方案。 我们需要一种“显式包装、类型受控”的逻辑处理艺术。 okay 是一套专注于引入 Rust/Swift 风格的 Result 类型(或者称为 Ok/Err 模式)

By Ne0inhk
你真的会打印日志吗?基于 Spring Boot 的全方位日志指南

你真的会打印日志吗?基于 Spring Boot 的全方位日志指南

—JavaEE专栏— 目录 * 一、日志概述:为什么它比 System.out.println 更重要? * 1.1 日志的核心用途 * 1.2 为什么弃用标准输出? * 二、日志框架体系:门面模式的深度解析 * 2.1 门面模式 (Facade Pattern) * 2.2 常见框架对比 * 三、实战:Spring Boot 日志的基本使用 * 3.1 传统方式获取日志对象 * 3.2 进阶方式:使用 Lombok (@Slf4j) * 四、深入理解日志级别 * 五、日志的高级配置 (application.yml) * 5.1 修改日志级别 * 5.

By Ne0inhk
基于SpringBoot和Leaflet的省级行政区及其简称可视化实践

基于SpringBoot和Leaflet的省级行政区及其简称可视化实践

目录 前言 一、省级行政区及简称 1、省级行政区及其简称 2、映射对应关系管理 3、使用若依进行管理 二、PostGIS存储与检索 1、涉及的相关表 2、省级行政区及简称检索 三、应用的设计与实现 1、Java后端程序实现 2、Leaflet前端实现 四、成果展示 1、东北地区 2、华北地区 3、华东地区 4、华中地区 5、华南地区 6、西南地区 7、西北地区 五、总结 前言         在当今数字化与信息化飞速发展的时代,地理信息的可视化呈现已成为众多领域不可或缺的关键环节。从城市规划到资源分配,从公共服务布局到商业智能决策,直观、高效地展示地理区域相关数据,能为各类决策提供有力依据,帮助人们更好地理解复杂的空间关系和数据分布。省级行政区作为国家行政体系的重要构成单元,

By Ne0inhk