【问题标题】:Can I assign multiple values to the appliedCharacterStyle property of InDesign DOM's Text object?我可以为 InDesign DOM 的 Text 对象的 appliedCharacterStyle 属性分配多个值吗?
【发布时间】:2012-05-17 20:45:31
【问题描述】:

我正在编写一个 ExtendScript 脚本,我们用它来准备 InDesign 文件以导出到 XHTML。基本上,我们只是在需要的地方应用字符样式(看看这个简化的例子):

app.activeDocument.findGrep()[0].appliedCharacterStyle = "customStyle";

当我们使用 InDesign 的 Export to XHTML 功能将结果导出到 XHTML 时,我们会得到这样的结果:

<span class="customStyle">I</span>

这正是我们想要的。现在出现的问题是,有时我们想对单个字符应用多种不同的样式,所以我们最终会这样做:

var t = app.activeDocument.findGrep()[0];
t.appliedCharacterStyle = "customStyle1";
t.appliedCharacterStyle = "customStyle2";

显然,customStyle2 会覆盖 customStyle1,这违背了目的。有没有办法解决这个问题?

注意:我尝试改用applyCharacterStyle,但该方法不接受字符串作为参数,只接受CharacterStyle 对象。

【问题讨论】:

    标签: adobe-indesign extendscript


    【解决方案1】:

    “customStyle”只是一个 CSS 类还是已保存样式的名称?我并没有真正使用 inDesign,所以这是推测,但看起来您可以修改 CharacterStyle 对象的各个属性,例如

    var myStyle = new CharacterStyle();
    myStyle.fillColor = "blue";
    myStyle.fontStyle = "verdana";
    ... 
    

    或者其他东西,你应该可以像这样应用它

    t.applyCharacterStyle(myStyle);
    

    这只是基于我在extendscript和photoshop方面的经验的一个有根据的猜测,如果离题很抱歉。

    【讨论】:

    • 你说得对,applyCharacterStyle 接受 CharacterStyle 具有各种属性的对象,包括 fillColorfontStyle 等。但它也可以接收 String 最终成为一个CSS类。这第二个选项是我需要的。实际上,当我们想要修改字体颜色时,更改样式表比修改从 InDesign 文档中提取文本的脚本更有意义……
    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2022-11-10
    • 2017-09-12
    • 1970-01-01
    相关资源
    最近更新 更多