24,854
社区成员
发帖
与我相关
我的任务
分享
/*
需要一个这样的功能——一次替换所有样式中某个属性
比如我现在有10个段落样式,他们的字体都是同一个字体,(注意,我这里只关注他们字体相同,肯定有其他属性也是一样的)我现在需要的是,修改所有的段落样式,把这些段落样式的字体全部替换成另一种字体。我该怎么一次搞定?
有人会说用查找替换,是的,用查找替换可以把文本字体改过来,但是样式还是原来的设定,这个不会被查找替换所更改,只不过在被替换的地方,段落样式后面多了一个 + 号。
有法子吗?
PS:其实我想讨论的不只是一次改变段落样式中的字体设置,(其实只改字体用查找替换,CS3以上版本选中下面的样式更改就可以了)而是能一起改变段落样式中的其他任意一个格式设定。比如在多国语言排版中,改的比较多的文本语言,英文用英语,换做其他语言则也要相应更改,还有很多语言不喜欢连笔字和连字,这也要全部改。如果是中日韩文,段落样式中的中文排版设定,对齐方式,CJK段落书写器等等都要全部改,很显然,ID提供的方法只能一个一个的选中编辑后修改,但其实我们要修改的设定对于所有段落样式都是一样,为什么不想法子一起改呢?
*/
// 源程序 by SKIN
// 应用的字体表示法为:字体系列\t字体样式
myFont = "宋体\tRegular"; //原应用字体
myNewFont = "黑体\tRegular"; // 应用新字体
var myDoc = app.activeDocument;
// i 不能从 0 开始,否则出现 Invalid request on root style 错误提示,导致脚本中断运行
// 因为段落样式列表里第一个 0 是 [No Paragraph Style] (无段落样式),无任何属性,必须跳过
for(var i = 1; i < myDoc.paragraphStyles.length - 1; i++){
if(myDoc.paragraphStyles[i].appliedFont = myFont ){ //如果是原应用字体则修改为新字体
with(myDoc.paragraphStyles[i]){
appliedFont = myNewFont;
}
}
}