So passen Sie den Einzug der ersten Absatzzeile in ONLYOFFICE-Präsentationen an
Bei der Erstellung von Präsentationen sind Konsistenz und Lesbarkeit entscheidend. Eine der wichtigsten Formatierungsfunktionen ist die Anpassung des Erstzeileneinzugs von Absätzen. In diesem Blogbeitrag führen wir Sie durch die Erstellung eines ONLYOFFICE-Makros, das den Erstzeileneinzug aller Absätze Ihrer Präsentation anpasst.
Erstellen des Makros
Einzugswert festlegen
Das Makro definiert zunächst den Einzug für die erste Zeile jedes Absatzes:
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: Diese Konstante definiert den Einzug der ersten Zeile in Zwanzigstelpunkten (1/1440 Zoll) und ist standardmäßig auf 720 eingestellt, was einem Einzug von einem halben Zoll entspricht. Ein Wert von 0 bedeutet keinen Einzug, während ein Wert größer als 0 den Text einrückt. Benutzer können den Einzugswert nach Belieben anpassen.
Abrufen der Präsentation und der Folienanzahl
Bevor wir die aktuelle Präsentation abrufen, stellen wir sicher, dass das Makro nur ausgeführt wird, wenn der Einrückungswert des Benutzers eine gültige, nicht negative Zahl ist:
if (!isNaN(indentationValue) && indentationValue >= 0) {
Wir rufen die aktuelle Präsentation mit der Methode GetPresentation() ab und die Gesamtzahl der Folien wird mit der Methode GetSlidesCount() ermittelt:
let presentation = Api.GetPresentation();
let nSlides = presentation.GetSlidesCount(); // Get the number of slides in the presentation
Jede Folie, jedes Textfeld in der Folie und jeden Absatz durchlaufen
// 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) greift auf das Folienobjekt an der angegebenen Indexposition in der Präsentation zu.
- GetAllShapes() ruft alle Formobjekte der aktuellen Folie ab. Diese Methode gibt eine Sammlung aller auf der Folie vorhandenen Formen (wie Textfelder, Bilder und andere Elemente) zurück.
- GetDocContent() ruft den Dokumentinhalt einer bestimmten Form ab. Diese Methode gibt den mit einer Form verknüpften Textinhalt zurück.
- GetElementsCount() ruft die Gesamtzahl der Elemente (Absätze) innerhalb der angegebenen Form ab.
- GetElement(elementIndex) greift basierend auf dem angegebenen Index (elementIndex) auf ein bestimmtes Element (Absatz) innerhalb der Form zu.
In diesem Abschnitt führen wir Folgendes aus:
- Alle Folien der Präsentation durchlaufen.
- Alle Formen (Textfelder) der Folie durchlaufen.
- Den Textinhalt der Form abrufen.
- Überprüfen, ob die Form Text enthält.
- Jedes Forminhaltselement (Absatz) der Form durchlaufen.
- Das Absatzelement abrufen.
Einzug der ersten Zeile eines Absatzes anpassen
Wir legen den gewünschten Einzug der ersten Zeile für Absätze in Textfeldern fest, indem wir die Absatzeigenschaften mit GetParaPr() abrufen und den Einzug mit SetIndFirstLine(indentationValue) anpassen:
let paraPr = paragraph.GetParaPr();
paraPr.SetIndFirstLine(indentationValue);
}
}
}
}
}
Vollständiger Makrocode
Das gesamte Makro ist das Folgende:
(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);
}
}
}
}
}
})();
Lassen Sie uns unser Makro ausführen und sehen, wie es funktioniert!
Dieses Makro bietet eine einfache und effektive Lösung zum Anpassen des Einzugs der ersten Zeile in allen Absätzen Ihrer Präsentation. Das spart Ihnen Zeit und sorgt für Konsistenz in Ihren Folien. Durch die Automatisierung dieses Prozesses können Sie sich stärker auf die Inhaltserstellung konzentrieren und gleichzeitig ein ansprechendes und professionelles Layout beibehalten.
Wir empfehlen Ihnen, unsere ONLYOFFICE API-Methoden zu erkunden und eigene Makros zu erstellen, um Ihren Workflow weiter zu optimieren. Wenn Sie Ideen oder Vorschläge haben, kontaktieren Sie uns gerne – wir freuen uns über Ihr Feedback!
Über die Autorin
Erstellen Sie Ihr kostenloses ONLYOFFICE-Konto
Öffnen und bearbeiten Sie gemeinsam Dokumente, Tabellen, Folien, Formulare und PDF-Dateien online.