105 
C1.C1Preview.RenderTable theader = new 
C1.C1Preview.RenderTable(this.c1PrintDocument1); 
6.
In this example, we will assign a gold color to our page header in our table. We will use the Style property 
of the TableRow class to apply the background color to the table, theader. 
Visual Basic 
theader.Style.BackColor = Color.Gold 
C# 
theader.Style.BackColor = Color.Gold; 
7.
We'll need to create a table with one row and one column. We will draw some text onto our table for our 
page header. We will make our text right-aligned. We create a new font type of Arial and font size of 14 
points, for our text. 
Visual Basic 
theader.Cells(0, 0).Style.TextAlignHorz = 
C1.C1Preview.AlignHorzEnum.Right 
' Set up some styles. 
theader.CellStyle.Font = New Font("Arial", 14) 
' Assign text. 
theader.Cells(0, 0).Text = "Swim Team Practice Schedule" 
' Set the table as the page header. 
Me.C1PrintDocument1.RenderBlock(theader) 
Me.C1PrintDocument1.EndDoc() 
C# 
theader.Cells[0, 0].Style.TextAlignHorz = 
C1.C1Preview.AlignHorzEnum.Right; 
// Set up some styles. 
theader.CellStyle.Font = new Font("Arial", 14); 
// Assign text. 
theader.Cells[0, 0].Text = "Swim Team Practice Schedule"; 
// Set the table as the page header. 
this.c1PrintDocument1.RenderBlock(theader); 
this.c1PrintDocument1.EndDoc(); 
Run the program and observe the following: 
Your header should look similar to the following header: 
Pdf reorder pages online - re-order PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Customizing Page Order of PDF Document in C# Project
reorder pages in pdf preview; change page order pdf acrobat
Pdf reorder pages online - VB.NET PDF Page Move Library: re-order PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sort PDF Document Pages Using VB.NET Demo Code
change page order in pdf reader; reverse page order pdf
106  
Drawing a Horizontal Line 
This topic shows how to draw a horizontal line in the C1PrintDocument. Complete the following steps: 
1.
Create a new Windows Forms application.  
2.
Add a C1PrintPreviewControl control onto your form.  
3.
Add a C1PrintDocument component onto your form – it will appear in the components' tray below the 
form. The preview will have the default name C1PrintPreview1, the document C1PrintDocument1.  
4.
Set the value of the Document property of C1PrintPreview1 control to C1PrintDocument1, so that the 
preview will show the document when the application runs.  
5.
Double click the form to create an event handler for the Form_Load event – this is where all code shown 
below will be written. 
6.
A line can be drawn in C1PrintDocument using the RenderLine render object. Its two main properties are 
the two points – the start and the end of the line. Because we will render the line into the block flow, and 
want it to be horizontal, we leave the Y coordinates of the two points as default zeroes. The start X 
coordinate is also left at zero. The end coordinate is set to the page width. This will result in a RenderLine 
object that renders a horizontal line across the whole page at the current Y coordinate of the block flow: 
Visual Basic 
Me.C1PrintDocument1.StartDoc() 
Dim rl As New C1.C1Preview.RenderLine(Me.C1PrintDocument1) 
rl.X = Me.C1PrintDocument1.PageLayout.PageSettings.Width  
Dim ld As New C1.C1Preview.LineDef("4mm", Color.SteelBlue) 
Me.C1PrintDocument1.RenderBlockHorzLine(rl.X, ld) 
Me.C1PrintDocument1.EndDoc() 
C# 
C# TIFF: How to Reorder, Rearrange & Sort TIFF Pages Using C# Code
Reorder, Rearrange and Sort TIFF Document Pages in C#.NET Application. C# TIFF Page Sorting Overview. Reorder TIFF Pages in C#.NET Application.
rearrange pdf pages in reader; reorder pdf pages online
VB.NET PowerPoint: Sort and Reorder PowerPoint Slides by Using VB.
Sort and Reorder PowerPoint Slides Range with VB amount of robust PPT slides/pages editing methods powerful & profession imaging controls, PDF document, image
move pdf pages online; how to move pages in a pdf document
107 
this.c1PrintDocument1.StartDoc(); 
C1.C1Preview.RenderLine rl = new 
C1.C1Preview.RenderLine(this.c1PrintDocument1); 
rl.X = this.c1PrintDocument1.PageLayout.PageSettings.Width; 
C1.C1Preview.LineDef ld = new C1.C1Preview.LineDef("4mm", 
Color.SteelBlue); 
this.c1PrintDocument1.RenderBlockHorzLine(rl.X, ld); 
this.c1PrintDocument1.EndDoc(); 
Run the program and observe the following: 
Your document will appear similar to the document below: 
Creating Page Footers 
This topic demonstrates how to create a table footer that is divided into two columns. The following key points are 
shown in this topic: 
Adding a footer to a table with multiple rows and columns in C1PrintDocument. 
Setting up the table footer at the end of each page. 
The Count property of the TableVectorCollection class is used to insert the footer at the end of the table 
on each page. 
Setting up the row and column spans for each section of the page footer. 
The SpanRows and SpanCols properties of the TableCell class are used to specify the row and column 
spans. 
Setting up the text alignment in each section of the page footer. 
Read PDF in Web Image Viewer| Online Tutorials
"This online guide content is Out Dated! Extract images from PDF documents; Add, reorder pages in PDF files; Save and print PDF as you wish;
rearrange pages in pdf; rearrange pdf pages in preview
C# PDF: C# Code to Process PDF Document Page Using C#.NET PDF
C# PDF Page Processing: Sort PDF Pages - online C#.NET tutorial page for how to reorder, sort, reorganize or re-arrange PDF document files using C#.NET code.
how to reorder pages in a pdf document; reverse pdf page order online
108  
The TextAlignHorz and TextAlignVert properties of the Style class are used to specify the horizontal and 
vertical alignment of the text. You can assign a member (left, right, justify, or center) of the 
AlignHorzEnum to the TextAlignHorz property or a member (bottom, center, justify, or top) of the 
AlignVertEnum to the TextAlignVert property.  
Note: The sample code fragments in this topic assume that the "using C1.C1Preview;" directive (in C# syntax; or 
an equivalent for other languages) has been inserted into the file, so that instead of fully qualified type names 
(such as C1.C1Preview.RenderText) we can use just the class name part (RenderText). 
Complete the following steps to create a table footer with two parts: 
1.
Create a new Windows Forms application.  
2.
From the Toolbox, add a C1PrintPreview control onto your form. Add a C1PrintDocument component 
onto your form – it will appear in the components' tray below the form. The preview will have the default 
name C1PrintPreview1, the document C1PrintDocument1.  
3.
Set the value of the Document property of C1PrintPreview1 control to C1PrintDocument1, so that the 
preview will show the document when the application runs. 
4.
Double click the form to switch to code view and create a handler for the Form_Load event. In the 
Form_Load event, we will set up our document. 
5.
Add the following code to the Form_Load event to create a RenderTable for the page footer and add a 
table with 4 columns, 100 rows, and sample text: 
Visual Basic 
Dim rt1 As New C1.C1Preview.RenderTable(Me.C1PrintDocument1) 
' Create a table with 100 rows, 4 columns, and text. 
Dim r As Integer = 100 
Dim c As Integer = 4 
Dim row As Integer 
Dim col As Integer 
For row = 0 To r - 1 Step +1 
For col = 0 To c - 1 Step +1 
Dim celltext As C1.C1Preview.RenderText = New 
C1.C1Preview.RenderText(Me.C1PrintDocument1) 
celltext.Text = String.Format("Cell ({0},{1})", row, col) 
VB.NET TIFF: Modify TIFF File by Adding, Deleting & Sort TIFF
Users can use it to reorder TIFF pages in ''' &ltsummary> ''' Sort TIFF document pages in designed powerful & profession imaging controls, PDF document, image
reorder pages in pdf; reorder pages pdf
C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
Online C# class source codes enable the ability to rotate single NET, add new PDF page, delete certain PDF page, reorder existing PDF pages and split
reorder pages in pdf file; move pages in pdf reader
109 
rt1.Cells(row, col).RenderObject = celltext 
Next 
Next 
' Add the table to the document. 
Me.C1PrintDocument1.Body.Children.Add(rt1) 
C# 
C1.C1Preview.RenderTable rt1 = new 
C1.C1Preview.RenderTable(this.c1PrintDocument1); 
// Create a table with 100 rows, 4 columns, and text. 
const int r = 100; 
const int c = 4; 
for (int row = 0; row < r; ++row) 
for (int col = 0; col < c; ++col) 
C1.C1Preview.RenderText celltext = new 
C1.C1Preview.RenderText(this.c1PrintDocument1); 
celltext.Text = string.Format("Cell ({0},{1})", row, col); 
rt1.Cells[row, col].RenderObject = celltext; 
// Add the table to the document. 
this.c1PrintDocument1.Body.Children.Add(rt1); 
6.
Add the following code to set the font type to Arial, 10 points and the background color to lemon chiffon: 
Visual Basic 
' Set up the table footer. 
rt1.RowGroups(rt1.Rows.Count - 2, 2).PageFooter = True 
rt1.RowGroups(rt1.Rows.Count - 2, 2).Style.BackColor = 
Color.LemonChiffon 
rt1.RowGroups(rt1.Rows.Count - 2, 2).Style.Font = New Font("Arial", 10, 
FontStyle.Bold) 
C# 
// Set up the table footer. 
rt1.RowGroups[rt1.Rows.Count - 2, 2].PageFooter = true; 
rt1.RowGroups[rt1.Rows.Count - 2, 2].Style.BackColor = 
Color.LemonChiffon; 
rt1.RowGroups[rt1.Rows.Count - 2, 2].Style.Font = new Font("Arial", 10, 
FontStyle.Bold); 
Here we reserved the last two rows of the page for the footer using the Count property and grouped the 
rows together using the RowGroups property. We then assigned a new font style for the text and a new 
background color for the cells in our page footer.  
7.
Next, we'll use the TextAlignHorz and TextAlignVert properties to set the alignment of the text in each 
column of the page footer. We'll span the footer over the last two rows and create two columns using the 
SpanRows and SpanCols properties. We will draw the text into each column of the table for the page 
footer. Finish by using the Generate method to create the document. 
Visual Basic 
' Add table footer text. 
rt1.Cells(rt1.Rows.Count - 2, 0).SpanRows = 2 
rt1.Cells(rt1.Rows.Count - 2, 0).SpanCols = rt1.Cols.Count - 1 
C# Word: How to Create Word Document Viewer in C#.NET Imaging
Offer mature Word file page manipulation functions (add, delete & reorder pages) in document viewer; (Directly see online document viewer demo here.).
rearrange pdf pages reader; reordering pages in pdf document
VB.NET TIFF: VB.NET Sample Code to Process & Manage TIFF Page
certain TIFF page, and sort & reorder TIFF pages in Process TIFF Pages Independently in VB.NET Code. powerful & profession imaging controls, PDF document, image
change pdf page order; reorder pages in pdf reader
110  
rt1.Cells(rt1.Rows.Count - 2, 0).Style.TextAlignHorz = 
C1.C1Preview.AlignHorzEnum.Left 
rt1.Cells(rt1.Rows.Count - 2, 0).Style.TextAlignVert = 
C1.C1Preview.AlignVertEnum.Center 
Dim tf As C1.C1Preview.RenderText = New 
C1.C1Preview.RenderText(Me.C1PrintDocument1) 
tf = CType(rt1.Cells(rt1.Rows.Count - 2, 0).RenderObject, 
C1.C1Preview.RenderText) 
tf.Text = "This is a table footer." 
' Add page numbers. 
rt1.Cells(rt1.Rows.Count - 2, 3).SpanRows = 2 
rt1.Cells(rt1.Rows.Count - 2, 3).Style.TextAlignHorz = 
C1.C1Preview.AlignHorzEnum.Right 
rt1.Cells(rt1.Rows.Count - 2, 3).Style.TextAlignVert = 
C1.C1Preview.AlignVertEnum.Center 
' Tags (such as page no/page count) can be inserted anywhere in the 
document. 
Dim pn As C1.C1Preview.RenderText = New 
C1.C1Preview.RenderText(Me.C1PrintDocument1) 
pn = CType(rt1.Cells(rt1.Rows.Count - 2, 3).RenderObject, 
C1.C1Preview.RenderText) 
pn.Text = "Page [PageNo] of [PageCount]" 
Me.C1PrintDocument1.Generate() 
C# 
// Add table footer text. 
rt1.Cells[rt1.Rows.Count - 2, 0].SpanRows = 2; 
rt1.Cells[rt1.Rows.Count - 2, 0].SpanCols = rt1.Cols.Count - 1; 
rt1.Cells[rt1.Rows.Count - 2, 0].Style.TextAlignHorz = 
C1.C1Preview.AlignHorzEnum.Center; 
rt1.Cells[rt1.Rows.Count - 2, 0].Style.TextAlignVert = 
C1.C1Preview.AlignVertEnum.Center; 
((C1.C1Preview.RenderText)rt1.Cells[rt1.Rows.Count - 2, 
0].RenderObject).Text = "This is a table footer."; 
// Add page numbers. 
rt1.Cells[rt1.Rows.Count - 2, 3].SpanRows = 2; 
rt1.Cells[rt1.Rows.Count - 2, 3].Style.TextAlignHorz = 
C1.C1Preview.AlignHorzEnum.Right; 
rt1.Cells[rt1.Rows.Count - 2, 3].Style.TextAlignVert = 
C1.C1Preview.AlignVertEnum.Center; 
// Tags (such as page no/page count) can be inserted anywhere in the 
document. 
((C1.C1Preview.RenderText)rt1.Cells[rt1.Rows.Count - 2, 
3].RenderObject).Text = "Page [PageNo] of [PageCount]"; 
this.c1PrintDocument1.Generate(); 
Run the program and observe the following: 
Your new page footer with two parts should appear to the footer below: 
111 
113 
Reports for WinForms Top Tips 
This topic lists tips and best practices that may be helpful when working with ComponentOne Reports for 
WinForms. The following tips were compiled from frequently asked user questions posted in the C1DataObjects 
newsgroup and forum. Additionally the tips detail some newer and/or less used but very useful features.  
The following topics detail tips for the C1PrintDocument component, tips for the C1Report component, and tips 
for the WinForms preview controls (C1PrintPreviewControl and so on). Note that C1PrintDocument and 
C1Report components' tips may apply also to ComponentOne Reports for WPF and C1Report tips may apply to 
ComponentOne WebReports for ASP.NET. 
C1PrintDocument Tips 
The following tips relate to the C1PrintDocument component. 
Tip 1: Setting RenderTable Width and Auto-sizing 
When setting up RenderTable objects it is important to take into account that by default, the width of a 
RenderTable is set to the width of its containing object – which usually defaults to the width of the page. This 
sometimes leads to unexpected results, in particular if you want the table's columns to auto-size; to do so the table's 
Width must be explicitly set to Auto (which for a table means the sum of the columns' widths). 
For example, the following code builds a document with an auto-sized table: 
Visual Basic 
Dim doc As New C1PrintDocument() 
' Create a RenderTable object: 
Dim rt As New RenderTable() 
' Adjust table's properties so that columns are auto-sized: 
' 1) By default, table width is set to parent (page) width, 
' for auto-sizing we must change it to auto (so based on content): 
rt.Width = Unit.Auto 
' 2) Set ColumnSizingMode to Auto (default means Fixed for columns): 
rt.ColumnSizingMode = TableSizingModeEnum.Auto 
' That's it, now the table's columns will be auto-sized. 
' Turn table grid lines on to better see auto-sizing, add some padding: 
rt.Style.GridLines.All = LineDef.[Default] 
rt.CellStyle.Padding.All = "2mm" 
' Add the table to the document 
doc.Body.Children.Add(rt) 
' Add some data 
rt.Cells(0, 0).Text = "aaa" 
rt.Cells(0, 1).Text = "bbbbbbbbbb" 
rt.Cells(0, 2).Text = "cccccc" 
rt.Cells(1, 0).Text = "aaa aaa aaa" 
rt.Cells(1, 1).Text = "bbbbb" 
rt.Cells(1, 2).Text = "cccccc cccccc" 
rt.Cells(2, 2).Text = "zzzzzzzzzzzzzzz zz z" 
C# 
C1PrintDocument doc = new C1PrintDocument(); 
114  
// Create a RenderTable object: 
RenderTable rt = new RenderTable(); 
// adjust table's properties so that columns are auto-sized: 
// 1) By default, table width is set to parent (page) width, 
// for auto-sizing you must change it to auto (so based on content): 
rt.Width = Unit.Auto; 
// 2) Set ColumnSizingMode to Auto (default means Fixed for columns): 
rt.ColumnSizingMode = TableSizingModeEnum.Auto; 
// That's it, now the table's columns will be auto-sized. 
// Turn table grid lines on to better see auto-sizing, add some padding: 
rt.Style.GridLines.All = LineDef.Default; 
rt.CellStyle.Padding.All = "2mm"; 
// Add the table to the document 
doc.Body.Children.Add(rt); 
// Add some data 
rt.Cells[0, 0].Text = "aaa"; 
rt.Cells[0, 1].Text = "bbbbbbbbbb"; 
rt.Cells[0, 2].Text = "cccccc"; 
rt.Cells[1, 0].Text = "aaa aaa aaa"; 
rt.Cells[1, 1].Text = "bbbbb"; 
rt.Cells[1, 2].Text = "cccccc cccccc"; 
rt.Cells[2, 2].Text = "zzzzzzzzzzzzzzz zz z"; 
For a complete example see the AutoSizeTable sample installed with ComponentOne Reports for WinForms. 
Tip 2: Using Parent/Ambient Parent Styles to Optimize Memory Usage 
When rendered, paragraphs and other C1PrintDocument objects have styles that can be modified "inline". For 
example, like this: 
Visual Basic 
Dim RenderText rt As New RenderText("testing...") 
rt.Style.TextColor = Color.Red 
C# 
RenderText rt = new RenderText("testing..."); 
rt.Style.TextColor = Color.Red; 
This is fine for small documents or styles used just once in the whole document. For large documents and styles 
used throughout the document, it is much better to use parent styles using the following pattern: 
1.
Identify the styles you will need. For instance, if you are building a code pretty printing application, you 
may need the following styles: 
Default code style 
Language keyword style 
Comments style 
2.
Add a child style to the document's root Style for each of the styles identified in step 1, like this for 
example: 
Visual Basic 
Dim doc As New C1PrintDocument() 
' Add and set up default code style: 
Dim sDefault As Style = doc.Style.Children.Add() 
sDefault.FontName = "Courier New" 
Documents you may be interested
Documents you may be interested