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

(DTPtechNote:1254) Re: [AS Indesign CS] print-current-page.as



>current pageがすぐにgetできないので。
おおうそでした^^
layout windowクラスにactive pageはある。
書き直し。特に不具合報告がなければ表にあげます。


(*
print-current-page
(c)2005 www.seuzo.jp
カレントページのみを特定のプリセットですばやくプリントします

●history
ver0.1	とりあえず、おうち使いよう
ver0.2	オブジェクトが選択されていない時、active pageをgetするようにした。バージョンチェック、ドキュメントチェック。
*)

--※ここで目的のプリセット名を入れておきます。ex.)A4_ぺら+トンボ
set my_preset to "A4_ぺら+トンボ" as Unicode text



tell application "InDesign CS_J"
	my ver()
	my doc_exists()
	tell document 1
		set my_selection to selection
		if my_selection is {} then
			tell layout window 1
				set my_page to active page
			end tell
			set my_page to name of my_page
		else
			set my_selection to object reference of selection
			set my_page to my getpage(my_selection)
		end if
		tell print preferences
			set page range to my_page
		end tell
		print using my_preset without print dialog
	end tell
end tell

--------------------------------------------------------●選択オブジェクトからページ名を得る
to getpage(my_selection)
	tell application "InDesign CS_J"
		tell document 1
			--set my_selection to object reference of my_selection
			if (class of my_selection) = page then
				return name of my_selection
			else
				set my_tmp to parent of my_selection
				if class of my_tmp = story then set my_tmp to parent of parent text frame of my_selection
				my getpage(my_tmp)
			end if
		end tell
	end tell
end getpage

--------------------------------------------------------●InDesignバージョン確認ルーチン
to ver()
	tell application "InDesign CS_J"
		set my_version to version
		if my_version < 3 and my_version > 3.9 then
			activate
			my my_error("このプログラムはInDesign CS以外では動作しません", true)
		end if
	end tell
end ver
--------------------------------------------------------●ドキュメントが開かれているかどうか
to doc_exists()
	tell application "InDesign CS_J"
		if not (exists document 1) then
			activate
			my my_error("ドキュメントが開かれていません", true)
		end if
	end tell
end doc_exists

----------------------------------●エラー処理
on my_error(err_str, my_stop)
	set err_str to err_str as Unicode text
	if my_stop then
		set my_stop to {"中止"}
	else
		set my_stop to {"中止", "続行"}
	end if
	tell application "InDesign CS_J"
		activate
		beep
		set ANS to button returned of (display dialog err_str buttons my_stop with icon 2) --警告ダイアログ出してストップ
		if ANS is "中止" then error number -128
	end tell
end my_error