measurementEditboxの初期値をドキュメントの単位に合わせて変更

2023年01月20日

スクリプトの作成メモです。

InDesignのパス上文字でタイトル付き囲み枠」を作っている中で、線幅の指定measurementEditboxで行っています。これを実装するにあたり、初期値をドキュメントの使用単位に合わせて変更できればいいよねということで、色々やった結果、次のようなことになりました。ドキュメントの線の単位がミリメートルの場合は「0.1mm」、ポイントの場合は「0.1pt」と表示されます。これがベストかどうか分からないですがご参考に。

var doc = app.documents[0];
var uni = doc.viewPreferences.strokeMeasurementUnits;
var dlg = app.dialogs.add();
var dlc = dlg.dialogColumns.add();
var dlr = dlc.dialogRows.add();
dlr.measurementEditboxes.add({
    editContents: "0.1",
    editUnits: uni
});
dlg.show();

今まで作ったスクリプトもこれに合わせて作り直したいなあと思ったりしたんですが、今はできないです。余程余裕があればやるかもしれません。


1月25日 追記

当初は次のようにしていましたが、あるふぁ(仮)さんより指摘を受けて修正しました。7行目UnitValueは歯、級、アメリカ式ポイントなどに対応していませんので、strokeMeasurementUnitsのところを他の単位に替えた場合にエラーになる可能性があります。

var doc = app.documents[0];
var uni = doc.viewPreferences.strokeMeasurementUnits;
var dlg = app.dialogs.add();
var dlc = dlg.dialogColumns.add();
var dlr = dlc.dialogRows.add();
dlr.measurementEditboxes.add({
    editValue: UnitValue(0.1, uni).as("pt"),
    editUnits: uni
});
dlg.show();