Halaman ini menjelaskan cara memformat teks menggunakan Google Docs API.
Tentang pemformatan
Ada dua jenis pemformatan berbeda yang dapat Anda terapkan ke konten teks dokumen:
- Anda dapat mengubah pemformatan karakter seperti font, warna, atau garis bawah.
- Anda dapat mengubah pemformatan paragraf seperti indentasi atau spasi baris.
Mengubah pemformatan karakter
Pemformatan karakter menentukan rendering karakter teks dalam dokumen Anda.
Pemformatan apa pun yang Anda terapkan akan mengganti pemformatan default yang diwarisi dari TextStyle TextStyle. Sebaliknya, karakter apa pun yang pemformatannya tidak Anda tetapkan akan terus mewarisi gaya paragraf.
Untuk mengubah pemformatan karakter teks, gunakan batchUpdate dengan the
UpdateTextStyleRequest.
Anda harus menyediakan objek Range
yang menyertakan informasi berikut:
segmentIdyang mengidentifikasi header, footer, catatan kaki—atau, jika tidak ditentukan, isi—yang berisi teks.startIndexdanendIndexyang menentukan rentang teks dalam segmen yang akan diformat.tabIdyang mengidentifikasi tab yang berisi teks.
Contoh berikut melakukan beberapa operasi gaya teks pada teks yang terdapat di header:
- Menetapkan font karakter 1-5 menjadi miring tebal.
- Menetapkan warna karakter 6-10 menjadi 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 batchUpdate panggilan:
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()
Mengubah pemformatan paragraf
Google Docs API memungkinkan Anda memperbarui pemformatan paragraf, yang menentukan cara blok teks dirender dalam dokumen Anda, termasuk fitur seperti perataan dan indentasi.
Pemformatan apa pun yang Anda terapkan akan mengganti pemformatan default yang diwarisi dari gaya paragraf yang mendasarinya. Sebaliknya, fitur pemformatan apa pun yang tidak Anda tetapkan akan terus mewarisi gaya paragraf. Untuk mengetahui informasi selengkapnya tentang gaya dan pewarisan paragraf, lihat ParagraphStyle.
Contoh di bawah menentukan pemformatan berikut untuk paragraf:
- Judul sebagai gaya bernama
- Spasi kustom di atas
- Spasi kustom di bawah
- Batas kiri kustom
Semua fitur pemformatan paragraf lainnya akan terus mewarisi gaya bernama yang mendasarinya.
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()