1

箇条書きと番号付きリストを含む新しいPagesドキュメントを作成するには、rb-appscriptを使用する必要があります。これを調べると、段落にlist_styleというプロパティがあることがわかりますが、そのプロパティを設定する方法を理解するには、rb-appscriptまたはapplescriptに精通していません。ASDictionaryによって生成されたドキュメントを読みましたが、AppleScriptに関する私の知識は明らかに少なすぎて理解できません。

ドキュメントに記載されている情報の使用方法を理解するか、ページでrb-appscriptを使用してリストを作成する方法について、ご協力いただければ幸いです。

編集:私はページにとらわれていません、テキストエディットも実行可能なオプションです。

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

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
于 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 に答える