PPT改造与上线方法总结.md

教材自带 PPT → 网页课件(学生版)改造与上线方法总结

适用对象:出版社/教材配套 PPT(每章一个 .pptx,10×5.62 英寸 16:9) 已跑通:第 1 章(61 页)、第 2 章(87 页),并已上线到腾讯云 http://111.231.0.226:2345/lecture1|lecture2/ 工具:soffice(LibreOffice)、pdftoppm、Python(python-pptx / Pillow / lxml)、vision-identify 识图


一、总原则(三条,别再走偏)

  1. 只换图,不动 PPT 主体配色。课件原有蓝色系是设计基调,改它属于改版;要"配合整体色彩",调的是替换进去的新图。
  2. 逐页还原,不做重编。页数必须等于源 PPT 页数;文字、备注、图片全部保留,矢量图形(自选图形/线条/组合)用原页高清渲染图承载,避免用 HTML 重画导致走形。
  3. 学生版只展示内容。不出现"原页/叠字/纯文字"模式切换、不出现文字稿/素材侧栏;问题页答案采用同页折叠。

二、换图流程(把别校元素换成我校)

1. 找出"含他校元素"的图片

2. 生成替换图(cover 裁切 + 调色)

  1. 等比放大:横幅源图(广金官网 https://www.gduf.edu.cn/images/47.jpg,1920×500,站点最大尺寸)放大到恰好盖满目标框(一般 2.00×)。
  2. 横向裁切(不拉伸、不留模糊延伸):裁切窗口按主体位置给 bias(广金主体建筑偏右,取 0.53–0.56)。
  3. 反锐化:UnsharpMask(radius=2, percent=85),补回插值造成的发虚。
  4. 调色对齐原图:先量原图的 HSV 均值(饱和度/明度/色相),再对新图做 Color(目标饱和/当前饱和) → Brightness(目标明度/当前明度),并叠加 18% 模板主蓝 #1F4E79 使其融入蓝色调。
    • 实测目标:image20/image14 饱和 0.25、明度 0.70;image1 饱和 0.27、明度 0.58。
  5. 写回 pptx:只替换 ppt/media/<名> 的字节,其余条目原样复制。校验方式:逐 XML 比对颜色值,差异必须为 0。

3. 踩过的坑


三、逐页转写网页流程

# 1) 每页渲染成图(150 DPI → 1500×844;如需更清晰可提高 -r)
soffice --headless --convert-to pdf --outdir _conv "课件PPT-GDUF版/ChN-xxx-GDUF版.pptx"
pdftoppm -r 150 -png "_conv/ChN-xxx-GDUF版.pdf" "_conv/assets/page/slide"
# 2) 抽取每页文字(含位置、字号、粗体)与全部媒体
python _conv_work/_extract.py "课件PPT-GDUF版/ChN-xxx-GDUF版.pptx" _conv
# 3) 生成学生版网页(页数=源页数;问题页答案同页折叠;目录页含关键词搜索)
python _conv_work/_build_student.py _conv "_deploy/stmt-lectureN" \
  "软件测试课程设计" "第 N 章 xxx" _conv/_answers.json

要点:


四、上线到云服务器

tar czf /tmp/stmt-lectureN.tar.gz stmt-lectureN
~/Downloads/scp_cloud.sh /tmp/stmt-lectureN.tar.gz /root/stmt-lectureN.tar.gz
~/Downloads/ssh_cloud.sh 'cd /var/www/stmt && cp -a lectureN _backup-lectureN-<日期> \
  && rm -rf /tmp/new && mkdir -p /tmp/new && tar xzf /root/stmt-lectureN.tar.gz -C /tmp/new \
  && rm -rf lectureN && mv /tmp/new/stmt-lectureN lectureN \
  && chown -R lighthouse:lighthouse lectureN && rm -f /root/stmt-lectureN.tar.gz'

五、命令速查(本章一键流程)

cd "/home/zyw/Downloads/dl-hub/25-软件测试方法和技术第4版OCR整理"

# ① 换图(第 2 章为例)
python _brand_work/_gduf_apply.py \
  "课件PPT-加校徽/Ch2-软件测试基本概念-STMT-2022.pptx" \
  "课件PPT-GDUF版/Ch2-软件测试基本概念-GDUF版.pptx" \
  "image14.jpg=2130x1000@0.56@0.70@0.25" "image1.jpg=1780x1000@0.53@0.58@0.27"

# ② 渲染 + 抽取 + 生成学生版
soffice --headless --convert-to pdf --outdir _conv2 "课件PPT-GDUF版/Ch2-软件测试基本概念-GDUF版.pptx"
pdftoppm -r 150 -png "_conv2/Ch2-软件测试基本概念-GDUF版.pdf" "_conv2/assets/page/slide"
python _conv_work/_extract.py "课件PPT-GDUF版/Ch2-软件测试基本概念-GDUF版.pptx" _conv2
python _conv_work/_build_student.py _conv2 "_deploy/stmt-lecture2" "软件测试课程设计" "第 2 章 软件测试基本概念" _conv2/_answers.json

# ③ 上线(见第四节命令)

六、已完成与待办

章源页数换图学生版云端备注
第 1 章 引论61image20.jpg / image1.jpg✅ 57、59 页折叠答案✅ /lecture1/旧 40 页重编版已备份
第 2 章 软件测试基本概念87image14.jpg / image1.jpg✅ 85 页折叠答案✅ /lecture2/占位页已备份
第 3–15 章待做每章先比对哈希找同源同济图每章按问题页配置 _answers.json替换 lectureN/流程已全部脚本化
下载此文件