PowerPoint Desktop 原生插件项目,用于在 PPT 中插入、识别、编辑和更新 Draw.io 图形;当前分支已新增 Word Desktop 原生 COM Add-in 宿主,实现同类 Draw.io 编辑闭环。
当前发布基线:v1.0.3
当前仓库已经完成初始骨架,并推进到了可实机联调的阶段,重点完成了以下内容:
- 明确技术路线:PowerPoint 原生 COM Add-in,先不考虑 WPS。
- 固化模块边界:宿主层、元数据层、外部编辑器层、文件与路径层。
- 建立可继续开发的代码骨架:解决方案、项目、Ribbon、选中图形监听、设置与元数据模型。
- 建立后续迭代计划:从元数据 MVP 到外部编辑器联动,再到 SVG 插入与自动更新。
- 已支持给选中的现有图形写入和清除 Draw.io 元数据。
- 已支持识别带元数据的图形,并在 Ribbon 上反馈状态。
- 已支持新建 SVG 预览图形,并将其插入当前幻灯片。
- 已支持刷新已绑定图形,并在桌面模式下监控
.drawio文件变化后自动更新。 - 已支持双击已绑定图形直接打开外部编辑器。
- 已支持
AutoOpenOnSelection设置,选中已绑定图形时可自动进入编辑。 - 已支持自动探测本机已安装的
draw.io/diagrams.net桌面版路径。 - 推荐配合使用 draw.io Desktop v30.0.4 XML 工具修改版,该版本支持通过工具栏按钮复制当前画布 XML、从剪贴板粘贴 Draw.io XML。
- 已验证
draw.io DesktopCLI 导出 SVG,并收紧了导出参数。 - 已支持当前用户级插件注册,无需管理员权限。
- 已接入 URL 模式编辑器首版:
WebView2 + diagrams.net embed,保存后会把 SVG 和 XML 回写到 PPT 图形。 - 已在 URL 模式自动启用
simpleLabels配置,提升 PowerPoint 中缩放 SVG 标签时的边缘清晰度。 - 已把 Draw.io 源数据同步写入
Presentation.CustomXMLParts,图形保留diagramId/customXmlPartId引用,并继续兼容旧的AlternativeText回退。 - 当前源 XML 已嵌入
.pptx/.docx文件内部;sidecar.drawio主要作为桌面编辑缓存、人工备份和自动刷新辅助。 - 已支持旧版
AlternativeText元数据在读取时自动补写到CustomXMLParts。 - 已支持低频自动清理没有任何图形引用的孤儿
CustomXMLPart,减少文档膨胀。 - 已为 URL 模式补充本地日志、初始化超时和导出超时诊断。
- 已统一为桌面导出、URL 导出和预览回退生成的 SVG 补写 draw.io
content元数据。 - 设置窗口已支持
Test URL,可在保存配置前先验证当前编辑器地址。 - 设置窗口已支持控制新建或编辑 Draw.io 时是否显示图形信息弹窗。
- 已重构 PowerPoint Ribbon 分组、状态展示和按钮图标,支持更清晰的模式/对象状态反馈。
- 已支持 sidecar
.drawio在PPT另存为、路径变化和跨机器迁移后按当前文档路径自动重定位。 - 已新增 Word COM Add-in:支持在 Word 中新建、识别、编辑、刷新、绑定和清除绑定 Draw.io 图片,并通过
Document.CustomXMLParts + AlternativeText保存源数据。
docs/:架构、计划和初始版本说明。scripts/:环境检查、构建、注册与卸载脚本。src/DrawioPpt.Core/:与宿主无关的核心模型、序列化和设置存储。src/DrawioPpt.PowerPointAddIn/:PowerPoint COM Add-in 宿主骨架。src/DrawioPpt.WordAddIn/:Word COM Add-in 宿主实现。
关键文档:
- 宿主:C# + PowerPoint COM Add-in;C# + Word COM Add-in
- Office 接口:
Microsoft.Office.Interop.PowerPoint、Microsoft.Office.Interop.Word - Ribbon:
Microsoft.Office.Core.IRibbonExtensibility - 当前元数据存储策略:
- PowerPoint:
Presentation.CustomXMLParts + Shape.Tags + Shape.AlternativeText 回退兼容 - Word:
Document.CustomXMLParts + InlineShape/Shape.AlternativeText 回退兼容 - 主存储是 Office 文档级
CustomXMLParts,其中保存压缩后的 Draw.io XML;图形/图片上的元数据只负责定位和兼容回退
- PowerPoint:
- 外部编辑器模式:
- 本地桌面版 draw.io/diagrams.net
- 配置化 URL 模式(
WebView2)
- 推荐桌面编辑器:
- draw.io Desktop v30.0.4 XML 工具修改版
- Windows x64 免安装包:
draw.io-30.0.4-xml-tools.1-windows-x64-unpacked.zip - 解压后在插件设置里把
桌面版路径指向win-unpacked\draw.io.exe,不要只拷贝单独的 exe
本仓库当前按 .NET Framework 经典项目组织,优先保证 PowerPoint 宿主兼容性。
建议开发环境:
- Windows
- Microsoft PowerPoint Desktop
- Microsoft Word Desktop
- Visual Studio 2022 或等效 MSBuild 环境
当前机器可用的本地工具路径:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exeC:\Program Files\draw.io\draw.io.exe- WebView2 Runtime:已检测
先检查环境:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\dev-check.ps1构建:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\build.ps1构建脚本会自动恢复 Microsoft.Web.WebView2 包,并默认按 x64 构建,与本机 PowerPoint x64 对齐。
URL 模式烟雾测试:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\url-editor-smoke.ps1Word URL 模式真实 E2E 测试:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\word-url-e2e.ps1 -SkipBuildWord COM Add-in 加载检查:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\word-addin-load-check.ps1 -Configuration Debug发布打包:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\package-release.ps1 -Version v1.0.3完整真实全流程测试:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\full-e2e-test.ps1 -Version v1.0.3日志文件默认写入:
C:\Users\<你的用户名>\AppData\Roaming\Greensoft\DrawioPpt\Logs\drawioppt.log
发布测试日志与打包记录会额外保存在:
artifacts\logs\v1.0.3\
注册插件:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\register-addin.ps1注册 Word 插件:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\register-word-addin.ps1卸载插件:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\unregister-addin.ps1卸载 Word 插件:
powershell.exe -ExecutionPolicy Bypass -File .\scripts\unregister-word-addin.ps1M0已完成M1已完成M2已完成M3已完成M4已完成M5已完成