InDesign Applescript使文本框架具有属性

时间:2014-07-22 02:57:00

标签: macos applescript adobe-indesign

我正在编写一个小的Applescript,它将包含一些内容的文本框添加到InDesign文档中。我试图在文本框中指定内容的属性,但没有应用任何规范,我得到默认值。这些事件没有引发任何错误,所以我有点迷失。

任何帮助将不胜感激。

这就是我所拥有的:

tell application "Adobe InDesign CC 2014"
activate
tell active document
    set xFrame1 to make text frame with properties {justification:center align, point size:5, font:"Arial", geometric bounds:{50, 100, 300, 400}}
    set contents of xFrame1 to "Please work"
end tell

告诉

3 个答案:

答案 0 :(得分:0)

我做的第一个改变是你的几何界限......

  

几何边界:{50,100,300,400}

我把它改成了......

  

几何界限:{“50分”,“100分”,“300分”,“400分”}

请注意,我正在指定由引号括起来的度量单位。这很重要,因为您可能无法始终预测文档设置的标尺单位。

此外,正如上面的评论中所述,您试图将属性应用于它不理解的文本框架。相反,您需要将它们应用于文本框架的故事。下面的完整工作示例......

tell application "Adobe InDesign CC 2014"

    activate -- in this instance, activate is optional and personally I don't usually use it unless required by the routine I'm using.
    tell document 1

         set myText to "Please work!"
         set xFrame1 to make text frame at page 1 of spread 1 with properties {geometric bounds:{"50 pts", "100 pts", "300 pts", "400 pts"}, contents:myText}

         set theStory to parent story of contents of xFrame1
         set properties of theStory to {justification:center align, point size:5, applied font:"Arial"}

    end tell
end tell

答案 1 :(得分:0)

我设法通过定位文本框架来解决它。

                tell xFrame1
                    tell every line
                        set applied font to "Arial"
                        set point size to 10
                    end tell
                end tell

答案 2 :(得分:0)

我遇到了类似的问题,我意识到这可能是最干净的方法(除了应用单独的段落样式)。希望将来可以帮助某人。

tell application "Adobe InDesign CC 2014"
    activate
    tell active document
        tell page 1
            set xFrame1 to make text frame with properties {geometric bounds:{50, 100, 300, 400}}
            set contents of xFrame1 to "Please work"
            tell first text of xFrame1
                set applied font to "Arial"
                set point size to 5
                set justification to center align
            end tell
        end tell
    end tell
end tell

请注意,我必须告诉页面 - 对于我的问题,我必须循环浏览文档中的所有页面并在每个页面上放置文本。