From f2c6f2e2f4dea3778d016ae12553fd574bde1a00 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 9 Jun 2026 10:22:00 +0800 Subject: [PATCH] =?UTF-8?q?docs(design):=20=E5=8A=A0=20=C2=A78.3=20PPTX=20?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=9C=A8=E7=BA=BF=E9=A2=84=E8=A7=88=E6=96=B9?= =?UTF-8?q?=E6=A1=88(LibreOffice=20=E2=86=92=20PDF)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前端 preview.js 已用 iframe 原生渲 PDF,故方案极简:后端 pptx→PDF,前端 复用现有 _showPdf,前端改动近零。要点: - 与 pptx_preview.py(HTML→Chrome→PNG,agent 自检用)分工:本方案是 前端面向用户的高保真预览(LibreOffice→PDF,像素级,任意 pptx) - 后端 web/pptx_render.py(soffice 转换+哈希缓存+独立 profile 绕并发锁+超时) + GET /v1/files/preview_pdf(复用 files 鉴权与 _safe_path) - 前端 preview.js 加 ppt 类,pptx 走转换端点拿 PDF 喂 _showPdf - 依赖:服务器装 libreoffice-impress + fonts-noto-cjk;无新 pip 依赖 - 风险:冷启动/上传 pptx 跑 LibreOffice 安全/字体保真;分两阶段落地 status=design,未实施。 Co-Authored-By: Claude Opus 4.8 (1M context) --- DESIGN.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/DESIGN.md b/DESIGN.md index 548e8a4..bf5249d 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -604,6 +604,58 @@ zcbot-sandbox image 已 ~1.5G(python deps + chromium + nodejs + mermaid-cli),后 - 文献采集 / 论文写作 / PPT 三类长任务仍能复查原文路径,不会因摘要丢失用户确认过的规格。 - 增加 focused tests 覆盖 usage detail 提取、成本兜底、工具结果裁剪、上下文压缩协议完整性。 +### 8.3 PPTX 前端在线预览(LibreOffice → PDF,2026-06-09) + +**动机**:ppt skill 现在能产出观感不错的 `.pptx`,但前端对话/文件区里 `.pptx` 只能**下载**(`preview.js` 的 `_categorize` 把它归为 `fallback` → "暂不支持在线预览,请下载查看")。用户要在浏览器里直接翻看 deck,不必下载 + 开 PowerPoint。需求扩展到**任意 pptx**(含用户上传的),不只 skill 自产。 + +**关键洞察(决定了方案极简)**:前端 `preview.js` 已有完整预览弹框,且 **PDF 已用 `