簡體   English   中英

在indesign javascript中。 如何在文本框架中選擇一些文本並為其着色

[英]in indesign javascript. how to select some text in textframe and color this

第一次,我使用文本框架並為文本和背景着色。 但是我只需要為第一個單詞塗色,而第二次我就不能只為所選單詞塗色。 請幫我! 謝謝。

var textHeaderTf;
                try{
                 textHeaderTf = headerTf.paragraphs.item(0);
                 if(textHeaderTf!=undefined && textHeaderTf!=null)
                 {
                    headerTf.parentStory.insertionPoints.item(-1).contents = 'myNewText';
                   // textHeaderTf.fillColor  = myColorA; 
                    textHeaderTf.strokeColor  = myColorB; 

                 }
                }catch(e){log.write('setHeader font-color error7'+e);}  

                try{
                 textHeaderTfWord = textHeaderTf.words[0];//headerTf.paragraphs.item(1);
                 if(textHeaderTfWord!=undefined && textHeaderTfWord!=null)
                 {
                    textHeaderTfWord.fillColor  = myColorA;
                    textHeaderTfWord.strokeColor  = myColorA; 

                 }
                }catch(e){log.write('setHeader font-color error8'+e);}  

這取決於您要按什么順序工作。

第一次嘗試是在開始處插入文本,然后為整個段落設置顏色(您的textHeaderTf )。
在第二次嘗試中,僅設置第一個單詞的顏色。

如果要在開始時添加文本並立即將其上色,請使用以下命令:

textHeaderTf.insertionPoints.item(0).fillColor = myColorA;
textHeaderTf.insertionPoints.item(0).contents = "Colored text!";

這是因為InsertionPoint行為類似於文本光標 :就像在界面本身中一樣,您可以“設置”屬性(例如顏色,字體或文本大小),然后立即在相同位置“鍵入”某些文本。

您不僅可以在段落開頭,還可以在任何InsertionPoint上執行此操作。 例如,在第三個單詞之前添加文本的工作方式相同。

textHeaderTf.words.item(2).insertionPoints.item(0).fillColor = myColorA;
textHeaderTf.words.item(2).insertionPoints.item(0).contents = "more colored text here ";

如果要給多個現有單詞上色,則可以通過循環將它們除掉:

for (i=0; i<5; i++)
    textHeaderTf.words.item(i).fillColor = myColorA;

請記住,盡管如此,您仍在處理單個單詞 如果您用

for (i=0; i<5; i++)
    textHeaderTf.words.item(i).underline = true;

您會看到,是的,這些單詞都帶有下划線-但也許您也想在它們之間的空格下划線。

為此,您可以通過定位第一個詞和最后一個詞之間的字符范圍來一次性定位整個文本塊:

textHeaderTf.characters.itemByRange(textHeaderTf.words.item(1),
    textHeaderTf.words.item(4)).underline = true;

InDesign足夠聰明,可以在索引wordscharacters之間進行翻譯; 您還將看到它們之間的空格也帶有下划線,因為它們是您所指代字符范圍的一部分。

暫無
暫無

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

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