Kako podesiti uvlačenje prvog reda pasusa u ONLYOFFICE prezentacijama

Kada pripremate prezentacije, doslednost i čitljivost su ključni. Jedna od osnovnih funkcija formatiranja jeste podešavanje uvlačenja prvog reda pasusa. U ovom blog postu, vodićemo vas kroz kreiranje ONLYOFFICE makroa koji podešava uvlačenje prvog reda za sve pasuse u vašoj prezentaciji.

Kako podesiti uvlačenje prvog reda pasusa u ONLYOFFICE prezentacijama

Kreiranje makroa

Postavite vrednost uvlačenja

Makro počinje definisanjem količine uvlačenja za prvi red svakog pasusa:

 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: Ova konstantna promenljiva definiše uvlačenje prvog reda u dvadesetinkama tačke (1/1440 inča) i po difoltu je podešena na 720, što odgovara uvlačenju od pola inča. Vrednost 0 znači bez uvlačenja, dok bilo koja vrednost veća od 0 uvlači tekst. Korisnici mogu podesiti vrednost uvlačenja u skladu sa svojim preferencijama.

Dobavljanje prezentacije i broja slajdova

Pre nego što dohvatimo trenutnu prezentaciju, obezbeđujemo da se makro izvršava samo kada je vrednost uvlačenja validan nenegativan broj:

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

Trenutna prezentacija se dobija pomoću metode GetPresentation(), a ukupan broj slajdova pomoću GetSlidesCount() metode:

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

Petlja kroz svaki slajd, tekstualni okvir na slajdu i pasus

    // 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) pristupa objektu slajda na specificiranom indeksu (poziciji) u prezentaciji.
  • GetAllShapes() dobavlja sve objekte oblika unutar trenutnog slajda. Ova metoda vraća kolekciju svih oblika (kao što su tekstualni okviri, slike i drugi elementi) prisutnih na slajdu.
  • GetDocContent() dobavlja sadržaj dokumenta iz određenog oblika. Ova metoda vraća tekstualni sadržaj povezan sa oblikom.
  • GetElementsCount() dobavlja ukupan broj elemenata (pasusa) unutar specificiranog oblika.
  • GetElement(elementIndex) pristupa određenom elementu (pasusu) unutar oblika, na osnovu datog indeksa (elementIndex).

U ovom delu radimo sledeće:

  1. Prolazimo kroz sve slajdove u prezentaciji.
  2. Prolazimo kroz sve oblike (tekstualne okvire) na slajdu.
  3. Dobavljamo tekstualni sadržaj oblika.
  4. Proveravamo da li oblik ima tekstualni sadržaj.
  5. Prolazimo kroz svaki sadržaj oblika (pasus) u okviru oblika.
  6. Dobavljamo element pasusa.

Podešavanje uvlačenja prvog reda pasusa

Postavljamo željeno uvlačenje prvog reda za pasuse unutar tekstualnih okvira pomoću GetParaPr() da bismo dobavili svojstva pasusa i           SetIndFirstLine(indentationValue) da bismo podesili uvlačenje:

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

Kompletan kod makroa

Ceo makro izgleda ovako:

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

Pokrenimo naš makro i pogledajmo kako funkcioniše!

Ovaj makro nudi jednostavno, ali efikasno rešenje za podešavanje uvlačenja prvog reda u svim pasusima vaše prezentacije, štedeći vaše vreme i obezbeđujući doslednost na slajdovima. Automatizacijom ovog procesa možete se više fokusirati na kreiranje sadržaja, a istovremeno održati uglađen i profesionalan izgled.

Podstičemo vas da istražite naše ONLYOFFICE API metode i kreirate sopstvene makroe kako biste dodatno unapredili svoj tok rada. Ako imate bilo kakve ideje ili predloge, osećajte se slobodno da nam se obratitevoleli bismo da čujemo vaše utiske!!

O autoru

How to adjust paragraph first line indentation in ONLYOFFICE presentations

Create your free ONLYOFFICE account

View, edit and collaborate on docs, sheets, slides, forms, and PDF files online.