Metni düzenleme ve biçimlendirme

Metin aralıklarını kullanarak metin düzenleyebilir ve metin stilini değiştirebilirsiniz. Bu aralıklar TextRange türü. TextRange, bir şeklin içindeki metin segmentini temsil eder ekleyin. Bir şekil veya tablo hücresinde getText() çağrıldığında bir Metnin tamamını kapsayan metin aralığı kullanın.

Metnin bir şekle sığdırılmasını düzenleyen yöntemler kullanıyorsanız tüm otomatik sığdırma ayarları devre dışı bırakılır.

Metin aralıklarını kullanma

Bir metin aralığında, metin segmentini sınırlayan iki dizin bulunur bir metin aralığı kapsamına girer: başlangıç dizini ve bitiş dizini. Bir projenin bu dizinleri getStartIndex() ve getEndIndex() işlevlerini kullanarak düzenleyebilirsiniz.

Bir metin aralığının içeriğini okumak için asString() veya asRenderedString() işlev.

Metin aralığındaki bir alt aralığı geri getirmek için getRange() işlevini kullanın.

Aşağıdaki komut dosyası ilk slaytta bir metin kutusu oluşturur ve metin içeriğini ayarlar "Hello world!" olarak değiştirin. Daha sonra, yalnızca "Hello" kelimesini kapsayan bir alt aralık getirir.

slaytlar/stil/stil.g
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
  const textRange = shape.getText();
  // Set text in TEXT_BOX
  textRange.setText('Hello world!');
  console.log('Start: ' + textRange.getStartIndex() + '; End: ' +
    textRange.getEndIndex() + '; Content: ' + textRange.asString());
  const subRange = textRange.getRange(0, 5);
  console.log('Sub-range Start: ' + subRange.getStartIndex() + '; Sub-range End: ' +
    subRange.getEndIndex() + '; Sub-range Content: ' + subRange.asString());
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

Bir şekil veya tablo hücresi tarafından döndürülen metin aralığı her zaman metnin tamamını kapsar. veya metin eklenip silinse bile Dolayısıyla yukarıdaki örnek, aşağıdaki günlük ifadeleri:

Start: 0; End: 13; Content: Hello world!
Start: 0; End: 5; Content: Hello

Metin ekleme ve silme

Ayrıca, metin şekillerini ve tablo hücrelerini metin aralıkları.

  • insertText() ve appendText() metin eklemenize olanak tanır.
  • setText(), bir metin aralığının metnini sağlanan metinle değiştirir.
  • clear(), bir metin aralığındaki metni siler.

Aşağıdaki komut dosyası bu işlevlerin kullanımını gösterir:

slaytlar/stil/stil.g
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
  const textRange = shape.getText();
  textRange.setText('Hello world!');
  textRange.clear(6, 11);
  // Insert text in TEXT_BOX
  textRange.insertText(6, 'galaxy');
  console.log('Start: ' + textRange.getStartIndex() + '; End: ' +
    textRange.getEndIndex() + '; Content: ' + textRange.asString());
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

Bu komut dosyası ilk slaytta bir metin kutusu oluşturur ve metin içeriğini ayarlar "Hello world!" olarak değiştirin. Daha sonra, 6 ile 11 arasındaki karakterleri ("dünya") siler ve "galaksi" metnini ekler 6'da görüntüleyebilirsiniz. Yukarıdaki örnek, şu günlük ifadesi:

Start: 0; End: 14; Content: Hello galaxy!

Ara ve değiştir

Genel bir işlem yapmak için sunuda veya sayfada replaceAllText() işlevini kullanın. bul ve değiştir işlevini kullanabilirsiniz.

TextRange üzerindeki find() işlevi, aralığı. Bul ve değiştir işlemi yapmak için setText() ile birlikte kullanılabilir. hücrenin içinde görünmesini sağlar.

Paragraflar, liste öğeleri ve çalıştırmalar

TextRange, metin öğelerinin yararlı koleksiyonlarını döndürmek için işlevler sağlar. Bu işlevlerden bazıları şunlardır:

  • getParagraphs(),: Metin aralığıyla çakışan tüm paragrafları sağlar. CEVAP paragraf, yeni satır karakteriyle sona eren bir metin dizisidir. "\n".
  • getListParagraphs(),: Geçerli metin aralığındaki liste öğelerini döndürür.
  • getRuns(),: Geçerli metin aralığıyla çakışan metin çalıştırmalarını sağlar. CEVAP metin yayını, tüm karakterlerin aynı metne sahip olduğu bir metin segmentidir stiline sahip.

Metin stili

