|
Word原稿を、スクリプトを使って、Indesignで自動組版する方法を模索している、スクリプト超初心者です。 段落スタイル・文字スタイルの適用までは、何とかなったのですが、画像を自動挿入する方法が思いつきません。
・文字原稿は、連結されたテキストフレーム内に、 テキストとして流し込まれています。 ・画像のファイル名は、下記のように<ファイル名> というテキストが入力してあります。 ・<ファイル名>の部分には、画像を配置するときの段落スタイルが 適用されています。画像さえ配置できれば、回り込み等は 考えなくて大丈夫です。 ・画像ファイルは、ブック同階層の[Links]フォルダに 入れてあります。
○○○○○○○○○○○○○○○ <0001.eps> ○○○○○○○○○○○○○○○ <0002.eps> ○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○
スクリプトで、<ファイル名>の部分に、画像ファイルを自動配置することは、できますでしょうか? どなたか、良い方法がありましたら、ご教示よろしくお願い致します。
|
No.8527 2015/03/02(Mon) 15:43:15
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
|
Re: スクリプトでの画像の自動配置 / (z-) |
|
|
|
<0001.eps>などの配置予定の段落を把握したら contents を"\r"だけに。 insertionPoints[0]にrectangleを挿入。 そのrectangleの中に画像を配置、画像をfit(FitOptions.FRAME_TO_CONTENT) とかなんとか…
Extendscriptでの話になりましたが。 お使いのOSやInDesignのバージョン、取り組まれているスクリプト言語などの情報は わりと必須です。こういう話題のばあい特に。
|
No.8529 2015/03/03(Tue) 10:02:01
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/7.1.3 Safari/537.85.12
|
|
Re: スクリプトでの画像の自動配置 / Shin |
|
|
|
(z-) 様
ご回答頂き、ありがとうございます! 大変失礼いたしました、スクリプト・環境等の情報、失念しておりました。 スクリプトはWin版 Extendscriptで、言語はJavaScripです(ともに初の試みで、超初心者です)。 Indesignのバージョンは、2014 CCです。
> <0001.eps>などの配置予定の段落を把握したら
こちらは、下記のFunctionを使えば良いのでしょうか?
function my_RegexFindChange(my_range, my_find, my_change) { //検索の初期化 app.findGrepPreferences = NothingEnum.nothing; app.changeGrepPreferences = NothingEnum.nothing; //検索オプション app.findChangeGrepOptions.includeLockedLayersForFind = false; 〜〜〜〜〜〜〜〜〜〜〜〜省 略〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 // app.findGrepPreferences.properties = my_find; app.changeGrepPreferences.properties = my_change; // my_range.changeGrep();//検索と置換の実行// }
>insertionPoints[0]にrectangleを挿入。 >そのrectangleの中に画像を配置、画像をfit(FitOptions.FRAME_TO_CONTENT) >とかなんとか…
下記のような、方法で挿入できるのは、なんとなく分かりました。
docObj = app.activeDocument; imgObj = docObj.textFrames.add(); imgObj.contentType = ContentType.graphicType; imgObj.place("パス"); imgObj.fit(FitOptions.frameToContent);
上記Functionに追記するときに、insertionPoints[0]を、どこに書けば良いのかわかりませんでした。 初心者で、根本的な部分を理解していないため、的外れな質問をしているかもしれませんが、ご教示宜しくお願い致します。
|
No.8530 2015/03/03(Tue) 11:48:14
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
|
|
Re: スクリプトでの画像の自動配置 / (z-) |
|
|
|
ああ、先で提案したのは、changeGrep() ではなく findGrep() (検索・置換 ではなく、検索だけに留めて)での運用を想定しておりました。 InDesignの検索置換を使う場合、文字列をグラフィックフレームに検索置換するためにはクリップボードを経由するしか手がありませんので、あらかじめ空のグラフィックフレームを作成し、コピーorカット(Windowsでは"切り取り"でしたっけ)しておく必要があります。
>insertionPoints[0]を、どこに ぐぐってきましたw こちら参考になるでしょうか。 http://www.my-notebook.net/6fdad194-5268-4693-bf7a-1f660e944be4.html リンク先では行頭の挿入点にインラインフレームを入れる内容ですが、 今回は<ファイル名>を消しつつになりますね。
あと、 imgObj = docObj.textFrames.add(); imgObj.contentType = ContentType.graphicType; は、テキストフレームを作成→グラフィックフレームに変換 という二度手間なので imgObj = docObj.rectangles.add(); の一行にしてしまっていいでしょう。厳密には属性なし長方形ですが画像配置するだけなので影響ありません。
|
No.8531 2015/03/03(Tue) 13:38:51
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/7.1.3 Safari/537.85.12
|
|
Re: スクリプトでの画像の自動配置 / Shin |
|
|
|
ご回答ありがとうございます。
色々試してみたのですが、どうもうまくいきません。 処理は、下記を想定しています... -------------------------------------------------- 1. <ファイル名>の文字列を検索 (※<ファイル名>は1行にこの文字だけあります) 2. 1.から画像のパスを生成(変数) 3. 検索された文字列の位置に、長方形を配置 4. 長方形に画像(パスは2.で生成された変数)を配置 5. 文字列を画像配置箇所にある、 <ファイル名>の文字列を削除 6.1〜5.を検索対象が無くなるまで繰り返す。 --------------------------------------------------
「文字列を検索・置換するだけ、画像を配置するだけ」 はできるのですが、検索された文字列の位置を取得し、 画像を挿入するところが分かりません。
|
No.8533 2015/03/03(Tue) 15:23:18
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
|
|
Re: スクリプトでの画像の自動配置 / dot |
|
|
|
aaa = docObj.findGrep();
for文でaaaの数だけ aaa[for文の変数].place(ファイルパス);
何も考えない配置ならこんなんでいけた気がします… CS3ですが。。。
|
No.8534 2015/03/03(Tue) 18:45:26
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
|
|
Re: スクリプトでの画像の自動配置 / Shin |
|
|
|
ご回答頂き、誠にありがとうございます。 教えて頂いた方法を追記し、決め打ちの画像で、試してみました。 エラーは出ませんでしたが、画像は挿入されませんでした。
// aaa = docObj.findGrep(); // for (x=0; x < aaa; x++) { aaa[x].place("決め打ち画像のパス"); } //
|
No.8535 2015/03/03(Tue) 19:18:28
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
|
|
Re: スクリプトでの画像の自動配置 / dot |
|
|
|
for (x=aaa.length-1; x > -1; x--)
ではどうでしょうか?
|
No.8536 2015/03/03(Tue) 19:28:55
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
|
|
Re: スクリプトでの画像の自動配置 / Shin |
|
|
|
dot 様
早速のご回答、感謝致します。 ご指摘のとおり.lengthは必要そうですね。 明日の朝まで、テストできる環境がないので、明日の朝一番に試してみます!
|
No.8537 2015/03/03(Tue) 19:47:22
Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) CriOS/40.0.2214.73 Mobile/12B440 Safari/600.1.4
|
|
Re: スクリプトでの画像の自動配置 / Shin |
|
|
|
dot 様
返信遅くなりまして、すみません。 ご指摘の箇所を修正して、試してみました。 狙い通り、画像を配置できました! ありがとうございました!! 残りの画像パスを取得し、自動配置する部分をチャレンジしてみます。 また、何かありましたら、質問させてください。
|
No.8540 2015/03/04(Wed) 10:39:19
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
|
|
Re: スクリプトでの画像の自動配置 / (z-) |
|
|
|
※たかたか打ってるうちに進んでいたので再投稿
dot様、補足ありがとうございます。
手元の環境(Mac、CS3〜6)では aaa[x].place("決め打ち画像のパス"); ではなく aaa[x].place(File("決め打ち画像のパス")); としないと配置できませんでした。報告まで
|
No.8542 2015/03/04(Wed) 10:49:18
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/7.1.3 Safari/537.85.12
|
|
Re: スクリプトでの画像の自動配置 / Shin |
|
|
|
(z-) 様 dot 様
初心者の私に丁寧に解説頂き、感謝いたします! ファイル名の部分を、bbb = aaa[x].contentsで取得すれば 目的のものができそうです。 ありがとうございました!
for (x=aaa.length-1; x > -1; x--) {
//ファイル名取得 //<ファイル名>は、<>を削除しておく。 bbb = aaa[x].contents; // //fsnameはフォルダ選択ダイアログで取得 aaa[x].place(fsname + "/" + bbb);
}
|
No.8543 2015/03/04(Wed) 12:53:37
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
|
|