如何在 ONLYOFFICE 演示文稿中调整段落首行缩进

在制作演示文稿时,保持内容的一致性与可读性至关重要,而段落首行缩进作为格式设置的关键环节,直接影响着整体呈现效果。在本文中,我们将介绍如何通过创建 ONLYOFFICE 宏,快速设置演示文稿中所有段落的首行缩进。

如何在 ONLYOFFICE 演示文稿中调整段落首行缩进

关于 ONLYOFFICE 

ONLYOFFICE 是一个国际开源项目,专注于高级和安全的文档处理,可提供文本文档、电子表格、幻灯片、表单和 PDF 编辑器。ONLYOFFICE 文档高度兼容微软 Office 格式,并提供数百种格式化和样式工具,帮助您实现复杂的编辑功能。

ONLYOFFICE 不仅适合个人用户,更为企业和商业开发提供了强大的支持。如果您需要为您的企业集成强大的编辑功能,或是为您的应用程序、网站或其他解决方案提供强大的编辑功能,您可以选择企业版 / 开发者版。观看下方视频,了解关于我们的更多信息:

ONLYOFFICE文档开发者版:集成至Web应用程序,实现文档编辑功能

什么是 ONLYOFFICE 宏

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

下面一起来看看如何创建宏,帮助您快速设置演示文稿中所有段落的首行缩进。

构建宏

设置缩进值

创建宏的第一步是确定每个段落首行的缩进值:

 const indentationValue = 720; 
/* Please enter the paragraph's first line indentation value. A value of 0 means no indentation,and any value greater than 0 will indent the text. The value is specified in twentieths of a point (1/1440 of an inch).*/

indentationValue:此常量用于定义段落首行的缩进距离,单位为“1点”的二十分之一(即1/1440英寸,约为1.27厘米)。它的默认值为720,相当于首行缩进0.5英寸(约1.27厘米)。如果该值为0,则代表不缩进;若该值为任意大于0的数,则段落首行会缩进。用户可根据个人偏好自由调整段落缩进值。

获取演示文稿和幻灯片数量

在获取当前演示文稿之前,我们应当先确保宏只在用户输入的缩进值是有效且非负的数字时执行:

if (!isNaN(indentationValue) && indentationValue >= 0) {

接下来,使用 GetPresentation() 方法获取当前演示文稿,并通过 GetSlidesCount() 方法获取幻灯片总数:

        let presentation = Api.GetPresentation();let nSlides = presentation.GetSlidesCount(); // Get the number of slides in the presentation

循环遍历幻灯片、文本框和段落

    // Loop through each slidefor (let slideIndex = 0; slideIndex < nSlides; slideIndex++) {let slide = presentation.GetSlideByIndex(slideIndex); // Get the slidelet aShapes = slide.GetAllShapes(); // Get all shapes in the slide// Loop through each shape in the slidefor (let shapeIndex = 0; shapeIndex < aShapes.length; shapeIndex++) {let content = aShapes[shapeIndex].GetDocContent(); // Get the document content of the shapeif (content) {let count = content.GetElementsCount(); // Get the number of elements (paragraphs) in the shape// Loop through each paragraph in the shapefor (let elementIndex = 0; elementIndex < count; elementIndex++) {let paragraph = content.GetElement(elementIndex); // Get the paragraph element
  • GetSlideByIndex(slideIndex):访问演示文稿中特定索引位置的幻灯片对象。
  • GetAllShapes():获取当前幻灯片中的所有图形对象,包括文本框、图片及其他元素。
  • GetDocContent():获取特定图形中的文档内容,此方法会返回与图形关联的文本内容。
  • GetElementsCount():获取特定图形中元素(段落)的总数。
  • GetElement(elementIndex):根据提供的索引(elementIndex)访问图形中某个特定元素(段落)

在这部分,我们进行了以下操作:

  1. 循环遍历演示文稿中的所有幻灯片。
  2. 循环遍历幻灯片中的所有图形(文本框)。
  3. 获取图形中的文本内容。
  4. 检查图形是否包含文本内容。
  5. 循环遍历图形中每个元素(段落)。
  6. 获取段落元素。

调整段落首行缩进

我们使用 GetParaPr() 来获取段落属性,使用 SetIndFirstLine(indentationValue) 来调整首行缩进,最后能够设置想要的段落首行缩进值:

                  let paraPr = paragraph.GetParaPr();paraPr.SetIndFirstLine(indentationValue);}}}}}

完整宏代码

完整的宏代码如下所示:

(function () {const indentationValue = 720; 
/* Please enter the paragraph's first line indentation value. A value of 0 means no indentation, 
and any value greater than 0 will indent the text. The value is specified in twentieths of a point (1/1440 of an inch).*/if (!isNaN(indentationValue) && indentationValue >= 0) {let presentation = Api.GetPresentation();let nSlides = presentation.GetSlidesCount(); // Get the number of slides in the presentation// Loop through each slidefor (let slideIndex = 0; slideIndex < nSlides; slideIndex++) {let slide = presentation.GetSlideByIndex(slideIndex); // Get the slidelet aShapes = slide.GetAllShapes(); // Get all shapes in the slide// Loop through each shape in the slidefor (let shapeIndex = 0; shapeIndex < aShapes.length; shapeIndex++) {let content = aShapes[shapeIndex].GetDocContent(); // Get the document content of the shapeif (content) {let count = content.GetElementsCount(); // Get the number of elements (paragraphs) in the shape// Loop through each paragraph in the shapefor (let elementIndex = 0; elementIndex < count; elementIndex++) {let paragraph = content.GetElement(elementIndex); // Get the paragraph elementlet paraPr = paragraph.GetParaPr();paraPr.SetIndFirstLine(indentationValue);}}}}}
})();

这个宏提供了在演示文档中给所有段落加上首行缩进的有效方法。它不仅能帮您节省时间,还能确保幻灯片整体风格的一致性。通过自动化处理首行缩进,你可以轻松完成精致、专业的排版布局,并将更多精力用于内容创作上。

我们鼓励您探索 ONLYOFFICE API 方法,创建您自己的宏来进一步优化工作流程。如果您有任何想法或建议,请随时联系我们。期待得到您的反馈!

关于作者

How to adjust paragraph first line indentation in ONLYOFFICE presentations

Marija Vujanac:我是一名前端开发者,拥有土木工程背景,并且热爱解决逻辑难题。在从事工程师工作多年,并通过图库摄影发挥创意之后,我找到了真正热爱的事情,那就是通过编程来构建事物。我喜欢使用 JavaScript、React 和 Firebase 等技术来打造用户友好的网页体验。在进行编程时,我常常沉浸其中,忘记了时间——我认为这是个好迹象!我始终在寻找新的成长方式,并希望能为有意义的项目作出贡献。

立即获取 ONLYOFFICE 

立即下载适用于 Windows、macOS 或 Linux 的 ONLYOFFICE 桌面编辑器,或注册一个免费的协作空间帐户,使用宏帮你提升工作效率!
ONLYOFFICE 桌面编辑器https://www.onlyoffice.com/zh/desktop.aspx?utm_source=csdn&utm_medium=article&utm_campaign=paragraph_indentation_in_presentation
协作空间https://www.onlyoffice.com/zh/docspace.aspx?utm_source=csdn&utm_medium=article&utm_campaign=paragraph_indentation_in_presentation

相关链接

ONLYOFFICE API 方法

GitHub 上的 ONLYOFFICE

更多 ONLYOFFICE 宏

获取免费桌面办公套件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/84608.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/84608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Asp.Net]GridView、Repeater 导出Excel长数字显示成科学计数

类似身份证纯数字的格式时 &#xff0c;excel默认是数字格式 变成了科学计数法 &#xff0c; GridView:RowDataBound 添加e.Row.Cells[2].Attributes.Add(“style”, “vnd.ms-excel.numberformat:;”); protected void GridView1_RowDataBound(object sender, GridViewRowE…

Ntfs!NtfsReadBootSector函数分析之nt!CcGetVacbMiss中得到一个nt!_VACB结构

第一部分&#xff1a; 1: kd> g Breakpoint 3 hit nt!CcGetVacbMiss: 80a1a19e 6a30 push 30h 1: kd> kc # 00 nt!CcGetVacbMiss 01 nt!CcGetVirtualAddress 02 nt!CcMapData 03 Ntfs!NtfsMapStream 04 Ntfs!NtfsReadBootSector Ntfs…

Linux10正式版发布,拥抱AI了!

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…

关于 SSE(Server-Sent Events)过程的简要解剖

Js前端&#xff1a;发送普通请求 fetch(...) .then(()>{}) .catch(()>{})Java后端&#xff1a;接收请求后调用请求处理函数&#xff0c;函数返回一个emiiter对象 public SseEmitter handleRequest(...) {// 创建一个 SseEmitter 对象&#xff0c;用于发送 SSE 事件SseE…

PyTorch 中unsqueeze(-1)用法

unsqueeze(-1) 是 PyTorch 中的一个张量操作&#xff0c;用于‌在指定维度上增加一个长度为1的维度‌&#xff08;即扩展维度&#xff09;。具体解析如下&#xff1a; 功能说明 ‌作用位置‌ -1 表示在张量的‌最后一个维度‌后添加新维度。 &#xff08;等价于 dimlen(tensor.…

RTC技术

什么是RTC RTC&#xff08;Real time communication&#xff09;实时通信&#xff0c;是实时音视频的一个简称&#xff0c;我们常说的RTC技术一般指的是WebRTC技术&#xff0c;已经被 W3C 和 IETF 发布为正式标准。由于几乎所有主流浏览器都支持 WebRTC 标准 API &#xff0c;…

vue+cesium示例:3Dtiles三维模型高度调整(附源码下载)

接到一位知识星友的邀请&#xff0c;实现他需要3Dtiles三维模型的简单高度调整需求&#xff0c;适合学习Cesium与前端框架结合开发3D可视化项目。 demo源码运行环境以及配置 运行环境&#xff1a;依赖Node安装环境&#xff0c;demo本地Node版本:推荐v18。 运行工具&#xff1a;…

