[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:875) Re: properties of margin preferences of page x
書き忘れてた。
とりあえず、汎用性なし。
tell application "InDesign CS_J"
tell document 1
tell document preferences
set toji to page binding
end tell
set tmp to {}
repeat with i from 1 to count every page
set page_obj to page i
set {m_top, m_left, m_bottom, m_right} to my get_margin(page_obj, toji) --ページのマージンをGET
set tmp to tmp & {(name of page_obj), m_left}
end repeat
get tmp
end tell
end tell
--ページのマージンをgetする
(*
のだけど、InDesign CSのバグで見開きスプレッドの右も左も同じ値になる<あほ。
めんどうなことをしても、どうせ完全ではないので、
とりあえず、ノンブルの偶数、奇数と綴じ方向だけで判定することにする。
もうバカくさいったらない。
だから、スプレッドの中に3ページ以上あるようなものは対応しない。
ノンブルにアラビア数字以外を指定してあるものも対応しない。
セクションプレフィックスがなにか入っているとダメポ。
*)
to get_margin(page_obj, toji)
tell application "InDesign CS_J"
--ページ数が渡されたとき用
if class of page_obj is not page then
set page_obj to page (page_obj as integer) of active document
end if
if exists page_obj then
try
set page_number to (name of page_obj) as integer
on error errMsg number errNum
my my_error("おそらく、ノンブルスタイルがちがいます" & return & errMsg)
end try
--マージンをゲット
set {top:m_top, left:m_left, bottom:m_bottom, right:m_right, parent:p_obj, column count:c_count, column gutter:c_gutter} to properties of margin preferences of page_obj
--該当ページは奇数か偶数か
set odd_f to my my_odd(page_number)
--お返事
if toji = left to right and odd_f then --左綴じでかつ、奇数ページ
return {m_top, m_left, m_bottom, m_right, p_obj, c_count, c_gutter}
else if toji = right to left and not odd_f then --右綴じでかつ偶数ページ
return {m_top, m_left, m_bottom, m_right, p_obj, c_count, c_gutter}
else --それ以外はページマージンの左右入れ替え
return {m_top, m_right, m_bottom, m_left, p_obj, c_count, c_gutter}
end if
else
return false --pagenumberがなければfalseを返す
end if
end tell
end get_margin
----------------------------------------------○渡された数字が奇数ならばtrue,偶数ならばfalseを返します。
to my_odd(num)
if num mod 2 = 0 then
return false
else
return true
end if
end my_odd
----------------------------------------------○エラーダイアログ-->スクリプト停止
to my_error(err_mess)
set err_mess to err_mess as Unicode text
beep 2
display dialog err_mess buttons {"スクリプト停止"} default button 1 with icon 0
error number -128
end my_error