【Photoshop】中綴じコピー本用 面付けpdf作成スクリプト

#概要
Photoshopで指定したフォルダのpsdデータをすべて読み込み、中綴じコピー本用の面付けされたデータをpdfで出力します

#スクリプトのDL
[スクリプトはここからDL](https://box.yahoo.co.jp/guest/viewer?sid=box-l-dncmpjr534ws6tbacm3dnnx32e-1001&uniqid=8bf2cfad-3730-410f-a8a6-1cf8e98a9801&viewtype=detail)

#更新履歴
2018/05/18 ver_1.2 10pを超えた際の書き出しにあった不具合に対応
　　　　　　　　　　　コメントありがとうございます。
2016/05/03 ver_1.1 リサイズ部に不具合があったため修正
2016/04/25 ver_1.0 公開

#使い方
##動作確認済環境
* PhotoshopCC 2015
* Windows7 64bit

※Photoshop CS5にはPDFスライドショーを作る機能がないため動作しません
※Photoshop　CS2/CS6では動作しません

##必要なこと
* 完成原稿の紙余白天地と左右は同じ長さでなければいけない(コミスタ等で作成した一般的な原稿ならば大半が天地と左右は同じ長さになっています)

##実行すると起きること
* 読み込み時に指定したフォルダにpdfファイルが作成されます
* 面付けデータは必ず4の倍数でないといけないので、4の倍数でないファイル数の場合白紙のページが後ろに挿入されます
* データの上書き等はしない仕様ですが、使用は自己責任でお願いします

##中綴じ本用 面付けpdf作成スクリプトの使い方
###JSXファイル(スクリプト)の読み込み
1. ファイル>スクリプト>参照
1. DLしたスクリプトImpositionScript.jsxを選択して読み込む
1. 中綴じ本用 面付けpdf作成ダイアログが出る

![01.png](https://qiita-image-store.s3.amazonaws.com/0/119469/f1a54479-5092-605c-2043-a2d6486a3ade.png)

###設定項目について
####原稿のサイズ
　原稿のサイズを選択してください
####作成する本のサイズ
　コピー本として出力したい本のサイズを選択してください
####作成するpdfの解像度
　pdfの解像度を入力して下さい
　コピー本の場合300dpiでも問題はないと思います
####再サンプル
　サイズ変換する時の方法を選択して下さい
　初期値：バイキュービック（滑らか）
####自動リサイズ
　基本的にはチェックをいれてください
　また、解像度が原稿サイズと異なる時も自動リサイズにチェックをいれてください
####ノンブル
　ノンブルは1ページ目から1,2,3...と順番に入ります
　ノンブルサイズは7ptです
　いれない：　ノンブルははいりません
　隠しノンブル:　内側にノンブルが入ります、中とじ本では完全に隠れることはありません
　外側：　外側にノンブルが入ります
###実行例
####下記設定条件でスクリプトを実行する
実行例は8p本が作成されますが、999Pまでの作成が可能です。
(120pまでの動作チェックは行いました)

![02.png](https://qiita-image-store.s3.amazonaws.com/0/119469/1a8a6c99-fe45-b0c3-6aa6-9f835822d27d.png)

![03.png](https://qiita-image-store.s3.amazonaws.com/0/119469/79a1bb5f-fd29-665f-84db-ab01502c545e.png)

![04.png](https://qiita-image-store.s3.amazonaws.com/0/119469/77cfbc14-7027-2c03-4201-bc8ac682cd57.png)

![05.png](https://qiita-image-store.s3.amazonaws.com/0/119469/2430e83c-10f5-197f-7b75-aea2c8040463.png)

#コード
##PDF複数ドキュメントを作成する
PDFの複数ドキュメント（複数枚のpdfが1つのpdfファイルにまとまっているもの）はPhotoshopで作成することが出来る
javascriptでおこなわない場合は
 ファイル > 自動処理 > PDFスライドショー
を選び　保存形式を『複数ページドキュメント』にすればいい
javascriptで行う場合は makePDFPresentation を使用する

```js
makePDFPresentation(inputFiles,outputFiles[, options]);
//inputFiles: pdfにするファイル（複数の場合はファイルの配列）
//outputFiles: 出力されるpdfファイル
//options: pdfファイルの設定(PresentationOptions)
```

PresentationOptionsを設定することで複数ページドキュメント、圧縮率などの設定ができる
pdfの詳細は主にpresentationOptions.PDFFileOptionsで行っている

```js
    // run PDF Presentation
    var presentationOptions = new PresentationOptions();
    presentationOptions.presentation = false;   //スライドショーにするか複数ドキュメント(false)にするか デフォルトは false
    presentationOptions.autoAdvance = false;    //自動表示
    var PdfFileOpt = new PDFSaveOptions();
    PdfFileOpt.layers = false;  //レイヤを保存　しない
    PdfFileOpt.encoding = PDFEncoding.JPEG;
    PdfFileOpt.jpegQuality = 12;    //最高
    PdfFileOpt.downSampleSize = 300;
    PdfFileOpt.downSampleSizeLimit = 450; //この解像度を超える場合　downSampleSize に縮小される
    PdfFileOpt.downSample = PDFResample.PDFBICUBIC;
    presentationOptions.PDFFileOptions = PdfFileOpt;
    
    app.makePDFPresentation(FilesList, OutputFileObj, presentationOptions);
```

#参考サイト
>[OpenSpace](http://www.openspc2.org/)
 　他のバージョンやリファレンスへのリンクもありました
[Adobe Photoshop CC自動化作戦](http://www.openspc2.org/book/PhotoshopCC/)
　 上記サイトOpenSpaceさんのコンテンツのひとつ
[Adobe CC バージョンJavaScript リファレンス](http://www.openspc2.org/reibun/AdobeJS/CC/index.html)
[Photoshop CS5 JavaScript Reference(PDF)](http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/photoshop/pdfs/photoshop_cs5_javascript_ref.pdf)
 　Adobe公式 英語 他バージョンは[こちらから](http://www.adobe.com/devnet/photoshop/scripting.html)
[ExportOptionsSaveForWeb()で個人的に使えるもの一覧表](http://qiita.com/yudough/items/8240cd1a84f09e833df3)
「Web用に保存」について
[フォトショップ用語 英語-日本語対応表](http://memopad.bitter.jp/w3c/home/Photoshop/terms/photoshopTerms.html)
 リファレンスで検索するときに便利