毎日モザイク

White Room Layout Works

Archive for the ‘無芸DTPツール’ Category

2012-06-22T13:34:54+09:00 [Fri]

indesign 角丸修正

サイズ変更時にめんどくさいので、変更してからもう一度やればいいように変更。

■の外側に追加する方は大きさが変わるんで放置。位置決めが変わらない内側で何とかするタイプだけ。

tell application "Adobe InDesign CS5"	tell document 1	try	set ss to object reference of selection	on error	display dialog "選択されていません" buttons {"キャンセル"} default button 1	end try	set {button returned:btres} to display dialog "上下or左右" buttons {"上下", "左右", "キャンセル"} default button 3	repeat with s in ss	convert shape s given convert to rectangle	set r to rotation angle of s	tell application "Adobe InDesign CS5"	set myRotateMatrix_org to make transformation matrix with properties {counterclockwise rotation angle:r}	set myRotateMatrix_flat to make transformation matrix with properties {counterclockwise rotation angle:-r}	end tell	transform s in pasteboard coordinates from center anchor with matrix myRotateMatrix_flat	set {y, x, yy, xx} to geometric bounds of s	set {pr1, pr2, ps} to {{y, x, yy, x + yy - y}, {y, xx - (yy - y), yy, xx}, {y, x + ((yy - y) / 2), yy, xx - ((yy - y) / 2)}}	if btres = "上下" then set {pr1, pr2, ps} to {{y, x, y + xx - x, xx}, {yy - (xx - x), x, yy, xx}, {y + ((xx - x) / 2), x, yy - ((xx - x) / 2), xx}}	set r1 to duplicate s	convert shape r1 given convert to oval	set geometric bounds of r1 to pr1	set r2 to duplicate s	convert shape r2 given convert to oval	set geometric bounds of r2 to pr2	set geometric bounds of s to ps	set ns to add path s with {r1, r2}	transform ns in pasteboard coordinates from center anchor with matrix myRotateMatrix_org	end repeat	end tell
end tell
2012-06-19T17:59:06+09:00 [Tue]

indesignで先端がまんまるの角丸 外側用

今あるものの外側に角丸をくっつけるタイプ。

tell application "Adobe InDesign CS5"	tell document 1	try	set ss to object reference of selection	on error	display dialog "選択されていません" buttons {"キャンセル"} default button 1	end try	set {button returned:btres} to display dialog "上下or左右" buttons {"上下", "左右", "キャンセル"} default button 3	repeat with s in ss	set {y, x, yy, xx} to geometric bounds of s	set {pr1, pr2, ps} to {{y, x - ((yy - y) / 2), yy, x - ((yy - y) / 2) + (yy - y)}, {y, xx - ((yy - y) / 2), yy, xx - ((yy - y) / 2) + (yy - y)}, {y, x, yy, xx}}	if btres = "上下" then set {pr1, pr2, ps} to {{y - ((xx - x) / 2), x, y - ((xx - x) / 2) + (xx - x), xx}, {yy - ((xx - x) / 2), x, yy - ((xx - x) / 2) + (xx - x), xx}, {y, x, yy, xx}}	set r1 to duplicate s	convert shape r1 given convert to oval	set geometric bounds of r1 to pr1	set r2 to duplicate s	convert shape r2 given convert to oval	set geometric bounds of r2 to pr2	add path s with {r1, r2}	end repeat	end tell
end tell
2012-06-19T17:22:27+09:00 [Tue]

indesignで先端がまんまるの角丸

indesignの角丸が真ん丸にできないのは有名ですが、パスファインダを使ってきれいな角丸にする有名な手段はしちめんどくさいので作りました。

画像の上がindesignの角オプションでやったもの。下が↓でやったものです。

構文のカラーリングがjs用なのは気にしない方向で

