:note

テキスト変数の覚書き

outdesign.jsさんの InDesign + JavaScript = ?: スピードと量 をよんでいて、

自分もテキスト変数については「??」なので、

Adobe Forums: Insert Text Variable

のJeremy bowmangraphicsさんのコメントを参考にし、もうちょっと調べてみました。

一つだけわからなかったことが、作成日/出力日/修正日などの日付タイプのテキスト変数での『和暦』のプロパティ。

チェックのオンオフで日付形式の String が変わるわけでもなく、Boolean なプロパティがあるようでもなく、なぞだ。

テキスト変数の覚書き /images/2010/09/670-wareky.png
//テキスト変数の使い方
var doc=app.documents[0];
var tvTf=doc.textFrames.add();
tvTf.geometricBounds=[10,10,20,190];

//新たに作る場合
//テキスト変数:ファイル名
var tv_fileName=doc.textVariables.add({name:"filename"});
tv_fileName.variableType=VariableTypes.FILE_NAME_TYPE;
with(tv_fileName.variableOptions){
  includeExtension=true;//拡張子を含む
  includePath=true;//パスを含む
  textBefore="先行テキスト";
  textAfter="後続テキスト";
}

//使い回すのであればFileNameVariablePreferenceとして定義する。
//テキスト変数;ランニングヘッド・柱(段落スタイル)
var tv_matchParagraphStyle=doc.textVariables.add({name:"parast"});
tv_matchParagraphStyle.variableType=VariableTypes.MATCH_PARAGRAPH_STYLE_TYPE;
with(tv_matchParagraphStyle.variableOptions){
  appliedParagraphStyle=doc.paragraphStyles.itemByName("para");//スタイル
  searchStrategy=SearchStrategies.FIRST_ON_PAGE;//使用(ページの先頭/最後)
  textBefore="先行テキスト";
  textAfter="後続テキスト";
  changeCase=ChangeCaseOptions.LOWERCASE;//大文字小文字の変更
  deleteEndPunctuation=false;//区切り約物を削除
}

//使い回すのであればMatchParagraphStylePreferenceとして定義する。
//テキスト変数;ランニングヘッド・柱(文字スタイル)
var tv_matchCharacterStyle=doc.textVariables.add({name:"chast"});
tv_matchCharacterStyle.variableType=VariableTypes.MATCH_CHARACTER_STYLE_TYPE;
with(tv_matchCharacterStyle.variableOptions){
  appliedCharacterStyle=doc.characterStyles.itemByName("cha");//スタイル
  searchStrategy=SearchStrategies.LAST_ON_PAGE;//使用(ページの先頭/最後)
  textBefore="先行テキスト";
  textAfter="後続テキスト";
  changeCase=ChangeCaseOptions.UPPERCASE;//大文字小文字の変更
  deleteEndPunctuation=true;//区切り約物を削除
}

//使い回すのであればMatchCharacterStylePreferenceとして定義する。
//テキスト変数;作成日/出力日/修正日
var tv_creationDate=doc.textVariables.add({name:"date"});
tv_creationDate.variableType=VariableTypes.CREATION_DATE_TYPE;
//出力日:VariableTypes.OUTPUT_DATE_TYPE
//修正日:VariableTypes.MODIFICATION_DATE_TYPE
with(tv_creationDate.variableOptions){
  textBefore="先行テキスト";
  format="hhmmss yyyyMMddEEEE";//日付形式、ダイアログのプルダウン内を参照
  textAfter="後続テキスト";
}

//使い回すのであればDateVariablePreferenceとして定義する。
//テキスト変数;最終ページ番号
var tv_lastPageNumber=doc.textVariables.add({name:"lastpage"});
tv_lastPageNumber.variableType=VariableTypes.LAST_PAGE_NUMBER_TYPE;
with(tv_lastPageNumber.variableOptions){
  textBefore="先行テキスト";
  format=VariableNumberingStyles.CURRENT;//[現在の自動番号スタイル]
  textAfter="後続テキスト";
  scope=VariableScopes.SECTION_SCOPE;//セクション
  //ドキュメント:VariableScopes.DOCUMENT_SCOPE
}

//使い回すのであればPageNumberVariablePreferenceとして定義する。
//テキスト変数;章番号
var tv_chapterNumber=doc.textVariables.add({name:"cap"});
tv_chapterNumber.variableType=VariableTypes.CHAPTER_NUMBER_TYPE;
with(tv_chapterNumber.variableOptions){
  textBefore="先行テキスト";
  format=VariableNumberingStyles.KANJI;//番号スタイル
  textAfter="後続テキスト";
}

//使い回すのであればChapterNumberVariablePreferenceとして定義する。
//テキスト変数;カスタム
var tv_customText=doc.textVariables.add({name:"custom"});
tv_customText.variableType=VariableTypes.CUSTOM_TEXT_TYPE;
tv_customText.variableOptions.contents="カスタムテキスト";

//使い回すのであればCustomTextVariablePreferenceとして定義する。
//変数の挿入のしかた
tvTf.texts[0].insertionPoints[-1].textVariableInstances.add ({associatedTextVariable: tv_fileName});
//tvTf.texts[0].insertionPoints[-1].textVariableInstances.add ({associatedTextVariable: tv_matchParagraphStyle});
//tvTf.texts[0].insertionPoints[-1].textVariableInstances.add ({associatedTextVariable: tv_matchCharacterStyle});
//tvTf.texts[0].insertionPoints[-1].textVariableInstances.add ({associatedTextVariable: tv_creationDate});
//tvTf.texts[0].insertionPoints[-1].textVariableInstances.add ({associatedTextVariable: tv_lastPageNumber});
//tvTf.texts[0].insertionPoints[-1].textVariableInstances.add ({associatedTextVariable: tv_chapterNumber});
//tvTf.texts[0].insertionPoints[-1].textVariableInstances.add ({associatedTextVariable: tv_customText});
 
comments powered by Disqus
back to top