[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:791) QXPの複製ミス



をよくやらかします(藁
コマンド+Dの移動量を0にしてるから。
#つまりまったく同じオブジェクトが重なってしまっているの^^;;;
InDesignだったら、オプションキーでコピーなのに、、、
まったくミスを誘発するソフトだ>QXP ^^

で、複製ミスを見つけるプログラム。
おうち使い用だから、box typeの判定とか面倒なことは一切やってません。

set f to 0
tell application "QuarkXPress4.10r2J"
	activate
	tell document 1
		repeat with i from 1 to (count pages)
			tell page i
				set bounds_list to {}
				repeat with ii from 1 to (count generic boxes)
					tell generic box ii
						if box type = line box type then
							set {y1, x1} to start point as list
							set {y2, x2} to end point as list
							set end of bounds_list to {y1, x1, y2, x2}
						else
							set end of bounds_list to bounds as list
						end if
					end tell
				end repeat
				
				set my_index to my same_list(bounds_list)
				if my_index is not 0 then
					show generic box my_index
					set ans to button returned of (display dialog "同じ大きさのボックスがあります。" buttons {"中止", "続行"} default button 2 with icon 1)
					if ans = "中止" then
						error number -128
					else
						set f to f + 1
					end if
				end if
				
			end tell
		end repeat
	end tell
	if f = 0 then
		display dialog "同じ大きさのボックスはありませんでした"
	else
		display dialog (f as text) & "ページ分で重複したアイテムがありました"
	end if
end tell

--重複したリストのindexをかえす
to same_list(theList)
	set tmp_list to {}
	repeat with i from 1 to (length of theList)
		set tmp to item i of theList
		if class of tmp is list then
			repeat with ii in tmp_list
				if contents of ii = tmp then return i
			end repeat
		else
			if tmp_list contains tmp then return i
		end if
		set end of tmp_list to tmp
	end repeat
	return 0 --0が返れば重複はない
end same_list