Skip to main content
ajabon grinsmith
Community Expert
Community Expert
June 15, 2023
Question

AppleScriptでハイパーリンクを編集したいが一部の処理がすごく遅い

  • June 15, 2023
  • 1 reply
  • 1192 views

お世話になっております

季刊の案件で、PDF上の全てのハイパーリンクにJavaScriptを追加する必要があり、

年に4回ほどのペースで自動化を模索しては諦めて、

現状、PDFを編集、リンクを1つずつカチカチ、アクション、JavaScriptを実行、追加ボタン、

this.zoom = 100; と入力(2つめ以降はコピペ)、OKボタン、さらにOKボタン

という泥めいた手作業を行っています。

季刊の夏号はリンクが100個弱あり、肩にきます。

Acrobatのアクションを利用できないものかとUSフォーラムで質問したこともありましたが、ノーウェイ的なことを言われ、諦めるしかなかったです。

 

今回、全自動は諦めて半自動でまた模索しだして、

今日はAppleScriptでGUI操作をしてみることにしました。

まあまあ快適そうに動くのですが、

アクションの追加 > アクションを選択 > JavaScript を実行 のくだりの

JavaScriptエディター への入力のところで謎に6秒ほど待たされてしまいます。

以下コードです。

 

tell application "Adobe Acrobat"
	activate --スクリプトエディタからのテスト用
end tell
tell application "System Events"
	--set the clipboard to "this.zoom = 100;" --没案_クリップボード
	key code 36 --ハイパーリンクを選択中のリターンキー リンクのプロパティを出す
	delay 0.2
	tell process "AdobeAcrobat"
		tell tab group 1 of window "リンクのプロパティ"
			click radio button "アクション"
			tell group "アクションの追加"
				tell pop up button "アクションを選択 :"
					click
					tell menu "アクションを選択 :"
						click menu item "JavaScript を実行"
					end tell
				end tell
				click button "追加..."
				--key code 102 --ココがすごくおそい
				--keystroke "this.zoom=100;" --ココもおそい
				--key code 9 using {command down} --没案_クリップボード
				--delay 0.5
			end tell
		end tell
		tell window "JavaScript エディター"
			tell text area 1 of scroll area 1 of group "JavaScript の作成と編集"
				set value to "this.zoom = 100;" --結局おそい
				delay 0.5
			end tell
			click button "OK"
		end tell
		tell window "リンクのプロパティ"
			click button "OK"
		end tell
	end tell
end tell

 

 

見にくそうなのでスクショも。

 

なんとなくですが key code および key stroke が原因なのかと思い、

テキストエリアに文字列を直接ぶちこむように改変してみたところまでです。

(何ら改善ありませんでした)

 

もうひとつわからないのが、

JavaScriptエディターが表示された状態までは手で行って、

値を入力するところだけをやると、理想的な速度で実行されます。

 

tell application "System Events"
	tell process "AdobeAcrobat"
		tell window "JavaScript エディター"
			tell text area 1 of scroll area 1 of group "JavaScript の作成と編集"
				set value to "this.zoom = 100;"
			end tell
		end tell
	end tell
end tell

 

 

もともとAppleScriptには明るくないので打開に苦しんでおります。

・高速な処理方法

・数秒待たされる原因

について教えていただけるとうれしいです。

ムダに長くてすみません。よろしくお願いいたします。

 

macOS 11.7.4

Acrobat 2023.003.20201

This topic has been closed for replies.

1 reply

ajabon grinsmith
Community Expert
Community Expert
June 15, 2023

やってみたこと

 

スクリプトを入力直前、入力以降の2つに分けて実行

 

たてつづけに実行したところ、やはり6秒ほど待たされました。

試しに6秒ほど待ってから2つめのスクリプトを実行したところ、即実行されました。

この時間、なんなんでしょうか…

 

さらに試しに、2つめのスクリプトの値入力をコメントアウトしておき、

1つめ実行、入力は自分でペースト、2つめ実行

としてみても、やはり謎6秒。

 

今のところ、1つめ実行(JavaScriptエディターを開くまで)、

コードをペースト、手でOKボタンを2回

が最速の作業となっています。最悪まあこれでもいいかなと思いますが、まあかっこわるいですね。

Ten A
Community Expert
Community Expert
June 15, 2023

はいぱーりんく検索しながら処理するのはJavaScriptでメニューに組み込めないこともないんだけど、JavaScriptの実行って何するんでしょか?

ajabon grinsmith
Community Expert
Community Expert
June 15, 2023

アップしたコードに仕込んである通り、ただただズーム値100%にする代物です。それしきの事すらままならなくて2年間もがいてますw