我正在使用 ExtendScript 构建一个 InDesign 面板,它可以查找文本并将其显示给用户。为此,我使用Character 对象showText()
的方法。问题是有时我正在寻找的文本不会出现,因为即使该方法确实在正确的位置显示了正确的页面,但文本已经溢出并且不可见。
有没有办法检查文本是否可见?理想情况下,如果无法按原样查看文本,我希望能够依靠故事编辑器......
我正在使用 ExtendScript 构建一个 InDesign 面板,它可以查找文本并将其显示给用户。为此,我使用Character 对象showText()
的方法。问题是有时我正在寻找的文本不会出现,因为即使该方法确实在正确的位置显示了正确的页面,但文本已经溢出并且不可见。
有没有办法检查文本是否可见?理想情况下,如果无法按原样查看文本,我希望能够依靠故事编辑器......
要检查单个字符的情况,请参阅 parentTextFrames 属性,它返回一个包含 0 或 1 帧的数组。在极少数情况下,左侧在一个帧中而右侧在以下帧中的插入点,您会得到两帧。
app.selection[0].characters.item(0).parentTextFrames.length
您还可以将角色的索引与故事的最后一个文本容器中的最后一个索引进行比较,例如
app.selection[0].parentStory.textContainers.pop().characters.lastItem().index
当然你应该先看看有没有溢出...
app.selection[0].parentStory.overflows
您可以在 try/catch 语句中调用文本的基线属性。如果文本可见,基线将返回一个值,否则将引发错误。
洛伊克