尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Vue Document Editor 快速上手指南:Vue 3 纸面 WYSIWYG 文档编辑器教程

Vue Document Editor 快速上手指南:Vue 3 纸面 WYSIWYG 文档编辑器教程 Vue Document Editor 快速上手指南Vue 3 纸面 WYSIWYG 文档编辑器教程【免费下载链接】vue-document-editor:page_facing_up: Paper-sized WYSIWYG document editor for Vue apps项目地址: https://gitcode.com/gh_mirrors/vu/vue-document-editor如果你在用 Vue 开发需要打印或导出的业务文档合同、发票、报告vue-document-editor 能直接给你一个纸面大小的 WYSIWYG 编辑器内容溢出自动分页A4 尺寸、页边距、页眉页脚都能控制。本指南面向新手和普通开发者带你先把本地 Demo 跑起来再讲清楚核心文件在哪里、最常改的参数是什么。先确认它适合你的场景这个库基于浏览器原生的 contenteditable 实现定位不是完整的文字处理软件而是对已排好版的文档做定向修改或用交互式模板填内容。如果你的需求是富文本写作它并不合适。它内置的能力包括用 Vue 组件作为交互式页面模板逐词分页实验特性仅限纯 HTML 内容原生打印兼容页面尺寸和页边距用毫米动态设置页面覆盖层页眉、页脚、页码手动分页、缩放和多种页面显示模式grid / horizontal / vertical读取光标位置的文本样式两点提醒库本身不带工具栏Demo 里的顶栏来自另一个组件 vue-file-toolbar-menu当前仓库服务 Vue 3版本 2.3.2Vue 2 项目要安装 1.x 版本。克隆仓库并启动本地 Demo在本地把 Demo 跑通是最快的验证方式git clone https://gitcode.com/gh_mirrors/vu/vue-document-editor cd vue-document-editor npm install npm run servenpm run serve启动后打开终端提示的地址你应该能看到一个多页 A4 文档、顶部工具栏、一个发票模板页来自示例模板组件。改代码会自动热更新方便你边改边看效果。两种使用方式按项目情况选在自己的 Vue 3 项目里执行npm install vue-document-editorVue 2 项目装vue-document-editor1偏好静态文件时直接使用构建产物dist文件夹里的文件生产构建用npm run build它先把 Demo 构建到docs目录再把src/DocumentEditor/DocumentEditor.vue打包成名为 VueDocumentEditor 的库文件。找到入口文件和脚本配置src/main.jsDemo 的启动点这个文件很短对你最大的价值是演示了 Demo 怎么被挂载它createApp的是 Demo.vue不是某个 App.vue然后挂载到#app并开启了 devtools。想换 Demo 的初始内容、顶栏菜单或缩放范围从这里跳进 Demo.vue 改即可。src/DocumentEditor/DocumentEditor.vue库的本体package.json 里的main字段指向它——这就是你项目里import进来的组件本体。Demo.vue 则是完整用法参考content、overlay、zoom、页面格式等参数怎么传看它就明白了。配套的 InvoiceTemplate.ce.vue 展示了交互式模板怎么写。package.json脚本与依赖scripts.servevue-cli-service serve开发热重载scripts.build先构建 Demo 到 docs再用--target lib打包库devDependencies 里是vue ^3.2.45和vue/cli-service ^5.0.8说明项目基于 Vue CLI 5另外 vue.config.js 只设了publicPath: 意味着构建产物可以放到任意子路径下部署不需要再动配置。修改页面尺寸、模板与页眉页脚 文档内容由v-model:content驱动它接收一个数组数组每一项对应一次分页template vue-document-editor v-model:contentcontent :page_format_mmpage_format_mm :page_marginspage_margins :overlayoverlay :displaydisplay / /template数组项有两种写法HTML 字符串溢出会自动分到新页或者对象{ template: markRaw(YourComponent), props: {} }交互式模板占一整页溢出部分被隐藏。模板如果带自定义 CSS文件名必须用.ce.vue扩展名可参照 InvoiceTemplate.ce.vue。常用 props完整列表见 API.mdpage_format_mm默认[210, 297]即 A4page_margins默认10mm 15mm也支持按页码返回不同边距的函数overlay返回 HTML 字符串的函数参数是页码和总页数用来加页眉、页脚、页码display/zoom页面排列方式和屏幕缩放do_not_break指定哪些元素不许跨页拆开页面外观背景、阴影、边框、圆角通过覆盖 4 个 CSS 变量实现不影响打印:root { --page-background: unset; --page-box-shadow: unset; }排障分页、打印与撤销的已知限制⚠️ 动手前建议先知道这些坑都是项目 README 中明确记录的撤销/重做分页机制会在每次输入时改写 HTML原生历史栈会失效。需要自己监听content变化、把状态存进栈再恢复Demo.vue 里有现成实现可以直接抄长文本性能超长内容应拆成多个段落页数很多时整个文档会变慢Safari 打印会额外加打印边距需要在打印对话框里手动选无边距纸张图片和表格内置没有定位和尺寸控制需要按业务自己实现表格行可以正常跨页Vue 组件模板不能跨页库无法拆分 Vue 管理的内容只有纯 HTML 才会自动分页想保留局部交互可用contenteditablefalse加 onclick 自己写下一步建议先只传一段 HTML 字符串的 content 数组验证自动分页和打印输出需要页码或页眉时再写overlay函数需要交互式模板时照着 Demo.vue InvoiceTemplate.ce.vue 复制一份改成自己的字段。历史版本的行为变化可以查 CHANGELOG.md。【免费下载链接】vue-document-editor:page_facing_up: Paper-sized WYSIWYG document editor for Vue apps项目地址: https://gitcode.com/gh_mirrors/vu/vue-document-editor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表