Sie können Text mit Textbereichen bearbeiten und formatieren. Diese werden durch den Typ TextRange
dargestellt. Ein TextRange
steht für ein Textsegment in einer Form oder in einer Tabellenzelle. Wenn Sie getText()
für eine Form oder Tabellenzelle aufrufen, wird ein Textbereich zurückgegeben, der den gesamten Text umfasst.
Falls Sie Methoden verwenden, die verändern, wie Text an Formen angepasst wird, werden alle auf die Form angewendeten automatischen Anpassungen deaktiviert.
Textbereiche verwenden
Ein Textbereich hat zwei Indexe, die das Segment des Textes begrenzen, das von einem Textbereich abgedeckt wird: den Startindex und den Endindex. Sie können diese Indexe mit den Funktionen getStartIndex()
und getEndIndex()
ermitteln.
Verwenden Sie zum Lesen des Inhalts eines Textbereichs die Funktionen asString()
oder asRenderedString()
.
Mit der Funktion getRange()
können Sie einen Teilbereich aus einem Textbereich abrufen.
Mit dem folgenden Skript wird auf der ersten Folie ein Textfeld erstellt und der Textinhalt auf „Hello world!“ festgelegt. Anschließend wird ein Unterbereich abgerufen, der nur „Hello“ umfasst.
Der von einer Form oder Tabellenzelle zurückgegebene Textbereich umfasst immer den gesamten Text, auch wenn Text eingefügt und gelöscht wird. Das obige Beispiel erzeugt also die folgenden Log-Anweisungen:
Start: 0; End: 13; Content: Hello world! Start: 0; End: 5; Content: Hello
Text einfügen und löschen
Sie können auch Textformen und Tabellenzellen mithilfe von Textbereichen einfügen und löschen.
- Mit
insertText()
undappendText()
können Sie Text einfügen. - Mit
setText()
wird der Text eines Textbereichs durch den angegebenen Text ersetzt. - Mit
clear()
wird Text aus einem Textbereich gelöscht.
Das folgende Skript veranschaulicht die Verwendung dieser Funktionen:
Mit diesem Skript wird auf der ersten Folie ein Textfeld erstellt und der Textinhalt auf „Hello world!“ festgelegt. Anschließend werden die Zeichen 6 bis 11 („world“) gelöscht und stattdessen der Text „galaxy“ an Index 6 eingefügt. Das obige Beispiel erzeugt die folgende Log-Anweisung:
Start: 0; End: 14; Content: Hello galaxy!
Suchen und ersetzen
Mit der Funktion replaceAllText()
können Sie in der gesamten Präsentation oder auf einer bestimmten Seite global suchen und ersetzen.
Die Funktion find()
für TextRange gibt die Instanzen einer Zeichenfolge im Bereich zurück. Sie kann zusammen mit setText()
verwendet werden, um Suchen und Ersetzen in einer Form oder Tabellenzelle durchzuführen.
Absätze, Listenelemente und Läufe
TextRange
bietet Funktionen zum Zurückgeben nützlicher Sammlungen von Textentitäten.
Dazu gehören unter anderem:
getParagraphs(),
, das alle Absätze enthält, die sich mit dem Textbereich überschneiden. Ein Absatz ist eine Textsequenz, die mit dem Zeilenumbruchzeichen „\n“ endet.getListParagraphs(),
, die die Listenelemente im aktuellen Textbereich zurückgibt.getRuns(),
, das die Textläufe enthält, die sich mit dem aktuellen Textbereich überschneiden. Ein Textlauf ist ein Textsegment, in dem alle Zeichen denselben Textstil haben.
Textstil
Der Textstil bestimmt, wie Textzeichen in Ihrer Präsentation gerendert werden, einschließlich Schriftart, Farbe und Hyperlinks.
Die getTextStyle()
-Funktion eines Textbereichs stellt ein TextStyle
-Objekt zum Formatieren von Text bereit. Das TextStyle
-Objekt umfasst denselben Text wie das übergeordnete TextRange
-Objekt.
Im obigen Beispiel wird zuerst ein Textfeld auf der ersten Folie erstellt und sein Inhalt auf „Hallo “ festgelegt. Dann wird der Text „Welt!“ angehängt. Der neu angehängte Text ist fett formatiert, mit www.example.com
verlinkt und seine Farbe ist auf Rot festgelegt.
Beim Lesen von Formatierungen gibt die Funktion „null“ zurück, wenn der Bereich mehrere Werte für die Formatierung enthält. Das obige Beispiel erzeugt also die folgenden Log-Anweisungen:
Text: Hello; Bold: false Text: world!; Bold: true Text: Hello world!; Bold: null
Es gibt viele weitere Stile, die auf Text angewendet werden können. Weitere Informationen finden Sie in der TextStyle
-Referenzdokumentation.
Absatzformatierung
Absatzformatierungen werden auf ganze Absätze angewendet und umfassen beispielsweise Textausrichtung und Zeilenabstand. Die Funktion „getParagraphStyle()“ in TextRange
stellt ein ParagraphStyle
-Objekt zum Formatieren aller Absätze bereit, die sich mit dem übergeordneten Textbereich überschneiden.
Im folgenden Beispiel wird auf der ersten Folie ein Textfeld mit vier Absätzen erstellt. Die ersten drei Absätze werden dann zentriert ausgerichtet.
Listenformatierung
Ähnlich wie ParagraphStyle
kann ListStyle
verwendet werden, um alle Absätze zu formatieren, die sich mit dem übergeordneten Textbereich überschneiden.
Im obigen Beispiel wird auf der ersten Folie ein Textfeld mit vier Absätzen erstellt: Der zweite Absatz ist einmal und der dritte Absatz zweimal eingerückt. Anschließend wird eine Listenvoreinstellung auf alle Absätze angewendet. Schließlich wird die Verschachtelungsebene jedes Absatzes protokolliert. Die Einrückungsebene des Absatzes ergibt sich aus der Anzahl der Tabulatoren vor dem Text des Absatzes. Das obige Skript erzeugt also die folgenden Log-Anweisungen:
Paragraph 1's nesting level: 0 Paragraph 2's nesting level: 1 Paragraph 3's nesting level: 2 Paragraph 4's nesting level: 0