Esta página mostra como formatar texto usando a API Google Docs.
Sobre a formatação
Há dois tipos diferentes de formatação que podem ser aplicados ao conteúdo de texto do documento:
- Você pode mudar a formatação de caracteres, como fonte, cor ou sublinhado.
- Você pode mudar a formatação do parágrafo, como recuo ou espaçamento entre linhas.
Como mudar a formatação de caracteres
A formatação de caracteres determina a renderização dos caracteres de texto no documento.
Qualquer formatação aplicada substitui a formatação padrão herdada do TextStyle do parágrafo. Por outro lado, qualquer caractere com formatação que você não definir vai continuar a herdar os estilos do parágrafo.
Para alterar a formatação de caracteres do texto, use batchUpdate
com o
UpdateTextStyleRequest.
Você precisa fornecer um objeto Range
que inclua as seguintes informações:
- Um
segmentId
que identifica qual cabeçalho, rodapé, nota de rodapé ou, se não especificado, o corpo contém o texto. startIndex
eendIndex
que definem o intervalo de texto no segmento a ser formatado.- Um
tabId
que identifica qual guia contém o texto.
O exemplo a seguir realiza diversas operações de estilo no texto contido no cabeçalho:
- Aplica itálico e negrito na fonte dos caracteres 1 a 5.
- Aplica a cor
blue
da fonte Times New Roman 14 pts aos caracteres 6-10. - Aplica hiperlinks aos caracteres 11 a 15 para
www.example.com
.
Uma maneira simples de fazer isso é criar uma lista de solicitações e usar uma chamada de 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()
Como mudar a formatação de parágrafos
A API Documentos Google permite atualizar a formatação de parágrafo, que determina como os blocos de texto são renderizados no documento, incluindo recursos como alinhamento e recuo.
Qualquer formatação aplicada substitui a formatação padrão herdada do estilo de parágrafo. Por outro lado, os recursos de formatação que você não definir vão continuar sendo herdados do estilo do parágrafo. Para saber mais sobre estilos de parágrafo e herança, consulte ParagraphStyle.
O exemplo abaixo especifica a seguinte formatação para um parágrafo:
- Um título como o estilo nomeado
- Espaçamento personalizado acima
- Espaçamento personalizado abaixo
- Uma borda esquerda personalizada
Todos os outros recursos de formatação do parágrafo continuam a herdar do estilo nomeado.
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()