Metni Biçimlendir

Bu sayfada, Google Dokümanlar API'si kullanılarak metnin nasıl biçimlendirileceği açıklanmaktadır.

Biçimlendirme hakkında

Belgenizin metin içeriğine uygulayabileceğiniz iki farklı biçimlendirme türü vardır:

  • Yazı tipi, renk veya alt çizgi gibi karakter biçimlendirmesini değiştirebilirsiniz.
  • Girinti veya satır aralığı gibi paragraf biçimlendirmesini 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'ından devralınan varsayılan biçimlendirmeyi geçersiz kılar. Buna karşılık, biçimlendirmesini ayarlamadığınız karakterler paragrafın stillerini devralmaya devam eder.

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

  • Metnin hangi başlığı, altbilgiyi, dipnotu veya (belirtilmemişse) gövdeyi içerdiğini tanımlayan bir segmentId.
  • Biçimlendirilecek segmentteki metin aralığını tanımlayan startIndex ve endIndex.
  • Metnin hangi sekmede olduğunu belirten bir tabId.

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

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

Bunu yapmanın basit bir yolu, isteklerin listesini oluşturup tek 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'si, metin bloklarının belgenizde nasıl oluşturulacağını belirleyen paragraf biçimlendirmesini güncellemenize olanak tanır. Bu biçimlendirme, hizalama ve girinti gibi özellikleri içerir.

Uyguladığınız tüm biçimlendirmeler, temel paragraf stilinden devralınan varsayılan biçimlendirmeyi geçersiz kılar. Aksine, ayarlamadığınız tüm 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 şu biçimlendirme belirtilmiştir:

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

Paragrafın biçimlendirme özelliklerinin geri kalanı, temel alınan adlandırılmış stilden devralınmaya devam eder.

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