Photoshopでノンブル自動化JavaScript
Phtoshopで同人誌の原稿にノンブルを打つ
昔作ったPhotoshop上で同人誌用の原稿に自動でノンブルを打つScriptを、サイトで公開してたんですが、サイト閉鎖予定に伴い、こっちに転載しておきます。
今はクリスタ全盛なので、需要もないとは思いますが、アンソロとかだと、まだフォトショで作業するのかな?
Script本体
//copyright 初野あけみ
//http://www.comic-gallery.net/
app.displayDialogs = DialogModes.NO;
// 現在の単位を保存して長さmm文字ポイントの単位に変更
var strtRulerUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.MM;
var strtTypeUnits = preferences.typeUnits;
preferences.typeUnits = TypeUnits.POINTS;
//ノンブル位置指定。現在はA5サイズ塗りたし5mmの原稿に対しての数字
// 右ページのノンブル位置(文字の右下位置の用紙左上からの距離をmm単位のx,y座標で指定。右寄せ)
var rightPagePosition = Array(139.0, 203.0);
var rightPageJustification = Justification.RIGHT;
// 左ページのノンブル位置(文字の左下位置の用紙左上からの距離をmm単位のx,y座標で指定。左寄せ)
var leftPagePosition = Array(19.0, 203.0);
var leftPageJustification = Justification.LEFT;
// ノンブル用のフォント(フォント名はポストスクリプト名で指定。現在はヒラギノ丸ゴ)
var fontName = "HiraMaruProN-W4";
var fontSize = 9;
var fontColor = new SolidColor;
fontColor.rgb.red = 0;
fontColor.rgb.green = 0;
fontColor.rgb.blue = 0;
//アクティブなファイルのファイル名を取得
//psdの拡張子を削除。
dName = activeDocument.name.replace("\.psd", "");
//ファイル名の頭についた「0」を削除
pageName = dName.replace(/^0+/, "");
//テキストレイヤーを追加
var myLayer = activeDocument.artLayers.add()
myLayer.kind = LayerKind.TEXT;
myLayer.textItem.font = fontName;
myLayer.textItem.size = fontSize;
myLayer.textItem.color = fontColor;
//左右ページの判定とノンブル挿入
//ファイルの番号を2で割り、余りが1なら左ページの位置にノンブル
//それ以外(=余り0)なら右ページにノンブル
if((pageName) % 2==1){
myLayer.textItem.position = leftPagePosition;
myLayer.textItem.justification = leftPageJustification;
}else{
myLayer.textItem.position = rightPagePosition;
myLayer.textItem.justification = rightPageJustification;
}
myLayer.textItem.contents = pageName;
// 単位系を元に戻す
preferences.rulerUnits = strtRulerUnits;
preferences.typeUnits = strtTypeUnits;
A5同人誌に塗りたし5mmで作っています。
ファイル名は「1.psd」とか「027.psd」とか
ページ番号がファイル名になってるpsdファイルに限ります。
かな・漢字混ざってるとか、全角数字とかだと動かないと思います。
頁番号の手前に半角の0が付いてる分にはいくつ付いてても大丈夫だと思うんだけど。
adobeのエディターはExtendScript Toolkitがあったはずだけど、サービス終了になったはずだから、適当なテキストエディタで項目を修正してください。
使用方法
jsxファイルをパソコンの適当なとこに保存。
(Macだと
/Applications/Adobe Photoshop 2023/Presets/Scripts
あたりにコピペするのが無難と思います。)
テスト用の原稿を開く
新規アクションで記録開始。
スクリプトを実行(ファイル→スクリプト→参照→jsxファイルを選択)
記録終了。
あとは
ファイル→自動処理→バッチ
で、フォルダを指定して、記録したアクションを実行すれば、
その中の原稿全部にノンブル打ってくれるはず。
スクリプトの修正例
原稿サイズがB5だったり、フォントを変えたかったり、色々修正が必要な場合があると思うので、修正例を載せておきます。
印刷所が配布しているB5テンプレに合わせた修正例です。
修正するのは番号のついたこの5カ所。
①〜③はノンブル位置の指定
④はフォントの種類
⑤はフォントサイズ
とりあえず一枚原稿を開いて、好みのノンブルを左右とも入れてみる。
で、その位置を図る。(定規を表示させて読み取ればOK)
①はファイルの上からノンブルの下までの距離(mm)
②は左ページのときのファイルの左端からノンブルの左までの距離(mm)
③は右ページのときのファイルの左端からノンブルの右までの距離(mm)
これらの距離は原稿用紙の余白部分に関係なく、
解像度にも関係なく、
とにかくpsdデータの
上から/左から
計って下さい。
④フォントはパソコンで表示されるフォントじゃなくて、ポストスクリプト名で。
ネットで検索すれば見つかると思う。
⑤フォントのサイズ(ポイント)
修正してみた。
フォルダに原稿用意してみた。
そのうちの一枚をPhotoshopで開く。
新規アクションを作成。
記録開始。
ファイル→スクリプト→参照→作ったスクリプトファイルを選択→開く
スクリプトが実行されるので、
作業が終わったら、記録終了。
ノンブルが目的の位置に挿入されているのを確認したら、
ファイルは保存せずに閉じる。
つぎに作ったアクションを選択した状態で、
ファイル→自動処理→バッチ
アクションが記録したものになっていること、
ソースをフォルダにして
その下の選択で、原稿のあるフォルダを指定。
実行後は保存して閉じるにする。
カラープロファイル警告を非表示にチェック入れとくと
アラートが出ないので、途中で止まったりせずに済むと思う。
バッチ終了後。
ちょっと見にくいけど、
psdファイル三つならべてます。
ファイル名とちゃんと同じページになってます。
無事に動いた。
めでたし、めでたし。
参考にしたサイトさま
この記事が気に入ったらサポートをしてみませんか?