我需要使用rb-appscript创建一个包含项目符号和编号列表的新Pages文档。看看这个,我看到段落有一个名为list_style的属性,但我对rb-appscript或applescript不太熟悉,无法弄清楚如何设置该属性。我已经阅读了ASDictionary生成的文档,但是我对AppleScript的了解显然太少了。
任何帮助,无论是了解如何使用文档中提供的信息,或者在页面中使用rb-appscript编写列表,都将非常感激。
编辑:我没有被困在页面上,textedit也是一个可行的选择。
答案 0 :(得分:2)
RB-appscript:
require 'rubygems'
require 'appscript'; include Appscript
lst=["a", "b"]
doc = app('Pages').documents[0]
doc.selection.get.paragraph_style.set("Body Bullet")
doc.selection.set(lst.join("\n"))
的AppleScript:
set lst to {"a", "b"}
set text item delimiters to linefeed
tell application "Pages" to tell document 1
set paragraph style of (get selection) to "Body Bullet"
set selection to (lst as text)
end tell
答案 1 :(得分:1)
当前的Apple应用程序对于脚本来说很奇怪。我不使用rb-appscript,但是这里有适用于Applescript的代码,你应该能够改变它的味道和端口:
property dummyList : {"Tyler Durden", "Marla Singer", "Robert Paulson"}
tell application "Pages"
set theDocument to make new document
tell theDocument
set bulletListStyle to ""
set lastListStyle to (count list styles)
repeat with thisListStyle from 1 to lastListStyle
set theListStyle to item thisListStyle of list styles
if name of theListStyle is "Bullet" then
set bulletListStyle to theListStyle
end if
end repeat
repeat with thisItem from 1 to (count dummyList)
set body text to body text & item thisItem of dummyList & return
end repeat
set paraCount to count paragraphs of theDocument
repeat with thisPara from 1 to paraCount
select paragraph thisPara
set theSelection to selection
set paragraph style of theSelection to "Body Bullet"
end repeat
end tell
end tell
这实际上是将每个列表项放在它自己的段落中(这是一个列表项用于所有意图和目的:带有子弹的缩进段落),依次选择每个段落,然后应用列表段落样式的选择。由于某种原因,paragraph
对象只返回给定段落的文本,并且不会保留任何状态。这不是处理这种情况的最佳方式,但至少所有组件都可以满足您的需求。