iT邦幫忙

0

Indesign find change script

如果我有100個文字框,每個的標題都是G.N./d/d/d/r
例如G.N.123,但每個標題的數字都不一樣。
我用app.activeDocument.changeGrep();執行文字轉換時,會將那100個標題的數字都轉掉,請問有語法是逐個逐個轉換的嗎?

看更多先前的討論...收起先前的討論...
dragonH iT邦大師 1 級 ‧ 2019-11-07 22:02:49 檢舉
Indesign 能寫一般的 js 嗎
hypons iT邦新手 5 級 ‧ 2019-11-07 22:21:04 檢舉
可以,但他有指定的語法。例如建立文字框是 var abc = document.pages.item().textFrames.add();
ccutmis iT邦高手 9 級 ‧ 2019-11-07 22:34:09 檢舉
@dragonH:
Adobe家的產品(大部份都)有提供API讓有編程能力的設計師寫一些小腳本,也有線上HELP例如:
InDesign ExtendScript API
https://www.indesignjs.de/extendscriptAPI/indesign-latest/#ChangeGrepPreference.html

上網找了一下好像有能改來用的...
https://community.adobe.com/t5/InDesign/Find-Web-address-and-apply-the-character-style/td-p/10548054

例如:

var regExpStr="G\.N\.(\d{1,3})";
app.findGrepPreference.findWhat=regExpStr;
app.changeGrepPreferences.changeTo = "$1";
app.activeDocument.changeGrep();

/* 上面這幾行的意思應該會把 G.N.接1~3位數字的字串(例如 'G.N.123' 換成 '123' */
/* 我在很久以前有寫過給Photoshop用的 沒用過InDesign僅供參考 祝樓主好運 */
hypons iT邦新手 5 級 ‧ 2019-11-07 23:01:41 檢舉
謝謝你。明天上班就試試看。will let you know if it works. ??
dragonH iT邦大師 1 級 ‧ 2019-11-07 23:07:38 檢舉
@ccutmis大

喔喔 了解了

剛也在看這 doc

不過發現我沒 InDesign 能測

好像也沒有類似的 fiddle 可以用

就放棄了XD
ccutmis iT邦高手 9 級 ‧ 2019-11-07 23:53:43 檢舉
@dragonH 大:
我也沒有 InDesign 能測 o.o" Adobe現在搶$的手段跟M$有得拼
@hypons:
希望有幫助,不用特別回覆結果沒關係,我沒軟體能測只是提供一點參考而已
froce iT邦大師 4 級 ‧ 2019-11-08 08:16:13 檢舉
搶錢都輸autodesk。
hypons iT邦新手 5 級 ‧ 2019-11-08 21:14:41 檢舉
那個好像太不行。後在adobe的討論區有網友給我一段script,貼出來分享一下。

function pepsi (num){
var str = String(num);
while(str.length < 3){
str = "0" + str;
}
return str;
}

app.findGrepPreferences.findWhat = "G\\.N\\.\\d{3}$";

var myFind =app.activeDocument.findGrep();

var count = 0;

app.findGrepPreferences.findWhat = "\\d{3}";

for(var i = 0; i < myFind.length; i++) {
app.changeGrepPreferences.changeTo = pepsi(++count);
myFind[i].changeGrep();
}
hypons iT邦新手 5 級 ‧ 2019-11-08 21:15:16 檢舉
今天用這個就成功了。

尚未有邦友回答

立即登入回答