Jpeg書き出しスクリプトについて

[591]Jpeg書き出しスクリプトについて | 投稿者:なら | 投稿日:2008/01/25(Fri) 16:46:12
初めまして
いつも参考にさせていただいております。
200頁程度のドキュメントからページ毎にJpegに書き出すスクリプトを書いています。
200枚のJpegを書き出すところまではたどり着けましたが、ファイル名の設定がどうしてもうまく行きません。どのようにすればうまく行くのか皆様のお知恵を拝借させてください。

具体的には、
・各ページに1点の画像がリンクされているドキュメントから
・「リンクファイル名.jpg」と書き出しをしたい。

見よう見まねでやってみましたが、ここから先に進めません。
よろしくお願いします。

なお、当方の環境は OS XでCSを利用しています。

以下、スクリプト////////////////////

set EASelection to false -- options (true/false)

set EASpread to false -- options (true/false)

set EAQuality to "maximum" -- options (low/medium/high/maximum)

set EARendering to "baseline" -- options (baseline encoding/progressive encoding)

tell application "InDesign CS_J"
   set the_container to (file path of document 1 as string)
   set pagecount to count pages of document 1
   tell active document
       set idLink to links
       repeat with Myset from 1 to (count idLink)
           set LinkName to name of item Myset of idLink as string
       end repeat
   end tell
   repeat with x from 1 to pagecount
       set y to x as string
       set properties of JPEG export preferences to {Exporting Selection:EASelection, Page String:y, JPEG Quality:EAQuality, JPEG Rendering style:EARendering}
       tell document 1
           set myFile to the_container & ":" & LinkName & ".jpg" as string
           export format JPG to myFile without showing options
       end tell
   end repeat
end tell

ここまで////////////////////////////////
» 1
[592]Re: Jpeg書き出しスクリプトについて | 投稿者:せうぞー | 投稿日:2008/01/25(Fri) 19:07:27
CSはもうすっかり使わないので、CS3ならこんな感じかな。ご参考までに。
#ろくにエラー処理してません^^

to save_jpeg(my_folder, my_name, page_no)
   tell application "Adobe InDesign CS3"
       tell JPEG export preference 1
           set JPEG Quality to maximum
           set Exporting Spread to false
           set JPEG Rendering style to baseline encoding
           set resolution to 72
           set JPEG export range to export range
           set Page String to page_no
       end tell
       export document 1 format JPG to my_folder & my_name & ".jpg"
   end tell
end save_jpeg

tell application "Adobe InDesign CS3"
   tell document 1
       set my_folder to (file path) as Unicode text --ドキュメントのあるフォルダ
       repeat with page_no from 1 to (count every page)
           tell page page_no
               if all graphics is not {} then
                   set my_link to object reference of item link of item 1 of all graphics
                   set my_name to do shell script "echo '" & name of my_link & "' | sed -E -e 's/\\....?.?$//;'" --拡張子2文字~4文字のみ対応
                   my save_jpeg(my_folder, my_name, page_no as Unicode text)
               end if
           end tell
       end repeat
   end tell
end tell
» 2
[593]Re: Jpeg書き出しスクリプトについて | 投稿者:匿名A | 投稿日:2008/01/25(Fri) 19:21:14
このプログラムは、

 ループ1
  LinkNameにidLinkリストからリンクファイル名を入れる
 ループ1終わり

 ループ2
  1ページずつLinkName+.jpgでJPRG書き出しをする
 ループ2終わり

ということで、二つのループが独立して行なわれるだけになってますね。
LinkNameをリストで取得したとしても、idLinkがページ順になっている
わけではない(ID順に並ぶ)ので、きちんとページ単位で処理するように
しないとまずいです。

 ループ
  ページnのリンク画像ファイル名LinkNameを取得
  1ページずつLinkName+.jpgでJPRG書き出しをする
  n++
 ループ終わり

おっと、こんなことしてる間に、せうぞーさんが、実物を書いちゃいました(^^
» 3
[606]Re: Jpeg書き出しスクリプトについて | 投稿者:なら | 投稿日:2008/01/28(Mon) 09:35:16
せうぞー様
匿名A様

ありがとうございます。早速、試してみます。
ループ処理がまずいわけですね。
これからはもっと勉強します。
» 4
[608]Re: Jpeg書き出しスクリプトについて | 投稿者:なら | 投稿日:2008/01/28(Mon) 11:13:01
せうぞー様
匿名A様

コメントを参考にスクリプトの修正をしたら、期待通りの動きをしてくれました。
ありがとうございました。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア