Metni Biçimlendir

Bu sayfada, Google Dokümanlar API'sini kullanarak metni nasıl biçimlendireceğiniz açıklanmaktadır.

Biçimlendirme hakkında

Dokümanınızın metin içeriğine uygulayabileceğiniz iki farklı biçimlendirme türü vardır:

  • Yazı tipi, renk veya altı çizili gibi karakter biçimlendirmelerini değiştirebilirsiniz.
  • Paragraf biçimlendirmesini (ör. girinti veya satır aralığı) değiştirebilirsiniz.

Karakter biçimlendirmesini değiştirme

Karakter biçimlendirmesi, belgenizdeki metin karakterlerinin oluşturulmasını belirler.

Uyguladığınız tüm biçimlendirmeler, temel paragrafın TextStyle özelliğinden devralınan varsayılan biçimlendirmeyi geçersiz kılar. Buna karşılık, biçimlendirmesini ayarlamadığınız karakterler paragrafın stillerinden devralmaya devam eder.

Metnin karakter biçimlendirmesini değiştirmek için UpdateTextStyleRequest ile batchUpdate kullanın. Aşağıdaki bilgileri içeren bir Range nesnesi sağlamanız gerekir:

  • Metni içeren üstbilgi, altbilgi, dipnotu veya belirtilmemişse gövdeyi tanımlayan bir segmentId.
  • Biçimlendirilecek segmentteki metin aralığını tanımlayan startIndex ve endIndex.
  • Metni içeren sekmeyi tanımlayan bir tabId.

Aşağıdaki örnekte, üstbilgide yer alan metin üzerinde çeşitli metin stili işlemleri gerçekleştirilmektedir:

  • 1-5 arasındaki karakterlerin yazı tipini kalın italik olarak ayarlar.
  • 6-10 arasındaki karakterlerin rengini blue 14 punto Times New Roman yazı tipine ayarlar.
  • 11-15 arasındaki karakterleri www.example.com ile köprülendirir.

Bunu yapmanın basit bir yolu, bir istek listesi oluşturmak ve ardından bir batchUpdate çağrısı kullanmaktır:

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()

Paragraf biçimlendirmesini değiştirme

Google Dokümanlar API, paragraf biçimlendirmesini güncellemenize olanak tanır. Bu biçimlendirme, metin bloklarının belgenizde nasıl oluşturulacağını belirler. Hizalama ve girinti gibi özellikler de bu biçimlendirmeye dahildir.

Uyguladığınız biçimlendirmeler, temel paragraf stilinden devralınan varsayılan biçimlendirmeyi geçersiz kılar. Buna karşılık, ayarlamadığınız biçimlendirme özellikleri paragraf stilinden devralınmaya devam eder. Paragraf stilleri ve devralma hakkında daha fazla bilgi için ParagraphStyle konusuna bakın.

Aşağıdaki örnekte, bir paragraf için aşağıdaki biçimlendirme belirtilmiştir:

  • Adlandırılmış stil olarak bir başlık
  • Yukarıda özel aralık
  • Aşağıda özel aralık
  • Özel sol kenarlık

Paragrafın biçimlendirme özelliklerinin geri kalanı, temel alınan adlandırılmış stilde kalır.

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()