截图命令:
chromium-browser --headless --no-sandbox --disable-gpu \ --screenshot=output.png --window-size=1200,2134 \ "http://your-page.html"
【关键】不要使用 wkhtmltoimage(Qt WebKit 引擎太老,不支持现代 CSS,圆角、渐变等全部失效)。必须用 Headless Chrome。
| 元素 | 字号 | 字重 | 颜色 |
|---|---|---|---|
| 书名(大标题) | 80px | 800 | #c0392b |
| 作者(副标题) | 30px | 400 | #b09580 |
| 条目编号(01-05) | 38px | 800 | 每项独立配色 |
| 条目标签 | 60px | 700 | 每项独立配色 |
| 条目正文 | 45px | 400 | #5a4a3e |
| 二维码标签 | 28px | 700 | #c0392b |
| 二维码副标签 | 24px | 400 | #b09580 |
| 底部金句 | 30px | 400 | #c8b8a8 |
| 品牌落款 | 24px | 600 | #2a8a5a |
五项条目独立配色
| 条目 | 色值 | 高亮词1 | 高亮词2 |
|---|---|---|---|
| 01 红 | #c0392b | #c0392b | #c0392b |
| 02 橙 | #e07040 | #e07040 | #d47a1a |
| 03 绿 | #1a8a5a | #1a8a5a | #c0392b |
| 04 蓝 | #3a7bc8 | #3a7bc8 | #c0392b |
| 05 紫 | #8a4baf | #8a4baf | #c0392b |
渐变色边框:#c0392b → #e07040 → #f0c040
方式:wrapper 外层渐变背景 14px padding + inner 白色圆角卡片 32px border-radius
┌─ wrapper(渐变色边框)───────────────────────────┐ │ ┌─ inner(白色圆角卡片)───────────────────────┐ │ │ │ │ │ │ │ ① Header("📖 精读笔记"标签 + 右上日期) │ │ │ │ │ │ │ │ ② 书名(大字号品牌红)+ 作者 │ │ │ │ │ │ │ │ ③ 分割线(红到透明渐变) │ │ │ │ │ │ │ │ ④ "✦ 五大核心改变" 章节标题 │ │ │ │ │ │ │ │ ⑤ 01-05 条目列表(左色条+编号+标签+正文) │ │ │ │ │ │ │ │ ⑥ 分割线 │ │ │ │ │ │ │ │ ⑦ 底部:左🎧二维码 | 金句+品牌 | 📖右二维码 │ │ │ │ │ │ │ └───────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────┘
inner padding:上下 70/56px,左右 72px
wrapper padding:14px
| 属性 | 规范 |
|---|---|
| 尺寸 | 250 × 250 px |
| 位置 | 底部金句左右各一 |
| 左二维码 | 🎧 扫码听音频 → 语音播放页链接 |
| 右二维码 | 📖 扫码看全文 → 完整笔记HTML页链接 |
| 生成方式 | Python qrcode 库 |
| 颜色 | 深色(建议 #111 或品牌红 #c0392b) |
/var/www/html/
├── reading/
│ ├── {bookname}-card.png ← 卡片图片(终版)
│ ├── {bookname}-notes.html ← 全文笔记HTML
│ ├── {bookname}-qr-audio.png ← 语音二维码
│ ├── {bookname}-qr-article.png ← 全文二维码
│ └── {bookname}-card.html ← 卡片HTML源文件(可复用)
├── voice/
│ └── msg_{timestamp}.mp3 ← 语音文件
└── index.html ← 主页(含读书卡片专区)
生成二维码:
python3 -c "
import qrcode
qr = qrcode.QRCode(box_size=10, border=2)
qr.add_data('https://your-url')
qr.make(fit=True)
img = qr.make_image(fill_color='#c0392b', back_color='#ffffff')
img.save('qr.png')
"
edge-tts 生成语音:
edge-tts --voice zh-CN-YunxiNeural --rate "+0%" \ --text "$(cat script.txt)" --write-media output.mp3
Headless Chrome 截图:
chromium-browser --headless --no-sandbox --disable-gpu \
--screenshot=card.png --window-size=1200,2134 \
"http://localhost/reading/{bookname}-card.html"