GEO 报告 PDF 生成器(中国汽车出口版)
把一份报告 Markdown 渲染成可直接发给客户或领导的 PDF: 带深蓝封面、评分色阶表格、严重度分节、自动分页脚注。
与上游的区别(重要)
上游 geo-report-pdf 依赖 pandoc + macOS Chrome 硬路径。
本版不依赖 pandoc,改为零依赖链路:
报告 Markdown ──(markdown 库)──▶ HTML ──(Playwright Chromium 的 page.pdf)──▶ PDF
渲染引擎优先用 Playwright 内置 Chromium;若不可用,自动回退到系统 Chrome/Edge 无头模式。 Windows / macOS / Linux 通用。
前置依赖
只需 Python 库(本机托管 venv 已具备):
markdown(Markdown → HTML)playwright(Chromium 渲染;内核已随环境安装)
无需 pandoc、无需 wkhtmltopdf、无需 ReportLab。
使用步骤
第 1 步:确认报告 Markdown 存在
默认对象是 /gauto report 产出的 GEO-CLIENT-REPORT.md(也接受 GEO-AUDIT-REPORT.md 或任意结构化报告)。
若不存在,先让用户跑 /gauto report <url>,或指定已有的报告文件路径。
第 2 步:运行脚本
PY="C:/Users/Administrator/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
SKILL="C:/Users/Administrator/.workbuddy/skills/geo-auto-export"
"$PY" "$SKILL/scripts/report_pdf.py" GEO-CLIENT-REPORT.md -o GEO-CLIENT-REPORT.pdf
封面元数据:脚本会先自动从报告 Markdown 抓取(中英兼容),再用命令行参数覆盖。
| 字段 | 报告里的常见写法 | 覆盖参数 |
|---|---|---|
| 品牌名 | **品牌:** 示例好车 / 首个 H1 |
--brand |
| 域名 | **域名:** xx.com |
--domain |
| GEO 分 | ## GEO 就绪分:58/100 —— 中等 |
--score |
| 档位标签 | 同上行破折号后的中文 | --label |
| 审计日期 | **审计日期:** 2026-09-16 |
--date |
| 业务类型 | **业务类型:** … |
--business-type |
| 目标市场 | **目标市场:** … |
--locations |
| 平台 | **平台:** … |
--platform |
示例(覆盖封面):
"$PY" "$SKILL/scripts/report_pdf.py" GEO-CLIENT-REPORT.md \
--brand "广东好车控股" --domain "chinagoodcar.com" \
--score "63" --label "中等" \
-o 好车GEO报告.pdf
第 3 步:回报结果
告诉用户:PDF 路径、大小(KB)、可选打开预览。
PDF 里有什么
- 封面:深蓝渐变 + 品牌名 + 域名 + GEO 分徽章(按分数上色)+ 审计日期 / 业务类型 / 目标市场 / 平台。
- 评分表格:含
XX/100的单元格自动上色——≥80 绿、≥65 蓝、≥50 琥珀、≥35 橙、<35 红。 - 发现分节:含严重度关键字的三级标题(严重/高/中/低,或 critical/high/medium/low)下方内容块加彩色左边框。
- 自动分页:高优先级 / 中优先级 / 行动计划 / 90 天 / 组件得分 等等章节自动另起一页。
- 代码块:JSON schema 以深色等宽样式呈现。
- 页脚:
GEO 审计报告 · 中国汽车出口版+ 页码(通过 CSS@page)。
自定义
| 想改什么 | 改哪里 |
|---|---|
| 颜色 / 字体 | templates/geo-report-style.css |
| 封面布局 / 文案 | templates/geo-report-template.html |
| 评分上色阈值 | 模板 <script> 里的 scoreColor() |
| 哪些章节自动分页 | 模板 <script> 里的 breakBefore 数组 |
| 元数据抽取规则 | scripts/report_pdf.py 的 extract_meta() |
故障排查
| 问题 | 处理 |
|---|---|
缺少依赖:markdown |
pip install markdown(托管 venv 已含) |
| Playwright 启动失败 | 脚本会自动回退系统 Chrome/Edge;仍失败则 python -m playwright install chromium |
| PDF 空白 | 提高脚本里 networkidle 超时,或检查报告 Markdown 是否为空 |
| 封面字段缺失 | 检查报告头部是否有 **品牌:** / **域名:** 等行;或用命令行参数直接指定 |
| 中文显示为方块 | 系统缺中文字体;本机 Windows 自带微软雅黑,一般无此问题 |
| 字体未加载 | PDF 离线渲染,Google Fonts 失败时自动用系统字体回退,属预期 |