En esta página, se indica cómo dar formato al texto con la API de Documentos de Google.
Información acerca del formato
Hay dos tipos diferentes de formato que puedes aplicar al contenido de texto de tu documento:
- Puedes cambiar el formato de caracteres, como la fuente, el color o el subrayado.
- Puedes cambiar el formato de los párrafos, como la sangría o el interlineado.
Cambiar el formato de caracteres
El formato de caracteres determina la representación de caracteres de texto en tu documento.
Cualquier formato que apliques anulará el formato predeterminado heredado del TextStyle del párrafo subyacente. Por el contrario, los caracteres cuyo formato no configures se seguirá heredando de los estilos del párrafo.
Para cambiar el formato de caracteres del texto, usa batchUpdate
con UpdateTextStyleRequest.
Debes proporcionar un objeto Range que incluya la siguiente información:
- Un
segmentId
que identifica qué encabezado, pie de página o nota al pie (o, si no se especifica, el cuerpo) contiene el texto. - Los
startIndex
yendIndex
que definen el rango de texto dentro del segmento al que se le aplicará formato. - Un
tabId
que identifica qué pestaña contiene el texto.
En el siguiente ejemplo, se realizan varias operaciones de ajuste de estilo en el texto que se encuentra en el encabezado:
- Define la fuente de los caracteres del 1 al 5 en negrita y cursiva.
- Establece el color de los caracteres del 6 al 10 en
blue
, con fuente Times New Roman de tamaño 14 pt. - Se aplican hipervínculos a los caracteres 11 a 15 a
www.example.com
.
Una manera directa de hacer esto es crear una lista de solicitudes y, luego, usar una llamada a 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()
Cómo cambiar el formato de un párrafo
La API de Documentos de Google te permite actualizar el formato de los párrafos, que determina la forma en que 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 diseño de párrafo subyacente. Por el contrario, cualquier función de formato que no configures seguirá heredando el estilo de párrafo. Para obtener más información sobre los estilos de párrafo y la herencia, consulta ParagraphStyle.
El siguiente ejemplo especifica el siguiente formato para un párrafo:
- Un encabezado como el estilo con nombre
- Espaciado personalizado en la parte superior
- Espaciado personalizado a continuación
- Un borde izquierdo personalizado
El resto de las funciones de formato del párrafo siguen heredando del estilo con nombre subyacente.
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()