簡體   English   中英

如何在文檔中選擇所有文本框架並在Adobe InDesign中檢索文本

[英]How to select all textframes in document, and retrieve the text in adobe indesign

我的文檔中有多個文本框架,並且創建了一個腳本來替換文本框架中的特定單詞,例如:

var linebreak = "<br/>";

     if (string.indexOf(linebreak) >= 0) {
        var string2 = string.replaceAll(linebreak, "\r");
    } else {
        alert("false");
    }

myFrame = app.activeDocument.textFrames.itemByName("test");
myFrame.contents = string2;

但是不必選擇文本框的名稱,我想對文檔中所有活動的文本框進行命名

未經測試,但遵循以下原則的方法應該起作用:

var linebreak = "<br/>";

var myFrames = app.activeDocument.textFrames;

for (var i=0; i<myFrames.length; i++) {
   var myFrame = myFrames[i];
   var string = myFrame.contents;

   if (string.indexOf(linebreak) >= 0) {
      myFrame.contents = string.replaceAll(linebreak, "\r");
   } else {
      alert("false");
   }
}

同樣未經測試的另一種方法也應該有效:

app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

app.findGrepPreferences.findWhat = "<br/>";
app.changeGrepPreferences.changeTo = "\\r"
activeDocument.changeGrep();

OP的回答

解決了:

var linebreak = "<br />";
var myFrames = app.activeDocument.textFrames;

for (var i = 0; i<myFrames.length; i++) {
   var myFrame = myFrames[i];
   var string = myFrame.contents;

    if (string.indexOf(linebreak) >= 0) {
            var string2 = string.replace(new RegExp(linebreak, 'g'), '\r');
    } else {
            alert("ERROR: Cant find linebreak");
    }
   myFrame.contents = string2;
}

暫無
暫無

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

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