Cambia la famiglia e la dimensione dei caratteri su ogni diapositiva con la macro ONLYOFFICE

11 ottobre 2023By Elena

Nel mondo di oggi, le presentazioni svolgono un ruolo fondamentale sia negli incontri di lavoro che nei progetti accademici, poiché fungono da strumento per articolare la nostra visione al pubblico. In uno dei nostri post precedenti, abbiamo introdotto una macro che sostituiva le forme con grafici su ogni diapositiva. Oggi facciamo un passo avanti con una nuova macro progettata per modificare la famiglia e la dimensione dei caratteri in ogni diapositiva della presentazione.

Change font family and size on every slide with ONLYOFFICE macro

Costruzione della macro

Per prima cosa recuperiamo un oggetto di presentazione utilizzando il metodo Api.GetPresentation() e lo assegniamo alla variabile oPresentation:

var oPresentation = Api.GetPresentation();

Quindi il ciclo scorre ciascuna diapositiva della presentazione utilizzando la variabile slideIndex. Il ciclo continuia fino all’elaborazione di tutti i slide:

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

All’interno del loop recuperiamo una slide specifica utilizzando il metodo oPresentation.GetSlideByIndex(slideIndex) e la assegniamo alla variabile oSlide:

var oSlide = oPresentation.GetSlideByIndex(slideIndex);

Quindi recuperiamo tutte le forme sulla diapositiva corrente oSlide e le memorizziamo in un array chiamato aShape:

var aShape = oSlide.GetAllShapes();

Un altro ciclo esegue l’iterazione di ciascuna forma sulla diapositiva corrente utilizzando la variabile shapeIndex:

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

All’interno del ciclo shape, otteniamo il contenuto del documento della forma corrente utilizzando Shape[shape Index].GetDoc Content() e lo memorizziamo nella variabile content:

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

Controlliamo se il contenuto è valido (cioè non nullo o indefinito) prima di procedere con ulteriori operazioni:

  if (content) {
}

Nel caso sia valido, otteniamo il conteggio degli elementi all’interno del contenuto utilizzando content.GetElementsCount() e lo memorizziamo nella variabile count:

var count = content.GetElementsCount();

Il terzo ciclo scorre ogni elemento all’interno del contenuto utilizzando la variabile elementIndex:

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

All’interno del ciclo, recuperiamo l’elemento corrente utilizzando content.GetElement(elementIndex):

var element = content.GetElement(elementIndex);

Controlliamo se l’elemento è valido per evitare possibili errori:

if (element) {
}

Se l’elemento è valido, impostiamo la dimensione del carattere e la famiglia del carattere:

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

L’intera macro è la seguente:

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

})();

Eseguiamo la nostra macro e vediamo come funziona!

Ci auguriamo che questa macro sia una risorsa utile nel tuo arsenale, aggiungendo un tocco di efficienza alle tue attività quotidiane. Con le macro di ONLYOFFICE, ottieni la possibilità di aumentare la tua produttività e semplificare il tuo flusso di lavoro.

Mentre ti impegni nella creazione di macro, cogli le opportunità offerte dall’API di ONLYOFFICE. La flessibilità delle macro di ONLYOFFICE ti consente di adattarle alle tue esigenze specifiche. Sentiti libero di contattarci per qualsiasi domanda o condividere le tue idee creative con noi. Siamo qui per discutere e collaborare. Buona fortuna!