display pdf winform c# : Rotate pdf pages SDK application API .net windows web page sharepoint 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200759-part687

‘This should be changed to suit your own situation
With ThisWorkbook.Worksheets(1).Range(“IU1”)
If bUSToLocal Then
.Formula = sFormula
ConvertFormulaLocale = .FormulaLocal
Else
.FormulaLocal = sFormula
ConvertFormulaLocale = .Formula
End If
.ClearContents
End With
ERR_BAD_FORMULA:
End Function
sFormulais the text of the formula to convert from, and bUSToLocalshould be set to Trueto convert
U.S. to local, and Falseto convert local to U.S.
Web Queries
Although the concept behind Web Queries is an excellent one, they have been implemented with com-
plete disregard for international issues. When the text of the web page is parsed by Excel, all the num-
bers and dates are interpreted according to your Windows Regional Settings. This means that if a
European web page is opened in the U.S., or a U.S. page is opened in Europe, it is likely that the num-
bers will be wrong. For example, if the web page contains the text 1.1, it will appear as January 1 on a
computer running Norwegian Windows.
The WebDisableDateRecognitionoption for the QueryTablecan be used to prevent numbers from
being recognized as dates. Setting Excel’s override number and decimal separators can ensure that num-
bers are recognized correctly, if the web page is displayed in a known format.
Web Queries must be used with great care in a multinational application, using the following approach:
Set Application.UseSystemSeparatorsto False.
Set Application.DecimalSeparatorand Application.ThousandsSeparatorto those
used on the web page.
Perform the query, ensuring WebDisableDateRecognitionis set to True.
Reset Application.DecimalSeparatorApplication.ThousandsSeparator, and
Application.UseSystemSeparatorsto their original values.
=TEXT() Worksheet Function
The =TEXT()worksheet function converts a number to a string, according to a specified format. The for-
mat string has to use formatting characters defined by the Windows Regional Settings (or Excel’s
International Options override). Hence, if you use =TEXT(NOW(),”dd/mm/yyyy”), you will get
01/02/yyyy on Norwegian Windows, because Excel will only recognize å as the Norwegian number-
format character used for years. Excel does not translate the number-format characters when it opens the
558
Chapter 25: International Issues
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#
rotate pages in pdf; rotate all pages in pdf file
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 pages in pdf and save; how to save a pdf after rotating pages
file on a different platform. The easiest way to work around this is to include a range of formatted cells
within your workbook, and some VBAcode that writes their number format to the cell when the workbook
is opened. Any =TEXT()functions in the sheet can then refer to those cells for their formatting codes.
The Range.Value, Range.Formula, and
Range.FormulaArray Properties
These three properties of a range break the rules by not having local equivalents. The strings passed to
(and returned by) them are in U.S. format. Use the ConvertFormulaLocalefunction shown previously
to convert between U.S. and local versions of formulas.
The Range.AutoFilter Method
The AutoFiltermethod of a Rangeobject is a very curious beast. You are forced to pass it strings for its
filter criteria, and hence you must be aware of its string handling behavior. The criteria string consists of
an operator (=><>=, and so on) followed by a value. If no operator is specified, the equals operator
(=) is assumed.
The key issue is that when using the equals operator, AutoFilterperforms a textual match, whereas
using any other operator results in a match by value. This gives you problems when trying to locate
exact matches for dates and numbers. If you use equals, Excel matches on the text that is displayed in
the cell—that is, the formatted number. Because the text displayed in a cell will change with different
regional settings and Windows language versions, it is impossible for you to create a criteria string that
will locate an exact match in all locales.
There is a workaround for this problem. When using any of the other filter criteria, Excel plays by the
rules and interprets the criteria string according to U.S. formats. Hence, a search criterion of
“>=02/01/2007”will find all dates on or after February 1, 2007, in all locales. You can use this to match
an exact date by using two AutoFiltercriteria. The following code will give an exact match on
February 1, 2007 and will work in any locale:
Range(“A1:D200”).AutoFilter 2, “>=02/01/2007”, xlAnd, “<=02/01/2007”
The Range.AdvancedFilter Method
The AdvancedFiltermethod does play by the rules, but in a way that may be undesirable. The criteria
used for filtering are entered on the worksheet in the criteria range. In a similar way to AutoFilter, the
criteria string includes an operator and a value. Note that when using the equals operator,
AdvancedFiltercorrectly matches by value and hence differs from AutoFilterin this respect.
Because this is entirely within the Excel domain, the string must be formatted according to the Windows
Regional Settings to work, which poses a problem when matching on dates and numbers. An advanced
filter search criterion of “>1.234”will find all numbers greater than 1.234 in the U.S., but all numbers
greater than 1234 when run in Norway. Acriterion of “>02/03/2007”will find all dates after February 3
in the U.S., but after March 2 in Europe.
559
Chapter 25: International Issues
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.
pdf rotate page; rotate pages in pdf online
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#.
reverse page order pdf; pdf save rotated pages
The only workarounds are to populate the criteria strings from code, before running the AdvancedFilter
method, or to use a calculated criteria string, using the =TEXTtrick mentioned previously. Instead of a crite-
rion of “>=02/03/2007”, to find all dates on or after February 3, 2007, you could use this formula:
=”>=”&TEXT(DATE(2007,2,3),DateFormat)
Here, DateFormatis a reference to a cell that has been set to a local date format. If the date is an integer
(does not contain a time component), you could also just use the criteria string “>=39116”, and hope
that the user realizes that 39116 is actually February 3, 2007.
The Application.Evaluate,
Application.ConvertFormula, and
Application.ExecuteExcel4Macro Functions
These functions all play by the rules, in that you must use U.S.-formatted strings. They do not, however,
have local equivalents. To evaluate a formula that the user may have typed into a UserForm (or convert
it from using relative to absolute cell ranges), you need to convert it to U.S. format before passing it to
Application.Evaluateor Application.ConvertFormula
The Application.ExecuteExcel4Macrofunction is used to execute XLM-style functions. One of the
most common uses of it is to call the XLM PAGE.SETUPfunction, which is much faster than the VBA
equivalent. This takes many parameters, including strings, numbers, and Booleans. Be very careful to
explicitly convert all these parameters to U.S.-formatted strings, and avoid the temptation to shorten the
code by omitting the Straround each one.
Responding to Office 2007 Language Settings
One major advance, starting with the release of Office 2000, is that there is a single set of executables,
with a set of plug-in language packs (whereas in prior versions, each language was a different exe-
cutable, with its own set of bugs). This makes it very easy for users of Office to have their own choice of
language for the user interface, help files, and so on. In fact, if a number of people share the same com-
puter, each person can run the Office applications in a different language.
As a developer of Excel applications, you must respect the user’s language selection and do as much as
you can to present your own user interface in their choice of language.
Where Does the Text Come From?
The following sections outline the three factors that together determine the text seen by the Office user.
Regional Settings Location
The Regional Settings location is chosen on the first tab (called Regional Settings) of the Control Panel’s
Regional Settings applet, and it defines:
560
Chapter 25: International Issues
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 pdf pages and save; pdf rotate page and save
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 pdf pages individually; rotate single page in pdf file
The day and month names shown in Excel cells for long date formats
The day and month names returned by the VBAFormatfunction
The month names recognized by the VBACDatefunction and when typing dates into Excel
directly
The month names recognized by the Text Import Wizard and the VBAOpenTextmethod (when
the Localparameter is True)
The number format characters used in the =TEXTworksheet function
The text resulting from the implicit conversion of Boolean values to strings, such as: 
“Iam“&True
Office UI Language Settings
The Office User Interface language can be selected by using the Microsoft Office Language Settings
applet, installed with Office 2007, and it defines:
The text displayed on Excel’s menus and dialog boxes
The text for the standard buttons on Excel’s message boxes
The text for Excel’s built-in worksheet functions
The text displayed in Excel’s cells for Boolean values
The text for Boolean values recognized by the Text Import Wizard, the VBAOpenTextmethod,
and when typing directly into Excel
The default names for worksheets in a new workbook
The local names for command bars
Language Version of Windows
By this, I mean the basic language version of Windows itself. This choice defines the text for the standard
buttons in the VBAMsgBoxfunction (when using the vbMsgBoxStylesconstants). Hence, whereas the
text of the buttons on Excel’s built-in messages responds to the Office UI language, the text of the but-
tons on your own messages responds to the Windows language. Note that the only way to discover the
Windows language is with a Windows API call.
Some things in Office 2007 are 100% (U.S.) English and don’t respond to any changes in Windows lan-
guage, regional settings, or Office UI language:
The text resulting from the explicit conversion of Boolean values to strings—that is, all of
Str(True)CStr(True), and Format(True)result in “True”. Hence, the only way to convert
a Boolean variable to the same string that Excel displays for it is to enter it into a cell and then
read the cell’s .FormulaLocalproperty.
The text of Boolean strings recognized by CBool.
561
Chapter 25: International Issues
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
how to rotate just one page in pdf; rotate all pages in pdf preview
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
how to rotate all pages in pdf at once; how to rotate all pages in pdf in preview
Identifying the Office UI Language Settings
The first step in creating a multilingual application is to identify the user’s settings. You can identify 
the language chosen in Windows Regional Settings by using Application.International
(xlCountrySetting), which returns a number that corresponds approximately to the country codes
used by the telephone system (1 is the USA, 44 is the UK, 47 is Norway, and so forth).
You can also use Application.International(xlCountryCode)to retrieve the user interface lan-
guage using the same numbering system. This method has worked well in previous versions of Excel,
where there were only 30 or so languages from which to choose your copy of Office.
Beginning with Office 2000, things have changed a little. By moving all the language configuration into
separate language packs, Microsoft can support many more languages with relative ease. If you use the
Object Browser to look at the msoLanguageIDconstants defined in the Office object library, you’ll see
that there are more than 180 languages and dialects listed.
You can use the following code to find out the exact Office UI language, and then decide whether you
can display your application in that language or a similar language, or revert to a default language (as
shown in the following section):
lLanguageID = Application.LanguageSettings.LanguageID(msoLanguageIDUI)
Creating a Multilingual Application
When developing a multilingual application, you have to balance a number of factors, including:
The time and cost spent developing, translating, and testing the translated application
The increased sales from having a translated version
Improved ease of use, and hence reduced support costs
The requirement for multilingual support
Should you create language-specific versions, or use add-on language packs?
You also have to decide how much of the application to translate, and which languages to support:
Translate nothing
Translate only the packaging and promotional documentation
Enable the code to work in a multilingual environment (month names and so on)
Translate the user interface (menus, dialogs, screens, and messages)
Translate the help files, examples, and tutorials
Customize the application for each location (for example, to use local data feeds)
Support left-to-right languages only
Support right-to-left languages (and hence redesign your UserForms)
Support Double-Byte-Character-Set languages (for example, Japanese)
562
Chapter 25: International Issues
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 all pages; rotate pages in pdf online
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
how to rotate pdf pages and save; pdf rotate just one page
The decision of how far to go will depend to a large extent on your users, your budget, and the availabil-
ity of translators.
A Suggested Approach
It is doubtful that creating a single Excel application to support all 180-plus Office languages will make
economic sense, but the time spent making your application support a few of the more common lan-
guages will often be a wise investment. This will, of course, depend on your users, and whether support
for a new language is preferable to new features.
The approach that I take is to write the application to support multiple languages, and to provide users
with the ability to switch between the installed languages or conform to their choice of Office UI
Language. I develop the application in English, and then have it translated into one or two other lan-
guages depending on my target users. I will only translate it into other languages if there is sufficient
demand.
How to Store String Resources
When creating multilingual applications, you cannot hard code anytext strings that will be displayed to
the user; you must look them up in a string resource. The easiest form of string resource is a simple work-
sheet table. Give all your text items a unique identifier and store them in a worksheet, one row per iden-
tifier and one column for each supported language. You can then look up the ID and return the string in
the appropriate language using a simple VLOOKUPfunction.
You will need to do the same for all your menu items, worksheet contents, and UserForm controls. The
following code is a simple example, which assumes you have a worksheet called shLanguagethat con-
tains a lookup table that has been given a name of rgTranslation. It also assumes you have a public
variable to identify which column to read the text from. The variable typically would be set in an
Options type screen.
Note that the code shown here is not particularly fast and is shown as an example. Afaster (and more
complex) routine would read the entire column of IDs and selected language texts into two static VBA
arrays, then work from those, only reading in a new array when the language selection was changed:
Public iLanguageCol As Integer
Sub Test()
iLanguageCol = 2
MsgBox GetText(1001)
End Sub
‘ lTextID – The string ID to look up
Function GetText(lTextID As Long) As String
Dim vaTest As Variant
Static rgLangTable As Range
‘Set an object to point to the string resource table (once)
If rgLangTable Is Nothing Then
Set rgLangTable = ThisWorkbook.Worksheets(“shLanguage”) _
.Range(“rgTranslation”)
563
Chapter 25: International Issues
End If
‘If the language choice is not set, assume the first language in our table
If iLanguageCol < 2 Then iLanguageCol = 2
‘Try to locate and read off the required text
vaTest = Application.VLookup(lTextID, rgLangTable, iLanguageCol)
‘If we got some text, return it
If Not IsError(vaTest) Then GetText = vaTest
End Function
Many of your messages will be constructed at run time. For example, you may have code to check that a
number is within certain boundaries:
If iValue <= iMin Or iValue >= iMax Then
MsgBox “The number must be greater than “ & CStr(iMin) & _
“ and less than “ & CStr(iMax) & “.”
End If
This would mean that you have to store two text strings with different IDs in your resource sheet, which
is both inefficient and much harder to translate. In the example given, you probably would not have a
separate translation string for the full stop. Hence, the maximum value would always come at the end of
the sentence, which may not be appropriate for many languages. Abetter approach is to store the com-
bined string with placeholders for the two numbers, and substitute the numbers at run time (using the
custom ReplaceHoldersfunction, shown at the end of the chapter):
If iValue < iMin Or iValue > iMax Then
MsgBox ReplaceHolders( _
“The number must be greater than %0 and less than %1.”, _
CStr(iMin), CStr(iMax))
End If
The translator (who may not understand your program) can construct a correct sentence, inserting the
values at the appropriate points.
Working in a Multilingual Environment
These sections provide some tips on how to work in a multilingual environment.
Allow Extra Space
In general, most other languages use longer words than the English equivalents. When designing your
UserForms and worksheets, you must allow extra room for the non-English text to fit in the controls and
cells. Agood rule of thumb is to make your controls 1.5 times the width of the English text.
Using Excel’s Objects
The names that Excel gives to its objects when they are created often depend on the user’s choice of
Office UI Language. For example, when creating a blank workbook using Workbooks.Add, it will not
always be called BookN, and the first worksheet in it will not always be called Sheet1. With the German
UI, for example, they are called MappeNand Tabelle1, respectively. Instead of referring to these objects
564
Chapter 25: International Issues
by name, you should create an object reference as they are created, then use that object elsewhere in 
your code:
Dim Wkb As Workbook, Wks As Worksheet
Set Wbk = Workbooks.Add
Set Wks = Wkb.Worksheets(1)
Using SendKeys
In the best of cases, the use of SendKeysshould be avoided if at all possible. It is most often used to send
key combinations to Excel to activate a menu item or navigate a dialog box. It works by matching the
menu item or dialog control accelerator keys, in the same way that you can use Alt+key combinations to
navigate Excel using the keyboard. When used in a non-English version of Excel, it is highly unlikely
that the key combinations in the SendKeysstring will match up with the menus and dialogs, having
potentially disastrous results.
Using RibbonX
Chapter 14 explained how you can customize the Ribbon by storing a RibbonX XMLstream in your
workbooks. You have the choice of either specifying the control captions directly in the XML(using the
labelattribute) or using a getLabelor similar callback to specify them at run time. In a multilingual
environment, you have to use the callbacks for all captions, ToolTips, and so forth, so you can provide
the appropriate string for the chosen language.
The Rules for Developing a Multilingual Application
Decide early in the analysis phase the level of multilingual support that you are going to pro-
vide, then stick to it.
Do not include any text strings within your code. Always look them up in a table.
Never construct sentences by concatenating separate text strings, because the foreign language
version is unlikely to use the same word order. Instead, use placeholders in your text and
replace the placeholder at run time.
When constructing UserForms, always make the controls bigger than you need for the English
text; most other languages use longer words.
Do not try to guess the name that Excel gives to objects that you create in code. For example,
when creating a new workbook, the first sheet will not always be “Sheet1”.
Do not use SendKeys.
Some Helpful Functions
In addition to some of the custom functions already presented, such as IsDateUS, here are some more
functions that are very useful when creating multinational applications. Note that the code has been
written to be compatible with all versions of Excel, from 5.0 to 2007, and hence avoids the use of newer
VBAconstructs (such as giving optional parameters specific data types).
565
Chapter 25: International Issues
The bWinToNum Function
This function checks if a string contains a number formatted according to the Windows Regional
Settings and converts it to a Double. The function returns Trueor Falseto indicate the success of the
validation, and optionally displays an error message to the user. It is best used as a wrapper function
when validating numbers entered by a user, as shown in the “Interacting with Users” section.
Note that if the user has used Excel’s International Options to override the WRS decimal and thousands
separators, the OverrideToWRSfunction must be used to ensure you send a WRS-formatted string to
this function:
Function bWinToNum(ByVal sWinString As String, _
ByRef dResult As Double, _
Optional bShowMsg) As Boolean
Dim dFrac As Double
‘ Take a copy of the string to play with
sWinString = Trim(sWinString)
dFrac = 1
If IsMissing(bShowMsg) Then bShowMsg = True
If sWinString = “-” Then sWinString = “0”
If sWinString = “” Then sWinString = “0”
‘ Check for percentage, strip it out and remember to divide by 100
If InStr(1, sWinString, “%”) > 0 Then
dFrac = dFrac / 100
sWinString = Application.Substitute(sWinString, “%”, “”)
End If
‘ Are we left with a number string in windows format?
If IsNumeric(sWinString) Then
‘ If so, convert it to a number and return success
dResult = CDbl(sWinString) * dFrac
bWinToNum = True
Else
‘ If not, display a message, return zero and failure
If bShowMsg Then MsgBox “This entry was not recognized as a number,” _
& Chr(10) & “according to your Windows Regional Settings.”, vbOKOnly
dResult = 0
bWinToNum = False
End If
End Function
sWinStringis the string to be converted, and dResultis the converted number, set to 0 if the number
is not valid or empty. bShowMsgis optional and should be set to True(or missing) to show an error mes-
sage, or Falseto suppress the error message.
The bWinToDate Function
This provides the same functionality as bWinToNum, but for dates instead of numbers:
566
Chapter 25: International Issues
Function bWinToDate(ByVal sWinString As String, _
ByRef dResult As Double, _
Optional bShowMsg) As Boolean
If IsMissing(bShowMsg) Then bShowMsg = True
If sWinString = “” Then
‘ An empty string gives a valid date of zero
dResult = 0
bWinToDate = True
ElseIf IsDate(sWinString) Then
‘ We got a proper date, so convert it to a Double
‘ (i.e. the internal date number)
dResult = CDbl(CDate(sWinString))
bWinToDate = True
Else
‘ If not, display a message, return zero and failure
If bShowMsg Then MsgBox “This entry was not recognized as a date,” & _
Chr(10) & “according to your Windows Regional Settings.”, vbOKOnly
dResult = 0
bWinToDate = False
End If
End Function
sWinStringis the string to be converted. dResultis the converted number, set to 0 if the number is not
valid, or empty. bShowMsgis optional and should be set to True(or missing) to show an error message,
or Falseto suppress the error message.
The sFormatDate Function
This function formats a date according to the Windows Regional Settings, using a four-digit year, and
optionally including a time string in the result:
Function sFormatDate(dDate As Date, Optional bTimeReq) As String
Dim sDate As String
‘Default bTimeReq to False if not supplied
If IsMissing(bTimeReq) Then bTimeReq = False
Select Case Application.International(xlDateOrder)
Case 0      ‘month-day-year
sDate = Format$(dDate, “mm/dd/yyyy”)
Case 1      ‘day-month-year
sDate = Format$(dDate, “dd/mm/yyyy”)
Case 2      ‘year-month-day
sDate = Format$(dDate, “yyyy/mm/dd”)
567
Chapter 25: International Issues
Documents you may be interested
Documents you may be interested