因为要做几百本电子书,格式设置就成为大麻烦。重复劳动,肯定是要用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来写也是差不多的。感觉用哪种代码来写都差不多,语言的关键词不一样。