• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:InDesignのスクリプトについて)

InDesignのスクリプトで自動化したいこと

このQ&Aのポイント
  • InDesignのスクリプトで自動化したいことについてアドバイスをいただけますか?
  • タテ310mm×ヨコ225mmの用紙に、タテ148mm×ヨコ105mmのPDFを全ページ4面付で配置したい
  • 現在の状態では最後のボックスにしかPDFが配置されないため、改良方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • adobe_san
  • ベストアンサー率21% (2103/9759)
回答No.3

どうもです。 >通常の仕事の流れでは、もともと分割されたPDFが入稿され、 >それを結合してプリンタに流す→プリンタ側で4面付、 >という感じで印刷していました。 > >もう一台、低コストなプリンタがあるのですが >4面付の機能がないため、いままで使用できませんでした。 >そちらのプリンタでなんとか印刷できないか、ということで >自動化スクリプトを研究中なのです。 との事ならやはり「データ結合」が一番作業としては向いています。 前回の回答に書きました「コピー&ペースト」「PDF内の総ページ数」 の処理をどの様に演算させ、どのタイミングで動かすかを考慮する必要が要ります。 仕組み的に複雑になるが、希望する動作は単純動作なので「研究中」には向いてますが、実務には向いてないかと。 それにこのスクリプトはかなり難易度が高いと思います。 実務でははやり「データ結合」が良いでしょう。 必要データ ・InDesignドキュメント(225mm x 310mm)   このドキュメント内にあらかじめ配置用画像ボックス4個を作成 ・csvデータ   シンプルテキストにて【1行目】に「@画像」と入力。   2行目に「A 1.pdf」と入力。3行目以降は「A 2.pdf~最終ページし書類名「ページ情報.csv」として保存 ・結合してるページデータを「A」とリネームしてからAcrobat Proで開き  「文書/ページの抽出...」を選び全ページを選択後「ページを個別のファイルとして抽出」を  チェック後「OK」をクリック。フォルダ「images」の作成してこのフォルダ内に作成する。 上記のデータが用意できた時点で下記の作業を行う 1.InDesignドキュメントを開く 2.ウィンドウ/自動化/データ結合 ボックスを開く。 3.ボックス内のオプションより「データソースを選択」で「ページ情報.csv」を選択 4.リスト内に「画像」が出てくるのでそのリストをページ内の画像ボックスにドラックで持って行き離す 5.画像ボックス内に「<<画像>>」と表示されてることを確認 6.オプションより「結合ドキュメントの作成」を選択する 7.設定ダイアログボックスが出るので   結合するレコード → すべてのレコード   ドキュメントページあたりのレコード → 単一レコード   を選択後、OKをクリック 8.一時後、ページ内に同一PDFを4個配置したPDF個数分のページのドキュメントの完成 スクリプトで行うより簡単で確実です。 今回の作業はバッチ処理が最適と思われるので、この方法が良いと思います。 組み版などでインデザインドキュメント内でデザインを行う場合はスクリプトが便利です。 用途に合わせた使い方が良いと思います。 ちなみにスクリプトで処理を行う場合 繰り返し変数 for (変数名=0; 変数名<繰り返す回数; 変数名++) { 繰り返す処理 } >繰り返す回数=総ページ数の抽出 >繰り返す処理=PDF配置後指定位置3箇所にコピーペースト後、新規ページに移動 が必要なためかなり難易度が高い割に作業自体がシンプルという事になります。 一度ご確認下さい。

mikindo
質問者

お礼

うっわー、ででできました! CS3はインストールしてあるものの、 CS1をメインに使っているもので、『データ結合』を知りませんでした。 業務にはスクリプトではなく、こちらの機能を使おうとおもいます。 とてもわかりやすい解説で、勉強させていただきました。 どうもありがとうございました!

その他の回答 (2)

  • adobe_san
  • ベストアンサー率21% (2103/9759)
回答No.2

