使用 Office js 将 PowerPoint 形状复制到新幻灯片

问题描述 投票:0回答:1

我正在尝试使用 Office js 做一些看似简单的事情,但我无法让它工作。我正在阅读 pptx 文件,并将第一张幻灯片插入到我的演示文稿中,内容如下:

  //insert new slide from pptx file
  context.presentation.insertSlidesFromBase64(base64file);
  await context.sync();
  context.presentation.slides.load();
  await context.sync();

  //load all the shapes on the new slide
  const slide = context.presentation.slides.getItemAt(0);
  slide.load();
  await context.sync();

完成此操作后,我想在新幻灯片上创建这些相同的加载形状,或将形状剪切并粘贴到新幻灯片上。我看不出有什么办法可以做到这一点。我错过了什么还是这不可能?

我预计会有一种方法来克隆现有形状并将它们添加到不同的幻灯片中,但我认为这是不可能的。我想也许您可以将克隆的形状添加到不同幻灯片的幻灯片集合中,但这似乎不可能。我想要实现的目标是读取包含一张幻灯片的 pptx 文件,读取该幻灯片的形状并将这些形状插入到 PowerPoint 中当前选定的幻灯片上。这样做的原因是,我们真正想要做的是读取多个 PowerPoint 文件,获取所有形状并将它们放在一张幻灯片上,最好将每个选定的输入 PowerPoint 文件中的每组形状进行分组。

预先感谢您的帮助。

office365 powerpoint office-js office-addins powerpoint-web-addins
1个回答
0
投票

我咨询过微软内部,得到的答案是目前没有任何方法可以按照你想要的方式复制图像。我希望你可以将

push
图像对象添加到 ShapeCollection.items 数组中;但这行不通。您永远不能以这种方式将对象添加到集合对象,因为 JavaScript 运行时中的 Office
context
对象不知道它们,除非它们是通过 Office.js 方法添加的。 (正如您所发现的,ShapeCollection 对象上没有添加图像的方法。)由于
context
不知道推送到
items
数组的对象,因此当调用
context.sync
时,这些对象将被未从 JavaScript 运行时发送到打开的演示文稿文档。

很抱歉带来坏消息。您可以建议将此方案的 API 添加到 Office.js,网址为 Microsoft 365 开发人员平台创意

© www.soinside.com 2019 - 2024. All rights reserved.