Możesz edytować tekst i określać jego styl za pomocą zakresów tekstowych reprezentowanych przez typ TextRange
. TextRange
reprezentuje segment tekstu w kształcie lub w komórce tabeli. Wywołanie getText()
względem kształtu lub komórki tabeli zwraca zakres tekstu obejmujący cały tekst.
Jeśli używasz metod, które pozwalają edytować sposób dopasowania tekstu do kształtu, wszystkie ustawienia automatycznego dopasowania zastosowane do kształtu zostaną wyłączone.
Używanie zakresów tekstowych
Zakres tekstowy ma 2 indeksy, które oddzielają segment tekstu uwzględnionego w zakresie tekstowym: indeks początkowy i indeks końcowy. Te indeksy możesz określić za pomocą funkcji getStartIndex()
i getEndIndex()
.
Aby odczytać zawartość zakresu tekstowego, użyj funkcji asString()
lub asRenderedString()
.
Aby pobrać podzakres z zakresu tekstowego, użyj funkcji getRange()
.
Ten skrypt tworzy pole tekstowe na pierwszym slajdzie i ustawia jego zawartość na „Hello, world!”. Następnie pobiera podzakres, który obejmuje tylko zakres „Hello”.
Zakres tekstu zwrócony przez kształt lub komórkę tabeli zawsze obejmuje cały tekst, nawet jeśli tekst zostanie wstawiony i usunięty. Powyższy przykład generuje takie instrukcje logu:
Start: 0; End: 13; Content: Hello world! Start: 0; End: 5; Content: Hello
Wstawianie i usuwanie tekstu
Za pomocą zakresów tekstowych możesz też wstawiać i usuwać kształty tekstowe i komórki tabeli.
insertText()
iappendText()
umożliwiają wstawianie tekstu.setText()
zastępuje tekst z zakresu tekstu podanym tekstem.clear()
usuwa tekst z zakresu tekstu.
Ten skrypt pokazuje użycie tych funkcji:
Ten skrypt tworzy pole tekstowe na pierwszym slajdzie i ustawia jego zawartość na „Hello, world!”. Następnie usuwa znaki od 6 do 11 („świat”) i wstawia tekst „galaktyka” w indeksie 6. Powyższy przykład generuje tę instrukcję logu:
Start: 0; End: 14; Content: Hello galaxy!
Wyszukaj i zamień
Funkcja replaceAllText()
w prezentacji lub na stronie umożliwia globalne wyszukiwanie i zastępowanie całej prezentacji lub konkretnej strony.
Funkcja find()
w komponencie TextRange zwraca wystąpienia ciągu znaków w zakresie. Można go używać razem z funkcją setText()
do wyszukiwania i zastępowania w kształcie lub komórce tabeli.
Akapity, listy elementów i uruchomienia
TextRange
udostępnia funkcje zwracające przydatne zbiory encji tekstowych.
Niektóre z tych funkcji to:
getParagraphs(),
, który zawiera wszystkie akapity nakładające się na zakres tekstu. Akapit to sekwencja tekstu, która kończy się znakiem nowego wiersza: „\n”.getListParagraphs(),
, który zwraca elementy listy z bieżącego zakresu tekstowego.getRuns(),
, który zawiera uruchomienia tekstu nakładające się na bieżący zakres tekstu. Uruchomienie tekstu to fragment tekstu, w którym wszystkie znaki mają ten sam styl.
Style tekstu
Styl tekstu określa sposób renderowania znaków w prezentacji, w tym czcionki, koloru i hiperlinków.
Funkcja getTextStyle()
zakresu tekstu dostarcza obiekt TextStyle
służący do określania stylu tekstu. Obiekt TextStyle
obejmuje ten sam tekst co jego obiekt nadrzędny TextRange
.
Powyższy przykład tworzy najpierw pole tekstowe na pierwszym slajdzie i ustawia jego zawartość na „Cześć ”. Następnie dodaje tekst „world!”. Nowo dołączony tekst jest pogrubiony i zawiera link do elementu www.example.com
, a jego kolor jest ustawiony na czerwony.
Podczas odczytywania stylów funkcja zwraca wartość null, jeśli zakres ma wiele wartości stylu. Powyższy przykład generuje następujące instrukcje logu:
Text: Hello; Bold: false Text: world!; Bold: true Text: Hello world!; Bold: null
Do tekstu można zastosować wiele innych stylów. Więcej informacji znajdziesz w dokumentacji referencyjnej TextStyle
.
Style akapitu
Style akapitu dotyczą całych akapitów i obejmują m.in. wyrównanie tekstu i odstępy między wierszami. Funkcja getParagraphStyle() w TextRange
udostępnia obiekt ParagraphStyle
do określania stylu wszystkich akapitów nakładających się na nadrzędny zakres tekstu.
Poniższy przykład pokazuje utworzenie na pierwszym slajdzie pola tekstowego zawierającego 4 akapity, a następnie wyśrodkowuje pierwsze 3 akapity.
Styl listy
Tak jak w przypadku ParagraphStyle
, ListStyle
można używać do określania stylu wszystkich akapitów, które nakładają się na nadrzędny zakres tekstu.
Powyższy przykład tworzy na pierwszym slajdzie pole tekstowe zawierające 4 akapity: do drugiego akapitu zostało zastosowane jedno wcięcie, a trzeci akapit – dwa. Następnie do wszystkich akapitów zostaną zastosowane gotowe ustawienia listy. Na koniec rejestrowany jest poziom zagnieżdżenia każdego akapitu. Poziom zagnieżdżenia akapitu zależy od liczby znaków tabulacji przed tekstem akapitu. Powyższy skrypt generuje więc następujące instrukcje logu:
Paragraph 1's nesting level: 0 Paragraph 2's nesting level: 1 Paragraph 3's nesting level: 2 Paragraph 4's nesting level: 0