NiftyServe FPRINT 2番会議室で連載した,「QuarkXPressを操ろう」の内容をそのまま載せています。
QuarkXPressを操ろう(その7)「tell application(1)」
QuarkXPressを操ろう(その8)「tell application(2)」
QuarkXPressを操ろう(その9)「tell application(3)」
QuarkXPressを操ろう(その10)「default document,document,master
documentに共通なプロパティ」
QuarkXPressを操ろう(その11)「ガイドラインのロックアンロック」
QuarkXPressを操ろう(その12)「新規ドキュメントの作成」
02676/02677 GGC00677 [,た] QuarkXPressを操ろう(その7)
( 2) 96/03/03 16:02
「tell application(1)」
では,具体的なスクリプトを作っていきましょう。今回は,tell application
です。
あっ,その前に,AppleScriptでまだできないことを確認しておきましょう。
それは,QXをインストールすると,フォルダに「QXP3.3リリースノート」とい
うのができていると思います。その4章に,QX J版でできない機能が出ていま
すので,一通り読んで下さい。つまり,日本語独自の組版ルールを制御するこ
とはまだできないということです。これを理解してから始めましょう。
オブジェクト,applicationのプロパティ一覧です。
------------------------------------------------------------
編集-環境設定-アプリケーション
ディスプレイ
複数モニタへのタイル tile to multiple monitors
ドキュメントのフルスクリーン表示 maximize document bounds
オフスクリーンでの描画 offscreen draw
カラーTIFF color TIFF resolution
グレイTIFF gray TIFF resolution
モニタ修正
カラー調整 calibrated pantone
スクロール
遅〜速 scroll speed
高速スクロール ?不明 知っている人は教えて下さい
ライブスクロール live scroll
テキストのドラッグ&ドロップ ?不明 知っている人は教えて下さい
引用符 quote types
引用符の自動変換 smart quotes
ガイドの色
マージン margin guide color
ルーラー ruler guide color
グリッド grid guide color
自動保存 auto save
?分おきに auto save interval
自動バックアップ auto backup
保管?リビジョン total backups
保存フォルダ backup destination
ライブラリへの自動保存 auto lib save
ペーストボードの幅 pasteboard width
トンボまでの距離 registration marks offset
------------------------------------------------------------
テキスト取り込み
スタイルシートを含む import styles
引用符を変換 convert quotes
------------------------------------------------------------
表示
QuarkXPressについて about showing
クリップボード表示 clipboard showing
カラーパレット表示 colors showing
レイアウトパレット表示 doc layout showing
ヘルプ表示 help showing
メジャー表示 measurements showing
スタイルシート表示 style sheets showing
ツール表示 tools showing
トラップパレット表示 trap information showing
------------------------------------------------------------
バージョン version
------------------------------------------------------------
その他(3.1の名残なのか?)
低解像度TIFFで表示 full resolution import
ページグラバーハンド page grabber
GGC00677 [,た] 鎌田 幸雄
02677/02677 GGC00677 [,た] QuarkXPressを操ろう(その8)
( 2) 96/03/03 16:02
「tell application(2)」
では,前回をもとに作ったスクリプトです。
編集-環境設定-アプリケーションの既定値を変更してしまいますので,現在値
をどこかに控えてから実行して下さい。
------------------------------------------------------------------
tell application "QuarkXPress"
activate
set tile to multiple monitors to true
set maximize document bounds to true
set offscreen draw to true
set color TIFF resolution to use 8 bit --(use 16 bit/use 32 bit)
set gray TIFF resolution to use 16 levels --(use 256 levels)
set calibrated pantone to true
set scroll speed to 1 --(1〜144)
set live scroll to true
set quote types to 0
set smart quotes to true
set margin guide color to {0, 0, 65535}--(デフォルトは{0, 0, 65535})
set ruler guide color to {0, 65535, 0}--(デフォルトは{0, 39321, 0})
set grid guide color to {65535, 0, 0}--(デフォルトは{65535, 0, 65535})
set auto save to true
set auto save interval to "10"
set auto backup to true
set total backups to 5
--set backup destination to alias {"DataHD:名称未設定フォルダ:"}
set auto lib save to true
set pasteboard width to 80
set registration marks offset to 9
set import styles to true
set convert quotes to true
set about showing to true
set clipboard showing to true
set colors showing to true
set doc layout showing to true
set help showing to true
set measurements showing to true
set style sheets showing to true
set tools showing to true
set trap information showing to true
set y to version --versionの値をyにセットした
set full resolution import to false
set page grabber to false
end tell
------------------------------------------------------------------
動作確認しておりますので,おためし下さい。
多少,補足することがあります。それは,次回にしたいと思います
GGC00677 [,た] 鎌田 幸雄
02687/02687 GGC00677 [,た] QuarkXPressを操ろう(その9)
( 2) 96/03/05 23:16
「tell application(3)」
前回の補足事項です。値を変えてみて,アレッ!?と思うことがあ
りませんでしたでしょうか? 例えば,・・・
backup destination
(?_?)命令しても変更されない
quote types
(?_?)0〜4セットできると思ったら0,1しか受け付けない
full resolution import
(?_?)QuarkのAS(AppleScript)の本に載ってない。
用語説明に載っている。
(?_?)falseにしても72dpiで取り込まれる。
page grabber
(?_?)falseにしても,ページグラバーハンドは使用できる
このように,本に書いてあるからといって,その通りに実行でき
るとは限りません。指定方法が本とは異なる場合もあるし,バグの
場合もあるようです。ですから,試行錯誤となってしまうのです。
実は,このtell applicationで,もっと実用的なサンプルスクリ
プトを作成しようとしたのですが,backup destinationが変わらず
断念しました。
次回以降,サンプルスクリプトを例にして進めていきたいと思い
ます。複数のオブジェクトにtellすると思いますが,その都度,プ
ロパティの説明していくつもりです。もし,こういったことを例題
にあげて欲しいという要望がありましたら,コメントでも,メール
でも結構ですから教えていただきたいと思います。また,発言ペー
スも週1回を目指していくつもりですが,遅くなる場合もあると思
います。ご容赦ください。
GGC00677 [,た] 鎌田 幸雄
02707/02708 GGC00677 [,た] QuarkXPressを操ろう(その10)(長文101行)
( 2) 96/03/09 00:24
<1>default document,document,master documentに共通なプロパティ
表示関連
サイズ view scale
特殊キャラクタ表示 invisibles showing
ルーラー表示 rulers showing
ベースライングリッド表示 baseline grid showing
ガイド表示 guides showing
新規-ドキュメント
マージンガイド
天 top margin
地 bottom margin
左 left margin
右 right margin
見開き facing pages
内 inside margin
外 outside margin
ページサイズ
縦 page height
横 page width
コラム
コラム数 column count
コラム間隔 gutter width
テキストボックスの自動作成 automatic text box
環境設定-一般
横の単位 horizontal measure
縦の単位 vertical measure
自動ページ挿入 auto page insertion location
フレーム frame inside
ガイド guides in front
ルーラー適用範囲(スプレッド) item spread coords
自動画像取り込み auto picture import
マスターページアイテム keep master page items
ポイント/インチ points per inch
シセロ/cm ciceros per centimeter
ガイド吸着距離 snap distance
グリークテキスト greek below
画像グリーキング greek pictures
精密ブレンド表示 low quality blends
制限グループの自動作成 auto constrain
環境設定-文字
上付き文字
オフセット superscript offset
縦比率 superscript vertical scale
横比率 superscript horizontal scale
下付き文字
オフセット subscript offset
縦比率 subscript vertical scale
横比率 subscript horizontal scale
スモールキャップス
縦比率 small caps vertical scale
横比率 small caps horizontal scale
ベースライングリッド
始点 baseline grid start
増幅値 baseline grid increment
行送り
行送りの自動設定 auto leading
モード typesetting leading mode
行送りの保持 maintain leading
合字
合字 ligatures on
合字解除 maximum ligature track
自動カーニング auto kern
自動カーニングのテキストサイズ kern above
フレックススペース幅 flex space width
自動ハイフンの方法 enhanced hyphenation method
環境設定-ツール
画面表示
最小値 minimum view scale
最大値 maximum view scale
増幅値 view scale increment
環境設定-トラップ
自動トラップの方法 trap absolute
自動値 automatic trap amount
不特定カラー indeterminate trap amount
オーバープリントの限界 overprint limit
白を無視 ignore white
プロセストラップ process trap
その他
ユーザ辞書のパス auxiliary dictionary path
デフォルトのツールモード default tool mode
デフォルトのスプレッドの数 default spread count
スプレッドの幅 spread width
スプレッドの高さ spread height
ガイドラインのロック lock guides
プリントフォントサイズを整数にするか,分数を許すか(よく解らない?)
fractional character widths
<2>default documentには無く,document,master documentに共通なプロパ
ティ
現在選択されているボックス current box
現在表示されているページ current page
現在表示されているスプレッド current spread
ファイルパス file path
フローバージョン flow version
フォントリスト font list
ページルーラー原点 page rule origin(本には載っていない)
スプレッドルーラー原点 spread rule origin
ツールモード tool mode
GGC00677 [,た] 鎌田 幸雄
02708/02708 GGC00677 [,た] QuarkXPressを操ろう(その11)
( 2) 96/03/09 00:25
あまり,プロパティばかりでは飽きますので,ここらで使えるスクリプトを
披露しましょう。使用するプロパティはただ一つ,lock guidesです。
つまり,ドキュメントのガイドラインのロックアンロックを制御します。
まずは,最もシンプルなものです。
----------------------------------------------------------------------
tell application "QuarkXPress"
activate
tell document 1
set lock guides to true -- unlock の時は false
end tell
end tell
----------------------------------------------------------------------
でも,誰にでも使ってもらうことを考えると不親切ですね。ですから,これに
お肉を付けてライブラリ登録に値するものにしてみましょう
--guides lock/unlock--------------Copyright 1996 Yukio Kamata --------
tell application "QuarkXPress"
activate
if not (exists document 1) then
beep
display dialog "QXPのドキュメントが開かれていません。"
buttons {"中止"}
default button 1 with icon 0
return
end if
display dialog "ガイドロック/ロック解除 適用ドキュメント?"
buttons {"New",
"Master", "Document"} default button {"Document"}
with icon 1
set ans_bttn to button returned of result
if ans_bttn is "New" then
tell default document 1
if lock guides is true then
set lock guides to false
display dialog "これから作成するドキュメントのガイドはロックさ
れません" buttons {"OK"} default button 1 with icon 1
else
set lock guides to true
display dialog "これから作成するドキュメントのガイドはロックさ
れます" buttons {"OK"} default button 1 with icon 1
end if
end tell
end if
if ans_bttn is "Master" then
tell master document 1
if lock guides is true then
set lock guides to false
display dialog "マスタードキュメントのガイドをロック解除しまし
た" buttons {"OK"} default button 1 with icon 1
else
set lock guides to true
display dialog "マスタードキュメントのガイドをロックしました"
buttons {"OK"} default button 1 with icon 1
end if
end tell
end if
if ans_bttn is "Document" then
tell document 1
if lock guides is true then
set lock guides to false
display dialog "ドキュメントのガイドをロック解除しました"
buttons {"OK"} default button 1 with icon 1
else
set lock guides to true
display dialog "ドキュメントのガイドをロックしました"
buttons
{"OK"} default button 1 with icon 1
end if
end tell
end if
end tell
----------------------------------------------------------------------
(display dialog〜icon X は一行になるよう修整して下さい。8ヶ所ありま
す。本来一行で書かれていますが,送信上改行されてしまいます。今後,こう
いうケースをどの様に表記するか,考えます。)
使用しているプロパティは lock guides だけです。display dialogやif文,
return,existsなどはASの解説書でお調べ下さい。display dialogは使用者との
やりとりで頻繁に使用されますので大切です。
GGC00677 [,た] 鎌田 幸雄
02736/02736 GGC00677 [,た] QuarkXPressを操ろう(その12)
( 2) 96/03/12 22:10
新規ドキュメントの作成
新規ドキュメントメニューで設定することをASでやってみましょう。
----------------------------------------------------------------------
tell application "QuarkXPress"
activate
tell default document 1
set page height to "297mm" --ページ縦の長さ
set page width to "210mm" --ページ横の長さ
set top margin to "25mm" --天マージン
set bottom margin to "20mm" --地マージン
set right margin to "15mm" --右マージン
set left margin to "15mm" --左マージン
set facing pages to true --見開きかどうか
set column count to "1" --コラム数
set gutter width to "10mm" --コラム間隔
set automatic text box to true --テキストボックスの自動作成
end tell
--make document at beginning
end tell
----------------------------------------------------------------------
上記を実行すると,新規ドキュメントのウインドウに出てくる設定値が変わり
ます。
さらに,この値をもとに,ドキュメントを作成するのが makeコマンドです。
--make document at beginning
の--を削除して実行して下さい。(--以下はASではコメント文になります)
ウインドウが開き,設定したドキュメントが開かれます。
なお,makeコマンドの対象は,ここでは,applicationになりますので,end
tellで挟まれたところに書かなくてはいけません。
〜document 1 とか,at beginningについて
なんで1とか付くのでしょうか。それは,オブジェクトを特定するためで
す。
ドキュメントが複数開いていたり,ボックスも普通は複数あるでしょう。そ
れに対してどれが処理対象になるかを教えてあげなければいけません。そのた
めに,番号をつけたり,相対的な位置(最初,前,次・・・)を書いたりしま
す。[参照形式](Object Reference)と呼ばれています。詳しくは,解説書等
をみてお調べください。
上記の場合,default documentはその意味からも1しかありません。makeの
場合は,既にドキュメントが複数ひらかれている場合がありますので,at
beginning (at front)にすると一番上に,at end (at back)とすると一番下に
作成されます。複数の同一オブジェクトがあったとすると,一番上,つまり最
後に作成したものが1になり,次が2・・となります。複数のレイヤーがあっ
て,一番上が1,次が2と考えると理解しやすいと思います。
さらに肉付けしてみます。
----------------------------------------------------------------------
tell application "QuarkXPress"
activate
tell default document 1
display dialog "ページサイズ縦 ? mm" default answer "297"
→
buttons {"Cancel", "OK"} default button {"OK"}
with icon 1
if button returned of result is "Cancel" then
return
else
set page height to text returned of result &"mm"
set page width to "210mm"
set top margin to "25mm"
set bottom margin to "20mm"
set right margin to "15mm"
set left margin to "15mm"
set facing pages to true
set column count to "1"
set gutter width to "10mm"
set automatic text box to true
end if
display dialog "設定状況は," &return &"ページ縦"
&page →
height &"です。"
if button returned of result is "キャンセル" then return
end tell
make document at beginning
end tell
----------------------------------------------------------------------
[注:→は本来一行で書くところを,送信上改行しましたよという印にします
エディタで一行にするか,option + return するかしてください。
「命令の途中だけど,改行したい」時,option + returnで改行してください]
使えるスクリプトではありませんが,いろいろ手を加えられると思います
GGC00677 [,た] 鎌田 幸雄