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
|
-
|
|
|
|
|
|
|
|
|
-
|
|
!
|
|
-
|
|
|
-
|
!
!
-
|
|
-
-
-
-
|
|
|
|
|
-
|
!
!
-
|
!
!
-
|
!
|
!
-
|
-
|
!
|
!
| #target 'InDesign'
#includepath "~/AppData/Roaming/Adobe/JavaScript/lib"
#include "ominoDialogMaker.jsx"
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;
}
|