用于丢失文本样式的脚注的Indesign脚本
Indesign Script for footnotes losing text styles
我正在InDesign 5中处理脚注。我设法将文本转换为脚注,但我的问题是在这个过程中它们失去了风格。
这是我正在使用的脚本:
Application.prototype.main = function(){
if ( this.documents.length <= 0 ) return;
var tg = this.selection[0] || this.activeDocument;
if( 'appliedFont' in tg ) tg = tg.parent;
if( tg.constructor == TextFrame ){ tg = tg.parentStory ; }
if(! ('findGrep' in tg) ) return;
var fnPatterns = ["@FOOTNOTES_BEGIN@([''s''S]*?)@FOOTNOTES_END@", "@footnotes_begin@([''s''S]*?)@footnotes_end@"];
var count = 0;
for(patterCounter = 0; patterCounter < fnPatterns.length; patterCounter++){
fnPattern = fnPatterns[patterCounter];
var fnFinds = (function(){
this.findGrepPreferences = this.changeGrepPreferences = null;
this.findGrepPreferences.findWhat = fnPattern;
var ret = tg.findGrep();
this.findGrepPreferences = this.changeGrepPreferences = null;
return ret;
}).call(this);
var fnFind, fnText, rg = new RegExp(fnPattern), ip, fnParent, fn, count;
while( fnFind=fnFinds.pop() ){
fnText = fnFind.contents.match(rg)[1];
fnParent = fnFind.parent.getElements()[0];
ip = fnFind.insertionPoints[0].index;
try {
fnFind.remove();
fn = fnParent.footnotes.add(LocationOptions.BEFORE, fnParent.insertionPoints[ip]);
fn.texts[0].insertionPoints[-1].contents = fnText;
++count;
}
catch(_){}
}
}
alert((count)? (count+" footnote(s) successfully added."): "No footnote added. Make sure you use the relevant pattern.");
}
app.doScript('app.main();', ScriptLanguage.javascript,
undefined, UndoModes.entireScript, app.activeScript.displayName);
脚注添加正确,只是失去了风格。在使用脚本之前,文本显示得很完美,但在使用脚本之后,脚注样式就消失了。
这是xml输入的一个示例:
....text@FOOTNOTES_BEGIN@<italic>Text</italic> More text@FOOTNOTES_END@
我是InDesign脚本的新手。。。我一直在寻找答案,尝试了很多东西,但不知怎么的,我就是做不到有什么帮助吗?感谢:)
这是您的问题:
fn.texts[0].insertionPoints[-1].contents = fnText;
contents
只为您提供纯文本:一个String或SpecialCharacters枚举器,其中"String"将被视为Javascript字符串。
改为使用move
方法(您还必须重写match
行,因为它也适用于并返回纯Javascript字符串)。move
移动本地InDesign文本,包括所有格式。
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 不显示带有本地json文件数据的谷歌地图脚本
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 从远程脚本获取用户IP
- 如何根据时间运行不同的脚本
- 如何将字符串值从php页面发送到java脚本页面
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 当脚本由system.js加载时,如何要求('electron')
- HTML标记在脚本标记中工作
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 显示时间的脚本
- ng应用程序使脚本无限运行
- 用于丢失文本样式的脚注的Indesign脚本
- 谷歌脚本:与脚注交互
- InDesign脚本:脚注失去了风格