display pdf winform c# : Rotate pdf page by page control software system azure winforms web page console 7053154973-Excel%202007%20VBA%20Programmers%20Reference%20-%20Wrox%20200745-part672

Creating a New Word Document
Say you want to use a current instance of Word if one exists, or if there is no current instance, you want
to create one. In either case, you want to open a new document and paste the table into it. The following
code shows how to do this. Again, you are using early binding:
Sub CopyTableToAnyWordDocument()
‘Example of Word automation using early binding
‘Copies range from workbook and pastes it in
‘a new Word document, in a active instance of
‘Word, if there is one.
‘If not, opens new instance of Word
Dim wdApp As Word.Application
‘Copy Range A1:B6 on sheet named Table
ThisWorkbook.Sheets(“Table”).Range(“A1:B6”).Copy
On Error Resume Next
‘Try to establish link to open instance of Word
Set wdApp = GetObject(, “Word.Application”)
‘If this fails, open Word
If wdApp Is Nothing Then
Set wdApp = GetObject(“”, “Word.Application”)
End If
On Error GoTo 0
With wdApp
‘Add new document
.Documents.Add
‘Make Word visible
.Visible = True
End With
With wdApp.Selection
‘Go to end of document and insert paragraph
.EndKey Unit:=wdStory
.TypeParagraph
‘Paste table
.Paste
End With
‘Release object variable
Set wdApp = Nothing
End Sub 
If there is no current instance of Word, using GetObjectwith no first argument causes a run-time error,
and the code then uses GetObjectwith a zero-length string as the first argument, which opens a new
instance of Word, and then creates a new document. The code also makes the new instance of Word visi-
ble, unlike the previous examples, where the work was done behind the scenes without showing the
Word window. The table is then pasted at the end of the Word document. At the end of the procedure,
the object variable wdAppis released, but the Word window is accessible on the screen so that you can
view the result.
418
Chapter 19: Interacting with Other Office Applications
Rotate pdf page by page - 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; permanently rotate pdf pages
Rotate pdf page by page - 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
save pdf after rotating pages; how to save a pdf after rotating pages
Access and ADO
If you want to copy data from Access to Excel, you can establish a reference to the Access object library
and use the Access object model. However, this is overkill because you don’t really need most of the
functionality in Access. You can also use ADO (ActiveX Data Objects), which is Microsoft’s technology
for programmatic access to relational databases, and many other forms of data storage. For a compre-
hensive treatment of ADO, see Chapter 20.
Figure 19-3 shows an Access table named SalesDatathat is in an Access database file SalesDB.accdb.
Figure 19-3
The following code uses ADO to open a recordset based on the Salestable. It uses early binding, so a ref-
erence to the ADO object library is required. You will need to create a reference to Microsoft ActiveX Data
Objects. If you find multiple versions of this library, choose the one with the highest version number:
Sub GetSalesDataViaADO()
‘Example of ADO automation using early binding
‘Copies Sales table from Access database to new worksheet
Dim con As ADODB.Connection
Dim rsSales As ADODB.Recordset
Dim i As Integer
Dim wks As Worksheet
Dim iCount As Integer
‘Establish connection to database
Set con = New ADODB.Connection
con.Open “Provider=Microsoft.ACE.OLEDB.12.0;” & _
419
Chapter 19: Interacting with Other Office Applications
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
XDoc.PDF ›› VB.NET PDF: Delete PDF Page. using RasterEdge.Imaging.Basic; using RasterEdge.XDoc.PDF; How to VB.NET: Delete a Single PDF Page from PDF File.
how to rotate one pdf page; save pdf rotated pages
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Professional .NET PDF control for inserting PDF page in Visual Basic .NET class application.
how to rotate all pages in pdf in preview; rotate pdf pages in reader
“Data Source=C:\VBA_Prog_Ref\Chapter19\SalesDB.accdb”
‘Open recordset based on Sales Table
Set rsSales = New ADODB.Recordset
Set rsSales.ActiveConnection = con
rsSales.Open “Select * From SalesData”
‘Add new worksheet to active workbook
Set wks = Worksheets.Add
iCount = rsSales.Fields.Count
‘Enter field names across row 1
For i = 0 To iCount - 1
wks.Cells(1, i + 1).Value = rsSales.Fields(i).Name
Next
‘Copy entire recordset data to worksheet, starting in A2
wks.Range(“A2”).CopyFromRecordset rsSales
‘Format worksheet dates in A column
wks.Columns(“B”).NumberFormat = “mmm dd, yyyy”
‘Bold row 1 and fit columns to largest entry
With wks.Range(“A1”).Resize(1, iCount)
.Font.Bold = True
.EntireColumn.AutoFit
End With
‘Release object variables
Set rsSales = Nothing
Set con = Nothing
End Sub 
The code creates a connection to the database and a recordset based on the SalesDatatable. Anew
worksheet is added to the Excel workbook, and the field names in rsSalesare assigned to the first row
of the new worksheet. The code uses the CopyFromRecordSetmethod of the Rangeobject to copy the
records in rsSalesto the worksheet, starting in cell A2. CopyFromRecordSetis a very fast way to copy
the data, compared to a looping procedure that copies record by record.
Access, Excel, and, Outlook
As another example of integrating different Office applications, you will extract some data from Access,
chart it using Excel, and e-mail the chart using Outlook. The code has been set up as four procedures.
The first procedure is a sub procedure named EmailChartthat establishes the operating parameters
and executes the other three procedures. Note that the code uses early binding, and you need to create
references to the ADO and Outlook object libraries:
Sub EmailChart()
‘Gets data from Access using SQL statement
‘Creates chart and emails chart file to recipient
Dim sSQL As String
420
Chapter 19: Interacting with Other Office Applications
C# PDF Page Insert Library: insert pages into PDF file in C#.net
page processing functions, such as 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
save pdf rotate pages; pdf reverse page order
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Pages. |. Home ›› XDoc.PDF ›› C# PDF: Delete PDF Page. Demo Code: How to Delete a Single PDF Page from PDF File in C#.NET. How
pdf save rotated pages; rotate pdf pages individually
Dim rngData As Excel.Range
Dim sFileName As String
Dim sRecipient As String
sSQL = “SELECT Product, Sum(Revenue)”
sSQL = sSQL & “ FROM SalesData”
sSQL = sSQL & “ WHERE Date >= #1/1/2006# and Date<#1/1/2007#”
sSQL = sSQL & “ GROUP BY Product;”
sFileName = “C:\VBA_Prog_Ref\Chapter19\Chart.xlsx”
‘ Replace the made up email address with a valid one (perhaps your own)
sRecipient = “somebody@foobar.com”
Set rngData = rngSalesData(sSQL)
ChartData rngData, sFileName
SendEmail sRecipient, sFileName
End Sub
sSQLis used to hold a string that is a SQL(Structured Query Language) command. SQLis covered in
more detail in Chapter 20. In this case, the SQLspecifies that you want to select the unique product
names and the sum of the revenues for each product from your Access database SalesDatatable for 
all dates in the year 2006. sFileNamedefines the path and filename that will be used to hold the chart
workbook. sRecipientholds the e-mail address of the person you are sending the chart to.
The code then executes the rngSalesDatafunction that is listed as follows. The function accepts the
SQLstatement as an input parameter and returns a reference to the range containing the extracted data,
which is assigned to rngData. The ChartDatasub procedure is then executed, passing in the data
range, as well as the path and filename for the chart workbook. Finally, the SendEMailsub procedure is
executed, passing in the recipient’s e-mail address and the location of the chart workbook to be attached
to the e-mail:
Function rngSalesData(sSQL As String) As Excel.Range
‘Function to extract data from database using
‘SQL statement in sSQL
‘Returns a reference to the range containing
‘the data
Dim con As ADODB.Connection
Dim rsSales As ADODB.Recordset
‘Establish connection to database
Set con = New ADODB.Connection
con.Open “Provider=Microsoft.ACE.OLEDB.12.0;” & _
“Data Source=C:\VBA_Prog_Ref\Chapter19\SalesDB.accdb”
‘Open recordset based on Sales Table
Set rsSales = New ADODB.Recordset
Set rsSales.ActiveConnection = con
rsSales.Open sSQL
‘Clear sheet and bring in new data
421
Chapter 19: Interacting with Other Office Applications
C# TIFF: How to Rotate TIFF Using C# Code in .NET Imaging
Convert Tiff to Jpeg Images. Convert Word, Excel, PowerPoint to Tiff. Convert PDF to Tiff. Move Tiff Page Position. Rotate a Tiff Page. Extract Tiff Pages.
pdf reverse page order online; rotate pdf pages and save
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
If using x86, the platform target should be x86. C#.NET Sample Code: Clone a PDF Page Using C#.NET. Load the PDF file that provides the page object.
rotate pdf pages; pdf rotate single page
With Worksheets(“Data”)
.Cells.Clear
With .Range(“A1”)
‘Copy entire recordset data to worksheet, starting in A1
.CopyFromRecordset rsSales
‘Return reference to data range
Set rngSalesData = .CurrentRegion
End With
End With
‘Release object variables
Set rsSales = Nothing
Set con = Nothing
End Function
The rngSalesDatafunction is similar to the GetSalesDataViaADOsub procedure presented earlier.
Instead of getting the entire SalesDatatable from the database, it uses SQLto be more selective. It
clears the worksheet named Dataand copies the selected data to a range starting in A1. It does not add
the field names to the worksheet, just the product names and total revenue. It uses the CurrentRegion
property to obtain a reference to all the extracted data and assigns the reference to the return value of the
function:
Sub ChartData(rngData As Range, sFileName As String)
‘Procedure to create chart based on data in rngData
‘Binds data to chart as arrays
‘Saves chart to path and file in sFileName
‘Create new workbook
With Workbooks.Add
‘Create new chart sheet
With .Charts.Add
‘Create new data series and assign data
With .SeriesCollection.NewSeries
.XValues = rngData.Columns(1).Value
.Values = rngData.Columns(2).Value
End With
‘Format chart
.HasLegend = False
.HasTitle = True
.ChartTitle.Text = “Year 2006 Revenue”
End With
‘Save workbook and close it
Application.DisplayAlerts = False
.SaveAs sFileName
Application.DisplayAlerts = True
422
Chapter 19: Interacting with Other Office Applications
VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
Existing PDF Pages. Page: Replace PDF Pages. Page: Move Page Position. Page: Copy, Paste PDF Pages. Page: Rotate a PDF Page. PDF Read. Text
how to rotate page in pdf and save; how to rotate a single page in a pdf document
C# PDF Page Replace Library: replace PDF pages in C#.net, ASP.NET
Page: Replace PDF Pages. An Excellent PDF Control Allows C# Users to Replace the Original PDF Page with New PDF Page from Another PDF File in C#.NET.
pdf rotate one page; how to rotate a page in pdf and save it
.Close
End With
End Sub
ChartDatahas input parameters to define the range containing the data to be charted and the destina-
tion for the file it creates. It creates a new workbook and adds a chart sheet to it. It creates a new series in
the chart and assigns the values from the data range as arrays to the axes of the series. DisplayAlerts
is set to Falseto prevent a warning if it overwrites an old file of the same name.
The following SendEmailsub sends the chart workbook as an attachment to an e-mail:
Sub SendEmail(sRecipient As String, sAttachment As String)
‘Send email to sRecipient
‘Attaching file in sAttachment
Dim olApp As Object
Dim olNameSpace As Object
Dim olFolder As Object 
Dim olMail As Object
Set olApp = CreateObject(“Outlook.Application”)
Set olNameSpace = olApp.GetNamespace(“MAPI”)
‘Might be necessary to Logon
‘olNameSpace.Logon “UserName”, “Password”
Set olFolder = olNameSpace.GetDefaultFolder(6)
Set olMail = olApp.CreateItem(0)
With olMail
.Subject = “Year 2006 Revenue Chart”
.Recipients.Add sRecipient
.Body = “Workbook with chart attached”
.Attachments.Add sAttachment
.Send
End With
End Sub
SendEMailhas input parameters for the e-mail address of the recipient and the filename of the attach-
ment for the e-mail. If your Outlook configuration requires you to log on, you will need to uncomment
the lines that get a reference to the Namespace and supply the username and password. Anew mail item
is created, using the CreateItemmethod. Text is added for the subject line and the body of the e-mail,
and the recipient and attachment are specified. The Sendmethod sends the e-mail.
Better than Mail Merge
Using VBA, it is possible to emulate a Word mail merge. Mail merge is not capable of producing vari-
able-length tables within a document, but you can do this using VBA. The following techniques and
code show how.
423
Chapter 19: Interacting with Other Office Applications
Say you run an educational institution that provides courses to students, who are agents providing a
specific service to the community. You have an Access database containing information on your students
and the courses they attend. You want to produce a letter to go to each student, containing a summary of
the courses they have attended.
The tAgents table holds information on the students, as shown in Figure 19-4.
Figure 19-4
The tCourses table holds information on the available courses, as shown in Figure 19-5.
Figure 19-5
The tCoursesAttended table holds information on the dates on which students attended courses, as
shown in Figure 19-6.
Figure 19-6
There is also a query named qCoursesAttended, shown in Figure 19-7, that joins the tCoursesAttended
table and the tCourses table to provide the details you need for the mail merge letter.
424
Chapter 19: Interacting with Other Office Applications
Figure 19-7
In Word, you have prepared a template letter, as shown in Figure 19-8.
Figure 19-8
425
Chapter 19: Interacting with Other Office Applications
The items in angle brackets are actually field codes, as shown in Figure 19-9. You can toggle all the field
codes in a document between the two views by using Alt+F9. Use Shift+F9 to toggle field codes you
have selected. The field codes refer to document variables. You are going to assign values to these docu-
ment variables using VBA. There is also a bookmark named CourseTablethat has been inserted in the
first line of the table. Its size and position are not relevant, as long as it is somewhere in the table. It
serves as a way of identifying which table you are filling with data. The techniques used here will allow
you to fill multiple tables in the one document.
Figure 19-9
The code that extracts the information from the database and fills in the letters is as follows:
Sub CreateLetters()
Dim wdApp As Word.Application
Dim doc As Word.Document
Dim tbl As Word.Table
Dim wrgCopyRange As Word.Range
Dim wrgDestinationRange As Word.Range
Dim lPos As Long
Dim con As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim fld As ADODB.Field
426
Chapter 19: Interacting with Other Office Applications
Dim sFolder As String
sFolder = ThisWorkbook.Path
Set con = New ADODB.Connection
con.Open “Provider=Microsoft.ACE.OLEDB.12.0;” & _
“Data Source=” & sFolder & “\MailMerge.accdb;”
Set rs1 = New ADODB.Recordset
rs1.Open “Select * FROM [tAgents];”, con
The first part of the code is very similar to that already seen. The coding determines the path to the
database by finding the location of the Excel workbook file containing the code, and assumes that the
database is in the same location. It creates a recordset containing all the information for each student
from tAgents. Anew instance of Word is opened and made visible so you can watch the action:
Set wdApp = New Word.Application
wdApp.Visible = True    ‘deleting this line will improve performance
‘Loop through all the agents
Do Until rs1.EOF
‘Open copy of document
Set doc = wdApp.Documents.Add(Template:=sFolder & “\Letter.docx”)
‘Assign field values to document variables
For Each fld In rs1.Fields
If IsNull(fld.Value) Then
doc.Variables(fld.Name) = “ “
Else
doc.Variables(fld.Name) = fld.Value
End If
Next fld
It is better not to make Word visible, because the code will run faster if Word remains hidden. You then
loop through all the agents in the database, opening a copy of the form letter for each one. Once again, it
is assumed that the template letter is in the same folder as the Excel workbook. For each agent, the code
loops through all the fields in the current record of the recordset and feeds the data into the document
variables with the same names. This covers all the data outside the table. Null values are converted to a
single blank space. Word document variables can’t hold a null or a zero-length string. Now locate the
table in the document using the bookmark it contains:
‘Locate the table containing the bookmark “CourseTable”
Set tbl = doc.Bookmarks(“CourseTable”).Range.Tables(1)
‘Second row of table is to be copied
Set wrgCopyRange = tbl.Rows(2).Range
‘Create recordset with data for current agent’s table
Set rs2 = New ADODB.Recordset
rs2.Open “Select * FROM [qCoursesAttended] WHERE AgentID=” & _
rs1!AgentID & “;”, con
‘Loop through the table records for current agent
Do Until rs2.EOF
For Each fld In rs2.Fields
427
Chapter 19: Interacting with Other Office Applications
Documents you may be interested
Documents you may be interested