changeBackground.jsx
2012/04/23に改良版アップしました。→ changeBackGround改良版
前回の日記について、よく考えたら選択中のオブジェクトを全て背景白(または透明)にする処理の方が、白と透明を交換する処理なんかよりもずっと実用的ですね。
そこで、ラジオボタンによる選択式に書き直してみました。
例によってせうぞー師匠のテンプレートを利用しています。
実行方法:オブジェクトを選択して下記スクリプトをスクリプトパネル上でダブルクリック。
グループとインライングラフィックについては今回も無視。
相変わらず、動作確認は以下の環境だけです。
Mac/WinともCS2以降なら動く可能性もありますが、ご利用は自己責任で。
動作確認環境:Mac OS X 10.6.8/InDesign CS4(6.0.6)
/*///////////////////////////////////////// changeBG改良版 2012.04.20 k_iki 配置済みPDFおよびAI画像の背景について 読み込みオプションダイアログを開くことなく 透明または白に変更して再配置する。 ・インライングラフィックは処理しない。 ・グループ化されたアイテムは処理しない。 *////////////////////////////////////////// ////////////////////////////////////////////エラー処理 function myerror(mess) { if (arguments.length > 0) { alert(mess); } exit(); } ////////////////////////////////////////////ラジオダイアログ /* myTitle ダイアログ(バー)のタイトル myPrompt メッセージ myList ラジオボタンに展開するリスト result 選択したリスト番号 */ function radioDialog(my_title, my_prompt, my_list){ var my_dialog = app.dialogs.add({name:my_title, canCancel:true}); with(my_dialog) { with(dialogColumns.add()) { // プロンプト staticTexts.add({staticLabel:my_prompt}); with (borderPanels.add()) { var my_radio_group = radiobuttonGroups.add(); with (my_radio_group) { for (var i = 0; i < my_list.length; i++){ if (i == 0) { radiobuttonControls.add({staticLabel:my_list[i], checkedState:true}); } else { radiobuttonControls.add({staticLabel:my_list[i]}); } } } } } } if (my_dialog.show() == true) { var ans = my_radio_group.selectedButton; //正常にダイアログを片付ける my_dialog.destroy(); //選択したアイテムの番号を返す return ans; } else { // ユーザが「キャンセル」をクリックしたので、メモリからダイアログボックスを削除 my_dialog.destroy(); } } ////実行 if (app.documents.length == 0) {myerror("ドキュメントが開かれていません")} if (app.selection.length == 0) {myerror("オブジェクトが選択されていません")} ////////////////処理の選択 var myList = ["背景を透明に", "背景を白に",]; var ans_int = radioDialog("ChangeBG", "PDF及びAIの背景を変更します\n", myList); //myList[ans_int]; ////////////////メイン処理 (function() { var mySel = app.selection; for (var i=0; i < mySel.length; i++) { if (mySel[i].constructor.name !== Group) { //グループ以外のオブジェクトを対象に if (mySel[i].contentType !== 1735553140) { //画像フレーム以外は処理しない /* //k_iki用おぼえがき GRAPHIC_TYPE 1735553140 グラフィック TEXT_TYPE 1952412773 テキスト UNASSIGNED 1970168179 割り当てなし */ return }; if (mySel[i].graphics.length !== 0 ) { var current_link_path = mySel[i].graphics[0].itemLink.filePath; var pNum = mySel[i].graphics[0].pdfAttributes.pageNumber; if (ans_int == 0) { //背景を透明に app.pdfPlacePreferences.transparentBackground = true; } else if (ans_int == 1) { //背景を白に app.pdfPlacePreferences.transparentBackground = false; } app.pdfPlacePreferences.pageNumber = pNum; mySel[i].place(File (current_link_path)); } } } })();