详解3DGS

4 可微分的3D高斯 splatting 核心目标与表示选择 我们的目标是从无法线的稀疏SfM点出发&#xff0c;优化出一种能够实现高质量新视角合成的场景表示。为此&#xff0c;我们选择3D高斯作为基本图元&#xff0c;它兼具可微分的体表示特性和非结构化的显式表示优势&#xff0c;既…

构建版本没mac上传APP方法

在苹果开发者的app store connect上架Ios应用的时候&#xff0c;发现需要使用xode等软件来上传iOS的APP。 但是不管是xcode也好&#xff0c;transporter也好&#xff0c;还是命令行工具也好&#xff0c;都必须安装在mac电脑才能使用&#xff0c;。 假如没有mac电脑&#xff0…

Gitee PPM:智能化项目管理如何重塑软件工厂的未来格局

在数字化转型浪潮席卷全球的当下&#xff0c;软件开发行业正经历着前所未有的变革。随着企业项目复杂度呈指数级增长&#xff0c;传统项目管理方式已难以应对多项目并行、跨团队协作等挑战。Gitee项目组合管理&#xff08;PPM&#xff09;作为新一代智能化项目管理解决方案&…

node入门:安装和npm使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装npm命令nvm 前言 因为学习vue接触的&#xff0c;一直以为node是和vue绑定的&#xff0c;还以为vue跑起来必须要node&#xff0c;后续发现并不是。 看…

单例模式,饿汉式,懒汉式,在java和spring中的体现

目录 饿汉式单例模式 懒汉式单例模式 Spring中的单例模式 关键差异对比 在Java和Spring中的应用场景 手写案例 单例模式是一种创建型设计模式&#xff0c;其核心在于确保一个类仅有一个实例&#xff0c;并提供一个全局访问点来获取该实例。下面将详细介绍饿汉式和懒汉式…

网络编程——UDP网络编程

文章目录 1、sendto()&#xff0c;recvfrom() 与TCP编程不同的是&#xff1a; 无需建立连接&#xff0c;在recvfrom()阻塞等待客户端的数据&#xff0c;收到数据后进入do something进行数据的处理。 1、sendto()&#xff0c;recvfrom() ssize_t sendto(int socket, void *mes…

OpenSSL详解

这里写目录标题 选项&#xff1a;**通用选项&#xff1a;**1. genrsa&#xff1a;生成RSA密钥对3. req&#xff1a;生成证书签名请求4. x509&#xff1a;生成自签名证书 **证书管理&#xff1a;**1. verify&#xff1a;验证证书2. x509&#xff1a;查看证书详情3. crl&#xff…

MySQL的日志和备份

目录 一. MySQL的日志 1.1 日志的作用 1.2 日志的分类 1.3 事务日志 1.4 错误日志 1.5 通用日志 1.6 慢查询日志 1.7 二进制备份 二. 备份 2.1 数据备份的重要性 2.2 备份的分类 2.3 MySQL备份的内容 2.4 备份的注意点 2.5 备份的工具 2.6 实战案例 2.7 mysql…

前端性能优化:如何让网页加载更快?

摘要 想象一下&#xff0c;满心期待点开一个网页&#xff0c;却等了十几秒还卡在加载界面&#xff0c;你是不是瞬间就想关掉走人&#xff1f;这可不是个别用户的 “急性子”&#xff0c;数据显示&#xff0c;网页每多延迟 1 秒&#xff0c;用户流失率可能增加 11%&#xff01;…

[论文阅读]Prompt Injection attack against LLM-integrated Applications

Prompt Injection attack against LLM-integrated Applications [2306.05499] Prompt Injection attack against LLM-integrated Applications 传统提示注入攻击效果差&#xff0c;主要原因在于&#xff1a; 不同的应用对待用户的输入内容不同&#xff0c;有的将其视为问题&a…

微信小程序进阶第2篇__事件类型_冒泡_非冒泡

在小程序中&#xff0c; 事件分为两种类型&#xff1a; 冒泡事件&#xff0c; 当一个组件上的事件被触发后&#xff0c;该事件会向父节点传递非冒泡事件&#xff0c; 当一个组件上的事件被触发后&#xff0c; 该事件不会向父节点传递。 一 冒泡事件 tap&#xff0c; touchst…

[免费]SpringBoot+Vue在线教育(在线学习)系统(高级版)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue在线教育(在线学习)系统(高级版)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue在线教育(在线学习)系统(高级版) Java毕业设计_哔哩哔哩_bilibili 项目介绍…

TypeScript 针对 iOS 不支持 JIT 的优化策略总结

# **TypeScript 针对 iOS 不支持 JIT 的优化策略总结** 由于 iOS 的 **JavaScriptCore (JSC)** 引擎 **禁用 JIT&#xff08;Just-In-Time 编译&#xff09;**&#xff0c;JavaScript 在 iOS 上的执行性能较差&#xff0c;尤其是涉及动态代码时。 **TypeScript&#xff08;T…