tell application "Adobe InDesign CS5"	tell document 1	try	set ss to object reference of selection	on error	display dialog "選択されていません" buttons {"キャンセル"} default button 1	end try	set {button returned:btres} to display dialog "上下or左右" buttons {"上下", "左右", "キャンセル"} default button 3	repeat with s in ss	set {y, x, yy, xx} to geometric bounds of s	set {pr1, pr2, ps} to {{y, x, yy, x + yy - y}, {y, xx - (yy - y), yy, xx}, {y, x + ((yy - y) / 2), yy, xx - ((yy - y) / 2)}}	if btres = "上下" then set {pr1, pr2, ps} to {{y, x, y + xx - x, xx}, {yy - (xx - x), x, yy, xx}, {y + ((xx - x) / 2), x, yy - ((xx - x) / 2), xx}}	set r1 to duplicate s	convert shape r1 given convert to oval	set geometric bounds of r1 to pr1	set r2 to duplicate s	convert shape r2 given convert to oval	set geometric bounds of r2 to pr2	set geometric bounds of s to ps	add path s with {r1, r2}	end repeat	end tell
end tell

角丸の直径が左右幅を超えると、変なことになります。

角丸が間尺に合ってる範囲内では、最初のアイテムと同じ外形寸法になります。

普通の方法でサイズ変更をすると角丸の半径が変わりますので、一旦、長方形シェイプに戻してからサイズ変更をして、再度角丸にしてください。

applescriptでごめんなさい……。

2012-02-09T20:31:38+09:00 [Thu]

JS版。

JS版。なんとなく動く。

JSはあんまし得意じゃないので、カコイイか悪いかもわかりませんが、AS版と同じことを書いたのでだいたい同じように動きます。

JSはテンプレートがあるので、色付けは割と普通w

sel = activeDocument.selection;
for(i in sel) { if(sel[i].typename == "GroupItem") { p = sel[i].pathItems; d = sel[i].placedItems; if(p.length == 1 && d.length == 1) { pp = p[0]; dd = d[0]; ppw = pp.width; pph = pp.height; ppp = pp.position; ddw = dd.width; ddh = dd.height; dd.width = ppw; dd.height = ddh * ppw / ddw; if(pph > (ddh * ppw / ddw)) { dd.width = ddw * pph / ddh; dd.height = pph; } xdif = (ppw - dd.width) / 2; ydif = (pph - dd.height) / 2; if(xdif < 0 ) {xdif = -xdif;} if(ydif < 0 ) {ydif = -ydif;} dd.position = [ppp[0] - xdif,ppp[1] + ydif]; } }
}

illustratorでindesignの一番左のボタンみたいなの。のJS版

2012-02-08T03:18:53+09:00 [Wed]

illustratorでindesignの一番左のボタンみたいなの。

illustratorにいっぱい画像を貼る作業があったので、こんなもん人間のやる作業じゃないだろw とか思って、indesignのフレームに均等に流し込むボタンみたいなプラグインは無いものか? と探してみましたが、見つからなかったので似たようなものをつくりました。

SyntaxHighliterPlusにApplescript用のテンプレートがないので色付けがおかしいですが、そのためにJSで書くのもなんなので(まぁ、ASのような早さでは書けないわけですがw)、JS用の色付けですみません。

□でも○でも☆でもなんでも、フレームに均等に流し込んでセンタリングします。

配置ファイルとクリッピングパスが一対一のものだけ対象。

tell application "Adobe Illustrator"	tell document 1	set grilst to group items whose selected = true	repeat with ll in grilst	if (count placed items of ll) = 1 then	set {pir, plir} to {a reference to path item 1 of ll, a reference to placed item 1 of ll}	set {w, h, {x, y}} to {width of pir, height of pir, position of pir}	set {w2, h2} to {width of plir, height of plir}	set {width of plir, height of plir} to {w, h2 * w / w2}	if h > h2 * w / w2 then	set {width of plir, height of plir} to {w2 * h / h2, h}	end if	set {xdif, ydif} to {(w - (width of plir)) / 2, (h - (height of plir)) / 2}	if xdif < 0 then set xdif to -xdif	if ydif < 0 then set ydif to -ydif	set position of plir to {x - xdif, y + ydif}	end if	end repeat	end tell
end tell