MacのAdobe InDesign CSを利用して

全6ページの作り物をしています。

一番最初に的確な回答をいただいた方に3000ポイント進呈いたします。

この6ページを各ページごとでPDF書き出しをしたいのですが
スクリプトなどでそのようなことは可能でしょうか?

●ファイル名を指定したいです。
1ページ目「○○○○○.pdf」
2ページ目「○○○××.pdf」
3ページ目「△△△△△.pdf」
4ページ目「○△△××.pdf」
5ページ目「△○○××.pdf」
6ページ目「○○○△△.pdf」

●書き出しのプリセットを選べるとうれしいです

また、教えていただいたものは、
ほかのバージョンでも使用できますでしょうか?

(CS、CS2、CS3を所有しています。)


どうぞよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:2009/07/10 00:05:20
  • 終了:2009/07/14 06:14:54

ベストアンサー

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912009/07/11 15:20:02

ポイント3000pt

Windows で CS4 で試した例ですが、Mac でも動くと思います。

(動かなかったらポイント不要です。)


下記を参考にしてページを分割したスクリプトの例です。

http://www.milligramme.cc/weblog/2009/04/id-1.html


下記を参考にスクリプトをフォルダ下にコピーし、アプリケーションの

  ウィンドウ⇒自動化⇒スクリプト

で保存したファイル名を指定して実行してみてください。

http://www.openspc2.org/book/InDesignCS4/intro/007/index.html

app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
(function () {
// ★★★ファイル名の定義
	var fileNameList = new Array("",
			"pdf_page1.pdf",
			"pdf_page2.pdf",
			"pdf_page3.pdf",
			"pdf_page4.pdf",
			"pdf_page5.pdf",
			"pdf_page6.pdf" );
	if(app.documents.length!=0)
	{
			var docObj=app.documents[0];
			var pageObj=docObj.pages;
			var myPDFexPreset=app.pdfExportPresets.item("Sample");

// ★★★保存フォルダの指定
	        var myFolder=Folder.selectDialog("Choose a Folder to export");
	//	var myFolder="C:/MyPDF";   // Windows で出力先を決め打ちで指定する例
			if(myFolder==null) { return; }

//			for(var i=1 ; i<=pageObj.length; i++)
			for(var i=1 ; i<=6; i++)
			{
					app.pdfExportPreferences.pageRange=String(i)+"-"+String(i);
					var myFile=new File(myFolder+fileNameList[i]);
					docObj.exportFile(ExportFormat.pdfType,myFile,false) ;
			}
	}
})();

exportFile は第4引数でプリセットを利用できるようなので、そちらを利用する際は

下記のサイトが参考になるかと思います。

http://tu-kazu.jp/javascript1.php


スクリプトに関しては、こちらがいろいろ参考になりそうです。

http://www.openspc2.org/book/InDesignCS/

id:ohtsu6

mookさま

どうもありがとうございます!

Mac環境がないので、月曜日にためさせていただきます。

今WindowsのCS2で試してみたのですが、

デスクトップを指定して試してみたのですが作成されませんでした。

そこで新規フォルダを作成するで試してみたのですが、

指定したフォルダ名+pdf_page1.pdfというような

感じでファイルが出来ました。

Windows で出力先を決め打ちで指定する例では、

Cドライブの直下にMyPDFpdf_page1.pdfというファイルが作成されました。

バージョンが異なるからでしょうか?

2009/07/11 17:19:24
  • id:doji
    CS4のスクリプティングガイド、参考になるか分かりませんが。
    http://www.adobe.com/devnet/indesign/pdfs/indesigncs4_scriptingguide_vb_jp.pdf
    p41に書き出しオプションの設定付きのPDF書き出しスクリプト。
    p43にページごとのPDF書き出しスクリプト。
  • id:Mook
    あらら、修正漏れです。
     myFolder+fileNameList[i]

     myFolder+"/"+fileNameList[i]
    に直してください。

    失礼しました。
  • id:ohtsu6
    doji さま
    どうもありがとうございます。
    本家でもそれなりのものが配布されていたのですね・・・。

  • id:ohtsu6
    mookさま
    プリセットの指定は、
    「docObj.exportFile(ExportFormat.pdfType,myFile,false) ;」を
    「docObj.exportFile(ExportFormat.pdfType,myFile,false,myPDFexPreset) ;」とすることで出来ました。


    ちなみにですが指定するファイル名の前に
    日付を追加したいです。

    本日であれば「20090712_pdf_page1.pdf」という感じです。

    もしそんなに手間でなければ教えてください。
    どうぞよろしくお願いいたします。
  • id:Mook
    下記のように変更してください。

    コメントないはインデントのため、全角スペースを使用していますので、
    半角スペースかタブに変更して実行してください。
      var date = new Date();
      var strDate = String(date.getFullYear())
          + String("0"+(date.getMonth() + 1) ).substr(-2)
          + String("0"+date.getDate()).substr(-2)+"_";
      for(var i=1 ; i<=6; i++)
      {
        app.pdfExportPreferences.pageRange=String(i)+"-"+String(i);
        var myFile=new File(myFolder+ "/" + strDate+fileNameList[i]);
        docObj.exportFile(ExportFormat.pdfType,myFile,false) ;
      }

    Windows は VBScript と JavaScript、Mac は JavaScript と AppleScript と使用できる言語が違います。
    また同じJavaScript でも使えるオブジェクトや文法にも若干違いがありますので、注意が必要です。

    互換性を考えるのであれば、JavaScript となりますが、両方で同じように動くかは経験が必要となりそうな
    気もします(複雑なことをしなければ気にしなくともよいかもしれませんが)。


    Adbobe の PDF マニュアルは多くがVBScript に見えるのですが、だとしたら、Macユーザには不親切ですね。
    ネットでも多くの情報が見つかるので、「InDesign、JavaScritp(あるいはスクリプト)、やりたいこと」で
    検索するといろいろ見つかるかと思います。
  • id:ohtsu6
    mookさま
    Macでも実施することができました。

    どうもありがとうございました。

  • id:Mook
    無事に動いたようでなによりでした。

    イルカ賞と、たくさんのポイントありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません