display pdf winform c# : Rotate pdf page by page Library software class asp.net winforms html ajax 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200757-part685

Setting
U.S.
UK
Norway
Decimal Separator
.
.
,
Thousand Separator
,
,
.
Date Order
mm/dd/yyyy
dd/mm/yyyy
dd.mm.yyyy
Date Separator
/
/
.
Example Number: 1234.56
1,234.56
1,234.56
1.234,56
Example Date: February 10, 2007
02/10/2007
10/02/2007
10.02.2007
Windows and Excel Language
English
English
Norwegian
Text for Boolean True
True
True
Sann
The regional settings are changed using the Regional Settings applet (Regional Options in Windows
2000) in Windows Control Panel, and the Office 2007 language is changed using the Microsoft Office
2007 Language Settings program. Unfortunately, the only way to change the Windows language is to
install a new version from scratch.
When testing your application, it is a very good idea to use some fictional regional settings, such as hav-
ing a hash mark (#)for the thousands separator, an exclamation point (!)for the decimal separator, and
a year/month/day date order. It is then very easy to determine if your application is using your settings
or some internal default. For completeness, you should also have a machine in your office with a differ-
ent language version of Windows from the one you normally use.
Responding to Regional Settings and the
Windows Language
This section explains how to write applications that work with different regional settings and Windows
language versions, which should be considered the absolute minimum requirement.
Identifying the User’s Regional Settings and Windows
Language
Everything you need to know about your user’s Windows Regional Settings and Windows language
version is found in the Application.Internationalproperty. The online help lists all of the items
that can be accessed, though you are unlikely to use more than a few of them. The most notable are:
XlCountryCode: The language version of Excel (or of the currently active Office language)
XlCountrySetting: The Windows regional settings location
XlDateOrder: The choice of month-day-year, day-month-year, or year-month-day order to dis-
play dates
538
Chapter 25: International Issues
Rotate pdf page by page - 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#
pdf rotate one page; change orientation of pdf page
Rotate pdf page by page - 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
how to rotate one page in pdf document; pdf reverse page order
Note that there is no constant that enables you to identify which language version of Windows is
installed (but you can get that information from the Windows API if required).
Windows Regional Settings is abbreviated to WRS in the rest of this chapter, and is also described as
local settings.
VBA Conversion Functions from an International
Perspective
The online help files explain the use of VBA’s conversion functions in terms of converting between dif-
ferent data types. This section explains their behavior when converting to and from strings in different
locales.
Implicit Conversion
This is the most common form of type conversion used in VBAcode and forces the VBAinterpreter to
convert the data using whichever format it thinks is most appropriate. Atypical example of this code is:
Dim dtMyDate As Date
dtMyDate = DateValue(“Jan 1, 2007”)
MsgBox “This first day of this year is “ & dtMyDate
When converting a number to a string in Office 2007, VBAuses the WRS to supply either a date string in
the user’s ShortDateformat, the number formatted according to the WRS, or the text for Trueor False
in the WRS language. This is fine, if you want the output as a locally formatted string. If, however, your
code assumes you’ve got a U.S.-formatted string, it will fail. Of course, if you develop using U.S. for-
mats, you won’t notice the difference (though your client will).
There is a much bigger problem with using implicit conversion if you are writing code for multiple ver-
sions of Excel. In previous versions, the number formats used in the conversion were those appropriate
for the Excel language being used at run time (buried within the Excel object library), which might be
different from both U.S. and local formats, and were not affected by changing the WRS.
Be very careful with the data types returned from, and used by, Excel and VBAfunctions. For example,
Application.GetOpenFilenamereturns a Variantcontaining the Boolean value Falseif the user
cancels, or a string containing the text of the selected file. If you store this result in a Stringvariable, the
Boolean Falsewill be converted to a string in the user’s WRS language, and it may not equal the string
“False”that you may be comparing it to. 
To avoid these problems, use the Object Browser to check the function’s return type and parameter types,
and then make sure to match them, or explicitly convert them to your variable’s data type. Applying this
recommendation gives you (at least) three solutions to using Application.GetOpenFilename.
Typical code running in Norway:
Dim stFile As String
stFile = Application.GetOpenFilename()
If stFile = “False” Then
...
539
Chapter 25: International Issues
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
XDoc.PDF ›› VB.NET PDF: Delete PDF Page. using RasterEdge.Imaging.Basic; using RasterEdge.XDoc.PDF; How to VB.NET: Delete a Single PDF Page from PDF File.
how to rotate all pages in pdf; pdf page order reverse
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Professional .NET PDF control for inserting PDF page in Visual Basic .NET class application.
save pdf rotated pages; rotate individual pages in pdf
If the user cancels, GetOpenFilenamereturns a variable containing the Boolean value False. Excel con-
verts it to a string to put in your variable, using the Windows language. In Norway, the string will con-
tain “Usann”. If this is compared to the string “False”, it doesn’t match, so the program thinks it is a
valid filename and subsequently crashes.
Solution 1:
Dim vaFile As Variant
vaFile = Application.GetOpenFileName()
If vaFile = False Then    ‘Compare using the same data types
...
Solution 2:
Dim vaFile As Variant
vaFile = Application.GetOpenFileName()
If CStr(vaFile) = “False” Then      ‘Explicit conversion with CStr() always
‘gives a US Boolean string
...
Solution 3:
Dim vaFile As Variant
vaFile = Application.GetOpenFileName()
If TypeName(vaFile) = “Boolean” Then     ‘Got a Boolean, so must have
‘cancelled
...
Note that in all three cases, the key point is that you are matching the data type returned by
GetOpenFilename(a Variant) with your variable. If you use the MultiSelect:=Trueparameter
within the GetOpenFileNamefunction, the last of the preceding solutions should be used. This is
because the vaFilevariable will contain an array of filenames, or the Boolean False. Attempting to
compare an array with False, or trying to convert it to a string, will result in a run-time error.
Date Literals
When coding in VBA, you can write dates using a format of #01/01/2007#, which is obviously January
1, 2007. But what is #02/01/2007#? Is it January 2 or February 1? It’s actually February 1, 2007. This is
because when coding in Excel, you do so in American English, regardless of any other settings you may
have, and hence you must use U.S.-formatted date literals (mm/dd/yyyy format). If other formats are
typed in (such as #yyyy–mm–dd#), Excel will convert them to the #mm/dd/yyyy#order.
What happens if you happen to be Norwegian or British and try typing in your local date format (which
you willdo at some time, usually near a deadline)? If you type in a Norwegian-formatted date literal,
#02.01.2007#, you get a syntax error, which at least alerts you to the mistake you made. However, if
you type in dates in a UK format (dd/mm/yyyy format) things get a little more interesting. VBArecog-
nizes the date and so doesn’t give an error, but “sees” that you have the day and month the wrong way
around; it swaps them for you. So, typing in dates from January 10, 2007 to January 15, 2007 results in:
540
Chapter 25: International Issues
C# PDF Page Insert Library: insert pages into PDF file in C#.net
page processing functions, such as 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
how to rotate all pages in pdf in preview; how to rotate just one page in pdf
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Pages. |. Home ›› XDoc.PDF ›› C# PDF: Delete PDF Page. Demo Code: How to Delete a Single PDF Page from PDF File in C#.NET. How
how to rotate all pages in pdf at once; save pdf rotate pages
You Typed
VBA Shows
Meaning
10/1/2007
10/1/2007
October 1, 2007
11/1/2007
11/1/2007
November 1, 2007
12/1/2007
12/1/2007
December 1, 2007
13/1/2007
1/13/2007
January 13, 2007
14/1/2007
1/14/2007
January 14, 2007
15/1/2007
1/15/2007
January 15, 2007
If these literals are sprinkled through your code, you will not notice the errors.
It is much safer to avoid using date literals and use the VBAfunctions DateSerial(Year,Month,Day)
or DateValue(DateString), where DateStringis a non-ambiguous string such as “January 1, 2007”.
Both of these functions return the corresponding Datenumber.
The IsNumeric and IsDate Functions
These two functions test if a string can be evaluated as a number or date according to the WRS and
Windows language version. You should always use these functions before trying to convert a string to
another data type. There are no IsBooleanfunctions to check if a string is a U.S.-formatted number or
date. Note that IsNumericdoes not recognize a percent sign (%) character on the end of a number, and
IsDatedoes not recognize days of the week. IsDateis also extremely generous in its recognition; if
there’s any possible way that a string could represent a date, it will return True.
The CStr Function
This is the function most used by VBAin implicit data type conversions. It converts a Variantto a
String, formatted according to the WRS. When converting a Datetype, the ShortDateformat is used,
as defined in the WRS. Note that when converting Booleans, the resulting text is the English “True”or
“False”and is not dependent on any Windows settings. Compare this with the implicit conversion of
Booleans, whereby MsgBox“Iam“&Trueresults in the Truebeing displayed in the WRS language
(“IamSann”in Norwegian Regional Settings).
The CDbl, CSng, CLng, CInt, CByte, CCur, and CDec Functions
All of these can convert a string representation of a number into a numeric data type (as well as convert-
ing different numeric data types into each other). The string must be formatted according to WRS. These
functions do not recognize date strings or percent sign (%) characters.
The CDate and DateValue Functions
These methods can convert a string to a Datedata type (CDatecan also convert other data types to the
Datetype). The string must be formatted according to WRS and use the Windows language for month
names. It does not recognize the names for the days of the week, giving a TypeMismatcherror. If the
year is not specified in the string, it uses the current year.
541
Chapter 25: International Issues
C# TIFF: How to Rotate TIFF Using C# Code in .NET Imaging
Convert Tiff to Jpeg Images. Convert Word, Excel, PowerPoint to Tiff. Convert PDF to Tiff. Move Tiff Page Position. Rotate a Tiff Page. Extract Tiff Pages.
pdf expert rotate page; rotate pdf pages and save
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
If using x86, the platform target should be x86. C#.NET Sample Code: Clone a PDF Page Using C#.NET. Load the PDF file that provides the page object.
rotate all pages in pdf and save; save pdf after rotating pages
The CBool
CBoolconverts a string (or a number) to a Booleanvalue. Contrary to all the other Cxxxconversion
functions, the string must be the English “True”or “False”.
The Format Function
The Formatfunction converts a number or date to a string, using a number format supplied in code. The
number format must use U.S. symbols (m, d, s, and so on), but results in a string formatted according to
WRS (with the correct decimal, thousands, and date separators) and the WRS language (for the weekday
and month names). For example, the following code will result in Friday 05/01/2007 in the UK, but
Fredag 05.01.2007 when used with Norwegian settings:
MsgBox Format(DateSerial(2007, 1, 5), “dddd dd/mm/yyyy”)
If you omit the number format string, it behaves in exactly the same way as the CStrfunction (even
though online help says it behaves like Str), including the strange handling of Booleanvalues, where
Format(True)always results in the English “True”. Note that it does not change the date order
returned to agree with the WRS, so your code has to determine the date order in use before creating the
number format string, using Application.International(xlDateOrder). If the preceding code is
run in the U.S., it returns the same as in the UK—Friday 05/01/2007—but your users will interpret that
to mean May 1, not the correct January 5.
The FormatCurrency, FormatDateTime, FormatNumber, and
FormatPercent Functions
These functions added in Excel 2000 provide the same functionality as the Formatfunction, but use
parameters to define the specific resulting format instead of a custom format string. They correspond to
standard options in Excel’s Number Format dialog, whereas the Formatfunction corresponds to the
Custom option. They have the same international behavior as the Formatfunction from the previous
section.
The Str Function
The Strfunction converts a number, date, or Boolean to a U.S.-formatted string, regardless of the WRS,
Windows language, or Office language version. When converting a positive number, it adds a space on
the left. When converting a decimal fraction, it does not add a leading zero. The following custom func-
tion is an extension of Str, which removes the leading space and adds the zero.
The sNumToUS Function
This function converts a number, date, or Boolean variable to a U.S.-formatted string. There is an addi-
tional parameter that can be used to return a string using Excel’s DATEfunction, which would typically
be used when constructing .Formulastrings:
Function sNumToUS(vValue As Variant, Optional bUseDATEFunction) As String
Dim sTmp As String
‘Don’t accept strings or arrays as input
If TypeName(vValue) = “String” Then Exit Function
542
Chapter 25: International Issues
VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
Existing PDF Pages. Page: Replace PDF Pages. Page: Move Page Position. Page: Copy, Paste PDF Pages. Page: Rotate a PDF Page. PDF Read. Text
rotate all pages in pdf; how to rotate a single page in a pdf document
C# PDF Page Replace Library: replace PDF pages in C#.net, ASP.NET
Page: Replace PDF Pages. An Excellent PDF Control Allows C# Users to Replace the Original PDF Page with New PDF Page from Another PDF File in C#.NET.
rotate pdf pages by degrees; rotate individual pdf pages reader
If Right(TypeName(vValue), 2) = “()” Then Exit Function
If IsMissing(bUseDATEFunction) Then bUseDATEFunction = False
‘Do we want it returned as Excel’s DATE function 
‘(which we can’t do with strings)?
If bUseDATEFunction Then
‘We do, so build the Excel DATE() function string
sTmp = “DATE(“ & Year(vValue) & “,” & Month(vValue) & “,” & _
Day(vValue) & “)”
Else
‘Is it a date type?
If TypeName(vValue) = “Date” Then
sTmp = Format(vValue, “mm””/””dd””/””yyyy”)
Else
‘Convert number to string in US format and remove leading space
sTmp = Trim(Str(vValue))
‘If we have fractions, we don’t get a leading zero, so add one.
If Left(sTmp, 1) = “.” Then sTmp = “0” & sTmp
If Left(sTmp, 2) = “-.” Then sTmp = “-0” & Mid(sTmp, 2)
End If
End If
‘Return the US formatted string
sNumToUS = sTmp
End Function
vValueis a variant containing the number to convert, which can be:
Anumber to be converted to a string with U.S. formats
Adate to be converted to a string in mm/dd/yyyy format
ABoolean converted to the strings “True”or “False”
bUseDATEFunctionis an optional Boolean for handling dates. When it is set to FalsesNumToUS
returns a date string in mm/dd/yyyy format. When it is set to TruesNumToUSreturns a date as
DATE(yyyy,mm,dd).
The Val Function
This is the most commonly used function to convert from strings to numbers. It actually only converts a
U.S.-formatted numerical string to a number. All the other string-to-number conversion functions try to
convert the entire string to a number and raise an error if they can’t. Val, however, works from left to
right until it finds a character that it doesn’t recognize as part of a number. Many characters typically
found in numbers, such as dollar signs ($) and commas, are enough to stop it from recognizing the num-
ber. Valdoes not recognize U.S.-formatted date strings.
Valalso has the dubious distinction of being the only one of VBA’s conversion functions to take a spe-
cific data type for its input. Whereas all the others use Variants, Valaccepts only a string. This means
that anything you pass to Valis converted to a string (implicitly, therefore according to the WRS and
Windows language) before being evaluated according to U.S. formats.
543
Chapter 25: International Issues
In the following table, myDateis a Datevariable containing February 10, 2007 and myDblis a Double
containing 1.234. 
Expression
U.S.
UK
Norway
Val(myDate)
2
10
10.02(or 10.2)
Val(myDbl)
1.234
1.234
1
Val(True)
0(=False)
0(=False)
0(=False)
Val(“SomeText”)
0
0
0
Val(“6MySt.”)
6
6
6
For clarity of comparison, the results are all displayed using U.S./UK number formats, though
Val(myDate)would appear as 10,02 with Norwegian settings.
Application.Evaluate
Though not normally considered to be a conversion function, Application.Evaluateis the only way
to convert a U.S.-formatted date string to a date number. The following two functions, IsDateUSand
DateValueUS,are wrapper functions that use this method.
The IsDateUS Function
The built-in IsDatefunction validates a string against the Windows Regional Settings. This function
provides you with a way to check if a string contains a U.S.-formatted date:
Function IsDateUS(sDate As String) As Boolean
IsDateUS = Not IsError(Application.Evaluate(“DATEVALUE(“”” & _
sDate & “””)”))
End Function
sDateis a string containing a U.S.-formatted date. IsDateUSreturns Trueif the string contains a valid
U.S. date, and Falseif not.
The DateValueUS Function
The VBADateValuefunction converts a string formatted according to the Windows Regional Settings
to a Datetype. This function converts a string containing a U.S.-formatted date to a Datetype. If the
string cannot be recognized as a U.S.-formatted date, it returns an Errorvalue that can be tested for,
using the IsErrorfunction:
The use of Valcan have unwanted side effects (otherwise known as bugs), which
are very difficult to detect in code that is running fine on your own machine, but
which would fail on another machine with different WRS.
544
Chapter 25: International Issues
Function DateValueUS(sDate As String) As Variant
DateValueUS = Application.Evaluate(“DATEVALUE(“”” & sDate & “””)”)
End Function
sDateis a string containing a U.S.-formatted date. DateValueUSreturns the date value of the given
string, in a Variant(because it may contain an error value if sDateis not a valid date string).
Interacting with Excel
VBAand Excel are two different programs that have had very different upbringings. VBAspeaks
American. Excel also speaks American. However, Excel can also speak in its users’ language if they have
the appropriate Windows settings and Office language pack installed. On the other hand, VBAknows
only a little about Windows settings, and even less about Office 2007 language packs. So, either you can
do some awkward coding to teach VBAhow to speak to Excel in the user’s language, or you can just let
them converse in American. I very much recommend the latter.
Unfortunately, most of the newer features in Excel are not multilingual. Some only speak American, and
others only speak in the user’s language. You can use the American-only features if you understand
their limitations; the others are best avoided. All of them are documented later in the chapter.
Sending Data to Excel
By far the best way to get numbers, dates, Booleans, and strings into Excel cells is to do so in their native
format. Hence, the following code works perfectly, regardless of locale:
Sub SendToExcel()
Dim dtDate As Date, dNumber As Double, bBool As Boolean, _
stString As String
dtDate = DateSerial(2007, 2, 13)
dNumber = 1234.567
bBool = True
stString = “Hello World”
Range(“A1”).Value = dtDate
Range(“A2”).Value = dNumber
Range(“A3”).Value = bBool
Range(“A4”).Value = stString
End Sub
There is a boundary layer between VBAand Excel. When VBApasses a variable through the boundary,
Excel does its best to interpret it according to its own rules. If the VBAand Excel data types are mutually
compatible, the variable passes straight through unhindered.
The problems start when Excel forces you to pass it numbers, dates, or Booleans within strings, or when
you choose to do so yourself. The answer to the latter situation is easy—don’t do it. Whenever you have
a string representation of some other data type, if it is possible, always explicitly convert it to the data
type you want Excel to store before passing it to Excel.
545
Chapter 25: International Issues
Excel requires string input in the following circumstances:
Setting the formula for a cell, chart series, conditional format, data validation rule, or pivot table
calculated field
Specifying the RefersToformula for a defined name
Specifying AutoFilter criteria
Passing a formula to ExecuteExcel4Macro
Setting the number format of a cell, style, chart axis, or pivot table field
Setting the number format in the VBAFormatfunction
In these cases, you have to ensure that the string that VBAsends to Excel is in U.S.-formatted text—you
must use English language formulas and U.S. regional settings. If the string is built within the code, you
must be very careful to explicitly convert all your variables to U.S.-formatted strings.
Take this simple example:
Sub SetLimit(dLimit As Double)
ActiveCell.Formula = “=IF(A1<” & dLimit & “,1,0)”
End Sub
You are setting a cell’s formula based on a parameter supplied by another routine. Note that the formula
is being constructed in the code and you are using U.S. language and regional settings (that is, using the
English IFand a comma for the list separator). When used with different values for dLimitin different
locales, you get the results shown in the following table.
dLimit
U.S.
UK
Norway
100
Works fine
Works fine
Works fine
100.23
Works fine
Works fine
Run-time error 1004
It fails when run in Norway with any non-integer value for dLimit. This is because you are implicitly
converting the variable to a string, which you’ll recall uses the Windows Regional Settings number for-
mats. The resulting string that you’re passing to Excel is:
=IF(A1<100,23,1,0)
This fails because the IFfunction does not have four parameters. If you change the function to read:
Sub SetLimit(dLimit As Double)
ActiveCell.Formula = “=IF(A1<” & Str(dLimit) & “,1,0)”
End Sub
The function will work correctly, because Strforces a conversion to a U.S.-formatted string.
546
Chapter 25: International Issues
If you try the same routine with a Dateinstead of a Double, you come across another problem. The text
that is passed to Excel (for example, for February 13, 2007) is:
=IF(A1<02/13/2007,1,0)
While this is a valid formula, Excel interprets the date as a set of divisions, so the formula is equivalent to:
=IF(A1<0.000077,1,0)
This is unlikely to ever be true. To avoid this, you have to convert the Datedata type to a Double, and
from that to a string:
Sub SetDateLimit(dtLimit As Date)
ActiveCell.Formula = “=IF(A1<” & Str(CDbl(dtLimit)) & “,1,0)”
End Sub
The function is then the correct (but less readable):
=IF(A1<36935,1,0)
To maintain readability, you should convert dates to Excel’s DATEfunction, to give:
=IF(A1<DATE(2007,2,13),1,0)
This is also achieved by the sNumToUSfunction presented earlier in this chapter, when the
bUseDateFunctionparameter is set to True:
Sub SetDateLimit(dLimit As Date)
ActiveCell.Formula = “=IF(A1<” & sNumToUS(dLimit, True) & “,1,0)”
End Sub
If you call the revised SetLimitprocedure with a value of 100.23 and look at the cell that the formula
was put into, you’ll see that Excel has converted the U.S. string into the local language and regional set-
tings. In Norway, for example, the cell actually shows:
=HVIS(A1<100,23;1;0)
This translation also applies to number formats. Whenever you set a number format within VBA, you
can give Excel a format string that uses U.S. characters (d for day, m for month, and y for year). When
applied to the cell (or style or chart axis), or used in the Formatfunction, Excel translates these charac-
ters to the local versions. For example, the following code results in a number format of dd/mm/åååå
when you check it in the Number Format dialog in Norwegian Windows:
ActiveCell.NumberFormat = “dd/mm/yyyy”
This capability of Excel to translate U.S. strings into the local language and formats makes it easy for
developers to create locale-independent applications. All you have to do is code in American and ensure
that you explicitly convert your variables to U.S.-formatted strings before passing them to Excel.
547
Chapter 25: International Issues
Documents you may be interested
Documents you may be interested