Como ajustar o recuo da primeira linha do parágrafo em apresentações do ONLYOFFICE
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.
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:
- Percorra todos os slides da apresentação.
- Percorra todas as formas (caixas de texto) no slide.
- Obtenha o conteúdo de texto da forma.
- Verifique se a forma tem conteúdo de texto.
- Faça um loop em cada elemento de conteúdo da forma (parágrafo) na forma.
- 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
Crie sua conta gratuita no ONLYOFFICE
Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.