仕事の合間にいろいろやりながら、来月の登壇資料とか作っている毎日です。仕事が割と繁忙期なのでまあ体力続かなくて辛いですね…。
さて、今日はAdobe謹製のスクリプトに手を加えちゃおうという内容です。
最初から入ってるやで
ネットで調べるとけっこうヒットする標題のスクリプトですが、実はInDesignのプリインストールスクリプトにあります。
ただこのままだと若干使いにくい。それはPDFがメディアサイズで貼られるところです。
どうする?
個人的にはメディアサイズではなく、トリムサイズで貼りたいってケースのほうが多い気がする。
なので貼り付けるPDFのクロップサイズを調整しちゃいましょう。
コード
もとのコード
122行あるので、実際に開いて確認されたし。
最後のmyPlacePDF
関数だけ取り出します。
function myPlacePDF(myDocument, myPage, myPDFFile){ var myPDFPage; app.pdfPlacePreferences.pdfCrop = PDFCrop.cropMedia; var myCounter = 1; var myBreak = false; while(myBreak == false){ if(myCounter > 1){ myPage = myDocument.pages.add(LocationOptions.after, myPage); } app.pdfPlacePreferences.pageNumber = myCounter; myPDFPage = myPage.place(File(myPDFFile), [0,0])[0]; if(myCounter == 1){ var myFirstPage = myPDFPage.pdfAttributes.pageNumber; } else{ if(myPDFPage.pdfAttributes.pageNumber == myFirstPage){ myPage.remove(); myBreak = true; } } myCounter = myCounter + 1; } }
全体の102行目、この関数だと下記の部分がクロップサイズの指示になります。
app.pdfPlacePreferences.pdfCrop = PDFCrop.cropMedia;
どう書き換えるか
このPDFCrop.cropMedia
を任意のものに変更します。対応するのは下記のとおりです。
プロパティ | 対応クロップサイズ |
---|---|
PDFCrop.CROP_ART | アート |
PDFCrop.CROP_BLEED | 裁ち落とし |
PDFCrop.CROP_CONTENT_ALL_LAYERS | 境界線ボックス(すべてのレイヤー) |
PDFCrop.CROP_CONTENT_VISIBLE_LAYERS | 境界線ボックス(表示中のレイヤーのみ) |
PDFCrop.CROP_MEDIA | メディア |
PDFCrop.CROP_PDF | トリミング |
PDFCrop.CROP_TRIM | トンボ |
既存の書き方と表の書き方が違いますが、ここでは気にしないでください…*1。
で、今回僕はトリムサイズでPDFを貼りたかったので、下記のように書き換えました。
app.pdfPlacePreferences.pdfCrop = PDFCrop.CROP_TRIM;
余力があればScriptUIなどでクロップサイズを選べるようにしてもいいかもしれませんね!
やってみたいな〜って方は今度のもくもく会とかTwitterで聞いてもらえればと思います。
*1:Enumerator型のオブジェクトなので、実際には 1131573325 といった値が参照されています(えっ)。話が大きく脱線するので詳細は割愛します