devexpress pdf viewer control asp.net : Copy pdf page to clipboard Library control component .net web page winforms mvc AS4AS_e5-part973

This style is a bit awkward to read, especially for longer paths, and worst of all, it is in a format 
is recognized by the Finder only. You may well prefer, or usually need, the more abstract 
notation of a path using colons. You can force the Finder to return that, by using the ‘a reference 
to’ command [5].  
[5]
tell application "Finder"
set thePath to a reference to file "Macintosh HD:Users:
ik:Documents:report.cwk"
end tell
Note that the result field says that we have a 
file. Please run the script [6] below and select the 
same file report.cwk.
[6]
choose file
The result field now looks like this.
It reads ‘alias’, instead of ‘file’! To explain the difference to AppleScript, let us first discuss the 
alias as you will be familiar with from working in the Finder. 
Copy pdf page to clipboard - Library control 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 pdf page to clipboard - Library control 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
Suppose I have created an alias on my desktop of the file ‘report.cwk’ which file is in my folder 
‘Documents’. Now, if I were to move the file ‘report.cwk’ from the folder ‘Documents’ to another 
location, double-clicking the alias would still open the file. Great! I may even rename the original 
file ‘report.cwk’ to something else, such as ‘funny_story.cwk’. That is because the alias does 
not store the location (and name) of the file ‘report.cwk’ as
“Macintosh HD:users:Documents:report.cwk”
but rather as a kind of ID. The Finder maintains a database of these IDs together with the 
current whereabouts of the corresponding files (and folders and applications, for that matter). 
So, if I move the file ‘report.cwk’, its unique ID remains the same, but the Finder changes its 
internal database to reflect the new location of the file. When I double-click the alias, the ID 
contained by it is used by the Finder to find out which file corresponds to the ID, and the 
Finder will open the correct file. 
To have a script that does not break if the file (or folder) a script refers to is removed or 
renamed, our script should contain the ID of the file (or folder), instead of a ‘hard-coded’ path.  
AppleScript allows for this [7]. 
[7]
set thePath to alias "Macintosh HD:Users:ik:Documents:report.cwk"
It is very important to note that the statement of script [7] refers to the original file present in the 
folder ‘Documents’, and not some user-created alias of that file, like the one I purported to 
have on my desktop. In the statement of script [7], ‘alias’ is a keyword indicating that, 
after 
compilation (i.e. checking of the syntax), the script should remember the ID of the file and, 
upon execution, should not ask the Finder for a file at the location as specified by the defined 
path, but based on the ID. 
If you run the script [7], and check its result in the result field, it looks like this:
So, you do not get to see the ID itself. However, the word ‘alias’ before the path tells you that 
internally the script works with the ID, and not with a hard-coded path. Now, with the script 
being compiled, move the file ‘report.cwk’ to another location and run the script again. I moved 
the file into a folder named ‘Miscellaneous’ inside my folder ‘Documents’. Even though the 
script, and in particular the path in script [7], has not changed, the result now is
alias "Macintosh HD:Users:ik:Documents:Miscellaneous:report.cwk"
Try this yourself (again, your path looks different because of your login name that is probably 
not ‘ik’ and perhaps because you may use different folder names)! If you save the script as a 
compiled script or an AppleScript application, the ID is stored, and next time you run the 
script, it will perform flawlessly even if you moved or renamed the original file. It should not 
surprise you that the script will fail if the file has been deleted.
In summary, you have two ways of dealing with paths in scripts. You can either specify a file 
location (hard-coded, using file “
path here”
), or you can use the ‘alias’ keyword to make the 
Library control component:VB.NET Word: VB Code to Create Windows Word Viewer | Online
a Word document can be copied into clipboard and pasted viewer; Easy to zoom in / out target Word document page; it is possible for users to copy the document
www.rasteredge.com
script insensitive to movement or renaming of the file/folder/application 
after compilation of the 
script. 
While the use of ‘alias’ is often the way to go, the file you refer to has to be there when you 
compile the script. Also, you can not give the script to someone else in the form of an 
AppleScript application, because even if a file with that same name is present at a similar 
location on that person’s computer, the file will have a different ID.
#Just a note about script [7]. Personally, I was quite surprised that this works without a Finder 
tell block. Afterall, the internal database containing IDs and file locations is maintained by the 
Finder. Because the Finder is the only program that can supply the information, and the 
AppleScript component of Mac OS X knows that, AppleScript apparently asks the Finder for 
the ID behind the scenes or queries the database directly. This behavior is an exception, 
though. For example, opening a file using a path requires a tell block (See script [3]). That is 
because it is not just the Finder that could open a particular file, but also the program which 
created that file, and possibly another program as well. For example, a picture in jpeg format, 
can be opened by PhotoShop and by your browser. The tell block is needed to indicate 
which program is to open the file.#
Now we know how to address files and folders, we can move them around or copy them [8].
[8]
tell application "Finder"
move file "Macintosh HD:Users:ik:Documents:report.cwk" to the trash
end tell
CHAPTER 13
REPEATING 
In all the scripts we have discussed so far, each statement was executed just once. At times, 
you will need to execute a one or more of statements several times. AppleScript offers 
several ways to achieve that. 
If you know the number of times the statement (or group of statements) has to be repeated, 
you may specify that by including that number in the repeat statement of script [1]. The 
number must be an integer, because you can not repeat an operation, say, 2.7 times.
[1]
repeat times
say "Julia is beautiful actress"
end repeat
say "This sentence is spoken only once"
Similar to what we have seen for the ‘tell’, ‘try’ and ‘if...then’ statements, an ‘end repeat’ 
statement is compulsory to indicate to AppleScript which statements belong to the group of 
statements to repeat 
Instead of specifying the number, you may use a variable instead [2].
[2]
set repetitions to 2
repeat repetitions times
-- Statements to repeat here
end repeat
Here [3] is a more life-like example of script [2]. When script [3] is run, the user of the script is 
allowed to enter a number in a dialog window. Because anything entered there ends up in 
‘text returned’, we must convert the value entered into an integer. That is not possible if the 
user entered text or a real (fractional) number. So, we have to take some precautions.
[3]
-- The user is allowed to determine how often the text string is spoken
set textToDisplay to "How often has the sentence to be repeated?"
-- The number '2' is displayed to give the user hint of the type of 
answer expected
display dialog textToDisplay default answer "2"
set valueEntered to text returned of the result
try
-- valueEntered is string (not an integer), which may look like this: “2”
-- Here we try to coerce the value entered by the user into an integer. If 
that doesn't work, the try statement prevents the script 
from being aborted
set valueEntered to valueEntered as integer
end try
-- If valueEntered is of the appropriate class (i.e. integer), we can perform 
the repeat block. If not, we provide a dialog.
if class of valueEntered is integer then
-- The repeat block is executed if the coercion did not fail
repeat valueEntered times
say "Julia is beautiful actress"
end repeat
else
display dialog "You did not enter (valid) number."
end if
After the else statement [3.21], the user of the script is reproached without being given a hint 
how to get it right, and the user has to start the script again. That does not earn you many 
points in the Macintosh community. There are two alternative repeat statements [4, 5] that 
allow you to repeat operations until a condition is met.
[4]
set conditionMet to false
repeat while conditionMet is false
-- if (some test is passed) then execute the following statement
--
set conditionMet to true
end repeat
[5]
set conditionMet to false
repeat until conditionMet is true
-- if (some test is passed) then execute the following statement
--
set conditionMet to true
end repeat
Let us use the repeat statement of script [4] to alleviate the inconvenience of script [3]. We will 
repeat the request until the value entered can be coerced into an integer. In case of a 
successful coercion, we will set the variable ‘correctEntry’ to true, as a result of which the repeat 
loop is exited and the remainder of the script is executed [6]. If the value entered by the user 
can not be coerced into an integer, we will give detailed feedback to the user. 
[6]
set correctEntry to false
repeat while correctEntry is false
-- The user is allowed to determine how often the text string is spoken
set textToDisplay to "How often has the sentence to be repeated?"
-- The number '2' is displayed to give the user hint of the type 
answer expected
display dialog textToDisplay default answer "2"
set valueEntered to text returned of the result
try
-- The valueEntered is always string.
-- Here we try to coerce the value entered by the user 
into an integer. If that doesn't work, we jump to the 
on error section
set valueEntered to valueEntered as integer
-- Setting correctEntry to true will end the loop
set correctEntry to true
on error
-- We will give detailed feedback. 
try
-- First we check if the user entered fractional number
set valueEntered to valueEntered as number
display dialog "You entered fractional number instead 
of an integer."
on error
-- If it is not number, the entry must have been text."
display dialog "Instead of an integer, like you
entered text."
end try
-- Because the value of correctEntry is still false, the loop continues.
end try
end repeat
-- The script can make it here only if correctEntry is true
CorrectEntry is only true if valueEntered is successfully coerced 
into an integer
repeat valueEntered times
say "Julia is beautiful actress"
end repeat
Please note that the location of the statement ‘set correctEntry to true’ is very important. It must 
be 
- within the (first) try block; and 
- after the statement that may result in an error (here the attempt at coercion)
Otherwise, correctEntry would be set to true irrespective of whether the requirement 
(successful coercion to an integer) is met.
#
While script [3] can perform the desired action (speaking a sentence an indicated number of 
times) exactly like script [6], it is neither user-friendly nor robust. I.e., it can fail if the user enters 
the wrong data, and does not provide proper feedback in case the user makes a mistake.
However, script [6] could be expanded by putting a restriction on the upper limit of the value 
of valueEntered (for example using the script fragment [7]), so as to prevent the sentence 
being spoken 10,000 times. On the other hand, script [6] may already be overkill for your 
purposes. 
[7]
if valueEntered then
set valueEntered to 5
end if
If you really need a robust script, you should test it extensively. Try to enter text, fractional 
numbers, extreme values etc. to verify that the script is well-behaved. One thing not covered 
by script 6 is the occasion where the user enters a negative number. You could either turn it 
into a positive number, or just signal the user that a positive number is expected. Interestingly, 
script [6] does not fail with a negative number as the entry. Try it yourself by modifying script 
[1]. 
The repeat statements of scripts [4] and [5] can be used for just about any purpose. You may 
perform a loop to make sure 
- a user chooses a file or folder, 
- a word is present in a particular file,
etc.
In contrast to the general purpose repeat statements of scripts [4] and [5], scripts [1] and [2] 
are meant for number-related conditions. There are a couple more of such repeat statements.
[8]
repeat with counter from to 5
say "I drank counter bottles of coke."
end repeat
As you can see, you can use the variable of statement [8.1], i.e. ‘counter’, within your script. 
However, you can not change the variable to another value within the repeat block.
[9]
repeat with counter from to 5
say "I drank counter bottles of coke."
set counter to counter 1
end repeat
If you run the script, no spoken sentences are skipped and all bottles from 1 to 5 are 
consumed.
In statement [9.1], a stepsize of 1 is used by default. If you want a different stepsize, you can 
[10.1].
[10]
repeat with counter from to by 2
say "I drank counter bottles of coke."
end repeat
In script [10], the stepsize is 2, and you will hear a sentence spoken three times (for the 
counter values of 1, 3 and 5).
If you have a list, and each item has to be used by or subjected to some operation, you could 
count the number of items in the list, and perform a repeat loop as in script [11].
[11]
tell application "Finder"
set refToParentFolder to alias "Macintosh HD:Users:ik:Documents:"
set listOfFolders to every folder of refToParentFolder
set noOfFolders to the count of y
repeat with counter from to noOfFolders
-- actions here
end repeat
end tell
However, AppleScript has an elegant alternative, a demonstration of which is given below. 
The script [12] below allows you to determine the number of folders in a folder selected by a 
user. Then a repeat statement is used to create a list of the names of all the folders present. 
[12]
set folderSelected to choose folder "Select folder"
-- To find out which folders are present in the selected folder, we have to ask 
the Finder to give us the answer.
-- Note: “every folder” does NOT include folders inside other folders. It is just
the folders you would see if you’d open the folder in the Finder.
tell application "Finder"
set listOfFolders to every folder of folderSelected
end tell
-- The result is list of folder references (paths), which can be processed 
outside the Finder tell block
-- Outcomment all the following statements and use the result field to see  
that the list ‘listOfFolders’ contains items that look like this:   
folder “reports” of folder “Documents” of folder “ik” of folder “Users” 
of startup disk of application “Finder”. 
-- Only the Finder and the AppleScript component of Mac OS can deal with 
such  references.
-- The folder names are to be stored in new list, which is created here
set theList to {}
repeat with aFolder in listOfFolders
-- We have references to folders, and because reference contains the 
name of the folder, the AppleScript component of Mac OS X can 
obtain the name without having to rely on the Finder  
-- If you want to find out another property of the folders, e.g., the size 
(in bytes) of the folders, a trip to the Finder is required (i.e. a 
tell block for the next statement)
set temp to the name of aFolder
-- Here we add the name to the list
set theList to theList temp
end repeat
CHAPTER 14
HANDLING  EVERYTHING
AppleScript’s English-like nature helps to make scripts easy to read and write. We have seen 
that it is your responsibility too. For example, it is up to you to choose descriptive variable 
names, and to provide useful comments in your script. AppleScript can help you to keep 
your scripts more readable by providing ‘handlers’. Imagine that you have the same set of 
statements at more locations in your script. If there is a bug, you have to correct it at each of 
those places. AppleScript offers the possibility to group these statements and give this 
group a name. If you call the name, the set is executed. 
Here is how to define a handler [1].
[1]
on warning()
display dialog "Don't do that!" buttons {"OK"} default button "OK"
end warning
To use it, your script must call the handler, like this [2]. 
[2]
warning()
It does not matter whether the handler is defined in your script before or after the handler is 
called.
The handler of script [1] is pretty inflexible. It would be nice if we could tell the handler what 
text to display. Guess what, this is what handlers were designed for [3].
[3]
on warning(textToDisplay)
display dialog textToDisplay buttons {"OK"} default button "OK"
end warning
warning("Don’t do that!")
warning("Go fishing!")
In statement [3.1], the variable ‘textToDisplay’ accepts the value passed on when the handler 
is called (in statements [3.4] and [3.5], each of which contains a value between parenthesis, 
which value is passed on to the handler). When the script [3] is executed, two dialog windows 
are shown consecutively. 
Instead of specifying the data when calling a handler, you may use a variable instead [4].
[4]
on warning(textToDisplay)
display dialog textToDisplay buttons {"OK"} default button "OK"
end warning
set someText to some item of {"Don't do that!", "Go fishing!"}
warning(someText)
Note that the variable name used when calling the handler [4.5]  differs from the one in the 
handler definition [4.1]. So, you do not need to know (look up) the variable name used by the 
handler. Of course, you will need to know what datatype the handler expects.
You not only can pass information on to a handler, but it can also return information.
[5]
on circleArea(radius)
set area to pi (radius 2)
end circleArea
set areaCalculated to circleArea(3)
The handler ‘circleArea()’ performs the calculation pi *3^2 and automatically returns the result. 
However, just like the ‘get’ command, this automatic returning goes for the last statement 
executed by a handler only. To ensure that you obtain the result you want, even if it is 
generated somewhere in a series of statements [6.3], use the ‘return’ keyword [6].
[6]
on older(a)
if a 30 then
return "older"
end if
return "not older"
end older
set theAge to older(73)
If the comparison in statement [6.2] is true, statement [6.3], which is not the last statement in 
the handler, returns the result.
You are not limited to passing on single values [7.7] to a handler.
[7]
on largest(ab)
if a b then
return a
end if
return b
end largest
set theLargest to largest(5, 3)
The above script returns the largest of two values. Note that in statement [7.1] two variables 
are provided to accept the values. Accordingly, when calling the handler, two values must be 
supplied [7.7]. In a real-world script, at least one of these values will be supplied as a 
variable. 
It is also possible to return more than one value. To this end, provide the data to be returned 
as a list [8.4].
[8]
on circleCalculations(radius)
set area to pi (radius 2)
set circumference to pi radius
Documents you may be interested
Documents you may be interested