タグ【Photoshop】の投稿一覧

Photoshopで連番ファイルをまとめて印刷する

たまにはBLOGらしく実用記事。

一昨年の夏あたりから原稿は完全にデジタルで描いているんですが、最近コミスタは使わず、PhotoshopとSAIで作ってます。しかしながら、PhotoshopとSAIでは、複数のファイルを一つの作品としてまとめて管理するという概念が無いので、複数の連番ファイルをまとめて印刷したい時非常にメンドイです。(そもそもSAIだと印刷機能自体が無いのでさらに困るんですが…。)

こういう時、Photoshopのドロップレットあたりでもなんとかなりますが、Photoshopはスクリプトとして、JavaScriptやVBScriptを使えます。これを使えば相当な事が出来るので、知っていると色々便利です。(スクリプトプラグインを導入すれば7.0でも使えるハズ)

で、JavaScriptで組んだ、「連番ファイルをまとめて印刷するPhotoshopスクリプト」がこちら

適当なフォルダにスクリプトファイルおいて、「ファイル>スクリプト>参照」で実行すると、こんなダイアログが出ます。

dialog.gif

選択したフォルダの連番ファイル(file001.psdとかいう感じのアレ。ファイル名は日本語OKだけど、連番部分は半角数字のみ)の内、指定した拡張子かつ連番の数字が範囲内のファイルだけ印刷します。
範囲指定にはハイフンとカンマが使える、Indesign仕様です。例えば、「1-8,11,24-」なら1ページから8ページまでと、11ページ、そして24ページ以降の全ページを印刷します。
オプションとして、「ファイル名を左上隅に印刷」にチェック入れてると、ファイル名を隅っこに印刷してくれます。ノンブル代わりになるので、ちょっと便利。

コミスタを使わずにデジタルで漫画描いてる人ぐらいにしか需要が無いスクリプトですが!
ご使用の場合は自己責任でよろ。

2007/3/30追記
PhotoshopCS2のJavascriptのparseIntと正規表現エンジンにバグ発見…。(’A`)
バグ回避の為、スクリプトちょっと修正。
以下、バグ実証コード。

var text = “007″;
if(text.match(/([0-9]+)/)){
alert(parseInt(RegExp.$1)); // 7と表示される
}

text = “008″;
if(text.match(/([0-9]+)/)){
alert(parseInt(RegExp.$1)); // なぜか0と表示される(’A`)
}

それ以降のコードで、正規表現処理が一律でおかしくなるっぽ…。スタックポインタが狂うのか?

0スタートの文字列は、parseIntのデフォで8進扱いになると教えていただきました。ありがとうございました!

ちなみに、以下が、ソース。
続きを読む »