在 Applescript 中,仅在 TextEdit 中查找粗体字会导致应用程序挂起
In Applescript, finding only bold words in TextEdit causes app to hang
只是想找到一种普通的 applescript 方法来将变量设置为文档的所有粗体字。我一直在寻找在 Word、Pages & TextEdit 中使用 Applescript 的方法,而 TextEdit 似乎是唯一的方法(尽管可能是错误的)。
好消息是下面的脚本可以工作,但坏消息是如果文档超过 2 页,假设有 ~50 个粗体字,TextEdit 就会挂起。
还有其他方法可以使用 Applescript 获取粗体字词吗?
tell application "TextEdit"
return words of text of document 1 where font contains "Bold"
end tell
谢谢
可能是 TextEdit 运行得异常缓慢。我只是将以下代码用于一个包含 3600 个单词的文档,其中穿插了一些 运行dom 粗体字。花了太长时间。我会考虑使用不同的可编写脚本的应用程序,例如 Tex-Edit Plus(仍然很强大,仍然很棒)。
我同时使用 "Black" 和 "Bold" 的原因是,当您将文本设置为粗体时(至少在 TextEdit 中),某些字体使用 "Black" 变体而不是 "Bold"。需要说明的是,下面的代码 有效 ,但速度非常慢。如果您等待的时间足够长,您的代码也可能有效。 :-( 但请继续阅读 :-)
tell application "TextEdit"
tell document 1
set thisManyRuns to count of attribute run of text of it
repeat with r from 1 to thisManyRuns
if font of attribute run r of text of it contains "Black" then
--do stuff
set color of attribute run r of text of it to {35555, 0, 0}
end if
if font of attribute run r of text of it contains "Bold" then
--do stuff
set color of attribute run r of text of it to {35555, 0, 0}
end if
end repeat
end tell
end tell
我只是 运行 Tex-Edit Plus 中的这段文字,它在大约两秒钟内完成:
tell application "Tex-Edit Plus"
tell document 1
set thisManyRuns to count of style run of text of it
repeat with r from 1 to thisManyRuns
set thisStyle to style of style run r of text of it
if on styles of thisStyle contains bold then
--do stuff
set color of style run r of text of it to {0, 35555, 0}
end if
end repeat
end tell
end tell
...所以你可能想切换到那个。只是一个警告,我 不得不 在查询 on styles
属性 之前将 style
放入 thisStyle
变量——它会如果我试图在一行中这样做,那将不起作用。我正在处理一个 rtf 文件。
只是想找到一种普通的 applescript 方法来将变量设置为文档的所有粗体字。我一直在寻找在 Word、Pages & TextEdit 中使用 Applescript 的方法,而 TextEdit 似乎是唯一的方法(尽管可能是错误的)。
好消息是下面的脚本可以工作,但坏消息是如果文档超过 2 页,假设有 ~50 个粗体字,TextEdit 就会挂起。
还有其他方法可以使用 Applescript 获取粗体字词吗?
tell application "TextEdit"
return words of text of document 1 where font contains "Bold"
end tell
谢谢
可能是 TextEdit 运行得异常缓慢。我只是将以下代码用于一个包含 3600 个单词的文档,其中穿插了一些 运行dom 粗体字。花了太长时间。我会考虑使用不同的可编写脚本的应用程序,例如 Tex-Edit Plus(仍然很强大,仍然很棒)。 我同时使用 "Black" 和 "Bold" 的原因是,当您将文本设置为粗体时(至少在 TextEdit 中),某些字体使用 "Black" 变体而不是 "Bold"。需要说明的是,下面的代码 有效 ,但速度非常慢。如果您等待的时间足够长,您的代码也可能有效。 :-( 但请继续阅读 :-)
tell application "TextEdit"
tell document 1
set thisManyRuns to count of attribute run of text of it
repeat with r from 1 to thisManyRuns
if font of attribute run r of text of it contains "Black" then
--do stuff
set color of attribute run r of text of it to {35555, 0, 0}
end if
if font of attribute run r of text of it contains "Bold" then
--do stuff
set color of attribute run r of text of it to {35555, 0, 0}
end if
end repeat
end tell
end tell
我只是 运行 Tex-Edit Plus 中的这段文字,它在大约两秒钟内完成:
tell application "Tex-Edit Plus"
tell document 1
set thisManyRuns to count of style run of text of it
repeat with r from 1 to thisManyRuns
set thisStyle to style of style run r of text of it
if on styles of thisStyle contains bold then
--do stuff
set color of style run r of text of it to {0, 35555, 0}
end if
end repeat
end tell
end tell
...所以你可能想切换到那个。只是一个警告,我 不得不 在查询 on styles
属性 之前将 style
放入 thisStyle
变量——它会如果我试图在一行中这样做,那将不起作用。我正在处理一个 rtf 文件。