Como ajustar o recuo da primeira linha do parágrafo em apresentações do ONLYOFFICE

12 maio 2025Por Klaibson

Ao preparar apresentações, consistência e legibilidade são fundamentais. Um dos recursos essenciais de formatação é ajustar o recuo da primeira linha dos parágrafos. Neste post do blog, vamos orientá-lo na criação de uma macro do ONLYOFFICE que ajusta o recuo da primeira linha de todos os parágrafos da sua apresentação.

How to adjust paragraph first line indentation in ONLYOFFICE presentations

Construindo a macro

Definir valor de recuo

A macro começa definindo a quantidade de recuo para a primeira linha de cada parágrafo:

 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: Esta variável constante define o recuo da primeira linha em vigésimos de ponto (1/1440 de polegada) e é definida como 720 por padrão, o que corresponde a um recuo de meia polegada. Um valor 0 significa que não há recuo, enquanto qualquer valor maior que 0 recua o texto. Os usuários podem ajustar o valor do recuo de acordo com sua preferência.

Recuperando a apresentação e o número de slides

Antes de recuperar a apresentação atual, garantimos que a macro será executada somente quando o valor de recuo do usuário for um número válido não negativo:

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

Recuperamos a apresentação atual usando o método GetPresentation() e o número total de slides é obtido com o método GetSlidesCount():

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

Percorrer cada slide, caixa de texto no slide e parágrafo

    // Loop through each slide
        for (let slideIndex = 0; slideIndex < nSlides; slideIndex++) {
            let slide = presentation.GetSlideByIndex(slideIndex); // Get the slide
            let aShapes = slide.GetAllShapes(); // Get all shapes in the slide

            // Loop through each shape in the slide
            for (let shapeIndex = 0; shapeIndex < aShapes.length; shapeIndex++) {
                let content = aShapes[shapeIndex].GetDocContent(); // Get the document content of the shape
            
                if (content) {
                    let count = content.GetElementsCount(); // Get the number of elements (paragraphs) in the shape
            
                    // Loop through each paragraph in the shape
                    for (let elementIndex = 0; elementIndex < count; elementIndex++) {
                        let paragraph = content.GetElement(elementIndex); // Get the paragraph element
  • GetSlideByIndex(slideIndex) acessa o objeto de slide no índice especificado (posição) na apresentação.
  • GetAllShapes() recupera todos os objetos de forma no slide atual. Este método retorna uma coleção de todas as formas (como caixas de texto, imagens e outros elementos) presentes no slide.
  • GetDocContent() recupera o conteúdo do documento de uma forma específica. Este método retorna o conteúdo textual associado a uma forma.
  • GetElementsCount() recupera o número total de elementos (parágrafos) dentro da forma especificada.
  • GetElement(elementIndex) acessa um elemento específico (parágrafo) dentro da forma, com base no índice fornecido (elementIndex).

Nesta seção fazemos o seguinte:

  1. Percorra todos os slides da apresentação.
  2. Percorra todas as formas (caixas de texto) no slide.
  3. Obtenha o conteúdo de texto da forma.
  4. Verifique se a forma tem conteúdo de texto.
  5. Faça um loop em cada elemento de conteúdo da forma (parágrafo) na forma.
  6. Obtenha o elemento de parágrafo.

Ajustar o recuo da primeira linha do parágrafo

Definimos o recuo desejado da primeira linha para parágrafos dentro de caixas de texto usando GetParaPr() para recuperar as propriedades do parágrafo e SetIndFirstLine(indentationValue) para ajustar o recuo:

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

Código da macro completo

A macro completa é a seguinte:

(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 slide
        for (let slideIndex = 0; slideIndex < nSlides; slideIndex++) {
            let slide = presentation.GetSlideByIndex(slideIndex); // Get the slide
            let aShapes = slide.GetAllShapes(); // Get all shapes in the slide

            // Loop through each shape in the slide
            for (let shapeIndex = 0; shapeIndex < aShapes.length; shapeIndex++) {
                let content = aShapes[shapeIndex].GetDocContent(); // Get the document content of the shape
            
                if (content) {
                    let count = content.GetElementsCount(); // Get the number of elements (paragraphs) in the shape
            
                    // Loop through each paragraph in the shape
                    for (let elementIndex = 0; elementIndex < count; elementIndex++) {
                        let paragraph = content.GetElement(elementIndex); // Get the paragraph element
                        let paraPr = paragraph.GetParaPr();
                        paraPr.SetIndFirstLine(indentationValue);
                    }
                }
            }
        }
    }
})();

Vamos executar nossa macro e ver como ela funciona!

Esta macro oferece uma solução simples, porém eficaz, para ajustar o recuo da primeira linha em todos os parágrafos da sua apresentação, economizando tempo e garantindo a consistência dos seus slides. Ao automatizar esse processo, você pode se concentrar mais na criação de conteúdo, mantendo um layout elegante e profissional.

Nós encorajamos você a explorar nosso Métodos de API ONLYOFFICE e crie suas próprias macros para aprimorar ainda mais seu fluxo de trabalho. Se você tiver alguma ideia ou sugestão, sinta-se à vontade para conversar conosco—adoraríamos ouvir sua opinião!

Sobre o autor

Como ajustar o recuo da primeira linha do parágrafo em apresentações do ONLYOFFICE

Crie sua conta gratuita no ONLYOFFICE

Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.