Cambia la familia y el tamaño de la fuente en cada diapositiva con la macro de ONLYOFFICE

11 octubre 2023Por Sergey

Hoy las presentaciones desempeñan un papel vital tanto en las reuniones de negocios como en los proyectos académicos, ya que sirven como herramienta para expresar nuestra visión a la audiencia. En una de nuestras entradas anteriores, presentamos una macro que sustituye las formas por gráficos en cada diapositiva. Hoy vamos a dar un paso más con una nueva macro diseñada para modificar la familia y el tamaño de la fuente en todas las diapositivas de la presentación.

Cambia la familia y el tamaño de la fuente en cada diapositiva con la macro de ONLYOFFICE

Creación de la macro

Primero obtenemos un objeto de la presentación utilizando el método Api.GetPresentation() y lo asignamos a la variable oPresentation:

var oPresentation = Api.GetPresentation();

A continuación, el bucle itera por cada diapositiva de la presentación utilizando la variable slideIndex. La condición garantiza que el bucle continúe hasta que se hayan procesado todas las diapositivas:

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

Dentro del bucle, recuperamos una diapositiva específica utilizando el método oPresentation.GetSlideByIndex(slideIndex) y la asignamos a la variable oSlide:

var oSlide = oPresentation.GetSlideByIndex(slideIndex);

A continuación, recuperamos todas las formas de la diapositiva actual oSlide y las almacenamos en una matriz llamada aShape:

var aShape = oSlide.GetAllShapes();

Otro bucle itera a través de cada forma en la diapositiva actual utilizando la variable shapeIndex:

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

Dentro del bucle shape, obtenemos el contenido del documento de la forma actual utilizando aShape[shapeIndex].GetDocContent() y lo almacenamos en la variable content:

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

Comprobamos si el contenido es válido (es decir, que no sea nulo o indefinido) antes de proceder con otras operaciones:

  if (content) {
}

En caso de que sea válido, obtenemos el recuento de elementos dentro del contenido utilizando content.GetElementsCount() y lo almacenamos en la variable count:

var count = content.GetElementsCount();

El tercer bucle itera a través de cada elemento dentro del contenido utilizando la variable elementIndex:

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

Dentro del bucle, recuperamos el elemento actual utilizando content.GetElement(elementIndex):

var element = content.GetElement(elementIndex);

Comprobamos si el elemento es válido para evitar posibles errores:

if (element) {
}

Si el elemento es válido, establecemos el tamaño y la familia de la fuente:

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

La macro completa es la siguiente:

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

})();

Vamos a ejecutar nuestra macro para ver cómo funciona.

Esperamos que esta macro sea una herramienta útil en tu vida cotidiana, añadiendo un poco de eficiencia a tus tareas diarias. Con las macros de ONLYOFFICE, puedes aumentar tu productividad y agilizar tu flujo de trabajo.

Al crear macros, aprovecha las oportunidades que te ofrece la API de ONLYOFFICE. La flexibilidad de las macros de ONLYOFFICE te permite ajustarlas a tus necesidades específicas. No dudes en contactarnos con cualquier pregunta o compartir tus ideas creativas con nosotros. Estamos aquí para discutir y colaborar. ¡Mucha suerte en tus esfuerzos explicativos!

 

Crea tu cuenta gratuita de ONLYOFFICE

Visualiza, edita y colabora en documentos, hojas, diapositivas, formularios y archivos PDF en línea.