Accessing Sub menu's

Greetings,

I’m new and making a script that will make smaller .pdfs using the “Reduced size pdf.” function in acrobat. I have everything for it but haven’t figured out the correct way to click on the “reduced size pdf.” I have tried several similar scripts and replacing the menu item names but that didn’t work. What I want to target is located under “File” in the menu bar, then hover over the “Save as.” to get the next menu with the “Reduced size pdf.”

Thanks!

Hi,

this works here in Acrobat X


activate application "Adobe Acrobat Pro"
tell application "System Events"
	tell process "AdobeAcrobat"
		click menu item "Reduced Size PDF..." of menu 1 of menu item "Save As" of menu 1 of menu bar item "File" of menu bar 1
	end tell
end tell

Maybe these handlers may help.

#=====
(*
useful to get the indexs of the triggered item
my select_SubMenu("Numbers", 6, 14, 3) (* Table > Footer rows > 2 *)
*)
on select_SubMenu(theApp, mt, mi, ms)
	
	activate application theApp
	tell application "System Events" to tell (first process whose frontmost is true) to tell menu bar 1
		get name of menu bar items
		(*{
01 - "Apple", 
02 - "Numbers", 
03 - "Fichier", 
04 - "Édition", 
05 - "Insertion", 
06 - "Tableau", 
07 - "Format", 
08 - "Disposition", 
09 - "Présentation", 
10 - "Fenêtre", 
11 - "Partage", 
12 - "Aide"}
*)
		get name of menu bar item mt
		-- {"Tableau"}
		tell menu bar item mt to tell menu 1
			get name of menu items
			(* {01 - "Insérer un rang au-dessus", 
02 - "Insérer un rang en dessous", 
03 - missing value, 
04 - "Insérer une colonne avant", 
05 - "Insérer une colonne après", 
06 - missing value, 
07 - "Supprimer le rang", 
08 - "Supprimer la colonne", 
09 - missing value, 
10 - "Rangs d'en-tête", 
11 - "Colonnes d'en-tête", 
12 - "Bloquer les rangs d'en-tête", 
13 - "Bloquer les colonnes d'en-tête", 
14 - "Rangs de bas de tableau", 
15 - missing value, 
16 - "Ajuster les rangs au contenu", 
17 - "Ajuster les colonnes au contenu", 
18 - missing value, 
19 - "Afficher tous les rangs", 
20 - "Afficher toutes les colonnes", 
21 - "Activer toutes les catégories", 
22 - missing value, 
23 - "Fusionner les cellules", 
24 - "Diviser en rangs", 
25 - "Diviser en colonnes", 
26 - missing value, 
27 - "Répartir les rangs uniformément", 
28 - "Répartir les colonnes uniformément", 
29 - missing value, 
30 - "Autoriser la sélection de bordure", 
31 - missing value, 
32 - "Afficher le panneau de réorganisation"}
*)
			get name of menu item mi
			--"Rangs de bas de tableau"
			tell menu item mi to tell menu 1
				get name of menu items
				(* {
1 - "0", 
2 - "1", 
3 - "2", 
4 - "3", 
5 - "4", 
6 - "5"}
*)
				get name of menu item ms
				-- "2"
				#click menu item ms # disabled as long as the code isn't checked
			end tell -- menu item.
			
		end tell -- menu bar.
		
	end tell -- System Events
end select_SubMenu

#=====
(*
my selectSubMenu("Pages",6, 4, 26)
==== Uses GUIscripting ====
*)
on selectSubMenu(theApp, mt, mi, ms)
	activate application theApp
	tell application "System Events" to tell (first process whose frontmost is true) to tell menu bar 1 to ¬
		tell menu bar item mt to tell menu 1 to tell menu item mi to tell menu 1 to click menu item ms
end selectSubMenu

#=====

The first one is used to check that we are really triggering the correct menu items.
The second one is more compact and more efficient.
It’s the one which I keep when I am sure that the numerical parameters are correctly defined.

Yvan KOENIG (VALLAURIS, France) jeudi 13 février 2014 22:19:07

Thanks Stefan! That worked great. I had something extremely similar to that but must not have had the menu 1 and menu items in the right order.

Yvan, Thanks for the help! I will look in to those as I continue finding more uses for applescript.