skills/extract_pdf_assets/SKILL.md
从 PDF 文件中提取高清整页大图以及无损的原始内嵌图像素材(如 Logo、系统截图),并通过 AI 清洗后生成标准的 assets_manifest.json 供下游使用。
npx skillsauth add jaraxuss/skills 从 PDF 提取高质量图片资源Install this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
本 Skill 用于分析用户提供的原始 PDF 资料,精准、无损地从中提取两类核心资源:
并将提取后的资源经过 AI 智能清洗、规范命名,统一输出到 assets/extracted/[页面名]/ 目录,最终生成 assets_manifest.json 作为下游 Skill(如 generate_html_from_material)的输入数据。
pdfimages 从底层剥离 PDF 中原路贴入的位图数据,杜绝 AI 截图识别造成的画面篡改(“脑补”)或模糊失真。需要操作系统内安装了 poppler 工具集。
pdfimages -v 和 pdftoppm -vbrew install poppler 安装。推荐安装助手:
brew install imagemagick。调用本 Skill 需要用户明确提供:
pdf_path: PDF 文件的绝对路径(如 /Users/velen/.../xxx.pdf)。target_page: 需要提取的 PDF 具体页码(第几页,例如 4)。注意:page_name 不需要用户手动提供。本 Skill 会自动分析提取出来的页面大图的左上角标题作为 page_name。
首先将特定也整体渲染为一张高质量底图输出到临时目录(分辨率建议 300dpi):
# 生成并暂存大图
mkdir -p ./temp_pdfimages/full_pages
pdftoppm -png -r 300 -f [target_page] -l [target_page] "[pdf_path]" "./temp_pdfimages/full_pages/page"
这会在临时目录生成类似于 page-04.png 或 page-1.png 的文件。
Agent 使用视觉能力(view_file)查看生成的这页大图,读取其 左上角的大标题,作为本页面的业务主题名 [page_name](如标题是 采购每日原材料价格获取,则 page_name=采购每日原材料价格获取)。
随后创建正式工作目录,并将生成的大图挪动至正式位:
mkdir -p "./assets/extracted/[page_name]"
mkdir -p "./temp_pdfimages/[page_name]"
mv "./temp_pdfimages/full_pages/page-"*".png" "./assets/extracted/[page_name]/full_page.png"
使用 pdfimages 瞬间把该页内挂载的所有“底片资源”无损吐出来:
pdfimages -png -f [target_page] -l [target_page] "[pdf_path]" "./temp_pdfimages/[page_name]/img"
这会在临时目录生成一大堆 img-000.png、img-001.png 等散图文件。
进阶技巧:检查透明度蒙版 (SMask)
运行以下命令查看图片列表,寻找带有 smask 标识的对象:
pdfimages -list -f [target_page] -l [target_page] "[pdf_path]"
如果看到 num 连续的对象(如 16 和 17),且其中一个类型是 smask,说明这两个文件分别是颜色层和透明蒙版层,需要后续合并。
这一步你需要作为 AI Agent 发挥“大脑”的作用,对 temp_pdfimages/[page_name] 内的散图进行地毯式审查(可以使用 view_file 人肉看,或是写临时 Python 脚本调用 PIL / OpenAI Vision API 来批量看):
system_screenshot 或 excel_preview。workflow_icon。如果发现 Logo 呈现“黑底”且有一个对应的灰度蒙版图,必须合并以还原透明效果:
magick [颜色图].png [蒙版图].png -alpha off -compose copy_opacity -composite [输出文件名].png
img.putalpha(mask.convert("L"))。将成功甄别(并修复透明度)为有效素材的图片,拷贝并重命名 到正式目录:
./temp_pdfimages/[page_name]/img-016_merged.png 移动变成./assets/extracted/[page_name]/workflow_icon_smm.png (需自己根据认出的 Logo 定义英文后缀)完成识别与转移后,可安全删除 temp_pdfimages/[page_name] 这个临时目录。
仔细汇总刚刚生成的全景大图和精选后的细部素材,在 ./assets/extracted/[page_name]/ 下写入规范的 assets_manifest.json 文件。
{
"page_name": "[page_name]",
"extracted_at": "[ISO 时间戳]",
"source_pdf": "[pdf_path]",
"source_page": [target_page],
"full_page_render": "./assets/extracted/[page_name]/full_page-01.png",
"assets": [
{
"id": "workflow_icon_sci99",
"type": "workflow_icon",
"path": "./assets/extracted/[page_name]/workflow_icon_sci99.png",
"label": "卓创咨询",
"description": "SCI99.COM 卓创资讯 Logo",
"html_usage": "workflow_step"
},
{
"id": "excel_preview_summary",
"type": "excel_preview",
"path": "./assets/extracted/[page_name]/excel_preview_summary.png",
"label": "汇总成表",
"description": "价格汇总 Excel 表格无损原切截图",
"html_usage": "right_column_preview"
}
]
}
提取完成!使用 notify_user 或直接气泡回复告知用户素材提取的路径、提取到了多少个高质量素材,并推荐下游可以直接将其传入 generate_html_from_material 技能,通过真实图片增强网页真实感。
tools
Fetch customer/client data from Yingdao's Boss platform through the Boss login, asCode exchange, and AppStudio token chain, then download all paginated datasource records for a specified business group. Use when a user asks to pull, export, refresh, or inspect Yingdao Boss customer tables, configure this workflow for first use, or produce the shared latest dataset that a downstream analysis skill will consume.
development
分析用户指定的 HTML 页面,进行风格总结,输出固化的 HTML 片段模板
development
根据用户上传的资料(文字、图片、视频等)和指定的风格类型,查找 references/html_style_summary 目录下的风格总结文件,生成符合规范的 HTML 页面
data-ai
根据用户需求生成 AI Power 工作流 JSON 文件