SHOW:
|
|
- or go back to the newest paste.
1 | ####################### | |
2 | -->> ABOUT | |
3 | ####################### | |
4 | (* | |
5 | ||
6 | Phil Stokes -- 2017 | |
7 | applehelpwriter.com | |
8 | sqwarq.com | |
9 | ||
10 | *) | |
11 | ####################### | |
12 | -->> DESCRIPTION | |
13 | ####################### | |
14 | (* | |
15 | ||
16 | An example of GUI scripting to save a Word.doc as a PDF with security option 'Require password to copy text, images and other content' set to 'ON'. A default password of '123456' is set in the VARIABLES section below. | |
17 | ||
18 | This script was tested on macOS 10.12.6 (‘Sierra’) using Word for Mac 2011. The mac's default language was English. | |
19 | Due to the requirements of GUI scripting, it is highly likely to fail if run in a different environment. | |
20 | ||
21 | *) | |
22 | ####################### | |
23 | -->> USAGE | |
24 | ####################### | |
25 | (* | |
26 | ||
27 | Change the password in the VARIABLES section below to something else. | |
28 | Open a Word document and run the script. | |
29 | Note the script runs on the frontmost document. | |
30 | It does not save or close the Word document itself. | |
31 | ||
32 | *) | |
33 | ||
34 | ####################### | |
35 | -->> VARIABLES | |
36 | ####################### | |
37 | (* example password *) | |
38 | set thePassword to "123456" | |
39 | ||
40 | ||
41 | ####################### | |
42 | -->> COMMANDS | |
43 | ####################### | |
44 | ||
45 | tell application "Microsoft Word" | |
46 | activate | |
47 | end tell | |
48 | ||
49 | tell application id "com.apple.systemevents" -- System Events.app | |
50 | tell its application process "Microsoft Word" | |
51 | (* click the print menu item *) | |
52 | tell its menu bar 1 | |
53 | tell its menu "File" | |
54 | tell its menu item "Print..." to perform action "AXPress" | |
55 | delay 0.5 | |
56 | end tell | |
57 | end tell | |
58 | (* click the PDF button *) | |
59 | tell its window "Print" | |
60 | tell its menu button "PDF" | |
61 | perform action "AXShowMenu" | |
62 | tell its menu "PDF" | |
63 | tell its menu item "Save as PDF…" | |
64 | perform action "AXPress" | |
65 | end tell | |
66 | end tell | |
67 | end tell | |
68 | delay 0.5 | |
69 | (* click the Security Options button *) | |
70 | tell its sheet 1 | |
71 | tell its group 1 | |
72 | tell its button "Security Options..." | |
73 | perform action "AXPress" | |
74 | end tell | |
75 | end tell | |
76 | end tell | |
77 | end tell | |
78 | ||
79 | (* select the PDF Security options window *) | |
80 | tell its window "PDF Security Options" | |
81 | set selected to true | |
82 | set focused to true | |
83 | (* click the checkbox to on *) | |
84 | -- NOTE: for some reason there is a delay of about 6 seconds here, I do not know why | |
85 | tell its checkbox "Require password to copy text, images and other content" | |
86 | if (value is equal to 0) then | |
87 | perform action "AXPress" | |
88 | end if | |
89 | end tell | |
90 | (* add the password and confirm *) | |
91 | set tf to 1 | |
92 | repeat 2 times | |
93 | tell text field tf | |
94 | set its value to thePassword | |
95 | perform action "AXConfirm" | |
96 | end tell | |
97 | set tf to 2 | |
98 | end repeat | |
99 | tell its button "OK" to perform action "AXPress" | |
100 | end tell | |
101 | (* save the pdf with the default name and location - it's possible to set this in the script, but I didn't bother for this test - if the document already exists it will halt the script here and ask if you want to replace it. *) | |
102 | tell its window "Print" | |
103 | tell its sheet 1 | |
104 | tell its button "Save" to perform action "AXPress" | |
105 | end tell | |
106 | end tell | |
107 | end tell | |
108 | end tell | |
109 | ||
110 | ####################### | |
111 | #EOF |