Questa pagina spiega come formattare il testo utilizzando l'API Google Docs.
Informazioni sulla formattazione
Esistono due tipi diversi di formattazione che puoi applicare al testo contenuto del documento:
- Puoi modificare la formattazione dei caratteri, ad esempio il carattere, il colore o la sottolineatura.
- Puoi modificare la formattazione dei paragrafi, ad esempio il rientro o l'interlinea.
Modificare la formattazione dei caratteri
La formattazione dei caratteri determina il rendering dei caratteri di testo nel documento.
Qualsiasi formattazione applicata sostituisce quella predefinita ereditata da TextStyle del paragrafo sottostante. Al contrario, tutti i caratteri la cui formattazione non viene impostata continuano a ereditare gli stili del paragrafo.
Per modificare la formattazione dei caratteri del testo, utilizza batchUpdate
con
UpdateTextStyleRequest.
Devi fornire un oggetto Range
che includa le seguenti informazioni:
- Un
segmentId
che identifica quale intestazione, piè di pagina, nota a piè di pagina o, se non specificato, il corpo contiene il testo. startIndex
eendIndex
che definiscono l'intervallo di testo all'interno del segmento da formattare.- Un
tabId
che identifica la scheda contenente il testo.
Il seguente esempio esegue diverse operazioni di stile del testo sul testo contenuto nell'intestazione:
- Imposta il carattere dei caratteri 1-5 in grassetto corsivo.
- Imposta il colore dei caratteri 6-10 sul carattere Times New Roman a 14 punti.
blue
- Caratteri 11-15 dei link ipertestuali a
www.example.com
.
Un modo semplice per farlo è creare un elenco di richieste e poi utilizzare una chiamata 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()
Modificare la formattazione del paragrafo
L'API Google Docs ti consente di aggiornare la formattazione dei paragrafi, che determina la modalità di rendering dei blocchi di testo nel documento, incluse funzionalità come l'allineamento e il rientro.
Qualsiasi formattazione applicata sostituisce quella predefinita ereditata dallo stile di paragrafo sottostante. Al contrario, tutte le funzionalità di formattazione che non imposti continuano a essere ereditate dallo stile del paragrafo. Per saperne di più sugli stili e sull'ereditarietà dei paragrafi, vedi ParagraphStyle.
L'esempio seguente specifica la seguente formattazione per un paragrafo:
- Un'intestazione come stile denominato
- Spaziatura personalizzata sopra
- Spaziatura personalizzata sotto
- Un bordo sinistro personalizzato
Tutte le altre funzionalità di formattazione del paragrafo continuano a essere ereditate dallo stile denominato sottostante.
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()