Halaman ini memberi tahu Anda cara memformat teks menggunakan Google Docs API.
Tentang pemformatan
Ada dua jenis pemformatan yang dapat Anda terapkan ke konten teks dokumen:
- Anda dapat mengubah format karakter seperti font, warna, atau garis bawah.
- Anda dapat mengubah format paragraf seperti indentasi atau spasi baris.
Mengubah format karakter
Format karakter menentukan rendering karakter teks dalam dokumen Anda.
Setiap pemformatan yang Anda terapkan akan menggantikan pemformatan default yang diwarisi dari TextStyle paragraf pokok. Sebaliknya, karakter apa pun yang pemformatannya tidak Anda tetapkan akan terus mewarisi gaya paragraf.
Untuk mengubah format karakter teks, gunakan batchUpdate
dengan
UpdateTextStyleRequest.
Anda harus memberikan objek Range
yang menyertakan informasi berikut:
segmentId
yang mengidentifikasi header, footer, catatan kaki—atau, jika tidak ditentukan, isi—yang berisi teks.startIndex
danendIndex
yang menentukan rentang teks dalam segmen yang akan diformat.tabId
yang mengidentifikasi tab mana yang berisi teks.
Contoh berikut melakukan beberapa operasi gaya teks pada teks yang terdapat di header:
- Menetapkan font karakter 1-5 ke cetak tebal miring.
- Menetapkan warna karakter 6-10 ke font Times New Roman 14 pt
blue
. - Menghubungkan karakter 11-15 ke
www.example.com
.
Cara mudah untuk melakukannya adalah dengan membuat daftar permintaan, lalu menggunakan satu panggilan 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()
Mengubah format paragraf
Google Docs API memungkinkan Anda memperbarui format paragraf, yang menentukan cara blok teks dirender dalam dokumen, termasuk fitur seperti perataan dan indentasi.
Semua format yang Anda terapkan akan menggantikan format default yang diwarisi dari gaya paragraf yang mendasarinya. Sebaliknya, fitur pemformatan apa pun yang tidak Anda tetapkan akan terus diwarisi dari gaya paragraf. Untuk mengetahui informasi selengkapnya tentang gaya dan pewarisan paragraf, lihat ParagraphStyle.
Contoh di bawah menentukan format berikut untuk paragraf:
- Judul sebagai gaya bernama
- Spasi kustom di atas
- Spasi kustom di bawah
- Batas kiri kustom
Semua fitur pemformatan paragraf lainnya terus diwarisi dari gaya bernama yang mendasarinya.
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()