Skip to content

EasyInkPrint is Easy

面向开发者的文档/报表设计器框架。Schema 驱动、设计器与预览器分离、物料体系可扩展,以 Vue 组件形式嵌入你的应用。

EasyInk Logo

四层架构

从宿主应用到基础模型,每一层职责清晰、依赖单向。

宿主应用
host-app
设计器 / 预览器
@easyink/designer@easyink/viewer@easyink/builtin
核心能力
@easyink/core@easyink/datasource@easyink/export-runtime@easyink/ui
基础模型
@easyink/schema@easyink/material-*@easyink/shared@easyink/icons

技术栈

现代前端工程体系,类型安全、高内聚、低耦合。

Vue 3 Composition API
🔷 TypeScript 严格模式
📦 pnpm Monorepo
🔧 tsdown 构建
🧪 Vitest 单元测试
🎭 Playwright E2E
📐 CSS Variables 主题
🧹 ESLint 代码规范

生态系统

围绕 EasyInk Schema 构建的完整工具链。

@easyink/designer
完整的设计工作台 Vue 组件。画布编辑、物料拖放、属性面板、撤销重做、自动保存,开箱即用。
@easyink/viewer
独立的渲染/打印/导出运行时。iframe 隔离,接收 Schema + 数据即可预览、分页、打印、导出 PDF。
@easyink/ai
浏览器端 AI 对话面板。MCP Client + Designer Contribution,通过意图优先管线生成模板。
@easyink/mcp-server
Node 端 MCP Server。LLM Provider 抽象(Claude / OpenAI),支持 Docker 部署,可独立运行。
@easyink/schema
文档 Schema 类型定义、默认值、版本迁移和序列化。EasyInk 的核心数据模型。
@easyink/schema-tools
Schema 校验与 DataSource 对齐工具。Node + 浏览器双运行时,AI 管线的确定性构建层。
@easyink/core
命令管理器、选区、几何运算、吸附对齐、分页引擎、参考线。设计器与预览器的共享内核。
@easyink/datasource
字段树协议、数据源引用、绑定规则、格式化规则。支持运行时动态注册和 MCP 数据源注入。

三种状态,各司其职

EasyInk 明确区分模板状态、工作台状态和运行时状态,避免状态混乱。

模板状态
存储在 Schema 中,支持撤销重做,可持久化、可导入导出。页面、元素、绑定、分页配置均属此类。
工作台状态
窗口布局、缩放参数、面板开关。用户偏好,静默持久化,不进入 Schema,不影响撤销重做。
运行时状态
Viewer 当前页、缩略图缓存、字体加载、打印任务。生命周期短,不持久化,随 Viewer 实例销毁。