分类
indesign

indesign查找替换GREP脚本实现

因为要做几百本电子书,格式设置就成为大麻烦。重复劳动,肯定是要用indesign的脚本来实现,要不太累,而且容易出错。

于是研究了下官方的手册,写了以下javascript代码,完美实现目的:

var myDocument = app.documents.item(0);

//清除GREP的设置

app.findGrepPreferences = NothingEnum.nothing;

app.changeGrepPreferences = NothingEnum.nothing;

//设置搜索参数

app.findChangeGrepOptions.includeFootnotes = false;

app.findChangeGrepOptions.includeHiddenLayers = false;

app.findChangeGrepOptions.includeLockedLayersForFind = false;

app.findChangeGrepOptions.includeLockedStoriesForFind = false;

app.findChangeGrepOptions.includeMasterPages = false;

//查找的正则表达式

app.findGrepPreferences.findWhat = “(\@.*\@)”;

//app.changeGrepPreferences.changeTo = “\1”;

//app.changeTextPreferences.changeTo = “1111”;

//Apply the change to 24-point text only.

//app.findGrepPreferences.pointSize = 24;

//app.changeGrepPreferences.underline = true;

//替换的正则表达式

myParagraphStyle = myDocument.paragraphStyles.item(“一级标题”);

app.changeGrepPreferences.appliedParagraphStyle=myParagraphStyle;

myDocument.changeGrep();

//查找完成后清除GREP设置

app.findGrepPreferences = NothingEnum.nothing;

app.changeGrepPreferences = NothingEnum.nothing;

//查找二级标题的正则表达式

app.findGrepPreferences.findWhat = “(#.*#)”;

//替换的正则表达式

myParagraphStyle = myDocument.paragraphStyles.item(“二级标题”);

app.changeGrepPreferences.appliedParagraphStyle=myParagraphStyle;

myDocument.changeGrep();

//查找完成后清除GREP设置

app.findGrepPreferences = NothingEnum.nothing;

app.changeGrepPreferences = NothingEnum.nothing;

var myDocument = app.activeDocument;

//清除查找替换的设置

app.findTextPreferences = NothingEnum.nothing;

app.changeTextPreferences = NothingEnum.nothing;

//Set the find options.

app.findChangeTextOptions.caseSensitive = false;

app.findChangeTextOptions.includeFootnotes = false;

app.findChangeTextOptions.includeHiddenLayers = false;

app.findChangeTextOptions.includeLockedLayersForFind = false;

app.findChangeTextOptions.includeLockedStoriesForFind = false;

app.findChangeTextOptions.includeMasterPages = false;

app.findChangeTextOptions.wholeWord = false;

//查找,替换

app.findTextPreferences.findWhat = “@”;

app.changeTextPreferences.changeTo = “”;

myDocument.changeText();

//清除查找替换的设置

app.findTextPreferences = NothingEnum.nothing;

app.changeTextPreferences = NothingEnum.nothing;

//查找,替换

app.findTextPreferences.findWhat = “#”;

app.changeTextPreferences.changeTo = “”;

myDocument.changeText();

//清除查找替换的设置

app.findTextPreferences = NothingEnum.nothing;

app.changeTextPreferences = NothingEnum.nothing;

这个代码,用VB来写也是差不多的。感觉用哪种代码来写都差不多,语言的关键词不一样。

发表评论