[Photoshop]レイヤーを選択するだけでテキストレイヤーの内容をクリップボードにコピーできるスクリプト
Webデザインツールとして、SketchやXDなどさまざまなツールが普及してきてはいるものの、まだまだPhotoshopでWebデザインをされている方は多いかと思います。
Photoshopからコードへテキストデータをコピペする際の手順を、少しだけ簡略化できるスクリプトを作成したので、ご紹介します。
Photoshopでデザインをしている際、テキストの使いまわしに、テキストを選択してコピペするということをするかと思いますが、フォントのスタイル情報も含めてペーストされてしまい、都合が悪い時もあるかと思います。
また、コーディングをする際には、テキストボックスを選択→Command+Aで全選択してコピー→コードにペーストと、若干煩わしい手順を踏まなければなりません。
そこで、スクリプトを使用して、レイヤーパネル上で選択しているテキストレイヤーのテキスト情報を、クリップボードにコピーできるようにしたいと思います。
コード
var activelay = app.activeDocument.activeLayer;
function copyTextToClipboard(text){
const keyTextData = app.charIDToTypeID('TxtD');
const keyTextToClipboardStr = app.stringIDToTypeID( "textToClipboard" );
var textStrDesc = new ActionDescriptor();
textStrDesc.putString( keyTextData, text );
executeAction( keyTextToClipboardStr, textStrDesc, DialogModes.NO );
}
if( activelay.kind == LayerKind.TEXT ) {
var selectContents = activelay.textItem.contents;
copyTextToClipboard(selectContents);
} else {
alert('選択したレイヤーはテキストレイヤーではないようです');
}
使い方
- 上記ファイルをPhotoshopフォルダ内、Presets/Scripts/に格納
- テキストレイヤーを選択し、Photoshopツールバーのファイル>スクリプトより「activeTextCopy(ファイル名)」を選択
これでクリップボードにテキストがコピーされます。
あとは、任意でショートカットキー(僕の場合はCommand+Shift+Option+C)を割り当てれば完了です。
※ 複数のレイヤーを選択した場合には対応をしておりませんのでご注意を…。
※ CC 2017・CC 2019(Mac)にて動作確認済み
Photoshopでテキストをコピペするのに煩わしさを感じているようでしたら、ぜひお試しくださいませ。