备课环节中,同一份内容往往要做两遍。教材按章节编排知识点、例题与习题,内容完整详尽;课件则要重新组织成课堂可用的页面,用于讲解与呈现。教师需要把教材内容整理成每页若干要点,配上例题与图示,把习题拆成一页一题,还要另行准备讲评用的答案。这一步没有技术难度,却相当耗时,且教材每修订一版就要重做一次。
Spire.Agent.Office 的 Presentation AI 能力可将这一步交给 AI 智能体完成:将 PDF 教材作为附件输入,用自然语言描述课件的组织方式与呈现要求,AI 读懂教材内容后自动生成幻灯片。既可生成授课课件(按小节成页,含概念、例题与讲授备注),也可生成习题课件(每页一题,答案以动画形式出现在页面上)。
对比传统SDK API处理
| 传统 Spire.Office for .NET API | Spire.Agent.Office 处理 | |
|---|---|---|
| 驱动方式 | 遍历 PDF 页面提取文字与图形,再逐页新建幻灯片与文本框,分页与版式逻辑全部需要编码 | 将教材作为附件交给 AI,用自然语言描述课件的组织方式与呈现要求,自动编排执行路径 |
| 代码量 | 通常需要 200-400 行 C# 代码(含页面解析、幻灯片创建、版式设置、备注页写入) | 约 10 行调用代码 + 1 条自然语言指令 |
| 内容提炼 | 需人工把整段叙述改写为要点,并自行挑选例题、重绘图示 | AI 读懂教材,按"要点 + 例题 + 图示"的约束提炼内容 |
| 版式与备注 | 新建幻灯片的版式、字号、母版与备注页均需手工设置 | AI 套用统一版式,并将讲授提示写入备注栏 |
| 需求变更 | 调整页数或内容详略需改代码、编译、重新部署 | 修改指令中的描述即可生效 |
本文介绍如何使用 Spire.Agent.Office 由 PDF 教材生成 PowerPoint 课件。全文通过两个案例展示"由教材生成授课课件"与"由教材生成习题课件"两种典型用法:
有关产品安装和 SpireToken 配置,请参考 在 .NET 项目中集成 Spire.Agent.Office。以下示例默认已安装 Spire.Agent.Office 并完成 SpireToken 配置。
案例一:由教材生成授课课件
教材内容完整、逻辑连贯,但无法直接投影——整段论述放到屏幕上就是满屏小字,章节层级在教材中靠版式区分,搬到幻灯片上则需用页面重新切分。教师要做的是按小节重新组织:保留该节的核心概念、公式与典型例题,把大段叙述改写成课堂可读的要点,并补上教材中的图示。页面既要有足够内容支撑一整节课,又不能整段照搬原文,否则页面密到没人看得清。版式上则要求全篇统一:浅色系主题、逐页动画与适量配图,正文字号不小于 24 磅。
例题的呈现方式尤为关键。教材讲解公式与定理时通常先给推导、再给结论,若课件只把结论搬上页面,学生难以理解其来由,因此指令要求例题保留完整推导步骤。讲课时需要提醒的内容——该页的强调重点、易错点与课堂节奏——写入备注栏,投影时不可见,只出现在演讲者视图。以下示例将 PDF 教材作为附件输入:
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Presentation;
// 教材文件作为附件输入
string[] attachmentPaths = new string[]
{
@"E:\textbook\教材.pdf"
};
// PPT 处理相关配置
string inputPath = null; // 课件从零生成,无需输入 PPT
string savePath = @"E:\textbook\课件.ppt"; // 结果文档路径
string key = "**************************"; // SpireToken Key
string instruction =
"读取附件中的 PDF 教材,按以下要求生成教学课件:" +
"1. 按教材原有章节顺序组织,不遗漏任何内容;" +
"2. 每页内容充实:列出该章的核心概念与公式,并配上教材中的典型例题;" +
"3. 例题须给出完整推导步骤,不只列结论;" +
"4. 保留教材中的图示、表格与数据,用图示或表格辅助说明,便于学生理解;" +
"5. 为每页撰写演讲备注,写明讲解重点、易错点与课堂节奏;" +
"6. 全部页面套用统一版式,文件主题浅色系,添加适当的动画和图片,正文字号不小于 24 磅;" +
"最终输出保存为PPT文件";
// 调用PPT文档处理函数
AIResult result = ExecuteDemoPpt(instruction, inputPath, savePath, key, attachmentPaths);
// 执行PPT文档AI处理
static AIResult ExecuteDemoPpt(string instruction, string inputPath, string savePath, string key, string[] attachmentPaths)
{
// 创建AIOptions选项配置对象
AIOptions options = new AIOptions();
options.SpireToken = key; // 设置SpireToken Key
// 使用Presentation对象处理PPT文档
using (Presentation ppt = new Presentation())
{
// 从文件加载PPT文档(首次生成课件时无需加载,从零创建)
if (!string.IsNullOrEmpty(inputPath) && File.Exists(inputPath))
{
ppt.LoadFromFile(inputPath);
}
// 创建AI文档处理器
AIDocumentProcessor processor = ppt.AI(options);
// 执行AI指令
return processor.ExecuteInstruction(ppt, instruction, savePath, attachmentPaths);
}
}
由教材生成的授课课件

