如何解决如何在 InDesign 中使用 applescript 通过脚本标签选择文本框?
我正在尝试使用 AppleScript 通过使用预先存在的唯一标签来选择 InDesign 文档中预先存在的文本框架,然后修改这些文本框架的填充颜色和大小。 (这是一个更大的工作流程的一部分,根据列表中的值调整大约 100 个这样的框架的这些属性。文本框架的标签也在一个列表中,标签和值的位置在他们各自的列表,着眼于将其放入循环中。)
在我下面的示例代码中,“Fred”是我的文本框的标签,“Secondary 1”是我试图设置为文本框填充颜色的色样的名称,而我尝试在不更改任何其他几何边界的情况下将文本框的宽度指定为 107 毫米。
set labelList to {"Fred","Alice","Bob"}
set valueList to {107,42,42}
tell application "Adobe InDesign 2020"
set myDocument to active document -- presumes you've already done a data merge.
tell myDocument
set testFrame to every text frame whose label is item 1 of labelList
copy geometric bounds of testFrame to {x0,y0,x1,y1}
set geometric bounds of testFrame to {x0,(x0 + item 1 of valueList),y1}
set fill color of testFrame to {"Secondary 1"}
end tell
end tell
失败并出现以下错误:
“无法获取应用程序“Adobe InDesign 2020”的文档 ID 2 的传播 ID 5872 的文本框架 ID 6546 的几何边界}。”编号 -1728 来自文档 id 2 的 {«class txtf» id 6546 的 «class sprd» id 5872 的 «class gbnd»}
错误为我提供了一个文本框 ID 号这一事实让我认为我成功地选择了带有标签“Fred”的文本框,但我没有在以下几行中充分指定某些内容。因此,脚本无法正确读取或设置该文本框的属性。
我遇到过很多脚本示例来创建文本框架并设置它们的属性,并且站点上有一个类似的问题,用于设置文本框架内文本的属性 - 但在这种情况下的答案是文本的属性由不同的对象保存,因此没有太大帮助。
任何建议将不胜感激!
解决方法
声明
set testFrame to every text frame whose label is item 1 of labelList
返回一个列表。如果您将 testFrame 命名为sToProcess 然后
set testFrame to item 1 of testFramesToProcess
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。