display pdf in asp.net page : Rotate pdf pages application control utility azure web page winforms visual studio dmp7-part1842

Benchmark
i
ng
51
{
'artist' => > 'Bowie, , David',
'title' => 'Hunky Dory',
'year' => > '1971',
'label' => 'RCA'
},
{
'artist' => > 'Bowie, , David',
'title' => 'Earthling',
'year' => > '1998',
'label' => 'EMI'
}
];
This is a very understandable representation of our data structure.
Notice that we passed a reference to our array rather than the array itself. This is
because 
Dumper
expects a list of variables as arguments so, if we had passed an array, it
would have processed each element of the array individually and produced output for
each of them. By passing a reference we forced it to treat our array as a single object.
3.4
Benchmarking
When choosing between various ways to implement a task in Perl, it will often be
useful to know which option is the quickest. Perl provides a module called Bench-
mark that makes it easy to get this data. This module contains a number of func-
tions (see the documentation for details) but the most useful for comparing the
performance of different pieces of code is called 
timethese
. This function takes a
number of pieces of code, runs them each a number of times, and returns the time
that each piece of code took to run. You should, therefore, break your options
down into separate functions which all do the same thing in different ways and pass
these functions to 
timethese
. For example, there are four ways to put the value of
a variable into the middle of a fixed string. You can interpolate the variable directly
within the string 
$str = "The value is $x (or thereabouts)";
or join a list of values 
$str = join '', 'The value is ', $x, ' (or thereabouts)';
or concatenate the values 
$s = 'The value is ' . $x . ' (or thereabouts)';
or, finally, use 
sprintf
.
Rotate pdf pages - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
how to rotate one page in a pdf file; rotate individual pdf pages reader
Rotate pdf pages - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
rotate pdf page few degrees; change orientation of pdf page
52
CHAPTER 
U
s
eful Perl 
i
d
i
om
s
$str = sprintf 'The value is %s (or thereabouts)', $x;
In order to calculate which of these methods is the fastest, you would write a script
like this: 
#!/usr/bin/perl -w
use strict;
use Benchmark qw(timethese);
my $x = 'x' x 100;
sub using_concat {
my $str = 'x is ' . $x . ' (or thereabouts)';
}
sub using_join {
my $str = join '', 'x is ', $x, ' (or thereabouts)';
}
sub using_interp {
my $str = "x is $x (or thereabouts)";
}
sub using_sprintf {
my $str = sprintf("x is %s (or thereabouts)", $x);
}
timethese (1E6, {
'concat'
=> \&using_concat,
'join'
=> \&using_join,
'interp'
=> \&using_interp,
'sprintf' => \&using_sprintf,
});
On my current computer,3 running this script gives the following output: 
Benchmark: timing 1000000 iterations of concat, interp, join, sprintf …
concat: 8wallclocksecs(7.36usr+ 0.00sys= 7.36CPU)@135869.57/s(n=1000000)
interp: 8wallclocksecs(6.92 usr+ -0.00sys = 6.92CPU)@144508.67/s(n=1000000)
join: 9wallclocksecs(8.38usr+ 0.03sys= 8.41CPU)@118906.06/s(n=1000000)
sprintf: 12 wallclock secs (11.14 usr + 0.02 sys = 11.16 CPU) @ 89605.73/s
(n=1000000)
What does this mean? Looking at the script, we can see that we call the function
timethese
, passing it an integer followed by a reference to a hash. The integer is the
number of times that you want the tests to be run. The hash contains details of the
code that you want tested. The keys to the hash are unique names for each of the
subroutines and the values are references to the functions themselves. 
timethese
will run each of your functions the given number of times and will print out the
3
A rather old 200 MHz P6 with 64 MB of RAM, running Microsoft Windows 98 and ActivePerl build 521.
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Page: Delete Existing PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Delete PDF Page. How to VB.NET: Delete Consecutive Pages from PDF.
how to rotate pdf pages and save; rotate pdf page and save
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Page: Delete Existing PDF Pages. Provide C# Users with Mature .NET PDF Document Manipulating Library for Deleting PDF Pages in C#.
rotate pdf pages by degrees; pdf rotate one page
Command l
i
ne 
s
cr
i
pt
s
53
results. As you can see from the results we get above, our functions fall into three
sets. Both 
concat
and 
interp
took about 8 seconds of CPU time to run 1,000,000
times; 
join
was a little longer at 9 seconds; and 
sprintf
came in at 12 seconds of
CPU time. 
You can then use these figures to help you decide which version of the code to
use in your application.
3.5
Command line scrip
t
s
Often data munging scripts are written to carry out one-off tasks. Perhaps you have
been given a data file which you need to clean up before loading it into a database.
While you can, of course, write a complete Perl script to carry out this munging,
Perl supplies a set of command line options which make it easy to carry out this
kind of task from the command line. This approach can often be more efficient.
The basic option for command line processing is 
-e
. The text following this
option is treated as Perl code and is passed through to the Perl interpreter. You can
therefore write scripts like:
perl -e 'print "Hello world\n"'
You can pass as many 
-e
options as you want to Perl and they will be run in the
order that they appear on the command line. You can also combine many state-
ments in one 
-e
string by separating them with a semicolon.
If the code that you want to run needs a module that you would usually include
with a 
use
statement, you can use the 
-M
option to load the module. For example,
this makes it easy to find the version of any module that is installed on your system4
using code like this:
perl -MCGI -e 'print $CGI::VERSION'
These single-line scripts can sometimes be useful, but there is a whole set of more
powerful options to write file processing scripts. The first of these is 
-n
, which adds
a loop around your code which looks like this:
LINE:
while (<>) {
# Your -e code goes here
}
This can be used, for example, to write a simple 
grep
-like script such as:
perl -ne 'print if /search text/' file.txt
4
Providing that the module uses the standard practice of defining a $VERSION variable.
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using VB.
how to rotate a single page in a pdf document; rotate pages in pdf
C# PDF Page Insert Library: insert pages into PDF file in C#.net
how to merge PDF document files by C# code, how to rotate PDF document page, how to delete PDF page using C# .NET, how to reorganize PDF document pages and how
rotate individual pages in pdf reader; pdf rotate pages separately
54
CHAPTER 
U
s
eful Perl 
i
d
i
om
s
which will print any lines in 
file.txt
that contain the string “search text”. Notice
the presence of the 
LINE
label which allows you to write code using 
next
LINE
.
If you are transforming data in the file and want to print a result for every line,
then you should use the 
-p
option which prints the contents of 
$_
at the end of
each iteration of the 
while
loop. The code it generates looks like this:
LINE:
while (<>) {
# Your -e code goes here
} continue {
print
}
As an example of using this option, imagine that you wanted to collapse multiple
zeroes in a record to just one. You could write code like this:
perl -pe 's/0+/0/g' input.txt > output.txt
With the examples we’ve seen so far, the output from the script is written to 
STDOUT
(that is why we redirected 
STDOUT
to another file in the last example). There is
another option, 
-i
, which allows us to process a file in place and optionally create a
backup containing the previous version of the file. The 
-i
takes a text string which
will be the extension added to the backup of the file, so we can rewrite our previous
example as:
perl -i.bak -pe 's/0+/0/g' input.txt
This option will leave the changed data in 
input.txt
and the original data in
input.txt.bak
. If you don’t give 
-i
an extension then no backup is made (so
you’d better be pretty confident that you know what you’re doing!).
There are a number of other options that can make your life even easier. Using
-a
turns on autosplit, which in turn splits each input row into 
@F
. By default,
autosplit splits the string on any white space, but you can change the split character
using 
-F
. Therefore, in order to print out the set of user names from 
/etc/passwd
you can use code like this:
perl -a -F':' -ne 'print "$F[0]\n"' < /etc/passwd
The 
–l
option switches on line-end processing. This automatically does a 
chomp
on
each line when used with 
-n
or 
-p
. You can also give it an optional octal number
which will change the value of the output record separator (
$\
).5 This value is
5
Special variables like 
$\
are covered in more detail in chapter 6.
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET PDF Library - Copy and Paste PDF Pages in C#.NET. Easy to C#.NET Sample Code: Copy and Paste PDF Pages Using C#.NET. C# programming
rotate all pages in pdf file; rotate pdf page
VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
C#.NET convert PDF to text, C#.NET convert PDF to images, C#.NET PDF file & pages edit, C#.NET PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET
rotate all pages in pdf preview; how to rotate all pages in pdf in preview
Further 
i
nformat
i
on
55
appended to the end of each output line. Without the octal number, 
$\
is set to the
same value as the input record separator (
$/
). The default value for this is a newline.
You can change the value of 
$/
using the 
-0
(that’s dash-zero, not dash-oh) option.
What this means is that in order to have newlines automatically removed from
your input lines and automatically added back to your output line, just use 
–l
. For
instance, the previous 
/etc/passwd
example could be rewritten as:
perl -a -F':' -nle 'print $F[0]' < /etc/passwd
For more information about these command line options see the 
perlrun
manual
page which is installed when you install Perl.
3.6
Fur
t
her informa
t
ion
More discussion of the Schwartzian transform, the Orcish Manoeuvre, and other
Perl tricks can be found in Effective Perl Programming by Joseph Hall with Randal
Schwartz (Addison-Wesley) and The Perl Cookbook by Tom Christiansen and
Nathan Torkington (O’Reilly).
The more academic side of sorting in Perl is discussed in Ma
s
tering Algorithm
s
with Perl by Jon Orwant, Jarkko Hietaniemi, and John Macdonald (O’Reilly).
More information about benchmarking can be found in the documentation for
the 
Benchmark.pm
module.
Further information about the 
DBI
and 
DBD
modules can be found in Program-
ming the Perl 
DB
I
by Tim Bunce and Alligator Descartes (O’Reilly) and in the
documentation that is installed along with the modules. When you have installed
the DBI module you can read the documentation by typing
perldoc DBI
at your command line. Similarly you can read the documentation for any installed
DBD
module by typing 
perldoc DBD::<name>
at your command line. You should replace 
<name>
with the name of the 
DBD
mod-
ule that you have installed, for example “Sybase” or “
m
y
sql
”.
C# PDF Page Replace Library: replace PDF pages in C#.net, ASP.NET
Page: Replace PDF Pages. |. Home ›› XDoc.PDF ›› C# PDF: Replace PDF Pages. C#.NET PDF Library - Replace PDF Pages in C#.NET.
pdf rotate single page and save; permanently rotate pdf pages
VB.NET PDF - WPF PDF Viewer for VB.NET Program
C#.NET convert PDF to text, C#.NET convert PDF to images, C#.NET PDF file & pages edit, C#.NET PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET
pdf rotate one page; how to rotate all pages in pdf in preview
58
CHAPTER 
Pattern match
i
ng
A lot of data munging involves the use of pattern matching. In fact, it’s probably
fair to say that the vast majority of data munging uses pattern matching in one way
or another. Most pattern matching in Perl is carried out using regular expressions.1
It is therefore very important that you understand how to use them. In this chapter
we take an overview of regular expressions in Perl and how they can be used in data
munging, but we start with a brief look at a couple of methods for pattern matching
that don’t involve regular expressions.  
4.1
S
t
ring handling func
t
ions
Perl has a number of functions for handling strings and these are often far simpler
to use and more efficient than the regular expression-based methods that we will
discuss later. When considering how to solve a particular problem, it is always worth
seeing if you can use a simpler method before going straight for a solution using
regular expressions.
4.1.1 Subs
t
rings
If you want to extract a particular portion of a string then you can use the 
substr
function. This function takes two mandatory parameters: a string to work on and
the offset to start at, and two optional parameters: the length of the required
substring and another string to replace it with. If the third parameter is omitted,
then the substring will include all characters in the source string from the given off-
set to the end. The offset of the first character in the source string is 0.2 If the offset
is negative then it counts from the end of the string. Here are a few simple examples:
my $string = 'Alas poor Yorick. I knew him Horatio.';
my $sub1 = substr($string, 0, 4);
# $sub1 contains 'Alas'
my $sub2 = substr($string, 10, 6);
# $sub2 contains 'Yorick'
my $sub3 = substr($string, 29);
# $sub3 contains 'Horatio.'
my $sub4 = substr($string, -12, 3);
# $sub4 contains 'him'
Many programming languages have a function that produces substrings in a similar
manner, but the clever thing about Perl’s 
substr
function is that the result of the
operation can act as an 
lvalue
. That is, you can assign values to it, like this:
my $string = 'Alas poor Yorick. I knew him Horatio.';
substr($string, 10, 6) = 'Robert';
substr($string, 29) = 'as Bob';
print $string;
1
In fact, it’s often suggested that regular expressions in Perl are overused.
2
Or, more accurately, it is the value of the special 
$[
variable, but as that is initially set to zero and there is
really no good reason to change it, your strings should always start from position zero.
Str
i
ng handl
i
ng funct
i
on
s
59
which will produce the output:
Alas poor Robert. I knew him as Bob
Notice the second assignment in this example which demonstrates that the sub-
string and the text that you are replacing it with do not have to be the same length.
Perl will take care of any necessary manipulation of the strings. You can even do
something like this:
my $short = 'Short string';
my $long
= 'Very, very, very, very long';
substr($short, 0, 5) = $long;
which will leave 
$short
containing the text “Very, very, very, very long string”.
4.1.2 Finding s
t
rings wi
t
hin s
t
rings (index and rindex)
Two more functions that are useful for this kind of text manipulation are 
index
and
rindex
. These functions do very similar things—
index
finds the first occurrence of
a string in another string and 
rindex
finds the last occurrence. Both functions
return an integer indicating the position3 in the source string where the given sub-
string begins, and both take an optional third parameter which is the position where
the search should start. Here are some simple examples:
my $string = 'To be or not to be.';
my $pos1 = index($string, 'be');
# $pos1 is 3
my $pos2 = rindex($string, 'be');
# $pos2 is 16
my $pos3 = index($string, 'be', 5);
# $pos3 is 16
my $pos4 = index($string, 'not');
# $pos4 is 9
my $pos5 = rindex($string, 'not');
# $pos5 is 9
It’s worth noting that 
$pos3
is 16 because we don’t start looking until position 5;
and 
$pos4
and 
$pos5
are equal because there is only one instance of the string
'not'
in our source string.
It is, of course, possible to use these three functions in combination to carry out
more complex tasks. For example, if you had a string and wanted to extract the
middle portion that was contained between square brackets (
[
and 
]
), you could do
something like this:
my $string = 'Text with an [important bit] in brackets';
my $start = index($string, '[');
my $end = rindex($string, ']');
my $keep = substr($string, $start+1, $end-$start-1);
3
Again, the positions start from 
0
—or the value of 
$[
.
60
CHAPTER 
Pattern match
i
ng
although in this case, the regular expression solution would probably be more eas-
ily understood.
4.1.3 Case 
t
ransforma
t
ions
Another common requirement is to alter the case of a text string, either to change
the string to all upper case, all lower case, or some combination. Perl has functions
to handle all of these eventualities. The functions are 
uc
(to convert a whole string
to upper case), 
ucfirst
(to convert the first character of a string to upper case), 
lc
(to convert a whole string to lower case), and 
lcfirst
(to convert the first charac-
ter of a string to lower case).
There are a couple of traps that seem to catch unwary programmers who use
these functions. The first of these is with the 
ucfirst
and 
lcfirst
functions. It is
important to note that they do exactly what they say and affect only the first charac-
ter in the given string. I have seen code like this:
$string = ucfirst 'UPPER';
# This doesn’t work
where the programmer expects to end up with the string 
'Upper'
. The correct
code to achieve this is:
$string = ucfirst lc 'UPPER';
The second trap for the unwary is that these functions will respect your local lan-
guage character set, but to make use of that, you need to switch on Perl’s locale
support by including the line 
use
locale
in your program.
4.2
Regular expressions
In this section we take a closer look at regular expressions. This is one of Perl’s most
powerful tools for data munging, but it is also a feature that many people have diffi-
culty understanding.
4.2.1 Wha
t
are regular expressions?
“Regular expression” is a very formal computer science sounding term for some-
thing that would probably scare people a great deal less if we simply called it “pat-
tern matching,” because that is basically what we are talking about.
If you have some data and you want to know whether or not certain strings are
present within the data set, then you need to construct a regular expression that
describes the data that you are looking for and see whether it matches your data.
Exactly how you construct the regular expression and match it against your data
Documents you may be interested
Documents you may be interested