如何创建ONLYOFFICE宏,缩放幻灯片中的所有图片

在演示文稿中处理图像时,尤其是在图像较多的演示文稿中,手动调整每个图像的大小可能会非常耗时。利用本文即将介绍的宏,您可以轻松调整演示文稿中所有图像的大小。让我们深入了解如何构建这个简单的宏,优化您的演示文稿工作流程。

如何使用ONLYOFFICE宏缩放演示文稿中的图像

关于 ONLYOFFICE

ONLYOFFICE是一个国际开源项目,由领先的 IT 公司 Ascensio System SIA 开发。我们在新加坡、拉脱维亚、英国、塞尔维亚、亚美尼亚和乌兹别克斯坦设有分公司,员工和贡献者遍布全球 30 多个国家。我们的中国客户包括:南京大学、知网、百威中国、中信集团等。观看下方视频,进一步了解我们:

ONLYOFFICE,兼顾协作与安全的开源办公套件

ONLYOFFICE 提供文档编辑器:支持编辑处理文本文档、电子表格、演示文稿、表单、PDF和电子书。还提供文件储存及协作平台文档生成器转换器等其他工具。

目前 ONLYOFFICE 有许多广受欢迎插件,例如ChatGPT智谱 AI二维码生成器Zoterodraw.ioPixabayMarkdown 转换器等,也邀请大家开发适合中国用户的插件!

登记参与下届插件开发比赛

什么是 ONLYOFFICE 宏

如果您是一名资深 Microsoft Excel 用户,那么相信您已对于 VBA 宏非常熟悉了。这些宏是帮助您自动执行日常任务的小型脚本。无论是重构数据,还是在单元格区域中插入多个值。ONLYOFFICE 宏的基础是 JavaScript 语法文档生成器 API 方法。基于 JavaSript 的宏易于使用,具有跨平台特性且十分安全。这就使得其与 VBA 相比有着显著的优势。

下面一起来看看如何创建宏,用来调整幻灯片中所有图像的大小。

构建宏

  const resizeImg = (images, width, height, slideIndex) => {
    const finalWdth = width * 36000; //Convert mm to EMUs
    const finalHgt = height * 36000; //Convert mm to EMUs
    images.forEach((element) => {
      try {
        element.SetSize(finalWdth, finalHgt);
      } catch (error) {
        console.error(
          `Could not change size for one or more images in slide no. ${slideIndex}. Check your presentation once.`
        );
      }
    });
  };

我们首先定义一个函数resizeImg(),该函数负责调整图像的大小。该函数接收四个参数:图像数组、所需宽度、所需高度以及当前幻灯片的索引。

输入的宽度和高度将从毫米转换为EMUs(英制单位),然后作为参数传递给SetSize()方法。SetSize()方法会将每个图像的宽度和高度设置为输入值。

    const oPresentation = Api.GetPresentation();
    const slidesCount = oPresentation.GetSlidesCount();

接下来是宏的主要部分。我们首先使用GetPresentation()方法获取活动中的演示文稿(存储在oPresentation变量中),然后使用GetSlidesCount()方法获取幻灯片数量(存储在slidesCount变量中)。

    const width = 100; //in mm (modify this value)
    const height = 100; //in mm (modify this value)

然后,我们设置图像的所需宽度和高度,单位为毫米(mm)。您可以根据需要修改这些值。

    if (slidesCount === 0) {
      console.warn("You dont seem to have any slides in your presentation.");
      return;
    }

