dsh-ppt 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@
4
4
 
5
5
  [历史英文记录](docs/CHANGELOG.en.md)
6
6
 
7
+ ## 0.8.1 (2026-10-03)
8
+
9
+ - 演示文稿工作台、质量提醒和后台失败引导跟随宿主中文 / English 切换;正文、成品语言与工程内容保持原样。
10
+ - 验收范围见 [中英文界面检查](docs/validation-language-2026-10-03.md)。
11
+
7
12
  ## 0.8.0 (2026-10-02)
8
13
 
9
14
  - Add an authenticated DSH presentation workbench: click-to-focus text, edit fields/notes, replace uploaded PNG/JPEG, reorder pages, undo and download regenerated artifacts.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 stardustlc
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 stardustlc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/cordis.patch.yml CHANGED
@@ -1,19 +1,19 @@
1
- # dsh-ppt:演示文稿技能 + 工具插件(DeepSeek Harness 插件)。
2
- #
3
- # 安装即同时注册:
4
- # 1. 技能 dsh-ppt(把一句话/一篇文档变成完整演示文稿的完整 SOP)
5
- # 2. 工具 ppt_create / ppt_themes(确定性生成 HTML 网页放映 + PPTX 导出)
6
- #
7
- # 插件自带空配置,绝不弄崩启动;无需任何账号或密钥。可选配置:
8
- #
9
- # - id: dsh-ppt
10
- # config:
11
- # outputDir: E:\decks # 可选:默认写入会话工作目录
12
- # maxSlides: 40 # 可选:单次生成幻灯片上限,默认 60
13
- # defaultTheme: data # 可选:默认视觉主题
14
- # defaultLang: zh # 可选:默认界面语言 zh/en/bilingual
15
- #
16
- - insert:
17
- - id: dsh-ppt
18
- name: dsh-ppt
19
- config: {}
1
+ # dsh-ppt:演示文稿技能 + 工具插件(DeepSeek Harness 插件)。
2
+ #
3
+ # 安装即同时注册:
4
+ # 1. 技能 dsh-ppt(把一句话/一篇文档变成完整演示文稿的完整 SOP)
5
+ # 2. 工具 ppt_create / ppt_themes(确定性生成 HTML 网页放映 + PPTX 导出)
6
+ #
7
+ # 插件自带空配置,绝不弄崩启动;无需任何账号或密钥。可选配置:
8
+ #
9
+ # - id: dsh-ppt
10
+ # config:
11
+ # outputDir: E:\decks # 可选:默认写入会话工作目录
12
+ # maxSlides: 40 # 可选:单次生成幻灯片上限,默认 60
13
+ # defaultTheme: data # 可选:默认视觉主题
14
+ # defaultLang: zh # 可选:默认界面语言 zh/en/bilingual
15
+ #
16
+ - insert:
17
+ - id: dsh-ppt
18
+ name: dsh-ppt
19
+ config: {}
@@ -1,50 +1,50 @@
1
- # PPT 0.6 功能与验收方案
2
-
3
- 目标:保留现有主题和放映体验,同时让图片、数据图表、单页修改、撤销、质量检查和场景模板成为完整工作流。
4
-
5
- ## 技术选择
6
-
7
- - 复用 MIT 许可的 `@office-kit/pptx@0.21.0`,按精确版本锁定其尚未稳定的 0.x API。
8
- - 官方源码:https://github.com/office-kit/pptx 。官方示例:https://office-kit.github.io/pptx/docs/recipes 。npm 版本与许可证已核对。
9
- - 原型先生成现有 PPTX,再用库加入图表并回写。已确认原生图表、内嵌 XLSX、备注、转场和要点时序树仍在包内。正式验收还需真实渲染,不能用 ZIP 结构检查代替。
10
- - HTML 保留现有离线播放器。图表使用本地 SVG 展示,PPTX 使用原生图表对象;两者共享归一化数据。图片只接受本地 PNG/JPEG 或这些格式的 data URI,统一嵌入,避免外链失效。
11
- - 原同步 `buildDeck`/`buildPptx` 保留文字版兼容性。增加异步 `buildDeckAsync`,插件工具与 CLI 走此入口,图片/图表依赖只在需要时载入。跨 harness 技能目录携带依赖清单,按文档安装。
12
-
13
- ## 用户功能
14
-
15
- | 能力 | 行为 | 验收 |
16
- | --- | --- | --- |
17
- | 图片 | `image`、`image-left`、`image-right` 布局,contain/cover 保比例缩放或居中裁切,替换图片,离线嵌入 | 中文路径、横竖图、移走原图后 HTML/PPTX 可显示;坏图或路径报页码且不覆盖旧文件 |
18
- | 单页修改 | `ppt_edit` 用 1-based 页码或稳定 ID 合并指定字段,清空可选字段用 null,其他页不重新生成正文 | 原页面内容和 ID 保持一致;多页修改一次提交;错误与版本冲突无部分写入 |
19
- | 撤销 | JSON 保存最多 20 次内容快照,`ppt_undo` 恢复上一内容版本并递增修订号 | 文字、图表、图片和品牌一起恢复;原图删掉后仍能撤销;无历史时明确提示 |
20
- | 质量检查 | `ppt_check` 返回页码、稳定 ID、严重度、原因与建议;生成和修改也附报告 | 长标题、密集要点、潜在溢出、低分辨率、缺资产、模板未填、低对比度均有可复现用例;标明估算不能保证所有字体渲染 |
21
- | 图表 | column/bar/line/pie,categories+series 或二维表,严格校验有限数值、类别一致性和饼图约束 | 4 类 HTML/SVG 数据匹配;PPTX 原生图表与内嵌 Excel 数据匹配;Windows 真实打开/渲染 |
22
- | 模板与品牌 | weekly/defense/project/pitch 可查询大纲与骨架,模板空白位置标注待填;品牌主色、背景色、文字色、字体、Logo、页脚 | 4 场景各生成;品牌出现在 HTML 和 PPTX;内容由用户或代理提供,示例数字不当作事实 |
23
-
24
- ## 数据与文件规则
25
-
26
- - JSON 添加 manifest schema、deck ID、revision、稳定 slide ID、嵌入资产字典、品牌、模板、质量报告和非递归历史。
27
- - 图片有单文件和总量上限;历史限制条数与总大小。历史保留的资产不能在更新时错误清理。
28
- - 编辑仅支持本插件 JSON 工程;任意外部 PPTX 导入不属于这次范围。
29
- - 修改先验证和生成全部输出,再对 HTML/PPTX/JSON 统一提交。检查预期修订号和原文件摘要,防止覆盖并行修改。
30
- - 图片相对路径依据 DSH 当前会话工作目录解析。编辑工程路径同样遵循会话目录,不改进程 cwd,不读取或输出 API 密钥。
31
- - AbortSignal 在加载、导出和提交前检查。取消时不留下半套输出。
32
-
33
- ## 交付顺序
34
-
35
- 1. 原有测试基线;增加数据/失败/文件事务回归,再接入工具和 CLI。
36
- 2. 四场景、所有图片布局和图表类型的 HTML 浏览器操作与视觉检查,指定页修改和撤销。
37
- 3. Windows PPTX 渲染及数据编辑能力检查;检查旧主题、表格、备注、动效回归。
38
- 4. 同步中英文文档、技能指南和变更记录,构建入库 lib。
39
- 5. GitHub 提交推送、CI、npm 最终 tarball 全新安装和官方 DSH 0.2.0-rc.2 契约/启动验收。
40
- 6. 发布独立插件并核验 registry,再更新 Suite 精确版本与锁文件、CI、安装与发布;核对本地和云端。
41
-
42
- ## 官方渲染接入与协作
43
-
44
- 与“了解 dsh-libreoffice-kit”会话协作,对面负责 deck-render.mjs、渲染回归与渲染方案文档,本会话整合工具/CLI/文档/提交/发布。明确授权为成熟方案完成后直接开工、提交和npm更新。
45
-
46
- 官方 @deepseek-ai/libreoffice-kit@0.1.3 作为精确版本可选peer,读取已生成的PPTX,输出逐页PNG/PDF,不重写可编辑源文稿。ppt_render按实际页面尺寸换算DPI,统一期限、取消、输入/输出限制和独占目录,失败清理仅限本次产物。
47
-
48
- ppt_check分别展示静态估算、摘要匹配的渲染证据和未自动通过的视觉状态。收据核验源PPTX与所有输出;任何内容变更后重新渲染。CLI显式收据失效返回非零。缺失字体须替换为可用字体,再生成并检查;字体负例渲染成功但中文重叠,不能把成功状态当作成品验收。
49
-
50
- Windows实际Office打开与官方Kit原生渲染均用最终11页样例验证,不读取或输出API密钥。最终tarball需在没有可选引擎的消费者安装中证明普通启动/生成仍正常。
1
+ # PPT 0.6 功能与验收方案
2
+
3
+ 目标:保留现有主题和放映体验,同时让图片、数据图表、单页修改、撤销、质量检查和场景模板成为完整工作流。
4
+
5
+ ## 技术选择
6
+
7
+ - 复用 MIT 许可的 `@office-kit/pptx@0.21.0`,按精确版本锁定其尚未稳定的 0.x API。
8
+ - 官方源码:https://github.com/office-kit/pptx 。官方示例:https://office-kit.github.io/pptx/docs/recipes 。npm 版本与许可证已核对。
9
+ - 原型先生成现有 PPTX,再用库加入图表并回写。已确认原生图表、内嵌 XLSX、备注、转场和要点时序树仍在包内。正式验收还需真实渲染,不能用 ZIP 结构检查代替。
10
+ - HTML 保留现有离线播放器。图表使用本地 SVG 展示,PPTX 使用原生图表对象;两者共享归一化数据。图片只接受本地 PNG/JPEG 或这些格式的 data URI,统一嵌入,避免外链失效。
11
+ - 原同步 `buildDeck`/`buildPptx` 保留文字版兼容性。增加异步 `buildDeckAsync`,插件工具与 CLI 走此入口,图片/图表依赖只在需要时载入。跨 harness 技能目录携带依赖清单,按文档安装。
12
+
13
+ ## 用户功能
14
+
15
+ | 能力 | 行为 | 验收 |
16
+ | --- | --- | --- |
17
+ | 图片 | `image`、`image-left`、`image-right` 布局,contain/cover 保比例缩放或居中裁切,替换图片,离线嵌入 | 中文路径、横竖图、移走原图后 HTML/PPTX 可显示;坏图或路径报页码且不覆盖旧文件 |
18
+ | 单页修改 | `ppt_edit` 用 1-based 页码或稳定 ID 合并指定字段,清空可选字段用 null,其他页不重新生成正文 | 原页面内容和 ID 保持一致;多页修改一次提交;错误与版本冲突无部分写入 |
19
+ | 撤销 | JSON 保存最多 20 次内容快照,`ppt_undo` 恢复上一内容版本并递增修订号 | 文字、图表、图片和品牌一起恢复;原图删掉后仍能撤销;无历史时明确提示 |
20
+ | 质量检查 | `ppt_check` 返回页码、稳定 ID、严重度、原因与建议;生成和修改也附报告 | 长标题、密集要点、潜在溢出、低分辨率、缺资产、模板未填、低对比度均有可复现用例;标明估算不能保证所有字体渲染 |
21
+ | 图表 | column/bar/line/pie,categories+series 或二维表,严格校验有限数值、类别一致性和饼图约束 | 4 类 HTML/SVG 数据匹配;PPTX 原生图表与内嵌 Excel 数据匹配;Windows 真实打开/渲染 |
22
+ | 模板与品牌 | weekly/defense/project/pitch 可查询大纲与骨架,模板空白位置标注待填;品牌主色、背景色、文字色、字体、Logo、页脚 | 4 场景各生成;品牌出现在 HTML 和 PPTX;内容由用户或代理提供,示例数字不当作事实 |
23
+
24
+ ## 数据与文件规则
25
+
26
+ - JSON 添加 manifest schema、deck ID、revision、稳定 slide ID、嵌入资产字典、品牌、模板、质量报告和非递归历史。
27
+ - 图片有单文件和总量上限;历史限制条数与总大小。历史保留的资产不能在更新时错误清理。
28
+ - 编辑仅支持本插件 JSON 工程;任意外部 PPTX 导入不属于这次范围。
29
+ - 修改先验证和生成全部输出,再对 HTML/PPTX/JSON 统一提交。检查预期修订号和原文件摘要,防止覆盖并行修改。
30
+ - 图片相对路径依据 DSH 当前会话工作目录解析。编辑工程路径同样遵循会话目录,不改进程 cwd,不读取或输出 API 密钥。
31
+ - AbortSignal 在加载、导出和提交前检查。取消时不留下半套输出。
32
+
33
+ ## 交付顺序
34
+
35
+ 1. 原有测试基线;增加数据/失败/文件事务回归,再接入工具和 CLI。
36
+ 2. 四场景、所有图片布局和图表类型的 HTML 浏览器操作与视觉检查,指定页修改和撤销。
37
+ 3. Windows PPTX 渲染及数据编辑能力检查;检查旧主题、表格、备注、动效回归。
38
+ 4. 同步中英文文档、技能指南和变更记录,构建入库 lib。
39
+ 5. GitHub 提交推送、CI、npm 最终 tarball 全新安装和官方 DSH 0.2.0-rc.2 契约/启动验收。
40
+ 6. 发布独立插件并核验 registry,再更新 Suite 精确版本与锁文件、CI、安装与发布;核对本地和云端。
41
+
42
+ ## 官方渲染接入与协作
43
+
44
+ 与“了解 dsh-libreoffice-kit”会话协作,对面负责 deck-render.mjs、渲染回归与渲染方案文档,本会话整合工具/CLI/文档/提交/发布。明确授权为成熟方案完成后直接开工、提交和npm更新。
45
+
46
+ 官方 @deepseek-ai/libreoffice-kit@0.1.3 作为精确版本可选peer,读取已生成的PPTX,输出逐页PNG/PDF,不重写可编辑源文稿。ppt_render按实际页面尺寸换算DPI,统一期限、取消、输入/输出限制和独占目录,失败清理仅限本次产物。
47
+
48
+ ppt_check分别展示静态估算、摘要匹配的渲染证据和未自动通过的视觉状态。收据核验源PPTX与所有输出;任何内容变更后重新渲染。CLI显式收据失效返回非零。缺失字体须替换为可用字体,再生成并检查;字体负例渲染成功但中文重叠,不能把成功状态当作成品验收。
49
+
50
+ Windows实际Office打开与官方Kit原生渲染均用最终11页样例验证,不读取或输出API密钥。最终tarball需在没有可选引擎的消费者安装中证明普通启动/生成仍正常。
@@ -1,69 +1,69 @@
1
- # PPT 成品渲染与 PDF 导出方案
2
-
3
- 目标是在现有 HTML 放映稿与可编辑 PPTX 交付流程中,补上真实 PPTX 静态渲染、PDF 导出和缺失字体报告。生成、编辑和撤销仍以本插件 JSON 工程为准。
4
-
5
- ## 库的分工
6
-
7
- - 现有生成器与 `@office-kit/pptx@0.21.0` 负责主题、文字、图片、原生图表、备注、转场和可编辑 PPTX。
8
- - 可选的 `@deepseek-ai/libreoffice-kit@0.1.3` 读取保存后的 PPTX,直接生成每页 PNG,或导出 PDF。两种静态产物方便检查和分享。
9
- - 引擎渲染成功只证明生成了该输入版本的静态产物。内容准确、文字裁切、图表可读性和设计质量仍由视觉检查判断。
10
-
11
- ## 安装和平台
12
-
13
- 插件声明精确版本的 optional peer,不让普通安装默认下载重型引擎。需要渲染时,在插件所在项目或独立技能目录运行:
14
-
15
- ```bash
16
- npm install --ignore-scripts @deepseek-ai/libreoffice-kit@0.1.3
17
- ```
18
-
19
- 官方要求 Node.js >=22.19.0,与插件现有约束一致。Windows x64/ARM64 和 macOS 使用匹配原生引擎;Linux 使用 WASM。Windows 另需匹配 Node 架构的 Microsoft Visual C++ v14 运行库。依赖或引擎缺失时,`ppt_render` 返回 `unavailable` 与安装提示,正常生成 HTML/PPTX 的流程仍可使用。
20
-
21
- 2026-10-01 npm 元数据显示 Windows x64 引擎解包载荷为 190,877,547 字节,约191MB,不包含 API 的其他依赖。这是解包体积,不是下载体积。运行时无需额外下载引擎或字体。
22
-
23
- ## API 与输出
24
-
25
- `deck-render.mjs` 导出:
26
-
27
- ```js
28
- await renderDeck({
29
- pptxPath: '/absolute/path/deck.pptx',
30
- outputDir: '/absolute/path/deck-render', // 可选
31
- format: 'both', // png(默认)/ pdf / both
32
- width: 1440, // 320–3840,近似目标宽度
33
- timeoutMs: 120000, // 1000–300000,整次渲染期限
34
- signal,
35
- })
36
- readRenderReceipt(pptxPath, receiptPath)
37
- ```
38
-
39
- 宽度通过 PPTX 的实际页面尺寸换算 DPI,输出因像素取整可能相差少量像素。适配器使用 Kit 的全部页面模式,最多120页,不截断页面。输入上限64MiB,输出 PNG/PDF 与 manifest 总量128MiB,单图最多16,777,216像素。PDF-only 的 `slideCount` 来自输入 PPTX 的页数,PNG/both 的页数来自真实引擎。
40
-
41
- 成功返回 `ok:true, status:'rendered'`、真实 `backend`(native/wasm)、`rendererVersion`、`slideCount`、`pngPaths` / `pdfPath`、`missingFonts`、`sourceSha256` 和 `receiptPath`。`visual` 固定为 `not-verified`,不会自动声称视觉验收通过。依赖/引擎缺失返回 `ok:false, status:'unavailable'`;参数、文件和运行失败抛错;取消原样保留 `signal.reason`。
42
-
43
- 默认目录为 `<PPTX-basename>-render`,已存在时追加后缀。目录由独占 mkdir 预留,产物先写私有 staging,等待引擎退出、验证原文件摘要仍匹配后,再提交 `artifacts/` 子目录。PNG、PDF 和收据随同提交;取消、超时或任一步失败都清理本次 staging。不会递归删除预先存在的输出目录。
44
-
45
- ## 收据与检查状态
46
-
47
- 收据 `render-receipt.json` 包含 `schemaVersion:1`、`producer:'dsh-ppt-render'`、引擎包名/版本/backend、源 PPTX SHA256/长度、格式、页数、缺失字体和每个输出的相对路径/长度/SHA256。
48
-
49
- `readRenderReceipt()` 验证源文件和输出的实际内容、精确引擎版本、完整页码以及路径范围。源 PPTX 编辑后、图片/PDF被修改或删除后,旧收据返回 `not-verified`,需要重新渲染。收据是本地完整性记录,不是签名证明。
50
-
51
- `ppt_check` 分别展示静态估算、源文件匹配的渲染证据和视觉检查状态。PNG 或 PDF 成功生成后,视觉检查仍需查看每一页并修正发现的问题。LibreOffice 输出不保证与 PowerPoint/WPS 完全一致,真实 Office 打开、备注、动画与可编辑图表的验收另行保留。
52
-
53
- ## 字体和许可
54
-
55
- Kit 使用环境中可用的字体,OOXML 的 `missingFonts` 只报告缺失的声明字体,不是完整缺字报告,也不自动安装字体。依赖使用 MPL-2.0;发布和打包时保留其及原生引擎携带的来源、许可和第三方声明。插件自身和 Office Kit 的许可保持各自声明。
56
-
57
- 默认主题的 PPTX 分别指定西文和东亚字体,避免把 CSS 字体栈第一项同时当作中文字体。Windows 使用 Segoe UI / Georgia / Impact 等主题回退,中文使用 Microsoft YaHei 或 SimSun;macOS 和 Linux 使用对应平台的字体映射。显式品牌字体保留请求的西文字体,中文按可用的东亚字体家族映射。平台映射不等于检测字体已安装;实际缺失仍由引擎报告。HTML 使用原有 CSS 字体栈。
58
-
59
- 缺失字体可能导致替代后的文字重叠,即使引擎成功返回且 PDF/PNG 收据有效,也需要换用可用字体、重新生成并逐页检查。自定义不存在字体的真实负例已确认这一限制。渲染器不会修改源 PPTX 字体或自动宣称画面合格。
60
-
61
- ## 当前验证证据
62
-
63
- 2026-10-01 在 Windows x64、Node 24.16.0、Kit 0.1.3 原生引擎上运行完整11页样例,包含3种图片布局、4种原生图表、中文、备注、表格与品牌字体/页脚。成功生成11张 PNG 和 PDF,约6.13秒,`missingFonts:[]`,源 PPTX 摘要未变化,收据复核通过。逐页查看11张PNG,样例中的标题、正文、图片和图表均可读,无明显裁切或对象遮挡;这是该样例的验证,不是所有文件的兼容保证。
64
-
65
- 随后对默认无品牌设置的五个主题做字体回归,每主题生成封面、要点页和中文原生柱形图,合计15页。修复前五主题均声明本环境缺失的默认字体,已检查的正文页均出现中文重叠。修复 PPTX 西文/东亚字体映射后,同一探针重新生成15张PNG和5份PDF,全部原生渲染成功,`missingFonts:[]`,源文件匹配的收据复核通过;逐页查看15张PNG,中文与英文标题、正文、图表标签和图例均可读,无明显文字重叠或裁切。证据为 `theme-font-matrix-1790862328203/font-matrix-result.json`;修复前证据单独保留。这项实际渲染回归在Windows完成,macOS/Linux未在本次运行中实测。
66
-
67
- 独立证据目录:`E:\deepseek\.harness-validation\libreoffice-kit-probe-20261001`。主流程工具/CLI、打包安装与发布验收由整合会话继续执行。
68
-
69
- 官方资料:[API 与限制](https://github.com/deepseek-ai/dsh-libreoffice-kit/blob/master/packages/entry/README.md)、[字体与平台](https://github.com/deepseek-ai/dsh-libreoffice-kit/blob/master/README.zh.md)、[分发和许可](https://github.com/deepseek-ai/dsh-libreoffice-kit/blob/master/docs/packaging.md)。
1
+ # PPT 成品渲染与 PDF 导出方案
2
+
3
+ 目标是在现有 HTML 放映稿与可编辑 PPTX 交付流程中,补上真实 PPTX 静态渲染、PDF 导出和缺失字体报告。生成、编辑和撤销仍以本插件 JSON 工程为准。
4
+
5
+ ## 库的分工
6
+
7
+ - 现有生成器与 `@office-kit/pptx@0.21.0` 负责主题、文字、图片、原生图表、备注、转场和可编辑 PPTX。
8
+ - 可选的 `@deepseek-ai/libreoffice-kit@0.1.3` 读取保存后的 PPTX,直接生成每页 PNG,或导出 PDF。两种静态产物方便检查和分享。
9
+ - 引擎渲染成功只证明生成了该输入版本的静态产物。内容准确、文字裁切、图表可读性和设计质量仍由视觉检查判断。
10
+
11
+ ## 安装和平台
12
+
13
+ 插件声明精确版本的 optional peer,不让普通安装默认下载重型引擎。需要渲染时,在插件所在项目或独立技能目录运行:
14
+
15
+ ```bash
16
+ npm install --ignore-scripts @deepseek-ai/libreoffice-kit@0.1.3
17
+ ```
18
+
19
+ 官方要求 Node.js >=22.19.0,与插件现有约束一致。Windows x64/ARM64 和 macOS 使用匹配原生引擎;Linux 使用 WASM。Windows 另需匹配 Node 架构的 Microsoft Visual C++ v14 运行库。依赖或引擎缺失时,`ppt_render` 返回 `unavailable` 与安装提示,正常生成 HTML/PPTX 的流程仍可使用。
20
+
21
+ 2026-10-01 npm 元数据显示 Windows x64 引擎解包载荷为 190,877,547 字节,约191MB,不包含 API 的其他依赖。这是解包体积,不是下载体积。运行时无需额外下载引擎或字体。
22
+
23
+ ## API 与输出
24
+
25
+ `deck-render.mjs` 导出:
26
+
27
+ ```js
28
+ await renderDeck({
29
+ pptxPath: '/absolute/path/deck.pptx',
30
+ outputDir: '/absolute/path/deck-render', // 可选
31
+ format: 'both', // png(默认)/ pdf / both
32
+ width: 1440, // 320–3840,近似目标宽度
33
+ timeoutMs: 120000, // 1000–300000,整次渲染期限
34
+ signal,
35
+ })
36
+ readRenderReceipt(pptxPath, receiptPath)
37
+ ```
38
+
39
+ 宽度通过 PPTX 的实际页面尺寸换算 DPI,输出因像素取整可能相差少量像素。适配器使用 Kit 的全部页面模式,最多120页,不截断页面。输入上限64MiB,输出 PNG/PDF 与 manifest 总量128MiB,单图最多16,777,216像素。PDF-only 的 `slideCount` 来自输入 PPTX 的页数,PNG/both 的页数来自真实引擎。
40
+
41
+ 成功返回 `ok:true, status:'rendered'`、真实 `backend`(native/wasm)、`rendererVersion`、`slideCount`、`pngPaths` / `pdfPath`、`missingFonts`、`sourceSha256` 和 `receiptPath`。`visual` 固定为 `not-verified`,不会自动声称视觉验收通过。依赖/引擎缺失返回 `ok:false, status:'unavailable'`;参数、文件和运行失败抛错;取消原样保留 `signal.reason`。
42
+
43
+ 默认目录为 `<PPTX-basename>-render`,已存在时追加后缀。目录由独占 mkdir 预留,产物先写私有 staging,等待引擎退出、验证原文件摘要仍匹配后,再提交 `artifacts/` 子目录。PNG、PDF 和收据随同提交;取消、超时或任一步失败都清理本次 staging。不会递归删除预先存在的输出目录。
44
+
45
+ ## 收据与检查状态
46
+
47
+ 收据 `render-receipt.json` 包含 `schemaVersion:1`、`producer:'dsh-ppt-render'`、引擎包名/版本/backend、源 PPTX SHA256/长度、格式、页数、缺失字体和每个输出的相对路径/长度/SHA256。
48
+
49
+ `readRenderReceipt()` 验证源文件和输出的实际内容、精确引擎版本、完整页码以及路径范围。源 PPTX 编辑后、图片/PDF被修改或删除后,旧收据返回 `not-verified`,需要重新渲染。收据是本地完整性记录,不是签名证明。
50
+
51
+ `ppt_check` 分别展示静态估算、源文件匹配的渲染证据和视觉检查状态。PNG 或 PDF 成功生成后,视觉检查仍需查看每一页并修正发现的问题。LibreOffice 输出不保证与 PowerPoint/WPS 完全一致,真实 Office 打开、备注、动画与可编辑图表的验收另行保留。
52
+
53
+ ## 字体和许可
54
+
55
+ Kit 使用环境中可用的字体,OOXML 的 `missingFonts` 只报告缺失的声明字体,不是完整缺字报告,也不自动安装字体。依赖使用 MPL-2.0;发布和打包时保留其及原生引擎携带的来源、许可和第三方声明。插件自身和 Office Kit 的许可保持各自声明。
56
+
57
+ 默认主题的 PPTX 分别指定西文和东亚字体,避免把 CSS 字体栈第一项同时当作中文字体。Windows 使用 Segoe UI / Georgia / Impact 等主题回退,中文使用 Microsoft YaHei 或 SimSun;macOS 和 Linux 使用对应平台的字体映射。显式品牌字体保留请求的西文字体,中文按可用的东亚字体家族映射。平台映射不等于检测字体已安装;实际缺失仍由引擎报告。HTML 使用原有 CSS 字体栈。
58
+
59
+ 缺失字体可能导致替代后的文字重叠,即使引擎成功返回且 PDF/PNG 收据有效,也需要换用可用字体、重新生成并逐页检查。自定义不存在字体的真实负例已确认这一限制。渲染器不会修改源 PPTX 字体或自动宣称画面合格。
60
+
61
+ ## 当前验证证据
62
+
63
+ 2026-10-01 在 Windows x64、Node 24.16.0、Kit 0.1.3 原生引擎上运行完整11页样例,包含3种图片布局、4种原生图表、中文、备注、表格与品牌字体/页脚。成功生成11张 PNG 和 PDF,约6.13秒,`missingFonts:[]`,源 PPTX 摘要未变化,收据复核通过。逐页查看11张PNG,样例中的标题、正文、图片和图表均可读,无明显裁切或对象遮挡;这是该样例的验证,不是所有文件的兼容保证。
64
+
65
+ 随后对默认无品牌设置的五个主题做字体回归,每主题生成封面、要点页和中文原生柱形图,合计15页。修复前五主题均声明本环境缺失的默认字体,已检查的正文页均出现中文重叠。修复 PPTX 西文/东亚字体映射后,同一探针重新生成15张PNG和5份PDF,全部原生渲染成功,`missingFonts:[]`,源文件匹配的收据复核通过;逐页查看15张PNG,中文与英文标题、正文、图表标签和图例均可读,无明显文字重叠或裁切。证据为 `theme-font-matrix-1790862328203/font-matrix-result.json`;修复前证据单独保留。这项实际渲染回归在Windows完成,macOS/Linux未在本次运行中实测。
66
+
67
+ 独立证据目录:`E:\deepseek\.harness-validation\libreoffice-kit-probe-20261001`。主流程工具/CLI、打包安装与发布验收由整合会话继续执行。
68
+
69
+ 官方资料:[API 与限制](https://github.com/deepseek-ai/dsh-libreoffice-kit/blob/master/packages/entry/README.md)、[字体与平台](https://github.com/deepseek-ai/dsh-libreoffice-kit/blob/master/README.zh.md)、[分发和许可](https://github.com/deepseek-ai/dsh-libreoffice-kit/blob/master/docs/packaging.md)。
@@ -1,5 +1,7 @@
1
1
  # dsh-ppt 验证记录
2
2
 
3
+ [0.8.1 中英文界面验收](validation-language-2026-10-03.md)。
4
+
3
5
  本页整理原 README 的历史验证说明,保留当时的版本、日期与范围。自动测试、启动检查、浏览器操作和真实服务验收分别记录,不能相互替代。更详细的版本验收文件仍保留在仓库中。
4
6
 
5
7
  ## 最新记录
@@ -0,0 +1,16 @@
1
+ # 0.8.1:中英文界面验收
2
+
3
+ 2026-10-03,Windows / Node 24.16.0。采用 E 盘独立 DSH_HOME、合成资料与无密钥 profile;用户资料、账号、密钥、桌面窗口与 VPN 保持原状。
4
+
5
+ - 自动测试:114 项全部通过。
6
+ - 可见 Web 操作:在中文和英文工作台分别编辑并保存标题;三份工程文件共用修订号,中文正文保留。英文质量提醒定位第 2 页;使用本机官方 Kit 从当前 PPTX 生成三页预览。
7
+ - 宿主:官方 DSH 0.2.1-alpha.1 Web;官方 RC2 与 alpha SDK 同载 18 组件,110 工具、35 插件技能、19 输出样例注册与 schema 检查通过。无账号的健康结果不代表真实连接。
8
+ - 边界:放映成品的语言跟随工程配置,工作台跟随宿主语言。最终排版仍需逐页检查。
9
+
10
+ 中英文共用同一份资料;界面翻译不会改写标题、正文、路径、引用或项目文件。系统文件选择控件和文件对话框跟随 Windows / 浏览器语言。未知技术诊断与原始引擎日志保留原文;英文界面提供操作恢复引导。
11
+
12
+ 此记录不代表原生桌面窗口内的新功能已逐项操作通过。发布包完整性、GitHub CI 与公开 npm 全新安装在发布时另行核对。
13
+
14
+ ## English scope
15
+
16
+ The Chinese and English UI share the same data. UI translation preserves original content, paths and project files. Visible interactions were performed in an isolated official alpha Web profile; both RC2 and alpha SDK registration/schema checks passed. Native file controls use the OS/browser language, and original diagnostic logs are retained. Browser results do not certify native desktop interaction or real-service delivery.