En esta página, se explica cómo dar formato al texto con la API de Google Docs.
Información sobre el formato
Existen dos tipos diferentes de formato que puedes aplicar al contenido de texto de tu documento:
- Puedes cambiar el formato de los caracteres, como la fuente, el color o el subrayado.
- Puedes cambiar el formato de los párrafos, como la sangría o el interlineado.
Cómo cambiar el formato de los caracteres
El formato de los caracteres determina la renderización de los caracteres de texto en tu documento.
Cualquier formato que apliques anula el formato predeterminado heredado de TextStyleTextStyle. Por el contrario, los caracteres cuyo formato no establezcas seguirán heredando los estilos del párrafo.
Para cambiar el formato de los caracteres del texto, usa batchUpdate con la
UpdateTextStyleRequest.
Debes proporcionar un objeto Range
que incluya la siguiente información:
- Un
segmentIdque identifica qué encabezado, pie de página, nota al pie o, si no se especifica, el cuerpo contiene el texto. - Los valores
startIndexyendIndexque definen el rango de texto dentro del segmento al que se le dará formato. - Un
tabIdque identifica qué pestaña contiene el texto.
En el siguiente ejemplo, se realizan varias operaciones de estilo en el texto incluido en el encabezado:
- Establece la fuente de los caracteres del 1 al 5 en negrita y cursiva.
- Establece el color de los caracteres del 6 al 10 en
bluecon la fuente Times New Roman de 14 pt. - Crea hipervínculos para los caracteres del 11 al 15 a
www.example.com.
Una forma sencilla de hacerlo es crear una lista de solicitudes y, luego, usar una llamada batchUpdate:
Java
Listrequests = 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()
Cómo cambiar el formato de los párrafos
La API de Google Docs te permite actualizar el formato de los párrafos, que determina cómo se renderizan los bloques de texto en tu documento, incluidas funciones como la alineación y la sangría.
Cualquier formato que apliques anula el formato predeterminado heredado del estilo de párrafo subyacente. Por el contrario, las funciones de formato que no establezcas seguirán heredando el estilo de párrafo. Para obtener más información sobre los estilos de párrafo y la herencia, consulta ParagraphStyle.
En el siguiente ejemplo, se especifica el siguiente formato para un párrafo:
- Un encabezado como el estilo con nombre
- Espaciado personalizado arriba
- Espaciado personalizado abajo
- Un borde izquierdo personalizado
Todas las demás funciones de formato del párrafo siguen heredando el estilo con nombre subyacente.
Java
Listrequests = 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()