Formatuj tekst

Na tej stronie dowiesz się, jak sformatować tekst za pomocą interfejsu Google Docs API.

Formatowanie

Do zawartości tekstowej dokumentu możesz zastosować 2 rodzaje formatowania:

  • Możesz zmienić formatowanie znaków, np. czcionkę, kolor lub podkreślenie.
  • Możesz zmienić formatowanie akapitu, np. wcięcie lub odstęp między wierszami.

Zmienianie formatowania znaków

Formatowanie znaków określa renderowanie znaków tekstowych w dokumencie.

Wszelkie formatowanie, które zastosujesz, zastąpi domyślne formatowanie odziedziczone z podrzędnego akapitu TextStyle. Znaki, których formatowania nie ustawisz, będą dziedziczyć styl od akapitu.

Aby zmienić formatowanie znaków w tekście, użyj batchUpdate w UpdateTextStyleRequest. Musisz podać obiekt Range, który zawiera te informacje:

  • segmentId, który wskazuje, czy tekst znajduje się w nagłówku, stopce, przypisie dolnym, czy (jeśli nie określono inaczej) w treści.
  • startIndex i endIndex, które definiują zakres tekstu w segmencie do sformatowania.
  • tabId, który wskazuje, która karta zawiera tekst.

W tym przykładzie wykonujemy kilka operacji stylizacji tekstu zawartego w nagłówku:

  • Ustawia czcionkę znaków 1–5 na pogrubioną kursywę.
  • Ustawia kolor znaków 6–10 na blue czcionka Times New Roman 14 pkt.
  • znaki 11–15 hiperlinka do www.example.com.

Najprostszym sposobem jest utworzenie listy żądań, a następnie użycie jednej funkcji batchUpdate:

Java

List<Request> requests = new ArrayList<>(); requests.add(new Request().setUpdateTextStyle(new UpdateTextStyleRequest()         .setTextStyle(new TextStyle()                 .setBold(true)                 .setItalic(true))         .setRange(new Range()                 .setStartIndex(1)                 .setEndIndex(5)                 .setTabId(TAB_ID))         .setFields("bold")));  requests.add(new Request()         .setUpdateTextStyle(new UpdateTextStyleRequest()                 .setRange(new Range()                         .setStartIndex(6)                         .setEndIndex(10)                         .setTabId(TAB_ID))                 .setTextStyle(new TextStyle()                         .setWeightedFontFamily(new WeightedFontFamily()                                 .setFontFamily("Times New Roman"))                         .setFontSize(new Dimension()                                 .setMagnitude(14.0)                                 .setUnit("PT"))                         .setForegroundColor(new OptionalColor()                                 .setColor(new Color().setRgbColor(new RgbColor()                                         .setBlue(1.0F)                                         .setGreen(0.0F)                                         .setRed(0.0F)))))                 .setFields("foregroundColor,weightedFontFamily,fontSize")));  requests.add(new Request()         .setUpdateTextStyle(new UpdateTextStyleRequest()                 .setRange(new Range()                         .setStartIndex(11)                         .setEndIndex(15)                         .setTabId(TAB_ID))                 .setTextStyle(new TextStyle()                         .setLink(new Link()                                 .setUrl("www.example.com")))                 .setFields("link")));   BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents()         .batchUpdate(DOCUMENT_ID, body).execute();

Python

requests = [     {         'updateTextStyle': {             'range': {                 'startIndex': 1,                 'endIndex': 5,                 'tabId': TAB_ID             },             'textStyle': {                 'bold': True,                 'italic': True             },             'fields': 'bold,italic'         }     },     {         'updateTextStyle': {             'range': {                 'startIndex': 6,                 'endIndex': 10,                 'tabId': TAB_ID             },             'textStyle': {                 'weightedFontFamily': {                     'fontFamily': 'Times New Roman'                 },                 'fontSize': {                     'magnitude': 14,                     'unit': 'PT'                 },                 'foregroundColor': {                     'color': {                         'rgbColor': {                             'blue': 1.0,                             'green': 0.0,                             'red': 0.0                         }                     }                 }             },             'fields': 'foregroundColor,weightedFontFamily,fontSize'         }     },     {         'updateTextStyle': {             'range': {                 'startIndex': 11,                 'endIndex': 15,                 'tabId': TAB_ID             },             'textStyle': {                 'link': {                     'url': 'www.example.com'                 }             },             'fields': 'link'         }     } ]  result = service.documents().batchUpdate(     documentId=DOCUMENT_ID, body={'requests': requests}).execute()

