display pdf winform c# : Save pdf after rotating pages application control utility azure web page asp.net visual studio 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200733-part659

Although it’s easy to add entire built-in groups to your tabs, you’ll usually get better results by creating
custom groups and adding specific controls to them. There are a number of different container controls
you can include, to provide layout control or to create custom drop-down menus of built-in controls,
and a number of display attributes you can set to control their appearance. For example, you could
include a custom <box> element and use the showLabel attribute to show the standard Sort buttons 
as a horizontal set of icons above the Copy menu you have already:
<group id=”rxAuditMisc” label=”Miscellaneous” >
<box id=”rxSortBox”>
<control idMso=”SortAscendingExcel” showLabel=”false”/>
<control idMso=”SortDescendingExcel” showLabel=”false”/>
<control idMso=”SortDialog” showLabel=”false”/>
</box> 
<control idMso=”Copy” />
Afull list of the available control types and their attributes is included later in the chapter.
Including the <box> element results in the group shown in Figure 14-2.
Figure 14-2
RibbonX and VBA
As well as having the ability to create custom tabs and groups containing built-in controls, Microsoft has
provided the ability to add many types of custom controls to the Ribbon, and to hook their actions and
most of their attributes to VBA procedures and functions. This is done using a mechanism known as a
callback. A callback means simply that, as part of a RibbonX definition, you provide the name of a proce-
dure to run when the control is clicked, changed, and so on. It’s exactly the same as you’ve been doing
for years with Application.OnKeyCommandBarButton.OnAction, and so forth. The main difference
in RibbonX is that it passes a number of parameters to the function being called, so the function signature
must be declared correctly for the call to work. Again, that is no different than how you’ve been coding
UserForm control event procedures (other than the function signature usually being written for you).
Callbacks are also used when you need to be able to change a control’s attributes at run time. Rather
than defining a specific value for the attribute in the XML, provide the name of a procedure that Excel
should call whenever it needs to know the attribute’s value; it’s up to that procedure to work out (and
remember) what the value should be and return it to Excel. For example, rather than including the
label=”Miscellaneous”attribute in your earlier custom group, you could have specified a getLabel
callback:
<group id=”rxAuditMisc” getLabel=”rxAuditMisc_getLabel” >
298
Chapter 14: RibbonX
Save 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#
rotate pdf pages individually; pdf rotate one page
Save 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
how to reverse pages in pdf; pdf rotate all pages
When the tab is first displayed, Excel will call the rxAuditMisc_getLabel VBA procedure (in a standard
module), which should provide the text for Excel to use. If you want to change that text sometime later, you
can’t just update an object’s property; RibbonX does not have an object model. Instead, there’s an interface
to tell Excel that the information provided in an earlier callback is no longer valid; when Excel next needs
to display the group or control, it will call the procedure again to get the new value. Most attributes of
most controls can be set dynamically in this way. All the available callbacks and their function signatures
are detailed later in the chapter, but first, have a look at all the available types of custom controls you can
add to the Ribbon and all the attributes you can set to modify their appearance and behavior.
Contr ol Types
Previous versions of Office had a relatively limited set of control types that could be added to the menus
or toolbars. Office 2007 allows you to add much more than a simple button or popup menu, and
includes control types for almost every display mechanism that can be found in Excel’s built-in Ribbons.
The table on the following pages lists all the available control types, with a brief description and exam-
ple picture of a built-in control of each type.
Basic Controls
The following table lists all the basic controls that you can add to custom groups or that can be contained
in other control types.
Control Type
Description
Example from 
Excel’s Ribbon
<control .../>
The generic control type is used when-
ever you want to add a built-in control 
to a custom group.
<labelControl .../>
AlabelControlis a textual element 
and has no actions. It’s typically used 
to provide headers to columns of 
related buttons.
<button .../>
The most common control, a button 
is a single clickable item, having an 
image and/or caption.
<toggleButton .../>
Atoggle-button is a clickable item that 
toggles between pressed and not pressed 
with each click. It is most often used in 
groups to switch an attribute between 
multiple possible states, where only one 
of the group can be “down” at any time.
<checkbox .../>
Aclickable control that toggles between 
on and off, often used to control whether 
or not a UI element is visible.
Table continued on following page
299
Chapter 14: RibbonX
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 and save; rotate single page in pdf reader
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
rotate pdf page; rotate all pages in pdf and save
Control Type
Description
Example from 
Excel’s Ribbon
<editBox .../>
Acontrol that can be typed into.
<gallery .../>
Adrop-down control that drops to show 
a grid of other controls. The gallery can 
contain many different types of controls 
within the grid, and is one of the most 
flexible RibbonX controls.
<dynamicMenu .../>
Apopup menu, whose content is pro-
vided at run time, using a callback.
<separator.../>
Avertical bar used to provide visual 
separation of controls in a group
<menuSeparator .../>
Ahorizontal bar within a popup menu, 
providing a title for a group of related 
menu items. If no title is provided, 
displays as a thin horizontal line.
<item.../>
An item in the drop-down list of 
comboBox or dropDown.
<dialogBoxLauncher.../>
Adds a Launcher button to the 
bottom-right corner of a group.
Container Controls
The following table lists all the container controls you can add to custom groups. By nesting container
controls within other containers, you can create hierarchical structures.
<dropDown ...>
Can contain <item>
Acontrol that provides 
contents
or <button>controls.
a drop-down list of items 
</dropDown>
to select between, such as 
the Width dropDown.
<comboBox ...>
Can contain only 
Acontrol that can be typed 
contents
<item>controls.
into, but also provides a 
</comboBox>
drop-down list to pick 
from. The contents of the 
drop-down are provided 
as a set of item elements.
300
Chapter 14: RibbonX
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
reverse page order pdf; pdf expert rotate page
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
how to rotate a single page in a pdf document; how to rotate one pdf page
<menu...>
Can contain <control>,  A popup menu, whose 
contents
<button>
constituent items are 
</menu>
<toggleButton>
defined in the RibbonX 
<checkbox>
file. Menus may contain 
<gallery>
buttons or other menus, 
<dynamicMenu>
allowing you to create 
<menuSeparator>
hierarchical menu 
<menu>and/or 
structures.
<splitButton>
controls
<splitButton ...>
Must have the struc-
Acombined button or 
<button .../>
ture show here, 
toggle-button and menu. 
<menu...>
though could contain 
Clicking the button part 
menu contents
either a <button> or 
usually performs a default 
</menu>
<toggleButton>
action, and clicking the 
</splitButton>
control.
drop-down arrow shows a 
list of related alternatives.
<box ...>
Can contain any 
The box control has no 
contents
other control type.
visual display, but is used 
</box>
to control the layout of 
other buttons, such as in 
your Auditing group.
<buttonGroup ...>
Can contain 
Acontainer control that 
contents
<control>
displays its content con-
</buttonGroup>
<button>
trols as a related group, 
<toggleButton>
with a border and breaks 
<gallery><menu>
between the controls.
<dynamicMenu>and/
or <splitButton>
controls.
Contr ol A ttr ibut es
All of the control types have numerous attributes you can use to modify their appearance. All the avail-
able attributes are listed in the following table in alphabetical order, with their allowed values and the
controls that they can be used with.
Attribute
Description
Allowed Values
Applies To
boxStyle
Whether a box control arranges  horizontal, vertical
box
icons horizontally (the default) 
or vertically
columns
The number of columns in a 
1 to 1024 columns
gallery
gallery
Table continued on following page
301
Chapter 14: RibbonX
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
pdf reverse page order; rotate all pages in pdf file
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 pdf document; rotate individual pages in pdf
Attribute
Description
Allowed Values
Applies To
description
Along description of a control,  1 to 4096 characters
button, toggleButton, 
shown in menus when the 
splitButton, checkBox, 
menu’s itemSizeis set to large
menu, dynamicMenu,
gallery
Enabled
Whether a control is enabled
true, false
All controls
Id
Acustom control ID
1 to 1024 characters
All controls
idMso
Abuilt-in control ID
1 to 1024 characters
All controls
idQ
Aqualified control (see later)
1 to 1024 characters
tab, group or menu
Image
The name of a custom image 
1 to 1024 characters
All controls that 
within the workbook file
have an image
imageMso
The name of a built-in control, 
1 to 1024 characters
All controls that 
whose image should be used
have an image
invalidate
Whether to fire the content-
true, false
combobox, gallery, 
ContentOnDrop
related callbacks whenever a 
dynamicMenu
control is dropped
itemHeight
The height of a gallery item, 
1 to 4096
gallery
in pixels
itemSize
The size of items in a menu;
normal, large
menu
large items show their descrip-
tions as well as their labels
itemWidth
The width of a gallery item, in 
1 to 4096
gallery
pixels
keytip
The shortcut key combination 
1 to 3 characters
All controls, tab and 
used to access the control
group
label
The control’s caption
1 to 1024 characters
All controls, tab and
group
maxLength
The maximum length of textual  1 to 1024
editBox, comboBox
input
rows
The number of rows in a gallery
1 to 1024 rows
gallery
screentip
The small tip that shows when  1 to 1024 characters
All controls
the mouse hovers over a control
showImage
Whether a control’s image is 
true, false
All controls that have 
displayed
an image
showItemImage
Whether images are displayed 
true, false
comboBox, dropDown, 
for drop-down items
gallery
showItemLabel
Whether labels are displayed 
true, false
comboBox, dropDown, 
for drop-down items
gallery
302
Chapter 14: RibbonX
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
save pdf rotate pages; how to change page orientation in pdf document
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
save pdf rotated pages; saving rotated pdf pages
Attribute
Description
Allowed Values
Applies To
showLabel
Whether a control’s label is 
true, false
All controls
displayed
size
The size of a control: normal-
normal, large
All controls
size takes up one row; large-size 
takes up three rows
sizeString
Arepresentative string used to  1 to 1024 characters
editBox, comboBox, 
set the width of a control
dropDown
supertip
The large tip that shows when 
1 to 1024 characters
All controls
the mouse hovers over a control
tag
Arbitrary text
1 to 1024 characters
All controls
title
The text for a menu’s title
1 to 1024 characters
menu, menuSeparator
visible
Whether a control is visible
true, false
All controls, tab and
group
Contr ol Callbacks
Most RibbonX customization can be defined at design-time and can thereby be included directly within
the XML file. If, however, there are some attributes that need to be set at startup or can change at run
time, you can use the equivalent getattribute to provide the name of a callback function. When Excel
starts, it calls the function and the function provides the value of the attribute. Unlike the OnAction calls
you’re used to, Excel does not automatically scope the callback to the workbook containing the RibbonX
definition; if multiple workbooks contain a procedure with the same callback name, there is no guaran-
tee which one will be called!
For example, the following line was originally included in the XMLto hard code the group label:
<group id=”rxAuditMisc” label=”Miscellaneous”>
To use a callback instead, add the following VBA procedure to the Auditing.xlam workbook to provide
the label at run time. The VBA procedure’s parameters must match those that RibbonX expects to provide.
Most of them pass in a reference to the RibbonX control and a ByRef parameter for the return value:
Sub rxAuditMisc_getLabel(ByRef Control As IRibbonControl, _
ByRef ReturnValue As Variant)
ReturnValue = “Miscellaneous - “ & Format(Date, “dddd”)
End Sub
Save the add-in, unload it, and use the Custom UI Editor to change the RibbonX XML to use the
getLabelattribute, calling the procedure you just added:
<group id=”rxAuditMisc” getLabel=”rxAuditMisc_getLabel”>
303
Chapter 14: RibbonX
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 individual pages in pdf reader; pdf reverse page order online
If you reload the add-in and click the Auditing tab, the first group should now include the day of the
week in its name.
The Control reference passed into the callback is an extremely simple object, having only three read-only
properties and no methods:
id—The control’s idattribute
tag—The control’s tagattribute, if defined in the XML
context—Not used in Excel
The id property can be used to distinguish between controls if you specify a common callback name for
multiple controls. For example, in a multilingual application, you could include getLabel=”rxGetLabel”
in the definition for all controls and read the appropriate text from a language lookup table, matching on
the control ID:
Sub rxGetLabel(ByRef Control As IRibbonControl, _
ByRef ReturnValue As Variant)
ReturnValue = Application.WorksheetFunction.VLookup(Control.ID, _
shtLanguages.Range(“rngLabels”), glLanguageID, False)
End Sub
In addition to the get equivalents of all the design-time attributes, the following control callbacks are
available only at run time.
Callback
Used By
Description
getContent
dynamicMenu
Provides the XML for the menu’s content.
getPressed
toggleButton, 
Specifies whether or not the control is 
checkBox
pressed/ticked.
getItemCount
comboBox, dropdown,  Specifies how many items there are in a list 
gallery
populated at run time.
getItemID, getItemLabel,  comboBox, dropdown,  Called once for each item, to provide the 
getItemImage, 
gallery
attributes for that item.
getItemScreentip, 
getItemSupertip
getSelectedItemID
dropdown, gallery
Specifies which is the selected item, by pro-
viding the item’s ID.
getSelectedItemIndex
dropdown, gallery
Specifies which is the selected item, by pro-
viding the item’s index in the list.
getText
comboBox, editBox
Provides the text shown in the control
onAction
button, toggleButton,  Called when the control is clicked. Note that 
checkBox, dropdown,  the signatures are different depending on the 
gallery
control (see the following table).
onChange
editBox, comboBox
Called when the text of the control has changed.
304
Chapter 14: RibbonX
The following tables show the function signatures for all the available control callbacks. If you use the
Office 2007 Custom UI Editor, it can generate the correct callback signatures for any callbacks included
in the XML, ready for you to paste into your VBA project.
Callback
getContentgetDescriptiongetEnabledgetImagegetItemCount,
getItemHeightgetItemWidthgetKeytipgetLabelgetPressedgetSize,
getScreentipgetSelectedItemIDgetSelectedItemIndexgetShowImage,
getShowLabelgetSupertipgetTextgetTitlegetVisible
Signature SubProcName(ByRefControlAsIRibbonControl,_
ByRef ReturnValue As Variant)
Callback
getItemIDgetItemImagegetItemLabelgetItemScreentipgetItemSupertip
Signature SubProcName(ByRefControlAsIRibbonControl,
ByRef Index As Integer,_ _
ByRef ReturnValue As Variant)
Callback
onActionfor a button control
Signature SubProcName(ByRefControlAsIRibbonControl)
Callback
onActionfor a checkBoxand toggleButtoncontrol
Signature SubProcName(ByRefControlAsIRibbonControl,
ByRef Pressed AsBoolean)
Callback
onActionfor a dropDownand gallerycontrol
Signature SubProcName(ByRefControlAsIRibbonControl,
ByRef SelectedID As String, _
ByRef SelectedIndex As Integer)
Callback
onChangefor an editBoxor comboBox
Signature SubProcName(ByRefControlAsIRibbonControl,_
ByRef TextAs String)
Managing Cont rol Images
Most of the control types can have an associated image. The choice of image and display style is con-
trolled by the imageMsoimagegetImageshowImagegetShowImageshowItemImage,
getShowItemImagesize, and getSizeattributes.
The imageMso attribute is used when you want to use one of the built-in icons for a custom control. The
value of the attribute must be the name of the built-in control, which can be found by downloading the
Office2007IconsGallery.xlsmfile from the MSDN web site. That file adds a set of galleries to
Excel’s Developer tab that together show all of the 2,586 available images. For example, you can show
abutton with a smiley face using the XML:
<button id=”rxButtonSmiley” imageMso=”HappyFace”/>
305
Chapter 14: RibbonX
The imageattribute is used when you want to provide custom images for your controls. Those images
are usually contained inside the workbook file. The Ribbon drawing engine is designed to work best
with full-color (24-bit) images that also have an alpha channel to control each pixel’s transparency.
The best graphics format to use for custom images is therefore the Portable Network Graphics (.png) 
format, as that supports an alpha channel and results in relatively small file sizes.
The Office 2007 Custom UI Editor can be used to add custom images to workbook files—just click the
Insert Icons button and select the file to add. The Editor will show the icon in a pane on the right-hand
side and give it a default ID. The ID can be changed by right-clicking the icon and is then used in the
image attribute for the control:
<button id=”rxButtonCustom” image=”MyPNG”/>
Within the file, the editor stores all the images in a separate customUI\images folder and creates a
customUI.xml.relsfile in a customUI\_rels folder to relate the IDs used in the XMLto the image files:
<Relationships
xmlns=”http://schemas.openxmlformats.org/package/2006/relationships”>
<Relationship
Type=”http://schemas.openxmlformats.org/officeDocument/2006/relationships/image”
Target=”images/myCustomImage.png” Id=”MyPNG”/>
</Relationships>
If there are likely to be a large number of workbooks all using the same custom images, it may be more
efficient to store them all on a network drive, rather than copy them within each workbook file, and load
them at run time. You can do this with the loadImage callback of the customUI element:
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui”
loadImage=”rxcustomUI_loadImage”>
...
<button id=”rxButtonCustom” image=”Custom1.bmp”>
...
</customUI>
And some VBA code to load the images and provide them as an IPicture object:
Sub rxcustomUI_loadImage(imageID as String, ByRef returnedVal)
Set returnedVal = LoadPicture(“X:\Images\” & imageID)
End Sub
When Excel loads the workbook, it calls the loadImage callback for every image attribute it finds that
doesn’t point to an image contained within the file, passing the value of the imageattribute as the
imageID. The returnedValparameter must be set to either a standard IPictureimage object or the
name of a built-in control. The code uses the standard LoadPicture function to load the image from the
network share as the correct object type. Unfortunately, LoadPicture does not handle the .png file for-
mat, so if you want to load .png files using this technique, you have to use Windows API calls into the
GDI+ libraries. That is beyond the scope of this chapter, but a drop-in module is available for download
from www.wrox.com, providing a LoadPictureGDI function that handles .png files.
306
Chapter 14: RibbonX
The getImage callback is used if you want to change a custom control’s image while your application is
running. An example is the splitButtoncontrol used to apply cell borders; when an item is selected
from the menu part of the button (for example, double-bottom border), the button image (and behavior)
is updated to match the selected item. This is achieved by assigning an onAction callback to all the
menu items, which records the appropriate image in a module-level variable and marks the button as
needing to be refreshed (see later for details). When Excel next needs to display the button, it calls the
getImagecallback again, which returns the new image from the module-level variable.
The showImage attribute and getShowImagecallback can be trueor false, and they control whether
or not a control’s image is displayed.
The showItemImage attribute and getShowItemImage callback can be true or falseand control
whether or not an image is displayed for a dropDowncomboBox, or gallery item.
The size attribute and getSize callback can be normal or large. The normal size takes up one row of
the Ribbon (with the caption beside the icon), and the large size takes up all three rows (with the caption
below the icon).
Other RibbonX E lement s, At tribut es,
and Callbacks
Though most of the elements, attributes, and callbacks in RibbonX are used to set properties of controls,
there are a few more you need to understand to fully use the Ribbon.
If you omit the XML elements that define the controls, the full RibbonX structure is shown as follows,
where the ellipses (. . .) indicate one or more optional attributes. These elements and their attributes are
described in the sections that follow:
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui”
... >
<commands>
<command ... /> 
</commands>
<ribbon ... >
<officeMenu>
Any control type that can be in a menu
</officeMenu>
<qat>
<sharedControls>
<control>, <button> or <separator> control types
</sharedControls>
<documentControls>
<control>, <button> or <separator> control types
</documentControls>
</qat>
<tabs>
307
Chapter 14: RibbonX
Documents you may be interested
Documents you may be interested