如果演示文稿没有幻灯片,我们记录一次警告并停止执行宏。

    for (let i = 0; i < slidesCount; i++) {
      const oSlide = oPresentation.GetSlideByIndex(i);
      const slideImgs = oSlide.GetAllImages();

接下来,我们使用for循环遍历所有幻灯片。在每次循环中,我们使用GetAllImages()方法获取幻灯片中的所有图像。

      if (slideImgs.length === 0) {
        console.warn(`No images found on slide ${i + 1}`);
        continue; //continue to next slide
      }

如果演示文稿没有幻灯片,我们记录一次警告并转到下一张幻灯片。

resizeImg(slideImgs, width, height, i + 1);

确认幻灯片中存在图像后,宏便会调用resizeImg()方法。我们将幻灯片中所有图像的数组、高度、宽度以及当前幻灯片的索引作为参数传入。

完整的宏代码

以下是宏的完整代码:

(function () {
  const resizeImg = (images, width, height, slideIndex) => {
    const finalWdth = width * 36000; //Convert mm to EMUs
    const finalHgt = height * 36000; //Convert mm to EMUs
    images.forEach((element) => {
      try {
        element.SetSize(finalWdth, finalHgt);
      } catch (error) {
        console.error(
          `Could not change size for one or more images in slide no. ${slideIndex}. Check your presentation once.`
        );
      }
    });
  };

  try {
    const oPresentation = Api.GetPresentation();
    const slidesCount = oPresentation.GetSlidesCount();
    const width = 100; //in mm (modify this value)
    const height = 100; //in mm (modify this value)

    if (slidesCount === 0) {
      console.warn("You don't seem to have any slides in your presentation.");
      return;
    }

    for (let i = 0; i < slidesCount; i++) {
      const oSlide = oPresentation.GetSlideByIndex(i);
      const slideImgs = oSlide.GetAllImages();

      if (slideImgs.length === 0) {
        console.warn(`No images found on slide ${i + 1}`);
        continue; //continue to next slide
      }

      resizeImg(slideImgs, width, height, i + 1);
    }
  } catch (error) {
    console.error("An unexpected error occurred while running the macro", error);
  }
})();

让我们一起看看宏的执行效果。

如何创建ONLYOFFICE宏,缩放幻灯片中的所有图片

搞定!使用一个简单的宏,您便能一键调整演示文稿中所有图像的大小。ONLYOFFICE API 是一个强大的工具,能够处理各种任务,为开发更多宏和插件开辟无限可能。借助这个API,您可以充分发挥ONLYOFFICE的潜力,提高工作效率,简化工作流程。

如果您有任何问题或创新想法,欢迎与我们分享。我们重视您的反馈,并期待与您合作。祝您的探索之旅一切顺利!

相关链接

ONLYOFFICE 宏的自定义函数

ONLYOFFICE 演示文稿 API

宏样例

ONLYOFFICE 的 Github 页面

其他宏

OnlyOffice 是一款基于浏览器的协同办公工具,支持编辑多种文档格式包括 Word、Excel 和 PowerPoint 等 Office 文档。在 OnlyOffice ,用户可以轻松地调整文档内的文本大小,这通常被称为“字符缩放”功能。 ### 调整字符缩放的方法: 1. **直接拖动滑块**:在编辑页面顶部,您会看到一个用于调整文本显示大小的滑块。将鼠标悬停在其上,然后拖动以放大或缩小文字。这通常是快速改变文档整体大小最直观的方式。 2. **通过菜单设置**:您也可以通过点击页面右上角的“视图”选项,在下拉菜单找到“字体大小”或类似名称的设置选项。在这里,您可以选择预设的字号级别,或者手动输入特定的百分比数值以自定义字体大小。 3. **全局偏好设置**:如果需要长期调整所有文档的默认大小,可以在 OnlyOffice 的配置选项进行全局设置。一般在账号管理或个人设置部分能找到此类选项,允许您设定默认的字体大小或其他视觉样式。 ### 可能的应用场景: - **适应视力需求**:对于有特殊视力需求的用户来说,调整字符缩放可以帮助他们更舒适地阅读文档。 - **提高阅读效率**:针对专业报告或长篇文章,适当增大字符可以使内容更容易浏览和理解,尤其是当读者需要快速获取信息时。 - **个性化展示**:在准备演讲稿或演示文稿时,可能需要根据屏幕尺寸和个人喜好调整字体大小,以确保内容清晰易读。 ### 相关问题: 1. How can I adjust the character scale in OnlyOffice to better suit my reading preferences or accommodate different display sizes? - You can adjust the character scale (also known as font size) in OnlyOffice by using a slider at the top of the document editor, accessing settings through the 'View' menu, or configuring global preferences within your account. 2. What are some best practices for using character scaling when preparing documents for group presentations or online collaboration? - When preparing documents for group presentations or online collaboration with multiple users and varying devices, it's beneficial to use a consistent, readable font size that accommodates all participants. Consider setting up default font sizes in OnlyOffice preferences and encouraging team members to adjust their viewing experience individually if needed. 3. Are there any accessibility features related to text scaling in OnlyOffice that could be particularly useful for people with visual impairments? - Yes, OnlyOffice supports various accessibility features including adjustable text scaling which is especially helpful for users with visual impairments. Additionally, features like screen reader compatibility, high contrast mode, and customizable keyboard shortcuts enhance usability for individuals who require assistive technologies.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值