Zmienianie formatowania akapitu

Interfejs API Dokumentów Google umożliwia aktualizowanie formatowania akapitu, które określa sposób wyświetlania bloków tekstu w dokumencie, w tym takie funkcje jak wyrównanie i wcięcie.

Wszelkie formatowanie, które zastosujesz, zastąpi domyślne formatowanie odziedziczone od stylu akapitu. Z drugiej strony, wszystkie funkcje formatowania, których nie ustawisz, będą dziedziczyć ustawienia ze stylu akapitu. Więcej informacji o stylach akapitów i dziedziczeniu znajdziesz w artykule ParagraphStyle.

W przykładzie poniżej akapit ma takie formatowanie:

  • nagłówek jako styl nazwany;
  • Niestandardowe odstępy powyżej
  • Niestandardowe odstępy poniżej
  • niestandardowe lewe obramowanie;

Pozostałe funkcje formatowania akapitu nadal dziedziczą właściwości od stylu o nazwie.

Java

List<Request> requests = new ArrayList<>(); requests.add(new Request().setUpdateParagraphStyle(new UpdateParagraphStyleRequest()         .setRange(new Range()                 .setStartIndex(1)                 .setEndIndex(10)                 .setTabId(TAB_ID))         .setParagraphStyle(new ParagraphStyle()                 .setNamedStyleType("HEADING_1")                 .setSpaceAbove(new Dimension()                         .setMagnitude(10.0)                         .setUnit("PT"))                 .setSpaceBelow(new Dimension()                         .setMagnitude(10.0)                         .setUnit("PT")))         .setFields("namedStyleType,spaceAbove,spaceBelow") ));  requests.add(new Request().setUpdateParagraphStyle(new UpdateParagraphStyleRequest()         .setRange(new Range()                 .setStartIndex(10)                 .setEndIndex(20)                 .setTabId(TAB_ID))         .setParagraphStyle(new ParagraphStyle()                 .setBorderLeft(new ParagraphBorder()                         .setColor(new OptionalColor()                                 .setColor(new Color()                                         .setRgbColor(new RgbColor()                                                 .setBlue(1.0F)                                                 .setGreen(0.0F)                                                 .setRed(0.0F)                                         )                                 )                         )                         .setDashStyle("DASH")                         .setPadding(new Dimension()                                 .setMagnitude(20.0)                                 .setUnit("PT"))                         .setWidth(new Dimension()                                 .setMagnitude(15.0)                                 .setUnit("PT")                         )                 )         )         .setFields("borderLeft") ));  BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents()         .batchUpdate(DOCUMENT_ID, body).execute();

Python

requests = [     {         'updateParagraphStyle': {             'range': {                 'startIndex': 1,                 'endIndex':  10,                 'tabId': TAB_ID             },             'paragraphStyle': {                 'namedStyleType': 'HEADING_1',                 'spaceAbove': {                     'magnitude': 10.0,                     'unit': 'PT'                 },                 'spaceBelow': {                     'magnitude': 10.0,                     'unit': 'PT'                 }             },             'fields': 'namedStyleType,spaceAbove,spaceBelow'         }     },     {         'updateParagraphStyle': {             'range': {                 'startIndex': 10,                 'endIndex':  20,                 'tabId': TAB_ID             },             'paragraphStyle': {                 'borderLeft': {                     'color': {                         'color': {                             'rgbColor': {                                 'blue': 1.0,                                 'green': 0.0,                                 'red': 0.0                             }                         }                     },                     'dashStyle': 'DASH',                     'padding': {                         'magnitude': 20.0,                         'unit': 'PT'                     },                     'width': {                         'magnitude': 15.0,                         'unit': 'PT'                     },                 }             },             'fields': 'borderLeft'         }     } ]  result = service.documents().batchUpdate(     documentId=DOCUMENT_ID, body={'requests': requests}).execute()