案例二:由教材生成习题课件
课后练习的习题集由学生独立完成,回到课堂上再由教师逐题讲解。习题放在幻灯片上需要一页一题,答案做成动画,讲解到该题时才触发显示,学生先独立判断,再跟着讲解核对思路。
但把一份习题集搬到幻灯片上,工作量并不小:习题集里题号连续排布,一页上挤着好几道题,需要逐题拆出、一题一页重新排版;题干中的表格与示意图也要一并保留,否则学生看不懂题目;讲解时要用的答案,还需逐题整理出来并做成动画。本案例把习题课件作为独立产出物,将课后练习的习题 PDF 作为附件输入,由 AI 逐题提炼并排版,题干常驻页面,答案以动画形式出现,讲解时逐题触发:
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Presentation;
// 教材习题部分作为附件输入
string[] attachmentPaths = new string[]
{
@"E:\textbook\习题.pdf"
};
// PPT 处理相关配置
string inputPath = null; // 课件从零生成,无需输入 PPT
string savePath = @"E:\textbook\习题.ppt"; // 结果文档路径
string key = "**************************"; // SpireToken Key
string instruction =
"读取附件中的 PDF 教材习题,按以下要求生成习题课件:" +
"1. 按教材原有题号顺序组织,每一道题固定占一页习题页,不遗漏、不合并任何一题;" +
"2. 完整保留题干、选项与图示,确保学生可直接作答;" +
"3. 答案作为动画出现;" +
"4. 全部页面套用统一版式,文件主题浅色系,添加适当的动画和图片,正文字号不小于 24 磅;" +
"最终输出保存为PPT文件";
// 调用PPT文档处理函数
AIResult result = ExecuteDemoPpt(instruction, inputPath, savePath, key, attachmentPaths);
// 执行PPT文档AI处理
static AIResult ExecuteDemoPpt(string instruction, string inputPath, string savePath, string key, string[] attachmentPaths)
{
// 创建AIOptions选项配置对象
AIOptions options = new AIOptions();
options.SpireToken = key; // 设置SpireToken Key
// 使用Presentation对象处理PPT文档
using (Presentation ppt = new Presentation())
{
// 从文件加载PPT文档(首次生成课件时无需加载,从零创建)
if (!string.IsNullOrEmpty(inputPath) && File.Exists(inputPath))
{
ppt.LoadFromFile(inputPath);
}
// 创建AI文档处理器
AIDocumentProcessor processor = ppt.AI(options);
// 执行AI指令
return processor.ExecuteInstruction(ppt, instruction, savePath, attachmentPaths);
}
}
由教材生成的习题课件

常见问题
课件上的正文照搬了教材,字号小得投影看不清
原因:指令没有说明每页该写什么,AI 会把整段叙述直接搬上页面,并自动缩小字号以容纳文字。
解决:明确要求每页列出核心概念与公式、配上典型例题,并保留教材的图示与表格,而不是整段照搬原文;同时给出字号下限(如"正文字号不小于 24 磅")。只约束字号,文字放大后溢出页面;只约束内容形式而不给下限,版式仍可能被压缩。
教材篇幅一长,处理就很慢,甚至会超时
原因:生成课件逐页进行,AI 需反复读写文档并重新送入已有内容,页数越多、单页文字越密,token 消耗与耗时增长越快。
解决:创建 AIOptions 时设置 TimeoutMs(单位毫秒)。几十页的完整教材可给到 10 分钟(600000)。
AIOptions options = new AIOptions();
options.TimeoutMs = 600000; // 长教材预留 10 分钟
options.SpireToken = key;
获取 SpireToken Key
- 联系 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 或访问 https://www.e-iceblue.com/TemLicense.html 获得试用/商业 API 密钥
在代码中配置:
AIOptions options = new AIOptions();
options.SpireToken = key;







