Comment ajuster l’alinéa de première ligne des paragraphes dans les présentations ONLYOFFICE

Lors de la préparation de présentations, la cohérence et la lisibilité sont essentielles. L’une des fonctionnalités de formatage essentielles est l’ajustement de l’alinéa de première ligne des paragraphes. Dans cet article de blog, nous vous guiderons dans la création d’une macro ONLYOFFICE qui ajuste l’alinéa de première ligne pour tous les paragraphes de votre présentation.

Comment ajuster l'alinéa de première ligne des paragraphes dans les présentations ONLYOFFICE

Construction de la macro

Définir de la valeur de l’alinéa

La macro commence par définir la valeur de l’alinéa pour la première ligne de chaque paragraphe :

 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 : Cette variable constante définit l’alinéa de première ligne en vingtièmes de point (1/1440 de pouce), et est définie par défaut à 720, ce qui correspond à un alinéa d’un demi-pouce. Une valeur de 0 signifie pas d’alinéa, tandis que toute valeur supérieure à 0 créera un retrait du texte. Les utilisateurs peuvent ajuster la valeur de l’alinéa selon leurs préférences.

Récupérer la présentation et du nombre de diapositives

Avant de récupérer la présentation actuelle, nous nous assurons que la macro s’exécute uniquement lorsque la valeur d’alinéa de l’utilisateur est un nombre valide non négatif :

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

Nous récupérons la présentation actuelle en utilisant la méthode GetPresentation() et le nombre total de diapositives est obtenu avec la méthode GetSlidesCount() :

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

Parcourir chaque diapositive, zone de texte dans la diapositive et paragraphe

    // 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) accède à l’objet diapositive à l’index (position) spécifié dans la présentation.
  • GetAllShapes() récupère tous les objets forme dans la diapositive actuelle. Cette méthode renvoie une collection de toutes les formes (telles que les zones de texte, les images et d’autres éléments) présentes sur la diapositive.
  • GetDocContent() récupère le contenu du document d’une forme spécifique. Cette méthode renvoie le contenu textuel associé à une forme.
  • GetElementsCount() récupère le nombre total d’éléments (paragraphes) dans la forme spécifiée.
  • GetElement(elementIndex) accède à un élément (paragraphe) spécifique dans la forme, en fonction de l’index fourni (elementIndex).

Dans cette section, nous faisons ce qui suit :

  1. Parcourir toutes les diapositives de la présentation.
  2. Parcourir toutes les formes (zones de texte) de la diapositive.
  3. Obtenir le contenu texte de la forme.
  4. Vérifier si la forme a du contenu texte.
  5. Parcourir chaque élément de contenu de forme (paragraphe) dans la forme.
  6. Obtenir l’élément paragraphe.

Ajuster l’alinéa de première ligne du paragraphe

Nous définissons l’alinéa de première ligne souhaité pour les paragraphes dans les zones de texte en utilisant GetParaPr() pour récupérer les propriétés du paragraphe et SetIndFirstLine(indentationValue) pour ajuster l’alinéa :

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

Code complet de la macro

La macro entière est la suivante :

(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);
                    }
                }
            }
        }
    }
})();

Exécutons notre macro et voyons comment elle fonctionne !

 

Cette macro offre une solution simple mais efficace pour ajuster l’alinéa de première ligne de tous les paragraphes de votre présentation, vous faisant gagner du temps et assurant la cohérence de vos diapositives. En automatisant ce processus, vous pouvez vous concentrer davantage sur la création de contenu tout en conservant une mise en page soignée et professionnelle.

Nous vous encourageons à explorer nos méthodes API ONLYOFFICE et à créer vos propres macros pour améliorer davantage votre flux de travail. Si vous avez des idées ou des suggestions, n’hésitez pas à  nous contacter — nous serions ravis de recevoir vos commentaires !

À propos de l’auteur

How to adjust paragraph first line indentation in ONLYOFFICE presentations

Créez votre compte ONLYOFFICE gratuit

Affichez, modifiez et coéditez des documents texte, feuilles de calcul, diapositives, formulaires et fichiers PDF en ligne.