feat: 实现 DOCX 媒体预处理与跨端 PNG 捕获
This commit is contained in:
+38
-2
@@ -91,6 +91,13 @@ H1~H6、加粗、斜体、删除线、行内代码、代码块、引用、三
|
||||
同步。外部文档替换会重置历史,单次工具栏操作形成一个 CodeMirror
|
||||
事务。
|
||||
|
||||
`v0.6.0` 阶段 5 已完成 DOCX 资源预处理管线:复用连续预览运行时等待
|
||||
图片、Mermaid、ECharts 和字体,按纸张内容区生成稳定媒体捕获计划;
|
||||
Server 使用 Playwright Chromium、Desktop 使用 Electron Chromium,
|
||||
统一将所有媒体捕获为 PNG。目标为 300 DPI,并限制 4096px 单边、1600
|
||||
万像素、8 MiB 单图和 30 MiB 总量。本阶段只提供共享服务和平台适配器,
|
||||
尚未新增 DOCX HTTP 路由、应用 IPC、Pandoc 调用或导出按钮。
|
||||
|
||||
## 2. 已完成
|
||||
|
||||
### 2.1 项目骨架
|
||||
@@ -568,8 +575,36 @@ H1~H6、加粗、斜体、删除线、行内代码、代码块、引用、三
|
||||
关闭时对未保存内容进行确认;另存为成功后当前窗口追踪新文件路径,
|
||||
Web 端不显示或拦截“另存为”。
|
||||
|
||||
### 3.21 v0.6.0 DOCX 资源预处理
|
||||
|
||||
- `packages/core` 新增图片、Mermaid、ECharts 的媒体类型、捕获计划、
|
||||
PNG 资源清单和跨端限制常量;
|
||||
- `packages/preview-engine` 复用连续文档运行时建立 DOCX 媒体舞台,
|
||||
等待图片、字体和图表完成后按 DOM 顺序生成捕获目标;
|
||||
- 媒体按纸张方向、纸张尺寸、主题默认页边距和用户页边距限制显示宽高;
|
||||
- 普通图片、SVG、Mermaid 和 ECharts 统一输出 PNG,默认 300 DPI,
|
||||
超大媒体会按 4096px 单边和 1600 万像素上限降低倍率;
|
||||
- 捕获框使用覆盖元素边界的整数坐标,避免 Chromium 对小数坐标缩放时
|
||||
裁切边缘或产生不可预测的位图尺寸;
|
||||
- `packages/application` 校验捕获计划、媒体 ID、PNG 签名、IHDR 尺寸、
|
||||
单图大小、总大小和计划匹配关系,并生成稳定文件名;
|
||||
- Server 的 Playwright 与 Desktop 的 Electron 适配器均使用 Chromium
|
||||
DevTools 截图协议,不引入 Sharp、Python 或其他原生图片依赖;
|
||||
- 真实 Chromium 冒烟已将输入 SVG 图片、Mermaid 和 ECharts 依次输出为
|
||||
753×378、809×222、2103×591 PNG,图表错误均为 0。
|
||||
|
||||
## 4. 已执行验证
|
||||
|
||||
2026-07-30 对 v0.6.0 阶段 5 执行:
|
||||
|
||||
- 完整工作区 61 个测试文件、308 项测试全部通过;
|
||||
- Markdown ECharts、Core、Renderer、Application、Preview Engine、
|
||||
Web、Server 和 Desktop 类型检查全部通过;
|
||||
- Web Runtime、Server 和 Desktop 生产构建通过;
|
||||
- 真实 Playwright Chromium 使用 SVG 图片、Mermaid 和 ECharts 完成
|
||||
300 DPI PNG 捕获,媒体顺序、尺寸、格式和错误清单验证通过;
|
||||
- `git diff --check` 通过,仅有 Git 对 Windows 工作区换行转换的提示。
|
||||
|
||||
2026-07-29 对 v0.5.1 完整工作区及最终代码块修复执行:
|
||||
|
||||
```text
|
||||
@@ -974,8 +1009,9 @@ ECharts 第二阶段浏览器与 PDF 验证结果:
|
||||
分发方式;
|
||||
- 阶段 3:已实现 DOCX 共享模型和跨端导出协议;
|
||||
- 阶段 4:已实现 CodeMirror 6 与可扩展基础 Markdown 工具栏;
|
||||
- 阶段 5~8:依次实现资源预处理、动态 reference.docx、Pandoc 转换服务
|
||||
以及 Web/Desktop 导出交互;
|
||||
- 阶段 5:已实现 DOCX 资源预处理和跨端 Chromium PNG 捕获适配器;
|
||||
- 阶段 6~8:依次实现动态 reference.docx、Pandoc 转换服务以及
|
||||
Web/Desktop 导出交互;
|
||||
- 阶段 9~10:完成自动化和 Word/WPS 互操作验收,再构建正式发布产物。
|
||||
|
||||
每个阶段验收通过后创建一个独立提交,再进入下一阶段。当前阶段不得混入
|
||||
|
||||
Reference in New Issue
Block a user