PDF 模板设计器(pistanuts-customdesignpdf) — 可视化拖拽式 PDF 产品系统

我要开发同款
微信用户22590025062026年07月21日
4阅读

技术信息

语言技术
JavaSpringMybatisVueElementUI
系统类型
WebWeb3
行业分类
开发工具

作品详情

行业场景

面向企业文档管理与批量 PDF 生成场景,典型应用包括:

场景 说明
合同类 销售合同、采购合同、合作协议等模板设计与批量生成
报表类 财务报表、统计报告、数据分析报告模板定制
标签类 物流标签、商品标签、货架标签打印输出
单据类 发票、收据、凭证、运单等模板化管理
航空物流 航空运单(HAWB)信息管理与 PDF 输出
目标用户是业务人员 / 模板设计师,无需编程即可通过拖拽方式设计 PDF 模板并通过数据源自动填充生成

功能介绍

系统围绕"拖拽设计 → 数据绑定 → PDF 生成"核心流程,提供以下功能:

模板设计器:左侧组件面板拖入画布,支持静态文本、动态字段、图片、表格、线条等组件,所见即所得实时预览,8 方向缩放,辅助线吸附对齐
数据源管理:创建自定义数据源,字段类型含 STRING/NUMBER/DATE/BOOLEAN/LIST,标识名与显示名分离
动态数据绑定:模板绑定数据源后字段路径联动,支持金额千分位、日期中文格式等格式化,空值显示占位符
双模式 PDF 生成:API 模式(远程取数自动填充)和手动填写模式,基于 PDFBox 嵌入 Noto Sans SC 中文字体,5 秒内生成,浏览器预览与下载
模板管理:卡片式列表展示缩略图/分类/时间,支持新建、复制、软删除,业务分类含合同/报表/标签/其他
模板使用记录:记录每次生成的模板、文件名、操作人、数据快照,支持重新应用与下载
操作日志:AOP 自动记录增删改操作(模块/动作/操作人/IP/耗时/状态),SpEL 动态描述
草稿保护:localStorage 定时自动保存(5 秒防抖),vue-i18n 国际化支持

项目实现

架构:前后端分离,Vue 3 SPA 三栏式界面(组件面板-画布-属性面板),通过 Axios 调用 Spring Boot REST API,MyBatis-Plus 操作 MySQL 5.6。

核心模块:

PdfGeneratorService:按 zIndex 排序遍历组件 JSON,PDFBox 逐组件渲染(文字/图片/线条/表格),像素坐标按 DPI 换算毫米坐标,嵌入 TTF 中文字体
前端画布:vue3-draggable-resizable 驱动拖拽缩放,Pinia canvasStore 管理组件状态,html2canvas 生成缩略图
操作日志:@RecordLog 注解 + AOP 切面 + SpEL 动态描述,自动记录写操作
数据库:单表 pdf_template,核心字段 components_json(LONGTEXT 存 JSON 组件数组),兼容 MySQL 5.6 无原生 JSON 类型。

进度:阶段一~四(项目搭建、基础设施、拖拽生成 PDF、模板管理 CRUD)已完成,阶段五~七(样式布局增强、数据格式化、纸张辅助线)进行中。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论