k_ikiの雑記帳

DTPのこと、創作のことなど、思いつくまま

配置済みPDFの背景を変更

2012/04/23に改良版アップしました。→ changeBackGround改良版
 
読み込みオプションについて- InD-Board過去ログについて、自分用にカスタマイズしてみました。
すでにInDesign上に配置したPDF(AI)について、背景が白なら透明に、透明なら白に変更します。
実行方法:オブジェクトを選択して下記スクリプトをスクリプトパネル上でダブルクリック。
グループとかインライングラフィックは無視します(^^;
最初は掲示板のソースをほぼ改変せず使っていたんですが、そうすると配置していた複数ページPDFについて、配置していたページとは別のページに更新されてしまう可能性が高いです。
CSまでにはなかったプロパティですが、CS2以降なら pdfAttributes.pageNumber を参照すれば現在貼り込まれているページ数を参照できます。
そんなわけで、動作確認は以下の環境だけですがCS2以降なら動く可能性もあります。

動作確認環境:Mac OS X 10.6.8/InDesign CS4(6.0.6)
 

(function () {
	var mySel = app.selection;
	for (var i=0; i < mySel.length; i++) {
		//グループなら処理しない
		if (mySel[i].constructor.name == Group) {
			return
			};
		//グラフィック以外なら処理しない
		if (mySel[i].contentType !== ContentType.GRAPHIC_TYPE) {
			return
			};
		if (mySel[i].graphics.length === 0 ) {
			return
			};
		if (mySel[i].graphics[0].pdfAttributes.transparentBackground == false){
			var current_link_path = mySel[i].graphics[0].itemLink.filePath;
			//複数ページPDFの可能性を考慮し、ページ番号を記憶
			var pNum = mySel[i].graphics[0].pdfAttributes.pageNumber;
			app.pdfPlacePreferences.transparentBackground = true;
			app.pdfPlacePreferences.pageNumber = pNum;
			mySel[i].place(File (current_link_path));
			}
		else {
			var current_link_path = mySel[i].graphics[0].itemLink.filePath;
			var pNum = mySel[i].graphics[0].pdfAttributes.pageNumber;
			app.pdfPlacePreferences.transparentBackground = false;
			app.pdfPlacePreferences.pageNumber = pNum;
			mySel[i].place(File (current_link_path));
			}
		}
	} )();