簡體   English   中英

在 Google Docs 中創建彩虹文本

[英]Creating Rainbow Text in Google Docs

var selectedElements = selection.getSelectedElements();
for (var i = 0; i < selectedElements.length; ++i) {
var selectedElement = selectedElements[i];

// Only modify elements that can be edited as text; skip images and other
// non-text elements.
var text = selectedElement.getElement().editAsText();

// Change the background color of the selected part of the element, or the
// full element if it's completely selected.
if (selectedElement.isPartial()) {
  text.setColor(selectedElement.getStartOffset(),
      selectedElement.getEndOffsetInclusive(), '#69359c');
    }
  }
}

上面的文本在 Google Doc 中進行了選擇,並將其更改為十六進制代碼 #69359c(深紫色)。 我搜索了很多網站,很多gits,也向很多朋友尋求我的項目幫助。

我的最終項目是這樣的:

  1. 使用我的選擇器為 Google 文檔創建菜單(完成)
  2. 能夠突出顯示一定數量的文本並將其更改為一系列顏色(ROY G. BIV / 彩虹)。
  3. 格式僅適用於 Google 文檔。

如果有人可以幫助我,將不勝感激。

我剛剛發現了這個問題,很高興從我的 Rainbow Font Google Docs 插件( Magic Rainbow Unicorns )中提供一些工作代碼。

第一個問題是你需要在文本上設置前景色,第二個問題是上面的代碼只允許部分段落選擇。

對於整個選擇,請使用以下代碼:

var elementText = element.editAsText();
if (elementText) {
  var paragraph = elementText.getText();
  for (var j = 0; j < paragraph.length; j++) {
    elementText.setForegroundColor(j, j, getNextRainbowColour(...));
  }
}

對於部分選擇,我使用了這個:

var elementText = element.asText();
var startIndex = element.getStartOffset();
var endIndex = elements.getEndOffsetInclusive();
for (var j = startIndex; j < endIndex+1; j++) {
  elementText.setForegroundColor(j, j, getNextRainbowColour(...));
}

你已經非常接近答案了。 嘗試迭代“text”變量中的元素,以便您可以更改每個元素的背景。

你可以使用這樣的東西來迭代每個字母:

var letters =  elementText.getText();
for(var j = 0 ; j< letters.length-1; j++)
{
     elementText.setBackgroundColor(j, j+1, getRandomColor())
}

以下是使用不同顏色的函數示例:

function getRandomColor() {
   var letters = '0123456789ABCDEF'.split('');
   var color = '#';
   for (var i = 0; i < 6; i++ ) 
   {
       color += letters[Math.floor(Math.random() * 16)];
   }
   return color;
}

對於您的最后一個問題,由於 Text 類不是 Javascript 的一部分,而是來自 app-script 庫,因此這在 Google 環境之外不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM