ただの備忘記録

忘れないように記録を残します。忘れるから記録に残してます。そして、その記録が役立つといいかな。

【Photoshop JSX Script】アクティブドキュメントの順次印刷

2019年03月28日 | JavaScript

Photoshopで開いているドキュメントを順次印刷するためのスクリプトです。

スクリプトで印刷の設定ができないため、プリンタや用紙の設定などは先に済ませておいてください。
基本的にはアクティブになっているデータを「1部プリント」して、そのデータを閉じるだけのスクリプトです。
印刷の前にかならず確認のダイアログが表示されて一次停止します。
複数のファイルを開いている場合、次々にアクティブになったデータの印刷をクリック一つで繰り返すことができます。(各データに用紙設定がされていることが前提です)
確認のダイアログでは、データ名を表示し、印刷をするかどうか選択できます。「いいえ」を選ぶとスクリプトの処理を取り止めます。

【連続印刷ができないことのメモ】
当初は開いているファイルまたは指定したフォルダのデータを全て自動的に印刷するスクリプトを作ろうと考えました。
しかし、スクリプトの機能で対処できない部分がありました。
・スクリプトで印刷の設定ができない(基本的に1ページずつ確認しながら印刷しないとPhotoshopが正しく用紙設定できないことがあった)
・スクリプトにタイマー機能がない(タイマー機能の関数が使用できないため、印刷指示後に発生するタイムラグの調整ができなかった)
・緊急時に印刷の中止ができない(キー入力イベントを検知できなかったため)

~~~~~~~~~~

//アクティブドキュメントを順次印刷
#target photoshop

//ドキュメント数
var n = documents.length;
//真偽判定初期値
bool = false;

for (i=0; i < n; i++) {
    //印刷
    print_one() ;
    //中止
    if (! bool) {break;}
}

function print_one() {
    //アクティブドキュメントを取得
    var doc = activeDocument;
    //確認ダイアログ
    bool = confirm("印刷を開始します。\n" + doc.name);
    if (bool) {
        doc.printOneCopy(); //1枚印刷
        doc.close(SaveOptions.DONOTSAVECHANGES); //ファイルを閉じる
    }
}



最新の画像もっと見る

コメントを投稿