LESSON 07 / 11

自动排版

参数管版式,数据管内容

运行一个仅直接依赖ReportLab的新写示例,生成五页布局PDF。

本课目标

1. 区分书籍参数、章节数据与渲染函数。

2. 按README命令安装并运行示例。

3. 修改JSON后检查实际生成的五页。

讲解

1

先读数据,再看代码

JSON集中放标题、句子ID、说话者、词卡和活动答案;Python负责坐标、换行和分页。把文字到处写在绘图代码里,会让同一句产生多个版本。

2

运行教学示例

下载课程文件后,按README创建独立环境,安装reportlab并运行examples/排版示例v1.1.py。默认读取同目录章节数据,输出到examples/输出。无需账户、密钥或原始私有脚本。简化PDF使用内置Helvetica呈现英文布局,中文说明保留在JSON与网页,保证仅安装ReportLab即可运行。

3

占位图就是占位图

示例用明确标记的几何占位框展示版式,没有生成角色插画。修改一条正文后,气泡与课文都应随ID更新;v1.1作业词库也从JSON词卡生成,并检查词卡与听读ID。用pdftoppm预览后检查换行与答案,不以脚本退出成功代替图像检查。

教学示例,非原始制作记录 · 简化结构

data = json.loads(data_path.read_text(encoding="utf-8"))
units = {unit["id"]: unit for unit in data["chapter"]["utterances"]}
# 五页渲染函数读取同一份正文,并明确显示插画占位。
for render in (comic_page, panorama_page, words_page,
               lesson_page, homework_page):
    render(canvas, data, units)
    canvas.showPage()
canvas.save()

真实页面案例

来源:彼得兔PDF第5页。点击放大;原内容保持不变;AI辅助历史样例,改编组织者Haixiang Ding, MD。

问题

作业句与词语宝箱及答案分别维护时,可能改了题目却没改答案。

可能原因 / 分析

文字直接散落在多个绘图位置。

修正方法

从章节数据引用正文,填空由指定词位生成;答案在家长数据区单独记录与检查。

本案例为局部抽样,修正方法是教学建议,不代表原PDF已经修订。

可复制提示词

教学示例,非原始制作记录

请帮助我修改这个教学排版示例,不读取任何私人脚本。
输入:章节数据JSON【粘贴】、当前报错或预览问题【填写】。
保持直接依赖仅reportlab,其他使用Python标准库。
章节正文通过稳定ID引用;每泡最多8词;代码与新提示词均标“教学示例,非原始制作记录”。
保留五页:漫画、场景找物、词卡、听读课文、作业。
缺插画时显示明确占位框,不把占位画面描述为已完成插画。
输出最小修改、运行命令与需要实际渲染核对的项目;不要伪造执行成功或PDF截图。

检查清单

小作业

运行一次脚本,修改JSON中一条短句,再生成并比较相应页面。

真实PDF页面预览

待选择的页面截图