1

我需要使用 rb-appscript 创建一个包含项目符号和编号列表的新 Pages 文档。对此,我看到段落有一个名为 list_style 的属性,但我对 rb-appscript 或 applescript 不够熟悉,无法弄清楚如何设置该属性。我已经阅读了由 ASDictionary 生成的文档,但我对 AppleScript 的了解显然太少,无法理解。

对于理解如何使用文档中提供的信息或在页面中使用 rb-appscript 编写列表的任何帮助将不胜感激。

编辑:我没有卡在页面上,textedit 也是一个可行的选择。

4

2 回答 2

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"))

苹果脚本:

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
于 2011-06-24T04:07:28.130 回答
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对象仅返回给定段落的文本,并且其本身不保持任何状态。这不是处理这种情况的最佳方式,但至少所有组件都可以满足您的需求。

于 2011-06-23T15:44:13.013 回答