|
はじめまして。
Win InDesign CS4を使用してます。 JavaScriptで、画像フレームにFrameFittingOption(フレーム調整オプション)にて画像トリミングの設定をしたいのですが。。 なにぶん初心者なもので、なかなかうまくいきません。 お知恵を貸していただければ幸いです。 どうかよろしくお願いします。
|
No.2532 2009/03/07(Sat) 00:01:17
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
|
Re: FrameFittingOption / せうぞー |
|
|
|
よしひでさんの場合に限らないのですが、 一般的にこうした質問をされる方は、なにがしたいのか、なにがわからないのか、言葉だけではさっぱりわからないことが多いので、 自分が書いたところまで、コードを示してください。 初心者ならばなおさらです。タイポの可能性もありますし。
とりあえず、FrameFittingOptionのプロパティをいくつか使ってみました。
function myerror(mess) { if (arguments.length > 0) { alert(mess); } exit(); }
var my_selection = app.activeDocument.selection; //グラフィックフレームを選択していると想定 if (my_selection.length == 0) {myerror("何も選択されていません")} if ("Rectangle, Oval, Polygon".match(my_selection[0].reflect.name) == null) {myerror("グラフィクフレームを選択してください")} if (my_selection[0].contentType != ContentType.GRAPHIC_TYPE) {myerror("グラフィクフレームを選択してください")} ;
var my_fit_option = my_selection[0].frameFittingOptions; my_fit_option.topCrop = 1;//トリミング量 上 my_fit_option.bottomCrop = 2;//トリミング量 下 my_fit_option.leftCrop = 3;//トリミング量 左 my_fit_option.rightCrop = 4;//トリミング量 右 my_fit_option.fittingAlignment = AnchorPoint.BOTTOM_RIGHT_ANCHOR;//揃え基準点 my_fit_option.fittingOnEmptyFrame = EmptyFrameFittingOptions.NONE;//空のフレームに合わせる:サイズ調整
var my_file = File.openDialog("画像ファイルを指定してください"); my_selection[0].place (my_file);//配置
|
No.2533 2009/03/07(Sat) 03:15:44
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; ja-jp) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1
|
|
Re: FrameFittingOption / よしひで |
|
|
|
せうぞー様、回答ありがとうございます。 拙いソースですが、やりたいことはこんな感じです。
var pageobj = app.activeDocument.pages[0]; //新規フレームを1つ作り、座標に配置。 var imgobj = pageobj.textFrames.add(); imgobj.visibleBounds = ["110pt","40pt","820pt","650pt"]; imgobj.contentType = ContentType.graphicType;
//上記で作成したフレームに画像を貼り付け。 pageobj.textFrames[0].place("C:/press/091t811.PDF"); // ………………ここまでは動いています。…………………
//その画像を貼り付けたフレームに対してトリミング。 pageobj.textFrames[0].FrameFittingOption.leftCrop = 10;
とこんな感じに動かしたいのですが、上の記述ではエラーになります。恥ずかしながら、記述方法が根本的に間違ってる気もします。。。 最終的には複数のフレームを1つ1つにトリミングを個別に設定して配置したいのですが、1つに設定するだけで行き詰まってしまっている状態です。
|
No.2535 2009/03/07(Sat) 10:51:50
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
|
|
Re: FrameFittingOption / たけうちとおる |
|
|
|
frameFittingOptions使った事ないのですが こんな感じですか?
var pageobj = app.activeDocument.pages[0];
//新規フレームを1つ作り、座標に配置。 var imgobj = pageobj.textFrames.add(); imgobj.visibleBounds = ["110pt","40pt","820pt","650pt"]; imgobj.contentType = ContentType.graphicType;
//その画像を貼り付けたフレームに対してトリミング。 var my_fit_option = pageobj.rectangles[0].frameFittingOptions; my_fit_option.leftCrop = 100;//トリミング量 左 var fileObj = new File("Macintosh HD:err.pdf"); pageobj.rectangles[0].place(fileObj);
|
No.2536 2009/03/07(Sat) 13:03:07
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1
|
|
Re: FrameFittingOption / せうぞー |
|
|
|
ちょっと階層を勘違いされているような気がします。 textFrames[0]が唐突に登場しています。 .addメソッドはオブジェクトそのものの返り値をもつので、それを使えばいいです。 かつ、タイポです。 FrameFittingOptionはframeFittingOptionsでなければなりません。
var pageobj = app.activeDocument.pages[0];
//新規フレームを1つ作り、座標に配置。 var imgobj = pageobj.rectangles.add(); imgobj.visibleBounds = ["110pt","40pt","820pt","650pt"]; imgobj.contentType = ContentType.graphicType;
//上記で作成したフレームに画像を貼り付け。 var my_file = File.openDialog("画像ファイルを指定してください"); imgobj.place(my_file);
//その画像を貼り付けたフレームに対してトリミング。 imgobj.frameFittingOptions.leftCrop = 10;
|
No.2537 2009/03/07(Sat) 13:52:49
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; ja-jp) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1
|
|
Re: FrameFittingOption / せうぞー |
|
|
|
あ、先に画像が存在するので、 fitを実行しないといけなかった。#動かしてなかった^^ 最後の行にこれを足してください。
imgobj.fit(FitOptions.APPLY_FRAME_FITTING_OPTIONS);
|
No.2538 2009/03/07(Sat) 14:08:12
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; ja-jp) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1
|
|
Re: FrameFittingOption / よしひで |
|
|
|
せうぞー様、たけうちとおる様 ありがとうございました。解決しました。 下記のソースで思い通りの動きを得ることができました。感謝です。
var pageobj = app.activeDocument.pages[0]; var imgobj = pageobj.rectangles.add(); imgobj.visibleBounds = ["110pt","40pt","820pt","650pt"]; imgobj.contentType = ContentType.graphicType; imgobj.place("C:/press/091t811.PDF"); imgobj.frameFittingOptions.leftCrop = 10; imgobj.frameFittingOptions.topCrop = 10; imgobj.fit(FitOptions.APPLY_FRAME_FITTING_OPTIONS);
もう少し基本的な部分を勉強しないといけないと痛感しました。 また、なにかありましたら宜しくお願い致します。
|
No.2539 2009/03/07(Sat) 15:05:54
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
|
|