Cette page explique comment mettre en forme du texte à l'aide de l'API Google Docs.
À propos de la mise en forme
Vous pouvez appliquer deux types de mise en forme au contenu textuel de votre document:
- Vous pouvez modifier la mise en forme des caractères (police, couleur, soulignement, etc.).
- Vous pouvez modifier la mise en forme des paragraphes, comme l'indentation ou l'interligne.
Modifier la mise en forme des caractères
La mise en forme des caractères détermine le rendu des caractères de texte dans votre document.
Toute mise en forme que vous appliquez remplace la mise en forme par défaut héritée du TextStyle du paragraphe sous-jacent. À l'inverse, tous les caractères dont vous ne définissez pas la mise en forme continuent d'hériter des styles du paragraphe.
Pour modifier la mise en forme des caractères d'un texte, utilisez batchUpdate
avec UpdateTextStyleRequest.
Vous devez fournir un objet plage qui inclut les informations suivantes:
segmentId
qui identifie l'en-tête, le pied de page, la note de bas de page (ou, si elle n'est pas spécifiée, le corps) qui contient le texte.startIndex
etendIndex
qui définissent la plage de texte du segment à mettre en forme.tabId
qui identifie l'onglet contenant le texte.
L'exemple suivant effectue plusieurs opérations de style de texte sur le texte contenu dans l'en-tête:
- Définit la police des caractères 1 à 5 en gras et en italique.
- Définit la couleur des caractères 6 à 10 sur la police Times New Roman 14 pt
blue
. - Les caractères 11 à 15 sont des liens hypertextes vers
www.example.com
.
Pour ce faire, il suffit de créer une liste de requêtes, puis d'utiliser un appel 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()
Modifier la mise en forme des paragraphes
L'API Google Docs vous permet de modifier la mise en forme des paragraphes, qui détermine la façon dont les blocs de texte sont affichés dans votre document, y compris des fonctionnalités telles que l'alignement et l'indentation.
Toute mise en forme que vous appliquez remplace la mise en forme par défaut héritée du style de paragraphe sous-jacent. À l'inverse, toutes les fonctionnalités de mise en forme que vous ne définissez pas continuent d'hériter du style de paragraphe. Pour en savoir plus sur les styles de paragraphe et l'héritage, consultez ParagraphStyle.
L'exemple ci-dessous spécifie la mise en forme suivante pour un paragraphe:
- Un titre comme style nommé
- Espacement personnalisé au-dessus
- Espacement personnalisé ci-dessous
- Une bordure gauche personnalisée
Toutes les autres fonctionnalités de mise en forme du paragraphe continuent d'hériter du style nommé sous-jacent.
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()