display pdf winform c# : Rotate individual pdf pages reader SDK Library service wpf asp.net html dnn 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200766-part695

Controls can be added, moved, or deleted without having to modify the Resizecode or change
other controls’ resize behavior.
The resize code can treat every control in exactly the same way; hence, every UserForm uses
exactly the same Resize code, which can be encapsulated in a separate class module.
The CFormResizer Class
By encapsulating all the resize code in a separate class module, any UserForm can be made resizable by
adding just six lines of code to instantiate and call into the class, and setting the resize behavior for each
control in its Tag property. 
The CFormResizer class provides the following functionality:
Sets the form to be resizable.
Sets the initial size and position of the form, if it has been shown before.
Resizes and repositions all the controls on the form, according to their Tagresizing string.
Stores the form’s size and position in the registry, for use when the same form is shown again.
Allows the calling code to specify a key name for storing the form dimensions in the registry.
Prevents a form being resized in either direction if none of the controls are set to respond to
changes in height or width.
Stops resizing when any control is moved to the left or top edge of the form, or when any
control is reduced to zero height or width.
The code for the CFormResizer class is as follows, with comments in the code to explain each section. It
is available for download in the FormResizer.xlsmworkbook at www.wrox.com:
Option Explicit
‘Find the UserForm’s window handle
Private Declare Function FindWindow Lib “user32” _
Alias “FindWindowA” ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
‘Get the UserForm’s window style
Private Declare Function GetWindowLong Lib “user32” _
Alias “GetWindowLongA” ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
‘Set the UserForm’s window style
Private Declare Function SetWindowLong Lib “user32” _
Alias “SetWindowLongA” ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
‘The offset of a window’s style 
628
Chapter 27: Programming with the Windows API
Rotate individual pdf pages reader - 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 pdf page; permanently rotate pdf pages
Rotate individual pdf pages reader - 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 all pages in pdf; rotate all pages in pdf file
Private Const GWL_STYLE As Long = (-16)                    
‘Style to add a sizable frame 
Private Const WS_THICKFRAME As Long = &H40000              
Dim moForm As Object
Dim mhWndForm As Long
Dim mdWidth As Double
Dim mdHeight As Double
Dim msRegKey As String
‘Default for the registry key to store the dimensions
Private Sub Class_Initialize()
msRegKey = “Excel 2007 Prog Ref”
End Sub
‘Properties to identify where in the registry to store the UserForm 
‘position information
Public Property Let RegistryKey(sNew As String)
msRegKey = sNew
End Property
Public Property Get RegistryKey() As String
RegistryKey = msRegKey
End Property
‘We’re told which form to handle the resizing for,
‘set in the UserForm_Initialize event.
‘Make the form resizable and set its size and position
Public Property Set Form(oNew As Object)
Dim sSizes As String, vaSizes As Variant
Dim iStyle As Long
‘Remember the form for later
Set moForm = oNew
‘Get the UserForm’s window handle
If Val(Application.Version) < 9 Then
‘XL97
mhWndForm = FindWindow(“ThunderXFrame”, moForm.Caption)    
Else
‘XL2000 and 2002
mhWndForm = FindWindow(“ThunderDFrame”, moForm.Caption)    
End If
‘Make the form resizable
iStyle = GetWindowLong(mhWndForm, GWL_STYLE)
iStyle = iStyle Or WS_THICKFRAME
SetWindowLong mhWndForm, GWL_STYLE, iStyle
‘Read its dimensions from the registry (if there)
‘The string has the form of “<Top>;<Left>;<Height>;<Width>”
sSizes = GetSetting(msRegKey, “Forms”, moForm.Name, “”)
629
Chapter 27: Programming with the Windows API
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.
reverse pdf page order online; save pdf rotated pages
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 page in pdf and save; save pdf rotate pages
‘Remember the current size for use in the Resize routine
mdWidth = moForm.Width
mdHeight = moForm.Height
If sSizes <> “” Then
‘If we got a dimension string, split it into its parts
vaSizes = Split(sSizes, “;”)
‘Make sure we got 4 elements!
ReDim Preserve vaSizes(0 To 3)
‘Set the form’s size and position
moForm.Top = Val(vaSizes(0))
moForm.Left = Val(vaSizes(1))
moForm.Height = Val(vaSizes(2))
moForm.Width = Val(vaSizes(3))
‘Set to manual startup position
moForm.StartUpPosition = 0
End If
End Property
‘Called from the User_Form resize event, also triggered when we change
‘the size ourself.
‘This is the routine that performs the resizing, by checking each control’s
‘Tag property, and moving/sizing it accordingly.
Public Sub FormResize()
Dim dWidthAdj As Double, dHeightAdj As Double
Dim bSomeWidthChange As Boolean
Dim bSomeHeightChange As Boolean
Dim sTag As String, sSize As String
Dim oCtl As MSForms.Control
Static bResizing As Boolean
‘Resizing can be triggered from within this routine,
‘so use a flag to prevent recursion
If bResizing Then Exit Sub
bResizing = True
‘Calculate the change in height and width
dHeightAdj = moForm.Height - mdHeight
dWidthAdj = moForm.Width - mdWidth
‘Check if we can perform the adjustment 
‘(i.e. widths and heights can’t be negative)
For Each oCtl In moForm.Controls
‘Read the control’s Tag property, which contains the resizing info
sTag = UCase(oCtl.Tag)
‘If we’re changing the Top, check that it won’t move off the top 
630
Chapter 27: Programming with the Windows API
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#.
pdf rotate single page and save; pdf rotate single page
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
reverse page order pdf; rotate one page in pdf
‘of the form
If InStr(1, sTag, “T”, vbBinaryCompare) Then
If oCtl.Top + dHeightAdj * ResizeFactor(sTag, “T”) <= 0 Then
moForm.Height = mdHeight
End If
bSomeHeightChange = True
End If
‘If we’re changing the Left, check that it won’t move off the 
‘left of the form
If InStr(1, sTag, “L”, vbBinaryCompare) Then
If oCtl.Left + dWidthAdj * ResizeFactor(sTag, “L”) <= 0 Then
moForm.Width = mdWidth
End If
bSomeWidthChange = True
End If
‘If we’re changing the Height, check that it won’t go negative
If InStr(1, sTag, “H”, vbBinaryCompare) Then
If oCtl.Height + dHeightAdj * ResizeFactor(sTag, “H”) <= 0 Then
moForm.Height = mdHeight
End If
bSomeHeightChange = True
End If
‘If we’re changing the Width, check that it won’t go negative
If InStr(1, sTag, “W”, vbBinaryCompare) Then
If oCtl.Width + dWidthAdj * ResizeFactor(sTag, “W”) <= 0 Then
moForm.Width = mdWidth
End If
bSomeWidthChange = True
End If
Next        ‘Control 
‘If none of the controls move or size, 
‘don’t allow the form to resize in that direction
If Not bSomeHeightChange Then moForm.Height = mdHeight
If Not bSomeWidthChange Then moForm.Width = mdWidth
‘Recalculate the height and width changes, 
‘in case the previous checks reset them
dHeightAdj = moForm.Height - mdHeight
dWidthAdj = moForm.Width - mdWidth
‘Loop through all the controls on the form, 
‘adjusting their position and size
For Each oCtl In moForm.Controls
With oCtl
sTag = UCase(.Tag)
‘Changing the Top
631
Chapter 27: Programming with the Windows API
C# TIFF: How to Rotate TIFF Using C# Code in .NET Imaging
Individual Products. XDoc.SDK for .NET. XImage.SDK for Page. |. Home ›› XDoc.Tiff ›› C# Tiff: Rotate Tiff Page. & pages edit, C#.NET PDF pages extract, copy
rotate individual pdf pages reader; how to rotate a page in pdf and save it
VB.NET PDF - WPF PDF Viewer for VB.NET Program
Individual Products. XDoc.SDK for .NET. XImage.SDK for .NET. Page: Replace PDF Pages. Page: Move Page Position. Page: Copy, Paste PDF Pages. Page: Rotate a PDF
rotate pdf page few degrees; how to rotate all pages in pdf at once
If InStr(1, sTag, “T”, vbBinaryCompare) Then
.Top = .Top + dHeightAdj * ResizeFactor(sTag, “T”)
End If
‘Changing the Left
If InStr(1, sTag, “L”, vbBinaryCompare) Then
.Left = .Left + dWidthAdj * ResizeFactor(sTag, “L”)
End If
‘Changing the Height
If InStr(1, sTag, “H”, vbBinaryCompare) Then
.Height = .Height + dHeightAdj * ResizeFactor(sTag, “H”)
End If
‘Changing the Width
If InStr(1, sTag, “W”, vbBinaryCompare) Then
.Width = .Width + dWidthAdj * ResizeFactor(sTag, “W”)
End If
End With
Next        ‘Control
‘Remember the new dimensions of the form for next time
mdWidth = moForm.Width
mdHeight = moForm.Height
‘Store the size and position in the registry
With moForm
SaveSetting msRegKey, “Forms”, .Name, Str(.Top) & “;” & _
Str(.Left) & “;” & Str(.Height) & “;” & Str(.Width)
End With
‘Reset the recursion flag, now that we’re done
bResizing = False
End Sub
‘Function to locate a property letter (T, L, H or W) in the Tag string 
‘and return the resizing factor for it
Private Function ResizeFactor(sTag As String, sChange As String)
Dim i As Integer, d As Double
‘Locate the property letter in the tag string
i = InStr(1, sTag, sChange, vbBinaryCompare)
‘If we found it...
If i > 0 Then
‘... read the number following it
d = Val(Mid$(sTag, i + 1))
‘If there was no number, use a factor of 100%
If d = 0 Then d = 1
End If
632
Chapter 27: Programming with the Windows API
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 pdf page; how to reverse page order in pdf
C# PDF: PDF Document Viewer & Reader SDK for Windows Forms
Rotate270: Rotate the currently displayed PDF page 90 degrees counterclockwise. for you to create and add a PDF document viewer & reader in Windows
rotate pdf page and save; rotate pages in pdf permanently
‘Return the factor
ResizeFactor = d
End Function
The code to use the CFormResizerclass in a UserForm’s code module is as follows:
‘Declare an object for our CFormResizer class to handle 
‘resizing for this form
Dim moResizer As CFormResizer
‘The Resizer class is set up in the UserForm_Initialize event
Private Sub UserForm_Initialize()
‘Create the instance of the class
Set moResizer = New CFormResizer
‘Tell it where to store the form dimensions
moResizer.RegistryKey = “Excel 2007 Prog Ref”
‘Tell it which form it’s handling
Set moResizer.Form = Me
End Sub
‘When the form is resized, the UserForm_Resize event is raised,
‘which we just pass on to the Resizer class
Private Sub UserForm_Resize()
moResizer.FormResize
End Sub
‘The OK button unloads the form
Private Sub btnOK_Click()
Unload Me
End Sub
‘The QueryClose event in called whenever the form is closed.
‘We call the FormResize method one last time, to store the form’s
‘final size and position in the registry
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
moResizer.FormResize
End Sub
There are a few points to remember when using this approach in your own UserForms:
The resizer works by changing the control’s TopLeftHeight, and Width properties in
response to changes in the UserForm size, according to the control’s resizing information.
The control’s resizing information is set in its Tag property, using the letters TLH, or W fol-
lowed by a number specifying the resizing factor (if not 100%).
The resizing factors must be in U.S. format, using a period as the decimal separator.
If there are no controls that have T or H in their Tag strings, the form will not be allowed to
resize vertically.
633
Chapter 27: Programming with the Windows API
If there are no controls that have L or W in their Tag strings, the form will not be allowed to
resize horizontally.
The smallest size for the form is set by the first control to be moved to the top or left edge, or to
have a zero width or height.
This can be used to set a minimum size for the form by using a hidden label with a Tagof HW,
where the size of the label equals the amount that the form can be reduced in size. If the label is
set to zero height and width to start with, the UserForm can only be enlarged from its design-
time size.
List boxes must have their IntegralHeight property set to False for this to work, but due
to an old bug, they may not fully display the very last item in the list. As a workaround, add a
blank entry as the last item in the list, and code to ignore it if it gets selected.
Summary
The functions defined in the Windows API provide a valuable and powerful extension to the VBA
developer’s tool set. The API Viewer provides the VBA definitions for most of the core functions. The
definitions for the remaining functions can be converted from the C-style versions shown in the online
MSDN library.
Class modules enable the user to encapsulate both the API definitions and their use into simple chunks
of functionality that are easy to use and reuse in VBAapplications. Anumber of example classes and
routines have been provided in this chapter to get you started using the Windows API functions within
your applications, including:
Creating a TEMP file
Ahigh-resolution timer
Freezing a UserForm
Getting system information
Modifying a UserForm’s appearance
Making UserForms resizable, with a minimum of code in the form
634
Chapter 27: Programming with the Windows API
Exc el  2 007  O bj ec t  Mod el
Most of the objects in the Excel object model have objects with associated collections. The collec-
tion object is usually the plural form of the associated object. For example, the Worksheets collec-
tion holds a collection of Worksheet objects. For simplicity, each object and associated collection
will be grouped together under the same heading.
Common Proper ties  with Collections 
and Associated Objects
In most cases, the purpose of the collection object is only to hold a collection of the same objects.
The common properties and methods of the collection objects are listed in the following section.
Only unique properties, methods, or events are mentioned in each object section.
Common Collection Properties
Name
Returns
Description
Application
Application
Read-only. Returns a reference to the own-
ing application of the current object—
Excel, in this case 
Count
Long
Read-only. Returns the number of objects
in the collection 
Creator
Long
Read-only. Returns a Longnumber that
describes whether or not the object was
created in Excel 
Parent
Object
The Parent object is the owning object of
the collection object. For example, Work-
books. Parent returns a reference to the 
Applicationobject 
Common Collection Methods
Name
Returns
Parameters
Description
Item
Single Object
Index as Variant
Returns the object from the col-
lection with the Index value
specified by the Indexparame-
ter. The Index value may also
specify a unique string key
describing one of the objects in
the collection 
Common Object Properties
Objects also have some common properties. To avoid redundancy, the common properties and methods
of all objects are listed next. They will be mentioned in each object description as existing, but are only
defined here.
Name
Returns
Description
Application
Application
Read-only. Returns a reference to the owning
application of the current object—Excel, in this
case 
Creator
Long
Read-only. Returns a Longnumber that
describes whether or not the object was created
in Excel 
Parent
Object
Read-only. The owning object of the current
object. For example, CharactersParent may
return a reference to a Range object, since a
Rangeobject is one of the possible owners of a
Charactersobject 
Excel Objects and Their Properties,
Methods, and Events
The objects are listed in alphabetical order. Each object has a general description of the object and possible
parent objects. This is followed by a table format of each of the object’s properties, methods, and events.
AboveAverage Object
The AboveAverage object controls the attributes and specifications of a conditional formatting rule that
evaluates the values in a given scope or range against the average of that scope or range.
636
Common Collection Methods
AboveAverage Properties
The ApplicationCreator, and Parent properties are defined at the beginning of this appendix.
AboveAverage Properties
Name
Returns
Description
AboveBelow
xlAboveBelow
Set/Get the conditional formatting rule looking
for values above or below the average. Use the
xlAboveBelowconstants 
AppliesTo
Range
Set/Get the range that is affected by the format-
ting rule
Borders
Borders
Read-only. Returns a collection that specifies the
cell borders for the formatting condition
CalcFor
xlCalcFor
Set/Get the scope of data to be evaluated in a
PivotTable report. Use the xlCalcFor constant
Font
Font
Read-only. Specifies the font formatting
attributes for the conditional formatting rule
FormatRow
Boolean
Set/Get the Boolean value specifying if the
entire Excel table row should be formatted. The
default value is False
Interior
Interior
Read-only. Specifies the interior formatting
attributes for the conditional formatting rule
NumberFormat
Variant
Set/Get the number format applied to a cell if
the conditional formatting rule evaluates to true
Priority
Long
Set/Get the priority value of a conditional for-
matting rule, determining the order of evalua-
tion when other rules are in effect 
PTCondition
Boolean
Read-only. Indicates whether the formatting
rule is applied to a PivotTable chart
ScopeType
xlPivot
Set/Get the scope of the formatting rule when 
Condition
applied to a PivotTable chart. Use the 
Scope
xlPivotConditionScopeconstants
StopifTrue
Boolean
Set/Get a Boolean value that determines if addi-
tional formatting rules should be applied if the
current rule evaluates to True. The default
value is True
Type
xlFormat
Read-only. Returns an xlFormatConditionType
ConditionType
constant that specifies the type of conditional for-
matting being applied. This object will always
return a value of 12 since it corresponds to the
XlAboveAverageCondition
637
AboveAverage Properties
Documents you may be interested
Documents you may be interested