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.
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:
- Prolazimo kroz sve slajdove u prezentaciji.
- Prolazimo kroz sve oblike (tekstualne okvire) na slajdu.
- Dobavljamo tekstualni sadržaj oblika.
- Proveravamo da li oblik ima tekstualni sadržaj.
- Prolazimo kroz svaki sadržaj oblika (pasus) u okviru oblika.
- 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 obratite—voleli bismo da čujemo vaše utiske!!
O autoru
Create your free ONLYOFFICE account
View, edit and collaborate on docs, sheets, slides, forms, and PDF files online.