Created
September 21, 2010 01:37
-
-
Save milligramme/589019 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//inddドキュメント内の[段落スタイルなし]の段落にスタイルをあてる | |
var doc=app.documents[0]; | |
var storyObj=doc.stories; | |
for(var i=0; i < storyObj.length; i++){ | |
var paraObj=storyObj[i].paragraphs; | |
for(var ii=0; ii < paraObj.length; ii++){ | |
if(paraObj[ii].appliedParagraphStyle.name=="[段落スタイルなし]"){ | |
main(); | |
} | |
} | |
} | |
function main(){ | |
//$.writeln("before_"+getObjectKey(paraObj[ii]).length); | |
//とりあえず段落スタイル作る | |
var pstyle=doc.paragraphStyles.add(); | |
//参照渡しでないオブジェクトの複製をつくって | |
//不要なプロパティをあらかじめ削除 | |
var cloneObj=creatClone(paraObj[ii].insertionPoints[0]); | |
delete cloneObj.index; | |
delete cloneObj.parent; | |
delete cloneObj.properties; | |
//手動カーニングのとき"Manual"を戻そうとするとエラーになるのでそれ以外に | |
// "Metrics - Roman Only"(和文等幅), "Metrics", "Optical", "None" | |
if(cloneObj.kerningMethod=="Manual"){ | |
cloneObj.kerningMethod="None"; | |
} | |
var prop=getObjectKey(cloneObj); | |
for(var iP=prop.length-1; iP >= 0; iP--){ | |
//段落スタイルに使えるプロパティかkeyをチェックする | |
//okなら段落スタイルに当てていく | |
try{ | |
pstyle[prop[iP]]=cloneObj[prop[iP]]; | |
} | |
catch(e){//$.writeln("import_err__"+[prop[iP]]); | |
} | |
} | |
if(pstyle){ | |
paraObj[ii].appliedParagraphStyle=pstyle; | |
//$.writeln("after_"+getObjectKey(pstyle).length); | |
} | |
} | |
//オブジェクトのプロパティのkeyを配列でかえす | |
function getObjectKey(obj){ | |
var arr=[]; | |
for(var i in obj){ | |
arr.push(i); | |
} | |
return arr; | |
} | |
//ベース段落から不要なものを削除する用のオブジェクトの分身を作成 | |
function creatClone(srcObj){ | |
var newObj={} | |
var obj={}; | |
for(var i in srcObj){ | |
try{ | |
obj[i]=uneval(srcObj[i]) | |
for(var i in obj){ | |
newObj[i]=eval(obj[i]) | |
} | |
}catch(e){} | |
} | |
return newObj | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment