[元助手开发日记] 使用ai生成PPT(一)

ai生成PPT的原理其实并不复杂,首先生成PPT大纲,然后将大纲填入PPT模板中。

大纲生成

大纲的生成流程如下:

  1. 生成标题
你是一个PPT制作专家。
请以【$subject】为主题,生成1个PPT的主标题和副标题,要求能吸引人的注意。
主标题和副标题之间使用一个换行进行分隔;不需要进行解释,只给出结果即可
  1. 生成章节
你是一个PPT制作专家。
我希望你使用markdown的格式根据```$subject```生成所有章节的大纲,并且请遵循以下要求:
1. 每一个章节分为章节名称和章节内容列表两部分。
2. 章节名称为一级标题,不少于3个章节。
3. 章节内容为二级标题,内容列表不少于3个。
4. 不要进行解释,只给出内容即可。
  1. 生成章节内容
你是一个PPT制作专家。
PPT的大纲为$chapters。
根据大纲,请将${chapters[i]}部分的内容进行适当的扩写,要求如下:
1. 内容符合主题要求,有条理;
2. 避免出现重复内容;
3. 使用换行进行分隔;
4. 不要进行解释,只给出内容即可。

注意事项:

ai生成的内容不稳定,在进行内容解析时,考虑多种情况;

PPT生成

PPT生成原打算使用flutter_pptxdat_pptx库,但是flutter_pptx生成的ppt文件在打开时会报错

并且flutter_pptx的样式也不够多,无法满足个性化配置需求。

天无绝人之路,github上有开源项目 PptxGenJS,支持的配置类型非常丰富。

这是一个js项目,幸亏之前有做flutter调用js项目的经验,使用flutter_js进行桥接,实现对js的调用。

测试

安装和相关的库后,进行简单的测试

async function generatePPT(outline) {
  // 1. Create a new Presentation
  let pres = new PptxGenJS();
  
  // 2. Add a Slide
  let slide = pres.addSlide();
  
  // 3. Add one or more objects (Tables, Shapes, Images, Text and Media) to the Slide
  let textboxText = "Hello World from PptxGenJS!";
  let textboxOpts = { x: 1, y: 1, color: "363636" };
  slide.addText(textboxText, textboxOpts);
  
  slide.addText("BONJOUR - CIAO - GUTEN TAG - HELLO - HOLA - NAMASTE - 你好", {
    x: 0,
    y: 1,
    w: "100%",
    h: 2,
    align: "center",
    color: "0088CC",
    fill: "F1F1F1",
    fontSize: 24,
  });
  
  // 4. Save the Presentation
  return await pres.write("base64");
}
generatePPT('$outline');

PPT可以正常打开并且内容正确,后续将时使用此方案来实现相关功能。

关注【元助手AI】公众号,获取更多教程。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值