display pdf winform c# : How to rotate all pages in pdf in preview application SDK utility azure wpf html visual studio 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200762-part691

MsgBox “An Error has occurred.” & vbCrLf & _
Err.Number & “: “ & Err.Description, vbOKOnly, psAddinTitle
Application.Visible = True
End Sub
The last workbook-related tool to be defined displays the File Properties dialog for the active VB
Project’s workbook. One of the main uses for the workbook properties is to provide the information
shown in the Add-Ins dialog. The list box shows the Add-in’s title from its Properties dialog, and the
description shown when an Add-in is selected is obtained from its Comments box.
Excel’s built-in Properties dialog can be used for this, but you cannot tell it which workbook to show the
properties for—the active workbook is used. Therefore, any Add-ins need to be temporarily converted
to normal workbooks and “unhidden” if they are hidden. After showing the Properties dialog, the work-
books must be converted back to Add-ins. The following code does that, and should also be put in the
modMenuFilemodule:
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: FileBookProps
‘ Purpose:    Displays the workbook properties dialog for the active VB Project
Sub FileBookProps()
Dim Wbk As Workbook, bAddin As Boolean, bVis As Boolean
‘Just ignore any errors
On Error Resume Next
‘Try to get the workbook containing the active VB Project
Set Wbk = fnActiveProjectBook
‘If we didn’t find it, just quit
If Wbk Is Nothing Then Exit Sub
‘Hide the Excel window, so the dialog seems to appear within the VBE environment
Application.Visible = False
‘Using the workbook...
With Wbk
‘If it is an addin, convert it to a normal workbook temporarily
bAddin = .IsAddin
.IsAddin = False
‘Make sure its window is visible
bVis = .Windows(1).Visible
.Windows(1).Visible = True
‘Display the Workbook Properties dialog
Application.Dialogs(xlDialogProperties).Show
‘Restore the workbook’s visibility and addin Status
.Windows(1).Visible = bVis
.IsAddin = bAddin
588
Chapter 26: Programming the VBE
How to rotate all pages in pdf in preview - 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 all pages in pdf file; rotate individual pages in pdf
How to rotate all pages in pdf in preview - 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
pdf expert rotate page; how to rotate pdf pages and save permanently
End With
‘Make Excel visible again
Application.Visible = True
End Sub
To test the Add-in so far, just rerun the Workbook_Openroutine to re-create the menu items, and then
check that each item works as intended.
Working with Code
So far in this chapter, you have been working at a fairly high level in the VBIDE and Excel object models
(limiting yourself to the VBProjectand Workbookobjects) to add typical file operations to the Visual
Basic environment. You now have the ability to create new workbooks (and hence their VB Projects),
open existing workbooks, change a workbook’s properties, and save and close workbooks from within
the VBE.
This section plunges to the lowest level of the VBE object model and explains how to work with the
user’s code. It shows how to detect the line of code the user is editing (and even identify the selected
characters within that line), and get information about the procedure, module, and project containing
that line of code. Adding and changing code is left until the next section, where you’ll be creating a
UserForm, adding some buttons to it, and adding code to handle the buttons’ events.
To demonstrate how to identify the code that the user is working on, right-click access will be added to
provide a print routine, with individual buttons to print the current selection, current procedure, mod-
ule, or project. First add some code in CMenuHandlerClass_Initializeto create a cascading menu to
the Code Window popup menu, and then add four menu items to the cascading menu, each of which
has its own face ID:
With Application.VBE.CommandBars(“Code Window”).Controls.Add(msoControlPopup, _
before:=4, temporary:=True)
.Caption = “P&rint”
.Tag = msTAG
AddMenu .CommandBar, “&Selected Text”, “CodePrintSel”, , 3518, _
msoButtonIconAndCaption, “Print selected text”
AddMenu .CommandBar, “&Procedure”, “CodePrintProc”, , 2564, _
msoButtonIconAndCaption, “Print current procedure”
AddMenu .CommandBar, “&Module”, “CodePrintMod”, , 472, _
msoButtonIconAndCaption, “Print current module”
AddMenu .CommandBar, “Pro&ject”, “CodePrintProj”, , 2557, _
msoButtonIconAndCaption, “Print all modules in the project”
End With
Attempting to close the Add-in itself using the menu might cause the computer to
lock up.
589
Chapter 26: Programming the VBE
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Also a preview component enables compressing and decompressing in preview in ASP.NET All object data. VB.NET Demo Code to Optimize An Exist PDF File in Visual
pdf save rotated pages; save pdf rotated pages
How to C#: Preview Document Content Using XDoc.Word
if (bmp == null) throw new Exception("fail to load the document preview"); //. Copyright © <2000-2016> by <RasterEdge.com>. All Rights Reserved.
rotate one page in pdf; how to rotate a pdf page in reader
The result is shown in Figure 26-4.
Figure 26-4
The code for the four printing routines will be placed into their own module, so add a new module to
the project called modMenuCode.
Unfortunately, the VBIDE object model does not include a Printmethod for any of its objects. To provide
right-click printing, there are three options:
Show the VBE’s Printdialog and operate it using SendKeys.
Copy the code to a worksheet range and print it from there.
Copy the code to a private instance of Word, reformat to show the Excel reserved words and so
on in their correct colors, and then print it from Word.
For the sake of simplicity, the first option will be implemented. The main problem that this presents is
how to select the Selected Text, Module, or Project option buttons on the Print dialog, using SendKeys,
especially as the Selected Text option is only enabled when some text is actually selected.
The answer is to identify if any text is selected, then send the appropriate number of down arrow keys
tothe dialog to select either the Module or Project options. If you could rely on your users only ever
having an English user interface language, you could send Alt+M or Alt+J keystrokes—sending down
arrows works with any choice of user interface language.
The code for the Selected Text menu item is the simplest and is presented in the following listing. All
that is required is to identify if the user has actually selected anything and, if so, to send some keystrokes
to the Print dialog to print it:
590
Chapter 26: Programming the VBE
How to C#: Preview Document Content Using XDoc.PowerPoint
if (bmp == null) throw new Exception("fail to load the document preview"); //. Copyright © <2000-2016> by <RasterEdge.com>. All Rights Reserved.
how to save a pdf after rotating pages; rotate all pages in pdf preview
C# WinForms Viewer: Load, View, Convert, Annotate and Edit PDF
Erase PDF pages. Miscellaneous. Plenty of VB.NET class demo codes and tutorials are given on How to Use XDoc.PDF SDK in VB.NET program. All Rights Reserved.
how to permanently rotate pdf pages; how to rotate one page in a pdf file
Option Explicit
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: CodePrintSel
‘ Purpose:    Print the current selection
Sub CodePrintSel()
Dim lStartLine As Long, lStartCol As Long, lEndLine As Long, lEndCol As Long
‘Get the current selected text
Application.VBE.ActiveCodePane.GetSelection lStartLine, lStartCol, _
lEndLine, lEndCol
‘If there’s something selected, print it
If lStartLine <> lEndLine Or lStartCol <> lEndCol Then
Application.SendKeys “{ENTER}”
Application.VBE.CommandBars.FindControl(ID:=4).Execute
End If
End Sub
The main items to note are:
The ActiveCodePaneproperty of the VBE is being used to identify which module the user is
editing.
The variables sent to the GetSelectionmethod are sent ByRefand actually get filled by the
method. After the call to GetSelection, they contain the start and ending line numbers and
start and ending columns of the currently selected text.
Asimple Enter keystroke is sent to the keyboard buffer, then the VBE Print dialog is immedi-
ately shown by running the File➪Print menu item (ID = 4) directly. By default (if some text is
selected), when the VBE Print dialog is shown the Selected Text option is selected, so this does
not need to be changed.
To print the current module and project, very similar code can be used. The only difference is that it
checks whether any text is selected (that is, if the Selected Text option in the Print dialog is enabled) and
then sends a number of down keystrokes to the dialog to select the correct option. Both of these routines
can be added to the modMenuCodemodule:
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: CodePrintMod
‘ Purpose:    Print the current module
Sub CodePrintMod()
It should be noted that while no method in the Excel object model changes the value
of the variables passed to it, this technique is quite common in the VBIDE object
model and is getting more common in Windows applications generally.
591
Chapter 26: Programming the VBE
C# WPF Viewer: Load, View, Convert, Annotate and Edit PDF
Erase PDF pages. Miscellaneous. Plenty of VB.NET class demo codes and tutorials are given on How to Use XDoc.PDF SDK in VB.NET program. All Rights Reserved.
rotate pdf page few degrees; rotate single page in pdf reader
C# PDF Page Insert Library: insert pages into PDF file in C#.net
as how to merge PDF document files by C# code, how to rotate PDF document page This C# demo explains how to insert empty pages to a specific All Rights Reserved
rotate pdf pages; rotate one page in pdf
Dim lStartLine As Long, lStartCol As Long, lEndLine As Long, lEndCol As Long
‘Get the current selection
Application.VBE.ActiveCodePane.GetSelection lStartLine, lStartCol, _
lEndLine, lEndCol
If lStartLine <> lEndLine Or lStartCol <> lEndCol Then
‘If there’s something selected, make sure the ‘Module’ item is selected
Application.SendKeys “{DOWN}{ENTER}”
Else
‘If there’s nothing selected, the ‘Module’ item is selected by default
Application.SendKeys “{ENTER}”
End If
Application.VBE.CommandBars.FindControl(ID:=4).Execute
End Sub
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: CodePrintProj
‘ Purpose:    Print the current project
Sub CodePrintProj()
Dim lStartLine As Long, lStartCol As Long, lEndLine As Long, lEndCol As Long
‘Get the current selection
Application.VBE.ActiveCodePane.GetSelection lStartLine, lStartCol, _
lEndLine, lEndCol
‘Make sure the ‘Project’ item is selected
If lStartLine <> lEndLine Or lStartCol <> lEndCol Then
Application.SendKeys “{DOWN}{DOWN}{ENTER}”
Else
Application.SendKeys “{DOWN}{ENTER}”
End If
Application.VBE.CommandBars.FindControl(ID:=4).Execute
End Sub
The code to print the current procedure is slightly more complex, because the Print dialog does not have
a Current Procedure option. The steps you need to perform are as follows:
1.
Identify and store away the user’s current selection.
2.
Identify the procedure (or declaration lines) containing the user’s selection.
3.
Expand the selection to encompass the full procedure (or all the declaration lines).
4.
Show the Print dialog to print this expanded selection.
5.
Restore the user’s original selections.
Doing this on some PCs raises an interesting issue—the final step of restoring the user’s original selection
sometimes gets run before the Print dialog has been shown. This is presumably because the printing is
592
Chapter 26: Programming the VBE
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Raster
NET RasterEdge HTML5 Viewer offers user the functionality to rotate images 90 images to Tiff (.tif, .tiff) online, create PDF document from All Rights Reserved
change orientation of pdf page; pdf reverse page order preview
C# TIFF: TIFF Editor SDK to Read & Manipulate TIFF File Using C#.
Here we list all features supported by RasterEdge C#.NET to process Tiff file and its pages, like merge append, split, extract, create, insert, rotate, sort, etc
pdf rotate page; rotate all pages in pdf and save
done on a separate thread of execution, and Excel 2007 is having a concurrency problem. The easy fix is to
include a DoEventsstatement immediately after showing the Print dialog, to let the print routine carry
out its task. This will also yield control to the operating system, allowing it to process any pending or
queued events. The code to print the current procedure should be added to the modMenuCodemodule:
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: CodePrintProc
‘ Purpose:    Print the current procedure
Sub CodePrintProc()
Dim lStartLine As Long, lStartCol As Long, lEndLine As Long, lEndCol As Long
Dim lProcType As Long, sProcName As String, lProcStart As Long, lProcEnd As Long
With Application.VBE.ActiveCodePane
‘Get the current selection, so we know what to print and can restore it later
.GetSelection lStartLine, lStartCol, lEndLine, lEndCol
With .CodeModule
If lStartLine <= .CountOfDeclarationLines Then
‘We’re in the declarations section
lProcStart = 1
lProcEnd = .CountOfDeclarationLines
Else
‘We’re in a procedure, so find its start and end
sProcName = .ProcOfLine(lStartLine, lProcType)
lProcStart = .ProcStartLine(sProcName, lProcType)
lProcEnd = lProcStart + .ProcCountLines(sProcName, lProcType)
End If
End With
‘Select the text to print
.SetSelection lProcStart, 1, lProcEnd, 255
‘Print it
Application.SendKeys “{ENTER}”
Application.VBE.CommandBars.FindControl(ID:=4).Execute
‘The VBE Printing code is on another thread, so we need to let it do its stuff
‘before setting the selection back.
DoEvents
‘And select the original text again
.SetSelection lStartLine, lStartCol, lEndLine, lEndCol
End With
End Sub
The main item to note in this code is that the ProcOfLinemethod accepts the start line as input, fills the
lProcTypevariable with a number to identify the procedure type (SubFunctionPropertyLet,
PropertyGet, and so on), and returns the name of the procedure. The procedure type and name are
used to find the start of the procedure (using ProcStartLine) and the number of lines within the proce-
dure (ProcCountLines), which are then selected and printed.
593
Chapter 26: Programming the VBE
VB.NET PDF File Split Library: Split, seperate PDF into multiple
limit the pages of each file to 8 pages options.MaxPages = 8 outputFileName + "_" + i.ToString() + ".pdf") Next ' Split input PDF file to All Rights Reserved.
pdf save rotated pages; rotate individual pages in pdf
VB.NET PDF remove image library: remove, delete images from PDF in
pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET Remove multiple or all image objects from PDF Remove PDF image in preview without adobe PDF reader
rotate all pages in pdf; how to rotate a page in pdf and save it
Working with UserForms
The code examples presented in this chapter so far have been extending the VBE to provide additional
tools for the developer. This section shifts its attention to programmatically creating and manipulating
UserForms, adding controls, and adding procedures to the UserForm’s code module to handle the con-
trols’ events. Though the example provided in this section continues to extend the VBE, the same code
and techniques can be applied in end-user applications, including:
Adding UserForms to workbooks created by the application
Sizing the UserForm and moving and sizing its controls to make the best use of the available
screen space
Adding code to handle events in UserForms created by the application
Changing the controls shown on an existing UserForm in response to user input
Creating UserForms on the fly, as they are needed (for example, when the number and type of
controls on the UserForm will vary significantly depending on the data to be shown)
These techniques will be demonstrated by writing code to add a UserForm to the active project, com-
plete with standard-sized OK and Cancel buttons, as well as code to handle the buttons’ Clickevents
and the UserForm’s QueryCloseevent. The UserForm’s size will be set to two-thirds of the width and
height of the Excel window, and the OK and Cancel buttons’ position will be adjusted accordingly.
The example shown here is the difficult way to achieve the desired result, and is intended to be an edu-
cational, rather than a practical, example. The easy way to add a standardized UserForm is to create it
manually and export it to disk as a .frmfile, then import it using the following code (do not type this in):
Dim oVBC As VBComponent
Set oVBC = Application.VBE.ActiveVBProject.VBComponents.Import(“MyForm.frm”)
When you need to include it in another project, just import it again. The only advantage to doing it
through code is that the UserForm can be given a size appropriate to the user’s screen resolution and
size, and its controls are positioned correctly.
Start by adding code in CMenuHandlerClass_Initializeto create another menu:
AddMenu Application.VBE.CommandBars(“Standard”).FindControl(ID:=32806) _
.CommandBar, “&Standard Form”, “FormNewUserform”, 2, 581, _
msoButtonIconAndCaption, “Insert standardized UserForm”
The result of this addition will be the Standard Form menu, shown in Figure 26-5.
You’ll be using objects from the MSFormsobject library to create the form and controls, so add a reference to
the Microsoft Forms 2.0 Object Library by using the Tools➪References dialog, or just adding and removing
a UserForm. It takes quite a lot of code to create an entire form, so in this section the code listing is shown
and explained piecemeal; all the highlighted lines of code should be typed in.
594
Chapter 26: Programming the VBE
Figure 26-5
Add a new module for this routine, call it modMenuForm, and copy in the following code:
Option Explicit
‘Window API call to freeze a window
‘It does the same as Application.ScreenUpdating, but for the VBE
Private Declare Function LockWindowUpdate Lib “user32” (ByVal hwndLock As Long) _
As Long
Application.ScreenUpdatingdoes not affect the VBE, and the following FormNewUserformproce-
dure to create a form results in quite a lot of screen activity as the form is sized and the controls are
drawn. Asimple Windows API call can be used to freeze the VBE window at the start of the routine and
unfreeze it at the end (see Chapter 27 for more information about using this and other API functions):
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
‘ Subroutine: FormNewUserform
‘ Purpose:    Creates a new userform, Add-Ing standard OK and Cancel buttons
‘             and code to handle their events
Sub FormNewUserform()
Dim oVBC As VBIDE.VBComponent, fmFrmDesign As UserForm, lLine As Long
Microsoft’s Windows design guidelines recommend a gap of 6 points (approximately 4 pixels) between
buttons, and between a button and the edge of a form.
Const dGap As Double = 6
This is one of the more complex routines in the Add-in, so some error-handling code will be added to it.
Every routine in this chapter should really be given similar error-handling code.
‘Use our error handler to display a message if something goes wrong
On Error GoTo ERR_HANDLER
Use the Windows API call to freeze the VBE’s window. Note that HWndis a hidden property of the
MainWindowobject. To display the hidden properties of an object, open the Object Browser, right-click in
its window, and click the Show Hidden Members item.
‘Freeze the VBE window - same as Application.ScreenUpdating = False
LockWindowUpdate Application.VBE.MainWindow.HWnd
595
Chapter 26: Programming the VBE
The VBComponentobject (oVBCin the code) provides the “canvas” (background) of the UserForm, its
Propertiescollection, and its CodeModule. When a new UserForm is added to a project, a VBComponent
object is passed back that contains the form. The VBComponent’s Propertiescollection can be used to
change the size, color, font, caption, and so forth of the form’s background.
‘Add a new userform to the active VB Project
Set oVBC = Application.VBE.ActiveVBProject.VBComponents.Add(vbext_ct_MSForm)
‘Set the form’s height and width to 2/3 that of the Excel application.
oVBC.Properties(“Width”) = Application.UsableWidth * 2 / 3
oVBC.Properties(“Height”) = Application.UsableHeight * 2 / 3
The VBComponent’s Designerobject provides access to the contentof the UserForm, and is responsible
for the area inside the form’s borders and below its title bar. In this code, two controls are added to the
normal blank UserForm to provide standard OK and Close buttons. The name to use for the control
(Forms.CommandButton.1in this case) can be found by adding the control to a worksheet, then exam-
ining the resulting =EMBEDfunction. The appropriate controls can be found on the Developer tab of the
Ribbon by clicking Controls➪Insert➪ActiveX Controls.
‘Get the UserForm’s Designer
Set fmFrmDesign = oVBC.Designer
‘Use the designer to add the standard controls
With fmFrmDesign
‘Add an OK button, according to standard Windows size
With .Controls.Add(“Forms.CommandButton.1”, “bnOK”)
.Caption = “OK”
.Default = True
.Height = 18
.Width = 54
End With
‘Add a Cancel button, according to standard Windows size
With .Controls.Add(“Forms.CommandButton.1”, “bnCancel”)
.Caption = “Cancel”
.Cancel = True
.Height = 18
.Width = 54
End With
‘Move the OK and Cancel buttons to the bottom-right of the UserForm,
‘with a standard-width gap around and between them
With .Controls(“bnOK”)
.Top = fmFrmDesign.InsideHeight - .Height - dGap
.Left = fmFrmDesign.InsideWidth - .Width * 2 - dGap * 2
End With
With .Controls(“bnCancel”)
.Top = fmFrmDesign.InsideHeight - .Height - dGap
.Left = fmFrmDesign.InsideWidth - .Width - dGap
End With
End With
596
Chapter 26: Programming the VBE
This could be extended to add list boxes, labels, checkboxes, and so on. From this point on, you could just
as easily be working with an existing UserForm, changing its size and the position and size of its controls
to make the best use of the available screen resolution. The preceding code simply moves the OK and
Cancel buttons to the bottom-right corner of the UserForm, without adjusting their size. The same tech-
nique can be used to move and size all of a UserForm’s controls.
Now that buttons have been added to the UserForm at the correct place (the bottom-right corner), code
can be added to the UserForm’s module to handle the buttons’ and UserForm’s events. To add a proce-
dure to a code module, you can use the CreateEventProcInsertLines, or AddFromStringmethods.
In this example, the code is being added from strings. Alternatively, the code could be kept in a separate
text file and imported into the UserForm’s module. If CreateEventProcis used, all of the procedure’s
parameters are filled in on your behalf, and you get the PrivateSub...line, the EndSubline, and a
blank line between them. CreateEventProcreturns the number of the line in the module where the
PrivateSub...was added, which is then used to insert a comment line and to replace the default
blank line with the code:
‘ Now add some code to the userform’s code module
With oVBC.CodeModule
‘Add the code for the OK button’s Click event
lLine = .CreateEventProc(“Click”, “bnOK”)
.InsertLines lLine, “‘Standard OK button handler”
.ReplaceLine lLine + 2, “   mbOK = True” & vbCrLf & “    Me.Hide”   
If you use AddFromStringor InsertLines, you have to supply the full text, such as this for the Cancel
button:
‘Add the code for the Cancel button’s Click event
.AddFromString vbCrLf & _
“‘Standard Cancel button handler” & vbCrLf & _
“Private Sub bnCancel_Click()” & vbCrLf & _
“   mbOK = False” & vbCrLf & _
“   Me.Hide” & vbCrLf & _
“End Sub”
The code for the UserForm’s QueryCloseevent is the same as that of the Cancel button, so some code
will be added just to call the bnCancel_Clickroutine:
‘Add the code for the UserForm’s Close event - just call the Cancel code
lLine = .CreateEventProc(“QueryClose”, “UserForm”)
.InsertLines lLine, “‘Standard Close handler, treat same as Cancel”
.ReplaceLine lLine + 2, “    bnCancel_Click”
‘And close the code window that was automatically opened by Excel
‘when we created the event procedures
.CodePane.Window.Close
End With
‘Unfreeze the VBE window - same as Application.ScreenUpdating = True
LockWindowUpdate 0&
Exit Sub
597
Chapter 26: Programming the VBE
Documents you may be interested
Documents you may be interested