InDesign의 텍스트 프레임에 개별 기능 추가
12359 단어 indesign
①width
매개 변수가 호출되지 않았을 때 텍스트 상자의 폭을 되돌려줍니다.매개 변수를 지정하는 경우 텍스트 상자의 너비를 수정합니다.
②height
매개 변수가 호출되지 않았을 때 텍스트 상자의 높이를 되돌려줍니다.매개 변수를 지정하는 경우 텍스트 상자의 높이를 수정합니다.
③toRightSide
파라미터가 지정한 대상의 오른쪽으로 자신 (텍스트 상자) 이동
프로타입을 사용하면 InDesign에 있는 학급이라도 독자적인 기능을 추가할 수 있어 많은 진전이 있을 수 있다.
이번 샘플 스크립트를 실행한 후
↑ 이것은
↓ 이렇게 됩니다. ※ 실행시 텍스트 상자 선택
아래 샘플 코드의 주의사항
• 오류 처리 평소와 같이 생략
・toRightSide의 처리는 오른쪽으로만 이동하고 X방향의 좌표만 변경되기 때문에 세로 위치는 변하지 않는다.샘플 이미지는 우연히 세로로 되어 있을 뿐이다
//ソート用の関数X座標昇順に並べる
function mySort(a,b) {
return(a.visibleBounds[1]-b.visibleBounds[1]);
}
// mmに単位を変更する
function tomm(document) {
var back_x = document.viewPreferences.horizontalMeasurementUnits;
var back_y = document.viewPreferences.verticalMeasurementUnits;
document.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.millimeters;
document.viewPreferences.verticalMeasurementUnits = MeasurementUnits.millimeters;
return [ back_x, back_y ];
}
// mmから単位を元に戻す
function tounit(document, unit) {
document.viewPreferences.horizontalMeasurementUnits = unit[0];
document.viewPreferences.verticalMeasurementUnits = unit[1];
}
//=========================================================
//prototype を使用してテキストフレームへ機能を追加してみる
//=========================================================
//対象のオブジェクトの右側に移動する
TextFrame.prototype.toRightSide = function(targetObj,distance) {
var leftPostion = targetObj.visibleBounds[3] + distance;
this.move([leftPostion,this.visibleBounds[0]]);
}
//自身の幅を返す。引数がある場合は幅を変更する
TextFrame.prototype.width = function(value) {
if (value == null) {
return this.visibleBounds[3] - this.visibleBounds[1];
} else {
this.visibleBounds = [
this.visibleBounds[0] ,
this.visibleBounds[1] ,
this.visibleBounds[2] ,
this.visibleBounds[1] + value
];
}
}
//自身の高さを返す。引数がある場合は高さを変更する
TextFrame.prototype.height = function(value) {
if (value == null) {
return this.visibleBounds[2] - this.visibleBounds[0];
} else {
this.visibleBounds = [
this.visibleBounds[0] ,
this.visibleBounds[1] ,
this.visibleBounds[0] + value ,
this.visibleBounds[3]
];
}
}
//処理はここからよー
myDoc = app.activeDocument;
var myBackUnit = tomm(myDoc);
var myObj = new Array();
myObj = myDoc.selection;
myObj.sort(mySort);
var nowObj = null;
var i = 0;
for (i=1;i<myObj.length;i++) {
myObj[i].height(myObj[0].height());
myObj[i].width(myObj[0].width());
myObj[i].toRightSide(myObj[i-1],3);
}
tounit(myDoc,myBackUnit);
Reference
이 문제에 관하여(InDesign의 텍스트 프레임에 개별 기능 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/happyscript/items/cf4bc68509da3c80c153텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)