オブジェクトのプロパティをファイル出力


概要

  • 選択したオブジェクトのプロパティを YAML 形式でファイルに出力する。

ソース

  • filedumpObjInfo.zip
    すべてを展開すべてを収束
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    -
    |
    |
    |
    |
    |
    |
    |
    |
    |
    -
    |
    |
    !
    |
    |
    -
    |
    |
    |
    -
    |
    !
    !
     
    -
    |
    |
    -
    -
    -
    -
    |
    |
    |
    |
    |
    -
    |
    !
    !
    -
    |
    !
    !
    -
    |
    !
    |
    !
     
    -
    |
    -
    |
    !
    |
    !
     
     
    
    //	選択したオブジェクトのプロパティを YAML 形式でファイルに出力する。
    #target 'InDesign'
    #includepath "~/AppData/Roaming/Adobe/JavaScript/lib"
    #include "ominoDialogMaker.jsx" // http://omino.com/pixelblog/tag/omino-dialog/
     
    var maxDepth = 2;
    var fileName = 'D:/_temp/ObjInfo.yml';
    var reIgnore = new RegExp( '^(parent|all|event)' );
     
    var doc = app.activeDocument;
    var selected = doc.selection;
     
    var omd = newOminoDialog("dump Object Info");
    omd.saveFile( 'Output', 'fileName', fileName );
    omd.number( 'Depth', 'maxDepth', maxDepth );
    var result = omd.run();
    if ( result ){
        fileName = result[ 'fileName' ];
        maxDepth = result[ 'maxDepth' ];
     
        var pltProgress = new Window( 'palette', 'dump Object Info', [100, 100, 210, 150] );
        pltProgress.msg0 = pltProgress.add( 'statictext', [10, 10, 100, 20], 'Scanning...' );
        pltProgress.msg1 = pltProgress.add( 'statictext', [10, 30, 100, 40], '0/' + selected.length );
        pltProgress.show();
     
        var result = '';
        for( var i=0; i<selected.length; ++i ){
            pltProgress.msg1.text = ( i + 1 ) + '/' + selected.length;
            result += i + ':\n' + dump( selected[i], 1 );
        }
     
        var file = new File( fileName );
        if ( file.open('w') ){
            file.write( result );
            file.close();
            alert( 'Success: ' + file.fullName );
        } else {
            alert( 'Failed: ' + file.fullName );
        }
    }
     
    function dump( obj, ind ){
        var ret = '';
        ind = ind || 0;
        if ( ind <= maxDepth ){
            for( var p in obj ){
                try{
                    if ( !p.match(reIgnore) ){
                        ret += ( typeof( obj[p] ) == 'object' )
                            ? indent( ind ) + p + ':\n' + dump( obj[p], ind+1 )
                            : ( ( typeof( obj[p] ) != 'string' )
                                ? indent( ind ) + p + ': ' + obj[p] + '\n'
                                : indent( ind ) + p + ': "' + obj[p] + '"\n');
                    } else {
                        ret += indent( ind ) + p + ': "' + obj[p] + '"\n';
                    }
                }
                catch(e){
                    ret += indent( ind ) + p + ': "<forbidden>"\n';
                }
            }
        } else {
            ret += indent( ind ) + '"' + obj + '"\n';
        }
        return ret;
    }
     
    function indent( ind ){
        var ret = '';
        for( var i=0; i<ind; ++i ){
            ret += '  ';
        }
        return ret;
    }
     
    // EOF
    

添付ファイル: filedumpObjInfo.zip 216件 [詳細]

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Fri, 08 Mar 2013 20:11:08 JST (1875d)