Codex Visio Paper Figure Skill 是 Codex Skills 集合中的一个技能,用于把科研论文中的参考图(截图、AI 生成图、论文插图)重建为可编辑的 Microsoft Visio .vsdx 文件。
用途 该技能面向学术论文工作流,适合需要重建模型架构图、流程图、多面板科研插图,用真正的矢量图形替换嵌入图片,在多张论文插图中保持一致的样式,并从同一个源 .vsdx 导出为 PNG、SVG、PDF、PPTX 的场景。其核心原则是:最终的 .vsdx 必须使用 Visio 原生图元(矩形、圆形、线条、文本),而不是把原始参考图作为背景嵌入。
安装 将技能仓库克隆到 Codex 技能目录:
Windows
git clone https://github.com/pengjunchi0/codex-visio-paper-figure-skill.git "$env:USERPROFILE.codex\skills\codex-visio-paper-figure-skill"
然后重启 Codex 或开启新会话以加载技能。
环境要求
- Windows(Visio COM 自动化需要 Windows)
- Microsoft Visio(用于完整的绘图自动化)
- PowerShell(用于脚本)
- Microsoft PowerPoint(可选,用于 PPTX 导出)
- Codex Desktop 或任何可访问本地文件的 Codex 环境
主要脚本
- visio_rebuild_scaffold.ps1:主脚手架脚本,用 Visio 原生形状重建图表。参数包括 -VsdxPath(输出 .vsdx 路径)、-PageW / -PageH(Visio 页面尺寸,英寸)、-RefW / -RefH(参考图像像素尺寸)、-PreviewPath(PNG 预览保存路径)、-ExportFormats(逗号分隔:png, svg, pdf, pptx)、-OutputDir(导出目录)。
- visio_page_tools.ps1:用于导出已有 .vsdx 文件并检查包结构的工具。参数包括 -VsdxPath、-ExportFormats、-OutputDir、-OutputBaseName、-InspectPackage(检查是否嵌入了图片,用于校验)。
- visio_export_formats.ps1:可复用的导出函数(PNG、SVG、PDF、PPTX),由其他脚本引用。
核心绘图函数 脚手架提供坐标映射辅助函数,用于防止复杂多面板图形中的面板重叠:
- 全局坐标映射:将参考图像像素坐标转换为 Visio 页面英寸坐标(Ref2Page)。
- 面板局部坐标(v1.1.1+):为多面板图定义面板边界,使用相对坐标。例如定义面板边界 $panelA = @{ X0=50; Y0=50; X1=750; Y1=450 },再使用 RectRel、TextRel、OvalRel、LineRel 在面板内按相对位置绘制矩形、文本、椭圆、线条。
- 校验辅助:Assert-RelBox 断言边界框保持在面板内,Assert-RelPoint 断言点保持在面板内;若元素超出面板边界会抛出错误,防止重叠和错位。
使用方式 常见模式包括:
- 从参考图重建:用户提供 Reference.png(如 1920x1080),运行 visio_rebuild_scaffold.ps1 并指定页面尺寸、参考像素尺寸、预览路径、导出格式和输出目录,然后在脚手架内自定义绘图逻辑以匹配参考布局。
- 更新已有 .vsdx 样式:打开已有文件,修改颜色/字体后重新导出。
- 检查嵌入图片:运行 visio_page_tools.ps1 并加 -InspectPackage,它会查找 .vsdx ZIP 内 /visio/media/ 中的大 PNG/JPG 文件;如果图表只是嵌入图片会给出警告。
导出格式
- PNG:$page.Export($path),光栅图,适合预览。
- SVG:FixedFormat = 4,矢量,可在 Illustrator/Inkscape 中编辑。
- PDF:FixedFormat = 2,矢量,用于论文提交。
- PPTX:通过 PowerPoint COM 创建含嵌入 SVG 的幻灯片。
验收标准 正确重建的 .vsdx 应当:匹配参考布局;使用原生 Visio 形状(矩形、圆形、线条、文本);文本与形状可编辑;不把整张参考图作为最终内容嵌入;颜色、字体、线宽保持一致;多面板图无面板重叠、无元素越界;能从同一源 .vsdx 干净地导出为 SVG、PDF、PNG、PPTX。
故障排除
- 找不到 Visio COM 对象:需安装 Microsoft Visio,COM 自动化 API 要求 Windows 上装有授权的 Visio。
- 导出文件为空:确认 .vsdx 已成功保存,检查页面是否有可见形状($page.Shapes.Count 应大于 0)。
- 多面板图面板重叠:使用面板局部坐标配合 Assert-RelBox 和 Assert-RelPoint,超出边界时会抛出错误。
- 文本被截断:增大相对宽/高,或使用多行文本。
- 颜色不匹配参考图:用取色器在参考图上取色并转换为 RGB。
版本历史
- v1.1.1:面板校准、局部坐标、防重叠校验。
- v1.1:多格式导出(PNG、SVG、PDF、PPTX)。
- v1.0:初始版本,包含 Visio COM 脚手架。
适用与不适用 适用:想把论文图转换为可编辑 Visio;需要从单一源导出 SVG/PDF/PPTX;想验证 .vsdx 不只是嵌入图片;需要在多张论文图之间保持样式一致。 不适用:只想把图片嵌入幻灯片(直接用 PowerPoint);需要纯光栅图像编辑(用 Photoshop/GIMP);不需要 Visio 原生可编辑性。
限制 该技能依赖 Windows、已授权的 Microsoft Visio 与 PowerShell,PPTX 导出需要 PowerPoint。其他平台支持、收费与价格信息暂未提供。