AI 周报 PDF 渲染技能
功能说明
本技能负责将 AI 周报的 JSON 数据渲染为专业排版的 PDF 文件。采用全新的版式设计,精确还原国网江苏电力公司周报格式。
输入:符合格式要求的 JSON 数据文件
输出:设计精良、排版专业的 PDF 文件
使用方式
用户提供 JSON 数据后,执行以下步骤:
步骤 1:保存 JSON 数据
将用户提供的 JSON 数据保存为 /home/ubuntu/report_data.json 文件。
步骤 2:渲染 HTML
运行 Node.js 脚本,使用 EJS 模板渲染 HTML:
bash
pnpm add ejs && node /home/ubuntu/skills/ai-weekly-report/scripts/render.js
注意:
- •渲染脚本会自动检测并上传本地图片到 S3,无需手动处理
- •脚本会自动将旧数据格式转换为新模板所需格式
步骤 3:转换为 PDF
运行 Python 脚本,将 HTML 转换为 PDF:
bash
python3.11 /home/ubuntu/skills/ai-weekly-report/scripts/convert_to_pdf.py
步骤 4:交付成果
向用户交付生成的 PDF 文件。文件名格式为 人工智能行业动态周报(XXXX年X月第X周).pdf,根据 JSON 数据中的 period 字段自动生成。
例如,当 period 为 "2026年1月第5周" 时,生成的文件为 /home/ubuntu/人工智能行业动态周报(2026年1月第5周).pdf。
JSON 数据格式要求
完整格式示例
输入的 JSON 数据必须严格遵循以下结构(支持新旧两种格式):
新格式(推荐)
json
{
"title": "人工智能行业动态周报",
"period": "2026年1月第5周",
"publishDate": "2026-02-03",
"introduction": {
"keywords": ["关键词1", "关键词2", "关键词3"],
"content": "导读内容..."
},
"keyData": [
{
"indicator": "指标名称",
"value": "数值",
"change": "变化情况",
"source": "数据来源"
}
],
"sections": [
{
"type": "核心看点",
"title": "一、核心看点",
"items": [
{
"title": "新闻标题",
"source": "新华网/科技日报",
"date": "2026-02-05",
"summary": "新闻摘要内容...",
"analysis": "影响与解读内容...",
"imageUrl": "/home/ubuntu/images/news1.jpg",
"tags": ["#标签1", "#标签2"]
}
]
}
],
"summary_outlook": {
"title": "五、本周小结与展望",
"content": "小结内容..."
},
"footer": "信通公司数据运营中心 荣誉出品"
}
旧格式(兼容)
旧格式数据会自动转换为新格式,无需手动修改。主要差异:
- •旧格式的
summary和analysis会分别映射到新格式的content和industryInsight - •旧格式支持
<next_paragraph />和<strong>标签,会自动转换
字段说明
顶层必填字段
- •
title(string):周报标题 - •
period(string):时间周期,如"2026年1月第5周" - •
publishDate(string):发布日期,格式YYYY-MM-DD - •
introduction(object):导读部分 - •
keyData(array,可选):关键数据列表 - •
sections(array):新闻板块数组 - •
summary_outlook(object):小结与展望 - •
footer(string):页脚信息
introduction 字段
- •
keywords(array,可选):3-4 个关键词 - •
content(string):导读内容,支持<next_paragraph />分段
keyData 数组(新增)
每个数据项包含:
- •
indicator(string):指标名称 - •
value(string):数值 - •
change(string):变化情况 - •
source(string):数据来源
sections 数组
每个 section 包含:
- •
type(string):板块类型,如"核心看点"、"技术前沿" - •
title(string):板块标题,如"一、核心看点" - •
items(array):新闻条目数组
每个 item 包含:
- •
title(string,必填):新闻标题 - •
source(string,可选):来源,如"新华网/科技日报" - •
date(string,可选):日期,格式YYYY-MM-DD - •
summary(string,必填):新闻摘要 - •
analysis(string,可选):影响与解读 - •
imageUrl(string,可选):图片路径或 URL - •
tags(array,可选):标签数组,如["#AI", "#大模型"]
summary_outlook 字段
- •
title(string):小结标题 - •
content(string):小结内容,支持<next_paragraph />分段
图片处理说明
imageUrl 字段支持两种格式:
- •
本地路径(推荐):
json"imageUrl": "/home/ubuntu/images/news1.jpg"
- •渲染脚本会自动上传到 S3 并替换为公网 URL
- •无需手动处理,简化流程
- •
公网 URL:
json"imageUrl": "https://example.com/image.jpg"
- •直接使用,不做处理
注意事项:
- •如果不需要配图,可省略
imageUrl字段或设为空字符串 - •本地图片路径必须存在且可读
- •上传失败时会在控制台输出警告,但不会中断渲染
格式规范
- •
段落分隔:使用
<next_paragraph />标签json"content": "第一段内容...<next_paragraph />第二段内容..."
- •
文本加粗:使用
<strong>标签(会自动移除)json"analysis": "<strong>影响与解读:</strong>这是分析内容..."
- •
避免 JSON 解析错误:
- •不要在 JSON 字符串中使用未转义的双引号
" - •如需引用,使用 HTML 实体
"或省略引号
- •不要在 JSON 字符串中使用未转义的双引号
PDF 样式特点
生成的 PDF 采用全新设计,精确还原国网江苏电力公司周报格式:
颜色方案
- •主题蓝色 (#3B7BB5):用于标题、标签
- •强调红色 (#C84343):用于章节标题横条
- •背景灰色 (#F5F5F5):用于"电力行业启示"框
页面布局
- •A4纸张 (210mm × 297mm)
- •页边距:上下15mm,左右20mm
- •页眉:报告标题 + 日期范围
- •页脚:组织名称 + 页码 + 保密提示
内容模块
- •封面页:标题、周期、编者按、关键数据表格
- •内容页:章节标题、文章标题、来源日期、配图、正文、标签、行业启示
- •洞察页:周度总结
- •尾页:免责声明
设计特点
- •蓝色科技主题,专业大气
- •卡片式布局,层次分明
- •关键数据表格,一目了然
- •电力行业启示框,重点突出
- •自适应配图,美观协调
技术实现
- •模板文件:
/home/ubuntu/skills/ai-weekly-report/templates/report_template.ejs - •渲染脚本:
/home/ubuntu/skills/ai-weekly-report/scripts/render.js - •转换脚本:
/home/ubuntu/skills/ai-weekly-report/scripts/convert_to_pdf.py - •技术栈:EJS + Node.js + WeasyPrint
- •图片上传:manus-upload-file(自动调用)
更新日志
v2.0.0 (2026-02-11)
- •✨ 全新版式设计,精确还原国网江苏电力公司周报格式
- •✨ 新增关键数据表格模块
- •✨ 新增标签系统
- •✨ 新增来源和日期字段
- •✨ 优化页眉页脚设计
- •✨ 支持新旧数据格式自动转换
- •🎨 采用蓝红配色方案,更加专业
- •🎨 优化排版和间距,提升阅读体验
v1.0.0
- •初始版本,基础功能实现