Metin stili, sununuzdaki metin karakterlerinin oluşturulma biçimini belirler. yazı tipi, renk ve köprü oluşturmayı içerir.

Bir metin aralığının getTextStyle() işlevi, şunun için kullanılan bir TextStyle nesnesi sağlar: stil metni ayarlama. TextStyle nesnesi, üst TextRange ile aynı metni kapsıyor.

slaytlar/stil/stil.g
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
  const textRange = shape.getText();
  // Set text in TEXT_BOX
  textRange.setText('Hello ');
  // Append text in TEXT_BOX
  const insertedText = textRange.appendText('world!');
  // Style the text with url,bold
  insertedText.getTextStyle()
      .setBold(true)
      .setLinkUrl('www.example.com')
      .setForegroundColor('#ff0000');
  const helloRange = textRange.getRange(0, 5);
  console.log('Text: ' + helloRange.asString() + '; Bold: ' + helloRange.getTextStyle().isBold());
  console.log('Text: ' + insertedText.asString() + '; Bold: ' +
    insertedText.getTextStyle().isBold());
  console.log('Text: ' + textRange.asString() + '; Bold: ' + textRange.getTextStyle().isBold());
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

Yukarıdaki örnek ilk olarak ilk slaytta bir metin kutusu oluşturur ve "Merhaba " olarak ayarlayın. Ardından "world!" metnini ekler. Yeni eklenen metin kalın yazılmış, www.example.com ile bağlantılı ve rengi ayarlandı kırmızıya çevirebilirsiniz.

Stilleri okurken, aralıkta birden fazla değer varsa işlev boş değerini döndürür teşvik ediyor. Dolayısıyla, yukarıdaki örnek aşağıdaki günlük ifadelerini oluşturur:

Text: Hello; Bold: false
Text: world!; Bold: true
Text: Hello world!; Bold: null

Metne uygulanabilecek başka birçok stil vardır. Daha fazla ayrıntı TextStyle referans belgelerinde bulabilirsiniz.

Paragraf stili

Paragraf stilleri tüm paragraflara uygulanır ve metin hizalama ve satır gibi öğeleri içerir aralığı'nı tıklayın. TextRange öğesindeki getParagraphStyle() işlevi bir ParagraphStyle sağlar. üst metin aralığıyla çakışan tüm paragraflara stil eklemek için kullanılan nesnedir.

Aşağıdaki örnek, ilk slaytta dört sonra ilk üç paragrafı ortaya hizalar.

slaytlar/stil/stil.g
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 50, 50, 300, 300);
  const textRange = shape.getText();
  // Set the text in the shape/TEXT_BOX
  textRange.setText('Paragraph 1\nParagraph2\nParagraph 3\nParagraph 4');
  const paragraphs = textRange.getParagraphs();
  // Style the paragraph alignment center.
  for (let i = 0; i <= 3; i++) {
    const paragraphStyle = paragraphs[i].getRange().getParagraphStyle();
    paragraphStyle.setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
  }
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

Liste stili

ParagraphStyle parametresine benzer şekilde, ListStyle tüm paragraflara stil eklemek için kullanılabilir üst metin aralığıyla çakışıyor.

slaytlar/stil/stil.g
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 50, 50, 300, 300);
  // Add and style the list
  const textRange = shape.getText();
  textRange.appendText('Item 1\n')
      .appendText('\tItem 2\n')
      .appendText('\t\tItem 3\n')
      .appendText('Item 4');
  // Preset patterns of glyphs for lists in text.
  textRange.getListStyle().applyListPreset(SlidesApp.ListPreset.DIGIT_ALPHA_ROMAN);
  const paragraphs = textRange.getParagraphs();
  for (let i = 0; i < paragraphs.length; i++) {
    const listStyle = paragraphs[i].getRange().getListStyle();
    console.log('Paragraph ' + (i + 1) + '\'s nesting level: ' + listStyle.getNestingLevel());
  }
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

Yukarıdaki örnek, ilk slaytta dört paragraf içeren bir metin kutusu oluşturur: ikinci paragraf bir kez girintili ve üçüncü paragraf girintili iki kez. Ardından tüm paragraflara bir liste hazır ayarı uygular. Son olarak her bir paragrafın iç içe yerleştirme seviyesi günlüğe kaydedilir. (Paragrafın iç içe yerleştirme düzeyi paragraf metninden önceki sekme sayısı.) Yukarıdaki komut dosyası aşağıdaki günlük ifadeleri:

Paragraph 1's nesting level: 0
Paragraph 2's nesting level: 1
Paragraph 3's nesting level: 2
Paragraph 4's nesting level: 0