・ドキュメントのテキストフレームの文字取得方法
textFrame.contentsの中身を確認したり、変更したりすることで簡単にできる!
・ログの出力の仕方(AdobeのExtendScript Toolkit CCでの開発)
$.writeln("")
・書体の変更の方法
下記のコードの通り(詳しくは完成コードを参照)
JavaScript
1var ins = selected[0].insertionPoints.itemByRange(fontData[i][0], fontData[i][1]);
2 ins.appliedFont="UD デジタル 教科書体 N-B";
3 ins.appliedCharacterStyle.name="Bold";
・インデックスの取得方法
インデックスで検索を直接得るもの自体の機能はないので、textFrame.contentsでテキスト情報をStringとして取得した後に、自分で処理してその文字列上のインデックスで処理を行う
最終的に完成したコードは以下のようになります。
何か同じような問題抱えていて以下のコードについて説明が欲しいという方は、コメントしていただければお答えいたします(気づいていればですが。。)
ご回答してくださった方、ありがとうございました!
JavaScript
1var textFrames_All = app.activeDocument.textFrames;
2var myPH=0;
3main();
4function main(){
5 var selected=app.activeDocument.selection;
6 alert (selected[0].contents);
7 var dlg = app.dialogs.add({name: "Text Customizer", canCancel: true});
8 with(dlg){
9 with(dialogColumns.add()){
10 with(borderPanels.add()){
11 myPH=textEditboxes.add({editContents: "write input here", minWidth:50});
12 }
13 }
14 }
15 if(dlg.show()==true){
16 var input=myPH.editContents;
17 var positionS=-1, positionE=-1;
18 var fontData=new Array();
19 while((positionS=input.indexOf("**<"))!=-1){
20 input=input.substring(0,positionS)+input.substring(positionS+3);
21 positionE=input.indexOf(">**");
22 input=input.substring(0,positionE)+input.substring(positionE+3);
23 var add=[positionS, positionE];
24 fontData.push(add);
25 }
26 selected[0].contents=input;
27
28 for(var i=0;i<fontData.length;i++){
29 var ins = selected[0].insertionPoints.itemByRange(fontData[i][0], fontData[i][1]);
30 ins.appliedFont="UD デジタル 教科書体 N-B";
31 ins.appliedCharacterStyle.name="Bold";
32 }
33 }
34}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/14 14:27