#1です。 取りあえず今日開いた時間を使って簡単に作ってみました。 あくまで単ページでの表示です。 docObj = app . documents . add () ; //新規ドキュメントの作成 docObj . documentPreferences . pageWidth = 225 ; //ドキュメントの横幅 docObj . documentPreferences . pageHeight = 310 ; //ドキュメントの縦幅 filename = File.openDialog("配置するPDFを選択してください"); //配置データの選択 imageX = 0; //配置データの横軸座標 imageY = 0; //配置データの縦軸座標 unit = "mm" //入力単位 pageNo = 0; //スタートページ pageObj = app.activeDocument.pages[pageNo]; //1ページ目よりスタート if (filename){ app.pdfPlacePreferences.pageNumber = 1; //PDFページ番号 imgObj = pageObj.textFrames.add(); //新規テキストフレーム作成 imgObj.move([imageX+unit,imageY+unit]); //スタートテキストボックスの配置位置 imgObj.visibleBounds = [ 0 , 0 , 148 , 105 ]; //左上の画像座標 imgObj.place(filename); app.pdfPlacePreferences.pageNumber = 1; //PDFページ番号 imgObj = pageObj.textFrames.add(); //新規テキストフレーム作成 imgObj.move([imageX+unit,imageY+unit]); //スタートテキストボックスの配置位置 imgObj.visibleBounds = [ 0 , 120 , 148 , 225 ]; //右上の画像座標 imgObj.place(filename); app.pdfPlacePreferences.pageNumber = 1; //PDFページ番号 imgObj = pageObj.textFrames.add(); //新規テキストフレーム作成 imgObj.move([imageX+unit,imageY+unit]); //スタートテキストボックスの配置位置 imgObj.visibleBounds = [ 162 , 0 , 310 , 105 ]; //左下の画像座標 imgObj.place(filename); app.pdfPlacePreferences.pageNumber = 1; //PDFページ番号 imgObj = pageObj.textFrames.add(); //新規テキストフレーム作成 imgObj.move([imageX+unit,imageY+unit]); //スタートテキストボックスの配置位置 imgObj.visibleBounds = [ 162 , 120 , 310 , 225 ]; //右下の画像座標 imgObj.place(filename); } このスクリプトを書きながら問題点が出てきました。 お望みの事を行うなら ・PDF内のページを1つ貼り付けた後、コピーペーストで4つの配置にすること。 ・上記の作業をPDF内のページ数分行うこと。 の2つの演算が必要です。 それに加えページでの処理になるので各ページを処理する毎にPDF解析を行います。 PDFデータが仮に100Mの100ページなら単純計算で100Mの処理100回です。 処理時間的に不満が残るのでは無いでしょうか? それで一つ思ったのですが、PDFデータのページ分割は可能でしょうか? もし可能ならもっと簡単に行える「データ結合」がありますが・・・ 中間報告です ご参考に!

mikindo
質問者

お礼

【PDFの分割について】 可能です。 えっと、印刷会社勤務なのですが、 通常の仕事の流れでは、もともと分割されたPDFが入稿され、 それを結合してプリンタに流す→プリンタ側で4面付、 という感じで印刷していました。 もう一台、低コストなプリンタがあるのですが 4面付の機能がないため、いままで使用できませんでした。 そちらのプリンタでなんとか印刷できないか、ということで 自動化スクリプトを研究中なのです。 作っていただいたスクリプト、動作確認してみました。 これが全ページ自動で貼れたら最高です。 参考にさせていただきつつ、改良していきたいとおもいます! ありがとうございました!

  • adobe_san
  • ベストアンサー率21% (2103/9759)
回答No.1

確認ですが 1P ┏━━━━━━┓ ┃┌─┐┌─┐┃ ┃│1││8│┃ ┃└─┘└─┘┃ ┃┌─┐┌─┐┃ ┃│4││5│┃ ┃└─┘└─┘┃ ┗━━━━━━┛ 2P ┏━━━━━━┓ ┃┌─┐┌─┐┃ ┃│7││2│┃ ┃└─┘└─┘┃ ┃┌─┐┌─┐┃ ┃│6││3│┃ ┃└─┘└─┘┃ ┗━━━━━━┛ を目指してるのか? それとも 1P ┏━━━━━━┓ ┃┌─┐┌─┐┃ ┃│1││4│┃ ┃└─┘└─┘┃ ┃┌─┐┌─┐┃ ┃│5││8│┃ ┃└─┘└─┘┃ ┗━━━━━━┛ 2P ┏━━━━━━┓ ┃┌─┐┌─┐┃ ┃│3││2│┃ ┃└─┘└─┘┃ ┃┌─┐┌─┐┃ ┃│7││6│┃ ┃└─┘└─┘┃ ┗━━━━━━┛ を目指してるのか? どちらですか? 上記の内容を踏まえて一つ質問です。 ・読み込もうとしてるPDFのページ数のMAXは? ・両面印刷と思えるので必ず8の倍数で完結しますか? 教えて下さい。

mikindo
質問者

補足

ご覧いただきありがとうございます。 目指しているのは、 1P ┏━━━━━━┓ ┃┌─┐┌─┐┃ ┃│1││1│┃ ┃└─┘└─┘┃ ┃┌─┐┌─┐┃ ┃│1││1│┃ ┃└─┘└─┘┃ ┗━━━━━━┛ 2P ┏━━━━━━┓ ┃┌─┐┌─┐┃ ┃│2││2│┃ ┃└─┘└─┘┃ ┃┌─┐┌─┐┃ ┃│2││2│┃ ┃└─┘└─┘┃ ┗━━━━━━┛ です。プリンタの『4リピート』と考えるとお分かりいただけるかもしれません。 言葉が足らず申し訳ありませんでした。 PDFページのMAXは300Pですが、枚数は場合によります。 おっしゃるとおり両面印刷用の面付けですので、必ず2の倍数です。 プリンタ出力で『折り』はありませんので、8の倍数とは限りません。

関連するQ&A