关于 pptx-posters
pptx-posters 是一项技能,可根据经批准的本地 JSON 清单生成可编辑的单页 PowerPoint 海报。它面向需要追溯内容来源、检查素材与版式,并在生成前明确审批的科研海报流程。
主要功能
- 01根据严格 JSON 生成单页 PPTX
- 02验证来源、素材、哈希和审批状态
- 03检查图像元数据、对比度和导出计划
- 04检查文件包安全性与幻灯片布局
- 05要求人工复核无障碍性和印刷效果
适用场景
- 01根据获批内容制作可编辑科研海报
- 02生成海报前验证本地图像素材
- 03发布前审计海报文件包和版式
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kalarislabs/ research-agent-skills --skill pptx-posters安装后在 Claude Code 中输入/pptx-posters确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/generation_dependencies.jsonposter_manifest_template.jsonposter_quality_checklist.mdreferences/manifest_spec.mdposter_content_guide.mdposter_design_principles.mdposter_layout_design.mdpptx_security.mdsecurity_validation.mdsource_ledger.mdscripts/_common.py_manifest.py_pptx.pycheck_layout.pycheck_palette.pygenerate_poster.pyinspect_pptx.pyinventory_images.pyplan_export.pyvalidate_manifest.py详细介绍
PPTX 海报
适用范围
仅当请求的来源/交付物是可编辑的 PowerPoint 海报时,才使用此技能。不要仅仅因为 PowerPoint 可用,就将未明确说明的海报请求导向此处。
2.0 版根据严格的本地 JSON 生成真正的单页 .pptx 文件。它不使用 HTML 转换、外部模板、示意图/图像生成服务、API 密钥、环境文件、网络请求或强制性的图形样式。
硬性门槛
任何门槛未满足时,都应停止,而不是猜测:
- 作者尚未提供准确的海报内容和来源记录。
- 任何声明、数字、引文、作者、所属机构、资助声明、图表、许可证或 QR 目标尚未确定。
- 尚未确认当前会议和打印供应商的要求。
- 作者批准尚未绑定到当前清单内容哈希。
- 资源位于远程位置、清单目录之外、没有哈希或未经批准。
- 输入文件为
.pptm、包含宏/外部关系/OLE/嵌入文件,或属于不可信模板。 - 请求的工作流需要自动打开或执行 PowerPoint。
- 脚本报告了软件包、版式、DPI、对比度或输出计划方面的阻塞问题。
绝不捏造缺失材料,也不要留下看似可信的占位内容。草稿一律无法通过检查。
安装指定的生成依赖项
在技能目录中:
uv venv
uv pip install "python-pptx==1.0.2" "Pillow==12.3.0" "lxml==6.1.1"
生成必须使用以下依赖项,且仅限以下依赖项:
python-pptx==1.0.2
Pillow==12.3.0
lxml==6.1.1
所有 CLI 都使用延迟加载的可选导入,因此无需安装这些软件包,python -B scripts/<tool>.py --help 也能正常运行。使用 -B 可避免生成字节码文件。
排版前明确要求
分别记录以下内容:
- 印刷裁切尺寸的宽度/高度和方向;
- 每条边的出血;
- 裁切范围内的安全边距;
- PowerPoint 画布宽度/高度;
- 实体画板/画布的统一印刷缩放比例;
- 会议的最大尺寸和交付格式;
- 打印供应商的裁切、出血、边距、缩放、色彩模式和打样要求;
- 最终输出的字体和光栅 DPI 阈值,并注明各项是经验估算值还是依据确切来源。
- 所需字体、工作站是否可用、是否允许嵌入,以及字体替换/打样工作流。
海报没有统一的尺寸。Microsoft 目前将每个自定义 PowerPoint 尺寸限制为 1–56 英寸,并且所有幻灯片使用同一尺寸。如果实体画板更大,只有在打印供应商确认缩放后,才能使用按比例缩小的画布。
阅读 references/poster_layout_design.md。
构建清单
将 assets/poster_manifest_template.json 复制到项目中。模板在所有替换标记、false 确认项和草稿批准项都解决之前,刻意保持无效。
遵循 references/manifest_spec.md 和 references/poster_content_guide.md。
清单要求:
- 为文档元数据、每个元素和每项资源指定准确的来源 ID;
- 每个来源均设置
author_verified: true; - 每个元素和资源均设置
author_approved: true; - 使用本地 PNG/JPEG 路径和小写 SHA-256 哈希;
- 为每张可选图片提供准确的来源信息和许可证/许可;
- 提供经批准的替代文本,并在需要时提供绑定来源的原生详细说明;
- 明确阅读顺序和设计矩形;
- 为每张本地 QR 图片提供可见且准确的备用 URL/文本;
- 确认会议/打印供应商规则;
- 声明 sRGB 对比度配对和冗余数据编码;
- 批准绑定到规范化后的清单内容。
所有非批准字段都通过检查后,获取内容哈希:
python -B scripts/validate_manifest.py poster.json \
--print-content-hash
将准确的清单和哈希提供给作者。然后将 approval.status 设为 approved,记录批准人和带时区偏移的时间戳,并复制哈希。任何非批准字段的编辑都会使批准失效。
验证已批准的清单和本地资源:
python -B scripts/validate_manifest.py poster.json
生成前审核素材和调色板
python -B scripts/inventory_images.py poster.json \
--output poster.assets.json
python -B scripts/check_palette.py poster.json \
--output poster.palette.json
python -B scripts/plan_export.py poster.json \
--output poster.export-plan.json
有效 DPI 是像素数除以最终放置尺寸(英寸),而不是图像元数据中的 DPI。 清单会完整解码有界图像,并屏蔽 EXIF/XMP/注释和嵌入的 文本/应用程序元数据; 请离线清除这些内容,然后重新计算哈希并重新批准素材。 对比度采用 WCAG 2.2 sRGB 数学方法;将这些数值用于实体海报是 设计目标,并不代表单独的合规性声明。请保留通过颜色以外方式区分的标签、 标记、形状、图案或线条样式。
如果打印机要求 CMYK,则在获得打印机批准的转换/配置文件和校样之前, 计划会阻止打印就绪。不要声称原生 PowerPoint PDF 符合 CMYK 要求。
阅读 references/poster_design_principles.md。
生成 PPTX
使用新的输出路径:
python -B scripts/generate_poster.py poster.json \
--output poster.pptx \
--report poster.generation.json
生成过程:
- 创建新的空白演示文稿;绝不加载用户模板;
- 在添加内容前设置已批准的画布;
- 使用一个原生标题占位符、原生文本框和本地图片;
- 使用
contain适配方式保持图像纵横比; - 禁用文本自动缩小;
- 按已批准的阅读顺序添加元素;
- 将已批准的图片替代描述和明确的文本语言写入 PresentationML;
- 不嵌入字体、音频、视频、OLE、ActiveX、链接或其他媒体;
- 移除默认打印机设置二进制数据并规范化包时间戳;
- 在替代文本修补前后检查包;
- 拒绝重叠、超出边界的形状、最终字号/DPI 过低、不安全的包以及已存在的目标路径。
生成过程会严格按清单呈现文本。它不会编写、总结、研究或更正科学内容。
运行最终技术审核
python -B scripts/inspect_pptx.py poster.pptx \
--output poster.package.json
python -B scripts/check_layout.py poster.pptx \
--manifest poster.json \
--output poster.layout.json
包检查器仅读取有界 ZIP 元数据和选定的 XML。它绝不解压成员,也不打开/执行演示文稿。它会拒绝:
- 所有非
.pptx扩展名文件,包括.pptm; - 不符合有界单页生成器配置的包;
- 宏/VBA、ActiveX、自定义 UI、OLE、嵌入式、可执行和二进制部件;
- 所有外部关系,包括远程链接图片和超链接;
- 不安全/重复的 ZIP 路径、符号链接、加密、过度扩展以及过高的压缩比;
- 格式错误或包含实体的受检 XML;
- 缺少内部关系目标的文件。
阅读 references/pptx_security.md。
PowerPoint 手动检查与无障碍审核
自动化无法认证无障碍性、文本呈现或科学准确性。 请在完全修补的 PowerPoint 中:
- 仅打开生成且技术审核合格的文件。
- 运行“审阅”>“检查辅助功能”。
- 检查“阅读顺序”窗格和对象名称。
- 审查所有替代文本和原生长描述。
- 测试键盘和屏幕阅读器导航。
- 确认字体已安装/获授权;检查嵌入选项、字体替换、字形、公式、溢出、对比度和所有边缘。
- 确认颜色绝不是唯一的编码方式。
- 测试每个 QR 码及其可见的备用 URL/文本。
- 请作者批准所有内容和引文。
Microsoft 关于幻灯片 18 pt 的建议并非通用的海报最小字号。请依据清单中标注的基准和校样,评估最终实体输出中的字号。
导出和打印
使用已批准的导出计划。需要 PDF 时,请从审核过的 PowerPoint 中以“标准/高打印质量”而非“最小文件大小”导出。
独立核验 PDF:
- 页面/画板尺寸、方向、裁切和出血;
- 是否按要求输出为单页;
- 字体、裁切、字形、公式和图像重采样;
- 标签、阅读顺序、替代文本、语言和链接;
- RGB/CMYK 转换和实体颜色校样;
- 会议命名、文件大小和上传规则。
打印缩小比例的校样,并获取打印机要求的校样。任何更改后都要重新运行所有检查。
使用 assets/poster_quality_checklist.md 完成发布签核。
捆绑的 CLI
validate_manifest.py— 严格的内容/来源/审批验证器。generate_poster.py— 精确固定版本的本地 PPTX 生成器。inspect_pptx.py— 非执行式 ZIP/XML 安全检查器。check_layout.py— 边界、重叠、阅读顺序和最终字体检查器。inventory_images.py— 资源哈希/元数据/有效 DPI 清单。check_palette.py— WCAG 对比度和启发式调色板报告。plan_export.py— 尺寸、缩放、字体、颜色、媒体、导出和打印预检。
参考资料
references/manifest_spec.mdreferences/poster_content_guide.mdreferences/poster_design_principles.mdreferences/poster_layout_design.mdreferences/pptx_security.mdreferences/security_validation.mdreferences/source_ledger.md
Agent 操作流程
- 检查环境。 确认数据来源、每个图表必须传达的信息,以及目标媒介(期刊、海报、幻灯片)。
- 明确输入。 确认数据或用户提供的格式、标识符和参数。对于任何会改变结果的值,先询问,不要猜测。
- 先运行小规模版本。 以最终尺寸渲染一个图表,并在生成完整图表集之前检查其可读性。
- 使用上述说明和参考资料执行完整任务。
- 验证结果。 坐标轴、单位和误差条均已标注和定义;颜色适合色盲人士辨识;数值与底层数据一致。
- 报告。 说明运行了什么(版本、命令、参数)、检查了什么,以及仍有哪些不确定之处。
| 如果发生这种情况 | 请这样做 |
|---|---|
| 最终尺寸下文字无法辨认 | 增大字号或简化面板,而不是缩小文字。 |
| 这些说明中的函数、标志或端点在已安装版本中不存在 | 查看已安装版本自身的文档(help()、--help、官方文档),进行适配并告知用户。切勿编造 API。 |
| 必需的输入、标识符或参数存在歧义 | 询问用户,或在运行之前明确说明假设。 |
完整性规则
- 切勿捏造结果、参数、标识符、引文或统计数据。如果无法运行或验证某项内容,请明确说明。
- 切勿为了改善图表外观而更改数据;应统一应用图像调整并予以披露。
- 此处与版本相关的细节可能已过时:请对照已安装版本的官方文档进行确认。
- 对于需要花费资金、占用共享 GPU 或云配额、涉及个人或患者数据,或无法撤销的操作,务必先征得同意。
相关技能
scientific-slides:为研究报告构建幻灯片和演示文稿。latex-posters:使用 beamerposter、tikzposter 或 baposter 通过 LaTeX 制作研究海报,涵盖页面尺寸(A0、A1、36x48 英寸)、多栏布局……presenting-conference-talks:根据编译后的论文生成会议演示幻灯片(Beamer LaTeX PDF 和可编辑 PPTX),并附带演讲者备注和演讲稿。