忍者ブログ

ぼんぷろぐ

InDesign、イラレ、フォトショ(CS6 Win)の勉強中。。。(旧まとめいみブログ)

[InDesign]
アンカー付きオブジェクトをライブラリに登録するスクリプト

[ライブラリからアンカー付きオブジェクトを直接挿入する考察]
こちらで考えた手順を自動化しました。

使い方

①アンカー付きオブジェクトを選択して実行するとダイアログが出ます。
②登録先のライブラリを選択し、名前を入力してOKを押します。ライブラリに登録されます。


③好きな所にカーソルを置いて、ライブラリパネルから「アイテムを割り付け」すると…


④アンカー付きオブジェクトとして配置できます。

ちゅうい

・ライブラリを1つ以上開いてないと動きません。
・オブジェクトスタイルを使ってた場合はスタイルとのリンクが切れます。
・かわりにアンカー付きオブジェクトオプションだけ設定された新しいオブジェクトスタイルが適用されます。
・アンカー付きじゃない任意のページアイテムを選択して実行すると、普通のライブラリ登録として使えます。

以下ソース


app.doScript(function(){
    var myDocu=app.activeDocument;
    var Sel=myDocu.selection;
    if (Sel.length==0) exit();
    var Sel0=Sel[0];
    if (!Sel0.hasOwnProperty('store')) exit();
    if (app.libraries.length==0) exit();
    var LibraryList=app.libraries.everyItem().name;
    var myDialog1=app.dialogs.add({name:"ライブラリに登録"});
    with(myDialog1){
        with(dialogColumns.add()){
            with (dialogRows.add()){
                staticTexts.add({staticLabel:"登録先:"});
                var LibraryListDD=dropdowns.add({stringList:LibraryList, selectedIndex:0});
            }
            with (dialogRows.add()){
                staticTexts.add({staticLabel:"名前:"});
                var AssetNameTE=textEditboxes.add({minWidth:200});
            }
        }
    }
    if (!myDialog1.show()) exit();
    var myLibrary=app.libraries[LibraryListDD.selectedIndex];
    if (Sel0.parent.constructor.name=='Character'){
        var date=new Date;
        var myObjStyle=myDocu.objectStyles.add({name:AssetNameTE.editContents+"("+date.getTime()+")"});
        myObjStyle.properties={
            enableFill : false,
            enableStroke : false,
            enableStrokeAndCornerOptions : false,
            enableParagraphStyle : false,
            enableTextFrameGeneralOptions : false,
            enableTextFrameBaselineOptions : false,
            enableTextFrameAutoSizingOptions : false,
            enableStoryOptions : false,
            enableTextWrapAndOthers : false,
            enableAnchoredObjectOptions : true,
            enableFrameFittingOptions : false
        }
        var EffectsMUSHI={
            enableBevelEmboss : false,
            enableDirectionalFeather : false,
            enableDropShadow : false,
            enableFeather : false,
            enableGradientFeather : false,
            enableInnerGlow : false,
            enableInnerShadow : false,
            enableOuterGlow : false,
            enableSatin : false,
            enableTransparency : false
        }
        myObjStyle.contentEffectsEnablingSettings.properties=EffectsMUSHI;
        myObjStyle.fillEffectsEnablingSettings.properties=EffectsMUSHI;
        myObjStyle.objectEffectsEnablingSettings.properties=EffectsMUSHI;
        myObjStyle.strokeEffectsEnablingSettings.properties=EffectsMUSHI;
        myObjStyle.anchoredObjectSettings.properties=Sel0.anchoredObjectSettings.properties;
        Sel0.applyObjectStyle(myObjStyle);
        myLibrary.store(Sel0,{name:AssetNameTE.editContents});
    } else {
        myLibrary.store(Sel,{name:AssetNameTE.editContents});
    }
},ScriptLanguage.JAVASCRIPT,[],UndoModes.FAST_ENTIRE_SCRIPT);
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

プロフィール

あるふぁ(仮)
InDesignで新聞組版のようなことをしてる人です。

InDesignスクリプトについて

つくったInDesignスクリプトのまとめ

twitter

フリーエリア