APPLESCRIPT FOR 
ABSOLUTE STARTERS
By Bert Altenburg
Copy pages from pdf to new pdf - Library application component: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 pages from pdf to new pdf - Library application component: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
INTRODUCTION
AppleScript is a revolutionary Apple technology that makes communication between 
computer programs possible. For example, with AppleScript you can 
- retrieve e-mails from Mail and store them in a database;
- tell a picture editing program to change the resolution of a series of pictures, resize them, and 
send the resulting pictures to another computer or post them on the Web;
- and much, much more. 
An AppleScript, or script for short, is a series of written instructions in a scripting language 
named AppleScript. This language resembles the English language, making AppleScripts 
both easy to read, write and understand. 
Despite its power, AppleScript is heavily used in a couple of fields only. The publishing 
industry depends on it for workflow automation (PhotoShop, QuarkExpress, InDesign). 
Filemaker Pro developers use it for creating Mac-based kiosks, which you can find in malls and 
museums (k-Builder). Apart from the programs mentioned, many more major and minor 
Macintosh programs like GraphicConverter, BBEdit,  and Word are AppleScriptable. That 
means you can use AppleScript to boss these programs around. Scripting applications is not 
the focus of this book, however. There are other books on the market that show you how to 
do that. If these books provide an introduction to AppleScript, it is usually cursory and they 
quickly dash to the really juicy stuff, which generally requires a modest or good knowledge of 
the basics of AppleScript. The aim of this book is to provide you just that.
It is intended to update and expand this book on a regular basis. So, you may want to check 
for new versions (see Chapter 15). A second book on scripting various programs is 
considered. This book is freeware, and you are encouraged to bring it to the attention of other 
Macintosh users. In this respect, please pay attention to Chapter 0 in this book on how you 
can promote the Mac.
Once you dive into the world of AppleScript, you’ll notice that the term ‘AppleScript’ is used 
quite loosely for three different concepts.
- The AppleScript language: The English-like language which is used to give written 
instructions to your Mac;
- An AppleScript: A series of instructions, a.k.a. a script, written in the AppleScript language; 
and
- A part of the Mac operating system (Mac OS X), which actually reads an AppleScript and 
executes the instructions containing it.
In this book, if there is need to refer to one of these three concepts specifically, the following 
terms are used respectively:
- The AppleScript language;
- An AppleScript or a script (noun);
- The AppleScript component of Mac OS X.
Learning how to script with AppleScript is ideal as an introduction to programming. It leaves 
out most of the nitty-gritty work a programmer in a computer language such as Java has to do 
before she can even perform the easiest of tasks. AppleScript is easy enough that a 10 year 
old can learn it, yet so powerful that professionals enjoy it too. That leaves plenty of room for 
growth for you. While not covered in this book, you can even use AppleScript to build 
computer programs that look and work just like the commercial programs you use on your 
Mac, with buttons, menus, scrollbars and all. This requires AppleScript Studio, provided for 
free by your favorite computer company.
Library application component:VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
As String = Program.RootPath + "\\" Output.pdf" Dim doc1 Dim doc2 As PDFDocument = New PDFDocument(inputFilePath2 GetPage(2) Dim pages = New PDFPage() {page0
www.rasteredge.com
Library application component:VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
to delete a range of pages from a PDF document. Dim filepath As String = "" Dim outPutFilePath As String = "" Dim doc As PDFDocument = New PDFDocument(filepath
www.rasteredge.com
What is the difference between scripting and programming? I’d like to think that if it is easy, it is 
scripting and if it is difficult, it is programming. However, javascripting is not easy in my book, 
so perhaps that definition is wonky. 
How to use this book?
As you will see, some paragraphs are displayed in a green font. We suggest you read each 
chapter (at least) twice. The first time, skip the green text. The next time you read the 
chapters, include the green paragraphs. You will in effect rehearse what you have learned, but 
learn some interesting tidbits which would have been distracting the first time. By using the 
book in this way, you will level the inevitable learning curve to a gentle slope.
This book contains dozens of script examples. To make sure you link an explanation to the 
proper script, every script is labeled by a number placed between square brackets, like this: 
[4]. Most scripts consist of two or more lines. At times, a second number is used to refer to a 
particular line. For example, [4.3] refers to the third line of script [4].
You will not learn riding a horse by reading a book. Similarly, you will not learn AppleScript if 
you don’t get your mitts on your Mac. This is an electronic book. You have no excuse for not 
switching to the Script Editor (see Chapter 2).
Library application component:C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
RasterEdge XDoc.PDF allows you to easily move PDF document pages position Copying and Pasting Pages. You can use specific APIs to copy and get a specific page of
www.rasteredge.com
Library application component:C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
Copy this demo code to your C# application to rotate the first page of One is used for rotating all PDF pages to 180 in clockwise and output a new PDF file
www.rasteredge.com
CHAPTER 0
BEFORE WE START
I wrote this book for you. As it is free, please allow me to say a couple of words on promoting 
the Mac in return. Every Macintosh user can help to promote their favorite computer platform 
with little effort. Here is how.
1) The more efficient with your Mac you are, the easier it is to get other people to consider a 
Mac.  So, try stay up to date by visiting Mac-oriented websites and reading Mac magazines. 
Of course, learning AppleScript and putting it to use is great too. For companies, the use of 
AppleScript can save tons of money and time.
2) Show the world that not everybody is using a PC by making Macintosh more visible. 
Wearing a neat Mac T-shirt is one, but you can even make the Mac more visible from within 
your home. If you run CPU monitor (in the Utilities folder which you find in the Applications 
folder on your Mac), you will notice that your Mac uses its full processing power only 
occasionally. Scientists have initiated several distributed computing (DC) projects, such as 
Folding@home, that harness this unused processing power. You download a small, free 
program, called a DC client, and start processing work units. These DC clients run with the 
lowest level of priority. If you are using a program on your Mac and that program needs full 
processing power, the DC client immediately takes a back seat. So, you will not notice it is 
running. How does this help the Mac? Well, most DC projects keep rankings on their 
websites of work units processed. If you join a Mac team (you’ll recognize their names in the 
rankings), you can help the Mac team of your choice to move up the rankings. So, users of 
other computer platforms will see how well Macs are doing. There are DC clients for many 
topics, such as math, curing diseases and more. To choose a DC project you like, check out 
www.aspenleaf.com/distributed/distrib-projects.html
One problem with this suggestion: It may become addictive.
3) Make sure the Macintosh platform has the best software. No, you don’t have to learn 
programming. Just make it a habit to give (polite) feedback to the developers of programs 
you use. Even if you tried a piece of software and didn’t like it, tell the developer why. Report 
bugs by providing a description of the actions you performed when you experienced the 
bug. For a great free multimedia-based tutorial on how to do this, visit 
www.macinstruct.com/tutorials/crash/index.html
4. Pay for the software you use. As long as the Macintosh software market is viable, 
developers will provide the software.
5. Please contact at least 3 Macintosh users who don’t know about this book and tell them 
where to find it. Or advise them about the above 4 points.
OK, while you download a DC client in the background, let’s get started!
Library application component:C# PDF Page Insert Library: insert pages into PDF file in C#.net
Apart from the ability to inserting a new PDF page into existing PDF to delete PDF page using C# .NET, how to reorganize PDF document pages and how to
www.rasteredge.com
Library application component:C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
How to delete a range of pages from a PDF document. String filepath = @""; String outPutFilePath = @""; PDFDocument doc = new PDFDocument(filepath); // Detele
www.rasteredge.com
CHAPTER 1
A SCRIPT IS A SERIES OF INSTRUCTIONS
AppleScript as part of the Macintosh Operating System can perform only a very limited 
number of tasks. For example, it can produce a beep. Let's take a look at the script [1] 
needed to make your Mac beep.
[1]
beep
This must be the world’s shortest script, consisting of a single command or instruction. A line 
containing an instruction is called a statement, even if that line is just one word long. If the 
above script is executed by your Mac, your Mac beeps once.
To have more beeps than just one, you may provide the beep command with a number, 
which number indicates the number of beeps you want to hear [2]. 
[2]
beep 2
As you can see by comparing scripts [1] and [2], this additional piece of information is optional. 
If you don’t provide a number,  AppleScript assumes you want just one beep. So, 1 is the 
default value.
If you think beeps are PeeCee-ish, why don’t we let AppleScript communicate with you the 
Macintosh way [3], using the following statement:
[3]
say "This is spoken sentence." 
You may even select another voice, such as “Fred”, “Trinoids”, “Cellos”, or “Zarvox” [4], to 
replace the default voice “Victoria”.
[4] 
say "This is spoken sentence." using "Zarvox" 
#Note: Generally, AppleScript is not case sensitive. That is, it doesn’t mind if you use capitals 
or not. However, the voices, such as “Victoria”, and “Zarvox” must be properly capitalized. 
Grrr.#
As you can see, AppleScript instructions resemble English, making the script quite readable 
and understandable, even if you have never had any scripting experience. But while the 
scripts [1-4] are probably fun; they are not very useful. The AppleScript language has a 
couple more commands, but probably not much to impress you. AppleScript derives its 
strength from the fact that it allows you to communicate with other programs. This works if these 
programs are AppleScriptable. Fortunately, many Macintosh programs are. As a result, you 
have at your disposal not only the, granted, limited command set of the AppleScript 
component of Mac OS X, but also the vast number of commands provided by your 
programs.
Some Mac programs are more popular than others. One is used by every Macintosh user: 
the Finder. Yes, the Finder is a program. When you turn on your Mac, it starts-up automatically 
Library application component:C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Open a document. PDFDocument doc = new PDFDocument(inputFilePath); PDFPage page = (PDFPage)pdf.GetPage(0); // Extract all images on one pdf page.
www.rasteredge.com
Library application component:C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
RootPath + "\\" 2.pdf"; String outputFilePath = Program.RootPath + "\\" Annot_6.pdf"; // open a PDF file PDFDocument doc = new PDFDocument(inputFilePath
www.rasteredge.com
and it is always running. It allows you to move files around, find files on your hard disk, create 
folders, copy and rename them and much more. For example, if you empty the trash, it is the 
Finder that does it for you. While you can perform the empty-the-trash operation with the 
mouse or keyboard, you can do it with an AppleScript [5] too.
[5]
tell application "Finder"
empty the trash
end tell
Like a boss, you must tell
who is to perform a task, and 
which task is to be performed. 
It is no use telling, for example, PhotoShop that it is to empty the trash. PhotoShop does not 
know how to do that. So, the instruction to empty the trash must be conveyed to the Finder. 
Like in the real world, the job a boss has ordered you to do may be less than wise, but your 
Mac is a most faithful employee, and does what it is told. If there were an important file in the 
trash, once you have executed the above AppleScript [5], you have lost it forever. 
The first statement [5.1] is the ‘tell’ statement where we ask the AppleScript component of 
Mac OS X to convey one ore more statements to another program, here to the Finder. The 
AppleScript component of Mac OS X keeps doing that, until it encounters the obligatory ‘end 
tell’ statement [5.3]. In the above script [5] we order AppleScript to send the Finder the 
instruction to empty the trash and then to stop telling the Finder what to do. Taken together, the 
lines
tell application "xyz"
end tell
are called a ‘tell block’. The instruction to be executed by program ‘xyz’ is inside the tell block 
for program ‘xyz’. By the way, while the AppleScript language is not very finicky when it 
comes to notation in comparison with other scripting and especially programming languages, it 
is not without a couple of rules. One of the rules is that you must use double quotes around 
the application’s name, as in the first statement [5.1].
It is also possible to give the Finder more instructions. In the example [6] below, there are two 
statements [6.2, 6.3] destined for the Finder. Because they both are to be performed by the 
Finder, they must be inside the tell block for the Finder.
[6]
tell application "Finder"
empty the trash
open the startup disk
end tell
After emptying the trash, the Finder opens a window showing you the content of your hard 
disk. 
As you can see, we can make the Finder do whatever we want to. We can even tell the 
Finder to resize the Finder window, put it at a desired position on the screen and way, way 
more. You will learn how to do that later on. 
We can now create a script containing both instruction statements for the Finder, and for the 
AppleScript component of Mac OS X itself [7].
[7]
tell application "Finder"
empty the trash
open the startup disk
end tell
beep
First, the Finder is given a couple of instructions [7.2, 7.3]. Then the ‘beep’ instruction [7.5] is 
executed by AppleScript. In effect, it indicates that the script has been executed.
Interestingly, it doesn’t matter whether you put the beep instruction (and any other instruction 
understood by the AppleScript component of Mac OS X itself) inside or outside the tell block 
[8].
[8]
tell application "Finder"
empty the trash
beep
open the startup disk
end tell
While the Finder doesn’t know the beep command, the AppleScript component of Mac OS 
X knows how to deal with it. This makes the script easier to read and understand. Otherwise, 
you would have to have a first tell block containing the first Finder-executable statement [8.2], 
then a statement consisting of the beep command, and finally a second tell block for the last 
Finder-executable statement [8.4].
Mind you, while commands understood by the AppleScript component of Mac OS X may 
be anywhere in a script, each and every instruction for a particular program, such as the Finder, 
must be within the tell block for that program. The following script [9] contains a fatal flaw (the 
last statement [9.5]).
[9]
tell application "Finder"
empty the trash
beep
end tell
open the startup disk
The AppleScript component of Mac OS X does not know how to open the startup disk, and 
is not willing to look for a program that can do it. The first part of this script (statements [9.2-3] 
within the tell block) will be executed nicely, but the last statement [9.5] can not be executed. 
In a running script, once a problem is encountered, any further statements are not executed 
[10]. 
[10]
tell application "Finder"
empty the trash
end tell
open the startup disk
say "I emptied the trash and opened the startup disk for you" using "Victoria"
After emptying the trash, the AppleScript component of Mac OS X will stop at the statement 
[10.4] that should have been addressed to the Finder. You will not hear the sentence of 
statement [10.5] being spoken, even though there is nothing wrong with the statement.
CHAPTER 2
EXECUTING AND SAVING A SCRIPT
You have seen a couple of scripts now., and there is no denying that they are very similar to 
English, making the scripts easy to read and understand. You could have performed  
commands in the script - like empty the trash - yourself, using mouse and keyboard. Let’s see 
how your Mac can do that for you. 
The Script Editor is a program where you can type in a script and execute it. You can find the 
Script Editor in the AppleScript folder that in turn is in the Applications folder. After starting it 
up, you will see two fields. The upper one is where you should enter the script [1].
[1]
Near the middle you will see a button labeled ‘Check Syntax’. While an AppleScript may 
look like English, the AppleScript language is far from fully versed in English. “Yo Finder! 
Dump my garbage” or “Hey Finder, clean out the bin” is not what the Finder expects. By 
checking the syntax of your script, a.k.a. compilation, the AppleScript component of Mac OS 
X performs a course check whether it understands your script. If it thinks it does, it formats your 
script in a nice, colorful way. Uncompiled text is shown in orange, while after compilation the 
reserved keywords are displayed in red or blue.
If the script does not compile because you made a mistake, you will see a cryptic message 
indicating that there is something wrong. Try leaving out one of the double quotes in script [2] 
and see for yourself that the AppleScript component of Mac OS X no longer understands 
what you mean.
[2]
say "I’m learning AppleScript the easy way!" using "Zarvox"
If all is well, you may press the Run button, and your script is executed. Now fire up the Script 
Editor, peck in one of the scripts you’ve seen here, and try it!
#You may hit the Enter key as a shortcut to check the syntax of your script. The Enter key is 
the key at the right next to your spacebar (for laptops) or numerical keypad (desktop Macs). 
The Return key (above the right shift key) works as you would expect, and creates a new line 
after the current line. You can 
not use the Return key to check the syntax.
It is not really necessary to press the Check Syntax button before you run the script. If you 
press the Run button, the script’s syntax is checked and, if ok, the script is immediately 
executed.
Instead of clicking the Run button, you may press Command-R.#
Saving your script
There are several ways to save your script. If the script did not pass the syntax check 
succesfully, your only option is to save your script as mere text. 
If syntax checking does not result in any problems, the dialog window below will appear, and 
you can save your text as a compiled script 
or as an application. 
Documents you may be interested
Documents you may be interested