希沃 EN5 课件转 HTML 查看器 & PDF 导出工具
希沃 EN5 课件转 HTML 查看器 & PDF 导出工具

希沃 EN5 课件转 HTML 查看器 & PDF 导出工具

项目简介

一个将希沃白板 5(EN5)课件转换为离线 HTML 查看器的工具集,同时支持直接从希沃在线播放器截图导出高清 PDF + 视频。

课件来源为七年级生物学《第一节 流动的组织——血液》,共 36 页,包含图片、文字、形状、表格、视频、课堂活动及逐页点击动画等丰富元素。

解决什么问题

希沃白板 EN5 课件(.enbx)是专有格式,只能在希沃客户端或在线平台打开。脱离希沃环境后无法查看,给课件分享、归档、打印带来不便。

本工具解决:

  • 离线查看:将课件转换为独立的 HTML 文件,双击即可在浏览器打开,无需安装任何软件
  • 高清导出:直接从希沃在线播放器截图,保留原始渲染引擎的像素级精度,合成 PDF
  • 视频保留:课件中的视频文件一并导出,与 PDF 放置在同一目录

技术方案

整套工具分为两个核心脚本:

seewo_viewer_gen.py — XML → HTML 生成器

通过解析希沃课件的 XML 描述文件(slide_N.xml),还原每页的内容布局:

  • 图片、形状、文字框的精确位置与样式
  • 形状内的内嵌文字(InlineText)
  • 分组容器的嵌套变换
  • SVG 路径格式兼容(F1M → M)
  • 点击动画的逐步揭示

纯 Python 实现,无外部依赖,仅使用标准库 xml.etree.ElementTree。

seewo_export_pdf.py — 在线截图 → PDF 导出器

利用 browser-harness(Chrome DevTools Protocol)连接到浏览器中的希沃在线播放器:

  • 自动遍历所有页面
  • 通过 ENOWSDK API 揭示全部动画
  • 2 倍高清截图(2368×1332)
  • Pillow 合成为单文件 PDF
  • 复制视频到输出目录

使用方法

生成离线 HTML

python seewo_viewer_gen.py

输出 seewo-viewer.html,双击浏览器打开,方向键翻页,空格推进动画。

导出 PDF + 视频

# 1. Chrome 打开希沃课件分享链接 → 点击「获取课件」
# 2. 连接 browser-harness
browser-harness --setup
# 3. 执行导出
browser-harness -c "exec(open('seewo_export_pdf.py').read())"

输出目录包含 slides.pdf(36 页,约 12 MB)及所有视频文件。

技术亮点

早期尝试过本地 HTML + html2canvas 截图、Node.js + Puppeteer 等多种方案,最终选择「browser-harness + 在线播放器」路线,原因是:

  1. 精度:本地 XML → HTML 转换存在渲染偏差(文字位置、SVG 路径等),希沃在线播放器是官方渲染引擎,像素级精确
  2. 动画完整性:通过 ENOWSDK API 可以一次性揭示所有动画步,避免逐步截图造成的时序问题
  3. 效率:36 页 + 全部动画揭示,全过程约 2-3 分钟

开发过程中遇到的典型问题包括希沃 F1M 路径前缀、InlineText 内嵌文字提取、Group 嵌套容器的 CSS transform 实现等,均已修复并记录在项目文档中。

项目结构

├── seewo_viewer_gen.py       ← XML → HTML 生成器
├── seewo_export_pdf.py       ← PDF 导出器
├── seewo-viewer.html         ← 生成的离线查看器
├── seewo-raw/                ← 原始课件数据(XML + 资源)
│   ├── manifest.json
│   ├── slides/               ← 36 页 XML
│   └── resources/            ← 图片、视频等
├── seewo-courseware.skill.md ← AI 技能文档
└── README.md                 ← 完整文档

适用场景

  • 教师备份课件为通用格式
  • 课件分享给没有希沃环境的用户
  • 打印课件内容为纸质资料
  • 课件归档与版本管理

获取:希沃工程

starry0214

订阅评论
提醒
guest

0 评论
最新
最旧 最多投票
内联反馈
查看所有评论