display pdf winform c# : How to save a pdf after rotating pages application control utility html web page .net visual studio 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200739-part665

Public Function WeeklyPay() As Double
WeeklyPay = dNormalHrs * Rate + dOverTimeHrs * Rate * 1.5
End Function
‘Convert input hours to normal and overtime
Property Let HoursPerWeek(dHours As Double)
dNormalHrs = WorksheetFunction.Min(35, dHours)
dOverTimeHrs = WorksheetFunction.Max(0, dHours - 35)
End Property
‘Return total hours per week
Property Get HoursPerWeek() As Double
HoursPerWeek = dNormalHrs + dOverTimeHrs
End Property
‘Return normal hours
Property Get NormalHours() As Double
NormalHours = dNormalHrs
End Property
‘Return overtime hours
Property Get OverTimeHours() As Double
OverTimeHours = dOverTimeHrs
End Property
HoursPerWeekis no longer declared as a variable in the declarations section. Instead, two new private
variables have been added—dNormalHrsand dOverTimeHrsHoursPerWeekis now defined by a
PropertyLetprocedure, which processes the input when you assign a value to the HoursPerWeek
property. It breaks the hours into normal time and overtime. The PropertyGetprocedure for
HoursPerWeekreturns the sum of normal and overtime hours when you access the property value.
NormalHoursand OverTimeHoursare defined only by PropertyGetprocedures that return the values
in the Privatevariables, dNormalHrsand dOverTimeHrs, respectively. This makes the properties
NormalHoursand OverTimeHoursread-only. There is no way they can be assigned values except
through the HoursPerWeekproperty.
The WeeklyPayfunction has been updated to calculate pay as normal hours at the standard rate and
overtime hours at 1.5 times the standard rate. You can change the standard module code as follows to
generate the message shown in Figure 16-3:
Sub EmployeePay()
Dim clsEmployee As CEmployee
‘Create instance of CEmployee
Set clsEmployee = New CEmployee
‘Define properties
clsEmployee.Name = “Mary”
clsEmployee.Rate = 15
clsEmployee.HoursPerWeek = 45
‘Display properties
358
Chapter 16: Class Modules
How to save a pdf after rotating 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 reverse pages in pdf; rotate single page in pdf
How to save a pdf after rotating 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 single page in pdf file; how to change page orientation in pdf document
MsgBox clsEmployee.Name & “ earns $” _
& clsEmployee.WeeklyPay & “/wk” _
& “ including “ & clsEmployee.OverTimeHours _
& “ hrs overtime”
End Sub
Figure 16-3
Creating Collections
Now that you have an Employeeobject, you will want to have many Employeeobjects, and what better
way is there to organize them but in a collection? VBAhas a Collectionobject that you can use as fol-
lows, in a standard module:
‘Collection to hold Employee objects
Dim mcolEmployees As New Collection
Sub AddEmployees()
Dim clsEmployee As CEmployee
Dim lCount As Long
‘Ensure collection is empty
For lCount = 1 To mcolEmployees.Count
mcolEmployees.Remove 1
Next lCount
‘Define Employee
Set clsEmployee = New CEmployee
clsEmployee.Name = “Mary”
clsEmployee.Rate = 15
clsEmployee.HoursPerWeek = 45
‘Add Employee to collection
mcolEmployees.Add clsEmployee, clsEmployee.Name
‘Define Employee
Set clsEmployee = New CEmployee
clsEmployee.Name = “Jack”
clsEmployee.Rate = 14
clsEmployee.HoursPerWeek = 35
‘Add Employee to collection
359
Chapter 16: Class Modules
VB.NET Word: VB.NET Code to Rotate Word Page Within .NET Imaging
Here, we can recommend you VB.NET PDF page rotating tutorial Without losing any original quality during or after the Word page rotating; Save the rotated
rotate pdf pages in reader; how to save a pdf after rotating pages
VB.NET Image: Image Rotator SDK; .NET Document Image Rotation
rotator control SDK allows developers to save rotated image That is to say, after you run following powerful & profession imaging controls, PDF document, tiff
how to rotate a single page in a pdf document; pdf page order reverse
mcolEmployees.Add clsEmployee, clsEmployee.Name
‘Display data from collection
MsgBox “Number of Employees =  “ & mcolEmployees.Count
MsgBox “mcolEmployees(2).Name = “ & mcolEmployees(2).Name
MsgBox “mcolEmployees(“”Jack””).Rate = “ & mcolEmployees(“Jack”).Rate
‘Process all Employees
For Each clsEmployee In mcolEmployees
MsgBox clsEmployee.Name & “ earns $” & clsEmployee.WeeklyPay
Next clsEmployee
End Sub
At the top of the standard module, you declare mcolEmployeesto be a new collection. The
AddEmployeesprocedure uses the Removemethod of the collection in the For...Nextloop to remove
any existing objects. It keeps removing the first object in the collection, because as soon as you remove it,
the second object automatically becomes the first object, and so on—hence the .Remove1statement.
This step is normally not necessary, because the collection is initialized empty. It is only here to demon-
strate the Removemethod, and also to allow you to run the procedure more than once without doubling
up the items in the collection.
AddEmployeescreates the first employee, Mary, and uses the Addmethod of the collection to place the
Maryobject in the collection. The first parameter of the Addmethod is a reference to the object itself. The
second parameter, which is optional, is an identifying key that can be used to reference the object later.
In this case you have used the Employeeobject’s Nameproperty as the key. The same procedure is used
with Jack.
The MsgBoxstatements illustrate that you can reference the collection in the same ways as you can refer-
ence Excel’s built-in collections. For instance, the Employeescollection has a Countproperty. You can
reference a member of the collection by position or by key, if you have entered a key value.
Class Module Collection
You can also set up your collection in a class module. There are advantages and disadvantages to doing
this. The advantages are that you get much more control over interaction with the collection, you can
prevent direct access to the collection, and the code is encapsulated into a single module that makes it
more transportable and easier to maintain. The disadvantages are that it takes more work to set up the
collection, and you lose some of the shortcut ways to reference members of the collection and the collec-
tion itself.
If you supply a key value for each member of the collection, the keys must be
unique. You will get a run-time error when you attempt to add a new member to the
collection with a key value that is already in use. Using a person’s name as the key is
not recommended, because different people can have the same name. Use a unique
identifier, such as a Social Security number.
360
Chapter 16: Class Modules
VB.NET Image: Web Image and Document Viewer Creation & Design
and print such documents and images as JPEG, BMP, GIF, PNG, TIFF, PDF, etc. Upload, Open, Save & Download Images & Docs with Web Viewer. After creating a
how to rotate page in pdf and save; how to rotate one page in pdf document
VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
of this VB.NET image cropping process: decode the source image file to bitmap, crop bitmap and save cropped bitmap to original image format. After you run this
save pdf after rotating pages; how to reverse page order in pdf
The following shows the contents of a class module CEmployees:
‘Collection to hold Employee instances
Private mcolEmployees As New Collection
‘Method to add emloyees to collection
Public Function Add(clsEmployee As CEmployee)
mcolEmployees.Add clsEmployee, clsEmployee.Name
End Function
‘Return Count property
Public Property Get Count() As Long
Count = mcolEmployees.Count
End Property
‘Return collection
Public Property Get Items() As Collection
Set Items = mcolEmployees
End Property
‘Return a member of the collection
Public Property Get Item(vItem As Variant) As CEmployee
Set Item = mcolEmployees(vItem)
End Property
‘Remove a member of the collection
Public Sub Remove(vItem As Variant)
mcolEmployees.Remove vItem
End Sub
When the collection is in its own class module, you can no longer directly use the collection’s four meth-
ods (AddCountItem, and Remove) in your standard module. You need to set up your own methods
and properties in the class module, even if you have no intention of modifying the collection’s methods.
On the other hand, you have control over what you choose to implement and what you choose to mod-
ify, as well as what you present as a method and what you present as a property.
In CEmployeesFunctionAddSubRemovePropertyGetItem, and PropertyGetCountpass on
most of the functionality of the collection’s methods. There is one new feature in the PropertyGet
Itemsprocedure. Whereas PropertyGetItempasses back a reference to a single member of the collec-
tion, PropertyGetItemspasses back a reference to the entire collection. This is to provide the capabil-
ity to use the collection in a ForEach...Nextloop.
361
Chapter 16: Class Modules
VB.NET Image: How to Process & Edit Image Using VB.NET Image
Q 2: After I apply various image processing functions to source image file editor control SDK allows developers process target image file and save edited image
rotate a pdf page; pdf expert rotate page
VB.NET Image: Creating Hotspot Annotation for Visual Basic .NET
hotspot annotation styles before and after its activation img = obj.CreateAnnotation() img.Save(folderName & & profession imaging controls, PDF document, tiff
how to rotate one page in a pdf file; how to rotate pdf pages and save
The standard module code is now as follows:
Option Explicit
Sub AddEmployees()
Dim clsEmployees As CEmployees
Dim clsEmployee As CEmployee
Dim lCount As Long
Dim vNames As Variant
Dim vRates As Variant
Dim vHours As Variant
Dim sText As String
‘Input data
vNames = Array(“Mary”, “Jack”, “Anne”, “Harry”)
vRates = Array(15, 14, 20, 17)
vHours = Array(45, 35, 40, 40)
‘Initialize collection
Set clsEmployees = New CEmployees
‘Define and add employees to collection
For lCount = LBound(vNames) To UBound(vNames)
Set clsEmployee = New CEmployee
clsEmployee.Name = vNames(lCount)
clsEmployee.Rate = vRates(lCount)
clsEmployee.HoursPerWeek = vHours(lCount)
clsEmployees.Add clsEmployee
Set clsEmployee = Nothing
Next lCount
‘Display data from collection
MsgBox “Number of Employees =  “ & clsEmployees.Count
MsgBox “Employees.Item(2).Name = “ & clsEmployees.Item(2).Name
MsgBox “Employees.Item(“”Jack””).Rate = “ & clsEmployees.Item(“Jack”).Rate
For Each clsEmployee In clsEmployees.Items
sText = sText & clsEmployee.Name & “ earns $” & _
clsEmployee.WeeklyPay & vbCrLf
Next clsEmployee
MsgBox sText
End Sub
clsEmployeesis declared to be of type CEmployees. The code that follows defines three arrays as a
convenient way to make it clear which data is being used. After initializing the Employeescollection,
you create the Employeeinstances and add them to the collection. As one small convenience, you no
longer need to specify the key value when using the Addmethod of the Employeescollection. The Add
method code in clsEmployeesdoes this for you.
362
Chapter 16: Class Modules
VB.NET Image: VB.NET Code to Add Rubber Stamp Annotation to Image
on image or document files; Able to save created rubber Suitable for VB.NET PDF, Word & TIFF document Method for Drawing Rubber Stamp Annotation. After you have
rotate single page in pdf reader; pdf rotate single page
VB.NET PDF: VB Code to Create PDF Windows Viewer Using DocImage
What's more, after you have created a basic PDF document viewer in your VB.NET Windows application, more imaging viewer Save current PDF page or the
rotate all pages in pdf; rotate pdf page by page
The second, third, and fourth MsgBoxstatements show the new properties needed to reference the col-
lection and its members. You need to use the Itemproperty to reference a member and the Itemsprop-
erty to reference the whole collection.
Encapsulation
Class modules allow you to encapsulate code and data in such a way that it becomes very easy to use,
very easy to share, and much easier to maintain.
You hide the code that does the work from the user, who only needs to know what sort of object the class
module represents, and what properties and methods are associated with the object. This is particularly
useful when it is necessary to make calls to the Windows API (application programming interface) to
perform tasks that are not possible in normal VBA. This topic is presented in Chapter 27, where you can
see examples that encapsulate very complex code and create very usable objects.
Class modules provide a mechanism for encapsulating code that you can use in other workbooks or share
with other programmers to reduce development time. You can easily copy a class module to another work-
book. In the Project Explorer window, it is as straightforward as dragging the class module between the
projects. 
You can also export the code in the class module to a file by right-clicking the module in the Project
Explorer and choosing Export File to create a text file that can be copied to another PC. The file can then
be imported into another workbook by right-clicking its project in the Project Explorer and choosing
Import File.
So far, this chapter has examined class modules from a general programming perspective. You will now
see how to use class modules to gain more control over Excel.
Trapping Application Events
You can use a class module to trap application events. Most of these events are the same as the work-
book events, but they apply to all open workbooks, not just the particular workbook that contains the
event procedures. For example, in a workbook there is a BeforePrintevent that is triggered when you
start to print anything in that workbook. At the application level, there is a WorkbookBeforePrint
event that is triggered when any open workbook starts to print.
To see what application events are available, you first insert a class module into your project. The class
module can have any valid module name. The one shown in Figure 16-4 has been named CAppEvents.
You then type in the following variable declaration at the top of the module:
Public WithEvents xlApp As Application
The object variable name, xlApp, can be any valid variable name, as long as you use it consistently in
code that refers to the class module, as a property of the class. The WithEventskeyword causes the
events associated with the application object to be exposed. You can now choose xlAppfrom the drop-
down at the top left of the module and then use the drop-down at the top right to see the event list, as
shown in Figure 16-4.
363
Chapter 16: Class Modules
VB.NET Word: VB.NET Code to Draw and Write Text and Graphics on
After creating text on Word page, users are able doc, fileNameadd, New WordEncoder()) 'save word End powerful & profession imaging controls, PDF document, tiff
rotate all pages in pdf and save; pdf rotate pages separately
Figure 16-4
Choose the WorkbookBeforePrintevent and extend the event procedure presented in Chapter 9, using
the following code in CAppEvents:
Private Sub xlApp_WorkbookBeforePrint(ByVal Wbk As Workbook, _
Cancel As Boolean)
Dim wks As Worksheet
Dim sFullFileName As String
Dim sCompanyName As String
With Wbk
‘Define footer data
sCompanyName = “Execuplan Consulting”
sFullFileName = .FullName
‘Process each worksheet
For Each wks In .Worksheets
With wks.PageSetup
.LeftFooter = sCompanyName
.CenterFooter = “”
.RightFooter = sFullFileName
End With
Next wks
End With
End Sub
364
Chapter 16: Class Modules
Unlike sheet and workbook class modules, the event procedures you place in your own class modules
do not automatically function. You need to create an instance of your class module and assign the
Applicationobject to the xlAppproperty of the new object. The following code must be set up in a
standard module:
Public xlApplication As CAppEvents
Sub TrapApplicationEvents()
‘Create instance of class module
Set xlApplication = New CAppEvents
‘Assign the Excel Application object to the xlApp property
Set xlApplication.xlApp = Application
End Sub
All you need to do now is execute the TrapApplicationEventsprocedure. The WorkbookBeforePrint
event procedure will then run when you use any Print or Preview commands, until you close the work-
book containing the event procedure.
It is possible to terminate application event trapping during the current session. Any action that resets
module-level variables and public variables will terminate application event processing, because the
class module instance will be destroyed. Actions that can cause this include editing code in the VBE and
executing the Endstatement in VBAcode. 
If you want to enable application event processing for all Excel sessions, you can place your class mod-
ule and standard module code in Personal.xlsband execute TrapApplicationEventsin the
Workbook_Openevent procedure. You can even transfer the code in TrapApplicationEventsto the
Workbook_Openevent procedure. However, you must keep the Publicdeclaration of xlApplication
in a standard module.
To illustrate, you can place the following code in the declarations section of a standard module:
Public xlApplication As CAppEvents
You can place the following event procedure in the ThisWorkbookmodule:
Private Sub Workbook_Open()
Set xlApplication = New CAppEvents
Set xlApplication.xlApp = Application
End Sub
Embedded Chart Events
If you want to trap events for a chart embedded in a worksheet, you use a process similar to the process
for trapping application events. First, insert a new class module into your project, or you could use the
same class module that you used for the application events. You place the following declaration at the
top of the class module:
Public WithEvents cht As Chart
365
Chapter 16: Class Modules
Set up the same BeforeDoubleClickevent procedure used in Chapter 10. The class module should be
as follows:
Public WithEvents cht As Chart
Private Sub cht_BeforeDoubleClick(ByVal ElementID As Long, _
ByVal Arg1 As Long, ByVal Arg2 As Long, Cancel As Boolean)
Dim se As Series
‘Determine what part of chart was double clicked
Select Case ElementID
‘If legend, remove it
Case xlLegend
ActiveChart.HasLegend = False
Cancel = True
‘If chart area, display legend
Case xlChartArea
ActiveChart.HasLegend = True
Cancel = True
‘If series, determine which series
Case xlSeries
‘Arg1 is the Series index
‘Arg2 is the point index (-1 if the entire series is selected)
Set se = ActiveChart.SeriesCollection(Arg1)
If Arg2 = -1 Then
‘Whole series selected
With se.Border
If .ColorIndex = xlColorIndexAutomatic Then
.ColorIndex = 1
Else
.ColorIndex = (.ColorIndex Mod 56) + 1
End If
End With
Else
‘Data point selected
With se.Points(Arg2)
.HasDataLabel = Not .HasDataLabel
End With
End If
‘Cancel double click
Cancel = True
End Select
End Sub
366
Chapter 16: Class Modules
This code allows you to double-click the chart legend to make it disappear, or double-click in the chart
area to make it reappear. If you double-click a series line, it changes color. If you select a point in a series
by clicking it, and then double-click it, it will toggle the data label on and off for that point.
Say your chart is contained in a ChartObjectthat is the only ChartObjectin a worksheet called
Mangoes, as shown in Figure 16-5, and you have named your class module CChartEvents. In your
standard module, you enter the following:
Public chtMangoes As CChartEvents
Sub InitializeChartEvents()
‘Create instance of CChartEvents
Set chtMangoes = New CChartEvents
‘Assign reference to chart to cht property
Set chtMangoes.cht = ThisWorkbook.Worksheets(“Mangoes”).ChartObjects(1).Chart
End Sub
Figure 16-5
After executing InitializeChartEvents, you can double-click the series, points, and legend to run
the BeforeDoubleClickevent procedure.
367
Chapter 16: Class Modules
Documents you may be interested
Documents you may be interested