Modifiez la famille et la taille des polices sur chaque diapositive avec la macro ONLYOFFICE

11 octobre 2023By Dasha

Dans le monde d’aujourd’hui, les présentations jouent un rôle essentiel dans les réunions d’affaires et les projets académiques, servant d’outil pour articuler notre vision à l’auditoire. Dans l’un de nos précédents articles, nous avons présenté une macro qui remplaçait les formes par des graphiques sur chaque diapositive. Aujourd’hui, nous allons encore plus loin avec une nouvelle macro conçue pour modifier la famille et la taille des polices de caractères sur toutes les diapositives de la présentation.

Change font family and size on every slide with ONLYOFFICE macro

Construction de la macro

Tout d’abord, nous récupérons un objet de présentation à l’aide de la méthode Api.GetPresentation() et nous l’assignons à la variable oPresentation :

var oPresentation = Api.GetPresentation();

La boucle parcourt ensuite chaque diapositive de la présentation à l’aide de la variable slideIndex. La condition garantit que la boucle continue jusqu’à ce que toutes les diapositives aient été traitées :

for (var slideIndex = 0; slideIndex < oPresentation.GetSlidesCount(); slideIndex++) {
}

Dans la boucle, nous récupérons une diapositive spécifique à l’aide de la méthode oPresentation.GetSlideByIndex(slideIndex) et nous l’assignons à la variable oSlide :

var oSlide = oPresentation.GetSlideByIndex(slideIndex);

Nous récupérons ensuite toutes les formes de la diapositive actuelle oSlide et les stockons dans un tableau appelé aShape :

var aShape = oSlide.GetAllShapes();

Une autre boucle parcourt chaque forme de la diapositive actuelle à l’aide de la variable shapeIndex :

for (var shapeIndex = 0; shapeIndex < aShape.length; shapeIndex++) {
}

Dans la boucle de la forme, nous obtenons le contenu du document de la forme actuelle en utilisant aShape[shapeIndex].GetDocContent() et nous le stockons dans la variable content :

var content = aShape[shapeIndex].GetDocContent();

Nous vérifions que le contenu est valide (c’est-à-dire qu’il n’est pas nul ou indéfini) avant de procéder à d’autres opérations :

  if (content) {
}

S’il est valide, nous obtenons le nombre d’éléments dans le contenu en utilisant content.GetElementsCount() et nous le stockons dans la variable count :

var count = content.GetElementsCount();

La troisième boucle parcourt chaque élément du contenu à l’aide de la variable elementIndex :

for (var elementIndex = 0; elementIndex < count; elementIndex++) {
}

Dans la boucle, nous récupérons l’élément actuel en utilisant content.GetElement(elementIndex) :

var element = content.GetElement(elementIndex);

Nous vérifions si l’élément est valide afin d’éviter les erreurs éventuelles :

if (element) {
}

Si l’élément est valide, nous définissons la taille et la famille de la police :

element.SetFontSize(10);
element.SetFontFamily("Comic Sans");

La macro complète est la suivante :

(function()
{
     oPresentation = Api.GetPresentation();
for (var slideIndex = 0; slideIndex < oPresentation.GetSlidesCount(); slideIndex++) {
    var oSlide = oPresentation.GetSlideByIndex(slideIndex);
    var aShape = oSlide.GetAllShapes();

    for (var shapeIndex = 0; shapeIndex < aShape.length; shapeIndex++) {
        var content = aShape[shapeIndex].GetDocContent();
        // Check if content is valid before proceeding
        if (content) {
            var count = content.GetElementsCount();
            for (var elementIndex = 0; elementIndex < count; elementIndex++) {
                var element = content.GetElement(elementIndex);
                // Check if element is valid before using it
                if (element) {
                    element.SetFontSize(10);
                    element.SetFontFamily("Comic Sans");
                }
            }
        }
    }
}

})();

Exécutons notre macro et voyons comment elle fonctionne !

Nous espérons que cette macro sera un atout utile dans votre arsenal, ajoutant une touche d’efficacité à vos tâches quotidiennes. Avec les macros ONLYOFFICE, vous avez la possibilité d’augmenter votre productivité et de rationaliser votre flux de travail.

Lorsque vous créez des macros, saisissez les opportunités offertes par l’API d’ONLYOFFICE. La flexibilité des macros ONLYOFFICE vous permet de les adapter à vos besoins spécifiques. N’hésitez pas à nous contacter si vous avez des questions ou à nous faire part de vos idées créatives. Nous sommes là pour discuter et collaborer. Bonne chance dans vos efforts d’explication !