Amazonで商品を見るセール会場へ

Photoshopスクリプト(jsx)│位置を変えずに文字を中央揃えにする方法

Illustratorには標準で文字を中央揃えにしても位置が変わらない機能がありますが、Photoshopは標準機能では対応していません。

そこで、スクリプトを活用してテキストの位置を保持したまま中央揃えに変更する方法を紹介します。

スクリプトを活用してPhotoshopでテキストの位置を保持したまま中央揃えに変更する動作イメージ。

左揃え・右揃えにも対応可能です。

目次

スクリプトの導入方法

STEP.1 スクリプトを作成

  1. 以下のコードをコピーしてテキストエディタなどに貼り付けます。
  2. AlignTextCenter.jsx という名前で保存します。

Photoshopのほかの操作は、まとめからご覧いただけます。

位置を変えずに中央揃えにするスクリプト

AlignTextCenter.jsx

app.bringToFront();  
app.activeDocument.suspendHistory("位置を変えずに中央揃え", "main()");
app.preferences.rulerUnits = Units.PIXELS;
function main() {
    var just = Justification.CENTER;
    //var just = Justification.LEFT
    //var just = Justification.RIGHT
	if (app.documents.length) {
		var docRef = app.activeDocument;
		if (docRef.layers.length) {
			var selected = getSelectedLayersIdx();
			for (var i = 0; i < selected.length; i++) {
                selectByIndex(selected[i]);
                layObj = activeDocument.activeLayer.bounds;
                x1 = parseInt(layObj[0]); $.writeln(x1);
                y1 = parseInt(layObj[1]); $.writeln(y1);
                var sel = activeDocument.activeLayer;  
                sel.textItem.justification = just ;
                MoveLayerTo(sel,x1,y1);
			}
		}
	}
}

function MoveLayerTo(fLayer,fX,fY) {
  var Position = fLayer.bounds;
  Position[0] = fX - Position[0];
  Position[1] = fY - Position[1];
  fLayer.translate(-Position[0],-Position[1]);
}

function getSelectedLayersIdx() {
	var selectedLayers = new Array;
	var ref = new ActionReference();
	ref.putEnumerated(charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
	var desc = executeActionGet(ref);

	if (desc.hasKey(stringIDToTypeID('targetLayers'))) {
		desc = desc.getList(stringIDToTypeID('targetLayers'));
		var c = desc.count
		var selectedLayers = new Array();
		for (var i = 0; i < c; i++) {
			try {
				activeDocument.backgroundLayer;
				selectedLayers.push(desc.getReference(i).getIndex());
			} catch (e) {
				selectedLayers.push(desc.getReference(i).getIndex() + 1);
			}
		}
	} else {
		var ref = new ActionReference();
		ref.putProperty(charIDToTypeID("Prpr"), charIDToTypeID("ItmI"));
		ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
		try {
			activeDocument.backgroundLayer;
			selectedLayers.push(executeActionGet(ref).getInteger(charIDToTypeID("ItmI")) - 1);
		} catch (e) {
			selectedLayers.push(executeActionGet(ref).getInteger(charIDToTypeID("ItmI")));
		}

		var vis = app.activeDocument.activeLayer.visible;
		if (vis == true) app.activeDocument.activeLayer.visible = false;
		var desc9 = new ActionDescriptor();
		var list9 = new ActionList();
		var ref9 = new ActionReference();
		ref9.putEnumerated(charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));
		list9.putReference(ref9);
		desc9.putList(charIDToTypeID('null'), list9);
		executeAction(charIDToTypeID('Shw '), desc9, DialogModes.NO);
		if (app.activeDocument.activeLayer.visible == false) selectedLayers.shift();
		app.activeDocument.activeLayer.visible = vis;
	}
	return selectedLayers;
}

function selectByIndex(idx) {
	if (idx == 0) return;
	if (idx.length != undefined) {
		idx = idx[0];
	}
	var desc = new ActionDescriptor();
	var ref = new ActionReference();
	ref.putIndex(charIDToTypeID('Lyr '), idx);
	desc.putReference(charIDToTypeID('null'), ref);
	executeAction(charIDToTypeID('slct'), desc, DialogModes.NO);
	return app.activeDocument.activeLayer;
}

STEP.2 スクリプトファイルを所定フォルダに配置

  1. AlignTextCenter.jsx以下のフォルダに保存
C:\Program Files\Adobe\Adobe Photoshop CC\Presets\Scripts\
  1. Photoshopを再起動します。

STEP.3 スクリプトを実行

  1. 位置を変更せずに中央揃えにしたいテキストレイヤーを選択します。
  2. [ファイル][スクリプト][AlignTextCenter] を実行します。
  3. 文字が中央揃えになり、元の表示位置を維持したまま変更されます。

オプション(左揃え・右揃え)

初期状態では中央揃えになっていますが、スクリプト内の just を変更することで、左揃え・右揃えにも変更可能です。

//var just = Justification.LEFT;
//var just = Justification.RIGHT;

コメントアウトを外して適用したい揃えを選択してください。

文字とフォントの記事は、ほかにもあります。

まとめ

  • デフォルトのPhotoshopでは、中央揃えにすると位置がずれる
  • スクリプトを使うと、元の位置を保持したまま中央揃えが可能
  • 複数のテキストレイヤーにも対応
  • 左揃え・右揃えにも変更可能

このスクリプトを活用して、Photoshopでのテキスト配置作業を効率化しましょう。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Photoshopのおすすめ書籍

Photoshop用PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次