COMPILED SCRIPT: If you double-click the icon of your saved, compiled AppleScript,
the Script Editor is opened and you can run the script by pressing the Run button. 
APPLICATION: If you double-click the icon of your saved, AppleScript application, 
the script will be executed immediately. That is, the Script Editor is not opened. Saved as an 
Copy pdf pages to another pdf - application software utility:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
www.rasteredge.com
Copy pdf pages to another pdf - application software utility:VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
www.rasteredge.com
application, you may use the script as a log-in item (in your System Preferences). After 
logging in, your Mac will perform the tasks detailed in your script. If you need to edit a script 
saved as an application, startup the Script Editor, and open the script by selecting Open from 
the File menu.
#WARNING: Setting the appropriate tick in the Save dialog allows you save your script: as 
run-only. Make sure you have a backup of your script, because a run-only script can not be 
opened and edited again. #
application software utility:C# PDF Page Replace Library: replace PDF pages in C#.net, ASP.NET
PDF Library - Replace PDF Pages in C#.NET. An Excellent PDF Control Allows C# Users to Replace the Original PDF Page with New PDF Page from Another PDF File in
www.rasteredge.com
application software utility:VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
& pages edit, C#.NET PDF pages extract, copy, paste, C# to replace a PDF page with another PDF file page. Support to save multiple PDF pages to anther adobe PDF
www.rasteredge.com
CHAPTER 3
EASIER  SCRIPTING  (I)
In Chapter 1 you came across the following script:
[1]
tell application "Finder"
empty the trash
end tell
Let us see how AppleScript and the Script Editor try to make it easy for you to script.
In the first line of a tell block, instead of typing the word ‘application’ in full, you may write 
tell app “xyz”
Upon compilation, the Script Editor expands ‘app’ to ‘application’. Even better, you do not 
need to type or know how to spell the name of the application ‘xyz’ either. Just type anything 
(provided it is not the name of another application), such as ‘pqr’. If you compile the script, 
AppleScript will provide you with a list of all scriptable applications on your Mac. You just pick 
the appropriate application, and AppleScript will replace ‘pqr’ with the correct name of the 
application, and in effect finish writing the tell statement for you.
Actually, the Script Editor allows you to create a tell block without any typing, by using a 
contextual menu. That is the kind of menu that appears if you hold down the control-key while 
clicking. This trick can be performed in two ways:
1) Control-click the upper field of the Script Editor. A menu appears (see picture on the next 
page), and near the lower end of this menu, you will see a menu item named ‘Tell Blocks’. 
Click it and a submenu appears from which you can select ‘Tell “Finder”’. 
2) If your script already contains one or more statements for the Finder - such as ‘empty the 
trash’ - which are not yet enclosed by the required tell block, select the statement(s), and then 
do as under 1). You can see this in action in the picture below. Your statements are 
automatically enclosed by the tell block.
application software utility:C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
You can use specific APIs to copy and get a specific page of PDF file; you can also copy and paste pages from a PDF document into another PDF file.
www.rasteredge.com
application software utility:C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
Able to save to another PDF file after rotating PDF pages. Copy this demo code to your C# application to rotate C#.NET Demo Code to Rotate All PDF Pages in C#
www.rasteredge.com
application software utility:VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
Combine multiple specified PDF pages in into single one file. Merge PDF without size limitation. Append one PDF file to the end of another one in VB.NET.
www.rasteredge.com
application software utility:C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Free online C#.NET source code for combining multiple PDF pages together in .NET framework. Append one PDF file to the end of another and save to a single
www.rasteredge.com
CHAPTER 4
DEALING WITH NUMBERS
In primary school you had to do calculations, filling in the dots:
2 + 6 =  ...
... = 3 * 4
In secondary school, dots were out of fashion and variables called ‘x’  and ‘y’ were all the 
hype. Looking back, you may wonder why people felt so intimidated by this very small 
change in notation.
2 + 6 = x
y = 3 * 4 
AppleScript uses variables too. Variables are nothing more than convenient names to refer to 
a specific piece of data, such as a number. Variable names are often referred to as ‘identifiers’, 
because they identify a piece of data. Here are two examples [1] of AppleScript statements 
where a variable is given a particular value, using the ‘set’ command.
[1]
set x to 25
set y to 4321.234
While the variable names themselves have no special meaning to AppleScript, to us human 
beings descriptive variable names can make a script much easier to read and hence easier to 
understand. That is a big bonus if you need to track down an error in your script (errors in 
scripts and programs are traditionally called ‘bugs’). Hence, avoid using non-descriptive 
variable names like ‘x’.  For example, the variable name for the width of a picture could be 
called “pictureWidth” [2]. 
[2]
set pictureWidth to 8
Please note that a variable name consists of a 
single word (or single character, at a pinch). 
After checking the syntax, the variable name is displayed in green, so you can immediately 
see it is not a reserved keyword of AppleScript, which are shown in blue or red. Also, note 
that data (such as the number ‘8’ in script [2]) is shown in black.
#While you have plenty freedom choosing variable names, there are several rules which a 
variable name has to conform with. While I could spell them all out, it would be boring. The 
prime rule you must obey is that your variable name may not be an AppleScript command or 
any other reserved keyword. For example, ‘set’, ‘say’,’to’, and ‘beep’ are words that have a 
special meaning to AppleScript. By compositing a variable name as contracted words, like 
‘pictureWidth’, you are always safe. To keep the variable name readable, the use of capitals 
within the variable name is recommended. 
If you insist on learning a couple of rules, finish this paragraph. Apart from letters, the use of 
digits is allowed, but a variable name is not allowed to start with a digit. Also allowed is the 
underscore _.#
Now we know how to give a variable a value, we can perform calculations. AppleScript is 
capable of performing basic math operations, so there is no need to tell a particular program 
application software utility:C# PDF Text Extract Library: extract text content from PDF file in
Enable extracting PDF text to another PDF file, TXT and source PDF document file with a copy-and-paste C# example code for text extraction from all PDF pages.
www.rasteredge.com
application software utility:VB.NET PDF copy, paste image library: copy, paste, cut PDF images
PDF document images. Allow to copy an image from existing PDF file and paste it into another one. Guarantee high performance image
www.rasteredge.com
that it should perform the calculation to determine the surface area of a picture. Here is the script 
[3] that does just that.
[3]
set pictureWidth to 8
set pictureHeight to 6
set pictureSurfaceArea to pictureWidth pictureHeight
Use the following symbols, officially known as operators, for doing basic mathematical 
calculations.
 
for addition
-  
for subtraction
for division
*
for multiplication
The exponent is written using the exponent symbol ^. Here is a script [4] that calculates the 
volume of a cube.
[4]
set cubeEdgeLength to 10.0
set cubeVolume to cubeEdgeLength 3
If you run this script [4] in the Script Editor, the result is displayed in the lower field. If you don’t 
see the result, move the horizontal bar near the two tabs up. The result field displays the result 
of the last statement executed. If your script consists of statement [4.1] only, the result field 
displays 10.0. For the full script [4], the result displayed is 1000.0. That is, the 
expression’cubeEdgeLength^3’ is evaluated, and the result is displayed.
Numbers can be distinguished into two types: integers and fractional numbers. You can see 
an example of each in the statements [1.1] and [1.2], respectively. Integers are used for 
counting, which is something we will do when we have to repeat an series of instructions a 
specified number of times (see Chapter 13). You know fractional or real numbers (‘reals’ for 
short), for example, from baseball hitting averages. By the way, both integers and reals can 
be negative, as you know for example from your bank account.
CHAPTER 5
DEALING WITH TEXT
Variables are not only used for storing numbers. They can be used to store text as well. A 
chunk of text, even if it is only zero or a single character long, is called a string. Strings must be 
placed between double quotes. Here are three examples [1] of variables with descriptive 
names set to a corresponding string value.
[1]
set emptyString to ""
set notEmtpyContainsASpace to "
set greeting to "Hi there!"
After running script [1], the result field displays the string between double quotes. So, the 
result field not only communicates the value, but also the type of data (numbers without 
quotes; strings with quotes) to you.
Because the result field can show the result of the last executed statement only, just the string 
comprising the greeting of statement [1.3] is displayed. 
In addition to the result field, AppleScript offers a convenient alternative to communicate with 
the world: a dialog window. It looks like this:
You can evoke it using the command: ‘display dialog’ followed by the data (number or string) 
you want to show. The above dialog was created using the following script [2].
[2]
display dialog "Hi there!"
Why do strings have double quotes? AppleScript may comprise a very limited vocabulary 
only, but reading your script and deciphering what is an instruction and what is not, is still pretty 
hard for a computer. So, AppleScript relies on clues to help it understand the meaning of each 
element of a statement of a script. For that reason, we have to put a string between double 
quotes. Otherwise, AppleScript could mistake a string for a variable name. Check out the 
following script [6]:
[6]
set stringToBeDisplayed to "Hi there!"
display dialog "stringToBeDisplayed"
display dialog stringToBeDisplayed
Run the script yourself to see what it does. Statement [6.2] displays the 
text 
‘stringToBeDisplayed’, whereas statement [6.3] displays ‘Hi there!’ Because the Script Editor 
shows compiled scripts in color, it is easy to see that while in statement [6.3] 
‘stringToBeDisplayed’ is a variable name, for which reason it is shown in green, in statement 
[6.2] ‘stringToBeDisplayed’ is shown in black, indicating that this word is data (a string). At 
times, the colorful formatting will help you to track down bugs quicker. 
As stated before, AppleScript needs clues to decipher the English-like script into something a 
Mac can understand. Here is another example of why these clues are important: If we write 
‘thirty’ as a number between double quotes, i.e. as “30”, it is not a number anymore but a 
string. Recognizing the datatype is very important, because some operations can only be 
performed on a specific datatype. For example, while you can divide two numbers, you can’t 
divide a string by another string. Let’s look at a couple of operations that can be performed on 
strings.
Like numbers (and voters), strings can be manipulated. You can glue strings together, which 
operation is called concatenation, using an ampersand [7].
[7]
set nameOfActress to "Julia"
set actressRating to "very pretty"
set resultingString to nameOfActress is" actressRating
display dialog resultingString
In the third statement [7.3], we concatenate three strings, two of which are referred to by 
variables. 
Please note that the number of spaces between a string and an ampersand is of no 
consequence for the resulting string contained by the variable ‘resultingString’. After compiling, 
the Script Editor reduces that number of spaces to 1 if you had added more than one. If you 
need one or more spaces to separate the words of the sentence to be displayed, 
you will 
have to provide them 
between the double quotes of a string. In statement [7.3], apart from 
the space left of the word ‘is’ , there should have been another space next to the ‘s’ of the 
word ‘is’ .
There are more commands acting on strings available. Some of them require stuff we will 
cover in later chapters, so we will leave that for the time being. But we can give you one other 
example of a command relating to strings. You can ask for the length of a string [8]. 
[8]
set theLength to the length of "I am"
If you run this script, the result displayed in the result field is 4. So, please remember that 
when the length of a string is calculated, spaces count too.
Because double quotes are used to signal the beginning and the end of a string, you might 
think that it is impossible to have a string containing quotes. Of course, the AppleScript 
language offers a way out, called ‘escaping’. Just put a backslash before the double quote, 
and AppleScript no longer tries to interpret the double quote as the end of a string [9]. 
[9]
set exampleString to "She said: \"Hi, I’m Julia.\""
#If you ponder over it, that does leave the problem for the rare occasion that your string must 
contain a double quote preceded by a backslash. Suppose you want to display the following 
text:
blah blah \” blah.
First, we put a backslash in before of the backslash. This means AppleScript will ignore any 
special meaning of the next character, i.e. the second backslash. Of course, we still need to 
escape our double quote, otherwise AppleScript would think our string ends there. Hence, 
the double quote must be preceded by a backslash, like we have seen before. Taken all 
together, we arrive at the following statement [10].
[10]
display dialog "blah blah \\\blah"
For your convenience, I have shown the escaping backslashes in bold, something the Script 
Editor does not do. Care should be taken with backslashes, because they can have special 
meaning before several other characters as well. For example, \n designates a new line 
(Return), and \t designates a Tab.#
As indicated above, numbers and strings are different datatypes. You can not subtract three 
from a string [11].
[11]
set nonsensical to "fifteen" 3
If you try to execute script [11], you get an idea how friendly a scripting language AppleScript 
is. It actually tries to convert the string into a number. If the string had been “15”, instead of 
“fifteen”, this conversion would have worked. The conversion of one datatype into another is 
called 
coercion. You can enforce this as shown by the following two example statements [12]
[12]
set coercedToNumber to "15" as number
set coercedToString to 12 as string
The result field of the Script Editor shows the result of the last statement, that is [12.2]. The 
data held by ‘coercedToString’ is a string, as the double quotes clearly indicate (see picture 
below). 
Documents you may be interested
Documents you may be interested