Indesign 脚本示例

ContractedBlock.gif ExpandedBlockStart.gif Code
ExpandedBlockStart.gifContractedBlock.giffunction myReadPMTags(myStory){
var myName, myString, myStyle, myStyleName;
var myDocument = app.documents.item(0);
//Reset the findGrepPreferences to ensure that previous settings
//
do not affect the search.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences 
= NothingEnum.nothing;
//Find the tags (since this is a JavaScript string,
//
the backslashes must be escaped).
app.findGrepPreferences.findWhat = "(?i)^<\\s*\\w+\\s*>";
var myFoundItems = myStory.findGrep();
ExpandedSubBlockStart.gifContractedSubBlock.gif
if(myFoundItems.length != 0){
var myFoundTags = new Array;
ExpandedSubBlockStart.gifContractedSubBlock.gif
for(var myCounter = 0; myCounter<myFoundItems.length; myCounter++){
myFoundTags.push(myFoundItems[myCounter].contents);
}

myFoundTags 
= myRemoveDuplicates(myFoundTags);
//At this point, we have a list of tags to search for.
ExpandedSubBlockStart.gifContractedSubBlock.gif
for(myCounter = 0; myCounter < myFoundTags.length; myCounter++){
myString 
= myFoundTags[myCounter];
//Find the tag using findWhat.
app.findTextPreferences.findWhat = myString;
//Extract the style name from the tag.
myStyleName = myString.substring(1, myString.length-1);
//Create the style if it does not already exist.
ExpandedSubBlockStart.gifContractedSubBlock.gif
try{
myStyle 
= myDocument.paragraphStyles.item(myStyleName);
myName 
= myStyle.name;
}

ExpandedSubBlockStart.gifContractedSubBlock.gif
catch (myError){
ExpandedSubBlockStart.gifContractedSubBlock.gifmyStyle 
= myDocument.paragraphStyles.add({name:myStyleName});
}

//Apply the style to each instance of the tag.
app.changeTextPreferences.appliedParagraphStyle = myStyle;
myStory.changeText();
//Reset the changeTextPreferences.
app.changeTextPreferences = NothingEnum.nothing;
//Set the changeTo to an empty string.
app.changeTextPreferences.changeTo = "";
//Search to remove the tags.
myStory.changeText();
//Reset the find/change preferences again.
app.changeTextPreferences = NothingEnum.nothing;
}

}

//Reset the findGrepPreferences.
app.findGrepPreferences = NothingEnum.nothing;
}

ExpandedBlockStart.gifContractedBlock.gif
function myRemoveDuplicates(myArray){
//Semi-clever method of removing duplicate array items; much faster
//
than comparing every item to every other item!
var myNewArray = new Array;
myArray 
= myArray.sort();
myNewArray.push(myArray[
0]);
ExpandedSubBlockStart.gifContractedSubBlock.gif
if(myArray.length > 1){
ExpandedSubBlockStart.gifContractedSubBlock.gif
for(var myCounter = 1; myCounter < myArray.length; myCounter ++){
ExpandedSubBlockStart.gifContractedSubBlock.gif
if(myArray[myCounter] != myNewArray[myNewArray.length -1]){
myNewArray.push(myArray[myCounter]);
}

}

}

return myNewArray;
}

转载于:https://www.cnblogs.com/luhaibin731/archive/2009/02/16/Robin.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值