c# pdf viewer library free : Change pdf page order software application cloud windows azure asp.net class winforms.reportdesigner30-part1642

295 
Width 
Height 
Auto Size 
RenderArea 
RenderToc 
RenderReport 
RenderSection 
RenderC1Printable 
Parent width 
Auto 
Determined by the 
combined size of the 
children 
RenderEmpty 
Auto 
Auto 
RenderGraphics 
Auto 
Auto 
Determined by the size 
of the content 
RenderImage 
Auto 
Auto 
Determined by the size 
of the image 
RenderInputButton 
RenderInputCheckBox 
RenderInputRadioButton 
RenderInputComboBox 
RenderInputText 
Auto 
Auto 
Determined by the size 
of the content 
RenderRichText 
Parent width (auto 
width is not supported). 
Auto (determined by the 
text size). 
-- 
RenderLine 
RenderPolygon 
RenderEllipse 
RenderArc 
RenderPie 
RenderRectangle 
RenderRoundRectangle 
Auto 
Auto 
Determined by the size 
of the shape 
RenderTable 
Parent width (auto 
width is calculated as 
the sum of columns' 
widths). 
Auto 
Determined by the total 
width of all columns for 
width, and by the total 
height of all rows for 
height 
RenderParagraph 
RenderText 
RenderTocItem 
Parent width 
Auto 
Determined by the size 
of the text 
RenderField 
Parent width 
Auto 
Determined by the size 
of the content 
RenderBarCode 
Auto 
Auto 
Determined by the size 
of the content 
You can override the default values for any of those properties with custom values (specifying anything but Auto 
as the value for X or Y coordinates excludes the object from the stacking flow; see Stacking for more information). 
The size and location properties can be set in any of the following ways (note that ro indicates a render object in 
the samples below): 
As auto (semantics depend on the render object type): 
ro.Width = Unit.Auto; 
ro.Height = "auto"; 
As absolute value: 
ro.X = new Unit(8, UnitTypeEnum.Mm); 
Change pdf page order - re-order PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Customizing Page Order of PDF Document in C# Project
change page order pdf acrobat; reorder pages in pdf preview
Change pdf page order - 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 pdf page order; change pdf page order preview
296  
ro.Y = 8; (C1PrintDocument.DefaultUnit is used for the units); 
ro.Width = "28mm"; 
As percentage of a parent's size (using this for coordinates is not meaningful and will yield 0): 
ro.Height = new Unit(50, DimensionEnum.Width); 
ro.Width = "100%"; 
As a reference to a size or position of another object. The object can be identified by any of the following key 
words: 
self – the current object (the default value, may be omitted); 
parent – the object's parent; 
prev – the previous sibling; 
next – the next sibling; 
page – the current page; 
column – the current column; 
page<N> – page with the specified number (note: the page must already exist, that is forward references 
to future pages are not supported); 
column<M> – a column (specified by number) on the current page; 
page<N>.column<N> – a column (specified by number) on the specified page; 
<object name> – the object with the specified name (the value of the Name property; the object is 
searched first among the siblings of the current object, then among its children). 
Sizes and locations of the referenced objects are identified by the following key words: left, top, right, 
bottom, width, height (coordinates are relative to the object's parent). 
Some examples: 
ro.Height = "next.height"; – sets the object's height to the height of its next sibling; 
ro.Width = "page1.width"; – sets the object's width to the width of the first page; 
ro.Height = "width"; – sets the object's height to its own width; 
ro.Y = "prev.bottom"; – sets the object's Y coordinate to the bottom of its previous sibling; 
ro.Width = "prev.width"; – sets the object's width to the width of its previous sibling. 
Using functions "Max" and "Min". For example: 
ro.Width = "Max(prev.width,6cm)"; – sets the object's width to the maximum of 6 cm and the object's 
previous sibling's width; 
As an expression. Expressions can use any of the ways described above to reference size and position of 
another object, combined using the operators +, -, *, /, %, functions Max and Min, and parentheses ( and 
). For example: 
ro.Width = "prev.width + 50%prev.width"; – sets the object's width to the width and a half of its 
previous sibling; 
ro.Width = "150%prev"; – same as above (when referencing the same dimension as the one being set, the 
dimension – "width" in this case – can be omitted). 
ro.Width = "prev*1.5"; – again, same as above but using multiplication rather than percentage. 
In all of the above samples where a size or location is set to a string, the syntax using the Unit(string) constructor 
can also be used, for example: 
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
Convert Jpeg to PDF; Merge PDF Files; Split PDF Document; Remove Password from PDF; Change PDF Permission Settings. C# File: Split PDF; C# Page: Insert PDF pages
how to reorder pages in pdf file; reorder pages in pdf document
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
VB.NET PDF - How to Modify PDF Document Page in VB.NET. VB.NET Guide for Processing PDF Document Page and Sorting PDF Pages Order.
move pages in pdf; pdf page order reverse
297 
Visual Basic 
ro.Width = New C1.C1Preview.Unit("150%prev") 
C# 
ro.Width = new Unit("150%prev"); 
Case is not important in strings, so "prev.width", "PrEv.WidTh", and "PREV.WIDTH" are equivalent. 
Examples of relative positioning of render objects 
Below are some examples showing the use of relative positioning of objects to arrange an image and a text 
("myImage" in those samples is an object of type System.Drawing.Image declared elsewhere in code): 
This code places the text below the image simply adding one object after another into the regular block flow: 
Visual Basic 
Dim doc as New C1PrintDocument 
Dim rt as New RenderText("test") 
Dim ri as New RenderImage(myImage) 
Dim ra As New RenderArea() 
ra.Children.Add(ri) 
ra.Children.Add(rt) 
doc.Body.Children.Add(ra) 
C# 
C1PrintDocument doc = new C1PrintDocument(); 
RenderText rt = new RenderText("test"); 
RenderImage ri = new RenderImage(myImage); 
RenderArea ra = new RenderArea(); 
ra.Children.Add(ri); 
ra.Children.Add(rt); 
doc.Body.Children.Add(ra); 
This code produces equivalent result (text below image) while the children are added to the area in inverse order 
(because both objects have non-auto coordinates specified explicitly, neither is inserted into the block flow): 
Visual Basic 
Dim doc as New C1PrintDocument 
Dim rt as New RenderText("test") 
Dim ri as New RenderImage(myImage) 
Dim ra As New RenderArea() 
' place image at the top of the parent: 
ri.Y = 0 
' place text below next sibling: 
rt.Y = "next.bottom" 
' auto-size text width: 
rt.Width = Unit.Auto 
ra.Children.Add(ri) 
ra.Children.Add(rt) 
doc.Body.Children.Add(ra) 
C# 
C1PrintDocument doc = new C1PrintDocument(); 
RenderText rt = new RenderText("test"); 
RenderImage ri = new RenderImage(myImage); 
RenderArea ra = new RenderArea(); 
// place image at the top of the parent: 
ri.Y = 0; 
// place text below next sibling: 
rt.Y = "next.bottom"; 
C# PowerPoint - Sort PowerPoint Pages Order in C#.NET
control, developers can swap or adjust the order of all or several PowerPoint document pages, or just change the position of certain one PowerPoint page in an
pdf reverse page order online; how to rearrange pdf pages online
C# Word - Sort Word Pages Order in C#.NET
library control, developers can swap or adjust the order of all or several Word document pages, or just change the position of certain one Word page in an
rearrange pages in pdf online; change page order pdf preview
298  
// auto-size text width: 
rt.Width = Unit.Auto; 
ra.Children.Add(rt); 
ra.Children.Add(ri); 
doc.Body.Children.Add(ra); 
The following code inserts the image into the regular block flow, while putting the text to the right of the image, 
centering it vertically relative to the image: 
Visual Basic 
Dim doc as New C1PrintDocument 
Dim rt as New RenderText("test") 
Dim ri as New RenderImage(myImage) 
Dim ra As New RenderArea() 
ra.Children.Add(ri) 
rt.Width = Unit.Auto 
' add text after the image: 
ra.Children.Add(rt) 
rt.X = "prev.right" 
rt.Y = "prev.height/2-self.height/2" 
doc.Body.Children.Add(ra) 
C# 
C1PrintDocument doc = new C1PrintDocument(); 
RenderText rt = new RenderText("test"); 
RenderImage ri = new RenderImage(myImage); 
RenderArea ra = new RenderArea(); 
ra.Children.Add(ri); 
rt.Width = Unit.Auto; 
// add text after the image: 
ra.Children.Add(rt); 
rt.X = "prev.right"; 
rt.Y = "prev.height/2-self.height/2"; 
doc.Body.Children.Add(ra); 
This code also places the text to the right of the image, centered vertically – but uses the RenderObject.Name in 
the positioning expressions rather than relative id "prev", Also, the text is shifted 2mm to the right, demonstrating 
the use of absolute lengths in expressions: 
Visual Basic 
Dim doc as New C1PrintDocument 
Dim rt as New RenderText("test") 
Dim ri as New RenderImage(myImage) 
Dim ra As New RenderArea() 
ri.Name = "myImage" 
rt.Width = "auto" 
rt.X = "myImage.right+2mm" 
rt.Y = "myImage.height/2-self.height/2" 
ra.Children.Add(ri) 
ra.Children.Add(rt) 
doc.Body.Children.Add(ra) 
C# 
C1PrintDocument doc = new C1PrintDocument(); 
RenderText rt = new RenderText("test"); 
RenderImage ri = new RenderImage(myImage); 
RenderArea ra = new RenderArea(); 
ri.Name = "myImage"; 
rt.Width = "auto"; 
C# TIFF: How to Reorder, Rearrange & Sort TIFF Pages Using C# Code
C# users to reorder and rearrange multi-page Tiff file Tiff image management library, you can easily change and move pages or make a totally new order for all
reverse page order pdf online; how to move pages in a pdf document
C# Word - Process Word Document in C#
various Word document processing implementations using C# demo codes, such as add or delete Word document page, change Word document pages order, merge or
pdf reverse page order; how to reorder pdf pages
299 
rt.X = "myImage.right+2mm"; 
rt.Y = "myImage.height/2-self.height/2"; 
ra.Children.Add(ri); 
ra.Children.Add(rt); 
doc.Body.Children.Add(ra); 
The code below modifies the same example so that the text is shifted to the right at least 6cm, using the built-in 
Max functions: 
Visual Basic 
Dim doc as New C1PrintDocument 
Dim rt as New RenderText("test") 
Dim ri as New RenderImage(myImage) 
Dim ra As New RenderArea() 
ri.Name = "myImage" 
rt.Width = "auto" 
rt.X = "Max(myImage.right+2mm,6cm)" 
rt.Y = "myImage.height/2-self.height/2" 
ra.Children.Add(ri) 
ra.Children.Add(rt) 
doc.Body.Children.Add(ra) 
C# 
C1PrintDocument doc = new C1PrintDocument(); 
RenderText rt = new RenderText("test"); 
RenderImage ri = new RenderImage(myImage); 
RenderArea ra = new RenderArea(); 
ri.Name = "myImage"; 
rt.Width = "auto"; 
rt.X = "Max(myImage.right+2mm,6cm)"; 
rt.Y = "myImage.height/2-self.height/2"; 
ra.Children.Add(ri); 
ra.Children.Add(rt); 
doc.Body.Children.Add(ra); 
The following code snippet aligns image to the right side of the page (utilizing the default value for the width of a 
render area – parent width), while the text is left-aligned, and centered vertically relative to the image: 
Visual Basic 
Dim doc as New C1PrintDocument 
Dim rt as New RenderText("test") 
Dim ri as New RenderImage(myImage) 
Dim ra As New RenderArea() 
ri.Name = "myImage" 
' right-align image: 
ri.X = "parent.right-width" 
' left-align text: 
rt.X = "0" 
rt.Y = "myImage.height/2-height/2" 
ra.Children.Add(ri) 
ra.Children.Add(rt) 
doc.Body.Children.Add(ra) 
C# 
C1PrintDocument doc = new C1PrintDocument(); 
RenderText rt = new RenderText("test"); 
RenderImage ri = new RenderImage(myImage); 
RenderArea ra = new RenderArea(); 
ri.Name = "myImage"; 
C# PDF: C# Code to Process PDF Document Page Using C#.NET PDF
Enable C#.NET developers to change the page order of source PDF document file; Allow C#.NET developers to add image to specified area of source PDF document
how to reorder pages in pdf preview; how to move pages within a pdf document
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
the robust functionality to copy and paste PDF page(s) in C#.NET document imaging application. C#.NET Project DLLs: Copy and Paste PDF Pages. In order to run
move pages in a pdf; rearrange pdf pages online
300  
// right-align image: 
ri.X = "parent.right-width"; 
// left-align text: 
rt.X = "0"; 
rt.Y = "myImage.height/2-height/2"; 
ra.Children.Add(ri); 
ra.Children.Add(rt); 
doc.Body.Children.Add(ra); 
Render Object Shadows 
In the 2009 v3 release of Reports for WinForms, support was added for shadows cast by render objects. The new 
public interface IShadow, is implemented by a public structure Shadow, and exposed by a non-ambient public 
property Shadow. 
It includes the following sub-properties: 
Property 
Description 
Transparency
Gets or sets the transparency of the shadow, in percent. A 
value of 0 defines a solid (non-transparent) shadow, a value 
of 100 (which is the default) defines a fully transparent 
(invisible) shadow.
Size 
Gets or sets the size of the shadow relative to the size of the 
object, in percent. A value of 100 (which is the default) 
indicates that the shadow has the same size as the object.
Distance 
Gets or sets the distance that the shadow's center is offset 
from the the object's center. Note that only absolute Unit 
values (such as "0.5in" or "4mm") can be assigned to this 
property. The default is 2mm.
Angle 
Gets or sets the angle, in degrees, of the shadow. The angle is 
measured relative to the three o'clock position clockwise. The 
default is 45.
Color 
Gets or sets the color of the shadow. The default is Black. 
The following sample code defines a shadow on a render object: 
Visual Basic 
Dim doc As C1PrintDocument = C1PrintDocument1 
Dim rt As New RenderText("Sample Shadow") 
rt.Width = Unit.Auto 
rt.Style.Shadow.Transparency = 20 
rt.Style.Shadow.Color = Color.BurlyWood 
doc.Body.Children.Add(rt) 
C# 
C1PrintDocument doc = c1PrintDocument1; 
RenderText rt = new RenderText("Sample Shadow"); 
rt.Width = Unit.Auto; 
rt.Style.Shadow.Transparency = 20; 
rt.Style.Shadow.Color = Color.BurlyWood; 
doc.Body.Children.Add(rt); 
301 
Note that while you do not need to create a Shadow object when setting shadow properties, you may choose to do 
so, for example, like this: 
Visual Basic 
Dim doc As C1PrintDocument = C1PrintDocument1 
Dim rt As New RenderText("Sample Shadow") 
rt.Width = Unit.Auto 
rt.Style.Shadow = New Shadow(20, 100, "1mm", 45, Color.CadetBlue) 
doc.Body.Children.Add(rt) 
C# 
C1PrintDocument doc = c1PrintDocument1; 
RenderText rt = new RenderText("Sample Shadow"); 
rt.Width = Unit.Auto; 
rt.Style.Shadow = new Shadow(20, 100, "1mm", 45, Color.CadetBlue); 
doc.Body.Children.Add(rt); 
Note: Shadows do NOT affect the objects' sizes for layout purposes. 
Object Borders 
In the 2010 v1 release of Reports for WinForms, support was added for a new way of laying out and positioning 
borders. This method of laying out and positioning borders was primarilyadded for RDL compatibility but can be 
useful on its own. For example, now optionally borders can be centered over an object's bounds, without affecting 
either the object's size or the surrounding objects' positions. 
The following public type facilitates this feature: 
Type 
Description 
BordersModeEnum 
Specifies the various modes of accounting for border thickness when laying 
out the objects in a document. 
The BordersModeEnum includes the following members: 
Default: The whole border is considered to be part of the object. This is the default behavior of objects in 
C1PrintDocument. 
C1Report: The inner 1/2 of border thickness is considered to be part of the object, the outer 1/2 of border 
is considered to be outside of the object's space. This is the default behavior of objects in C1Report (same 
as in MS Access). 
Rdl: Border thickness is not taking into account at all when calculating objects' sizes and layout. Borders 
are drawn centered on objects' bounds. 
Styles 
Most of the visual aspects of a C1PrintDocument are controlled by styles, which are an integral part of the 
document. The following sections describe styles in detail. 
Classes Exposing the Style Property 
All objects having their own visual representation in the document have a style (of the type C1.C1Preview.Style) 
associated with them. Specifically, the following classes expose the Style property: 
The whole document (C1PrintDocument). 
302  
Render objects (RenderObject and all derived classes). 
Paragraph objects (ParagraphText and ParagraphImage, derived from ParagraphObject). 
Table cells (TableCell). 
User-defined groups of cells in tables (UserCellGroup). 
Table rows and columns (TableRow and TableCol, derived from TableVector). 
Groups of table rows and columns such as table headers/footers (TableVectorGroup). 
Inline and Non-Inline Styles 
In C1PrintDocument, there are two kinds of styles – inline and non-inline. If an object has the Style property, that 
property refers to the inline style of the object, which is an integral part of the object itself. An inline style cannot be 
removed or set – it's a read-only property that refers to the style instance which always lives together with the 
object. Thus, style properties can be considered to be the properties of the object itself. But, due to inheritance, 
styles are much more flexible and memory-efficient (for example, if none of an object's style properties have been 
modified from their default values, they consume almost no memory, referencing base style properties instead). 
Additionally, each Style contains a collection of styles (called Children, and empty by default) which are not 
directly attached to any objects. Instead, those (non-inline) styles can be used as parent styles (see style properties 
Parent and AmbientParent) to provide values for inherited properties of other styles (including, of course, inline 
styles). 
A style object cannot be created by itself – it is always either an inline style attached directly to a render object or 
other element of the document, or a member of the Children collection of another style.  
So, for instance, this code will not compile: 
Visual Basic 
Dim doc As New C1PrintDocument() 
Style s = new Style() ' will not compile 
s.Borders.All = New LineDef("1mm", Color.Red) 
Dim rt As New RenderText("My text.") 
rt.Style = s 
C# 
C1PrintDocument doc = new C1PrintDocument(); 
Style s = new Style(); // will not compile 
s.Borders.All = new LineDef("1mm", Color.Red); 
RenderText rt = new RenderText("My text."); 
rt.Style = s; 
While this code will compile and achieve the desired result: 
Visual Basic 
Dim doc As New C1PrintDocument() 
Dim s As doc.Style.Children.Add() 
s.Borders.All = New LineDef("1mm", Color.Red) 
RenderText rt = New RenderText("My text.") 
rt.Style.Parent = s 
C# 
C1PrintDocument doc = new C1PrintDocument(); 
Style s = doc.Style.Children.Add(); 
s.Borders.All = new LineDef("1mm", Color.Red); 
RenderText rt = new RenderText("My text."); 
rt.Style.Parent = s; 
For more about ambient and non-ambient style attributes and parents, see Ambient and Non-Ambient Style 
Properties
303 
Ambient and Non-Ambient Style Properties 
All style properties (font, colors, borders, and so on) can be classified into two groups according to their semantics: 
ambient and non-ambient. Ambient properties are those that affect the content of an object (for example, the text 
font) whereas non-ambient properties are those used to paint the object's adornments, or decorations (for example, 
the borders around the object). This distinction is natural and useful, as in most cases the desired behaviors 
(especially the inheritance rules) are different for the two groups.  
For ambient properties, it is usually desirable to propagate them down the hierarchy of objects, so that setting of an 
ambient property on a container object affects all objects contained within (consider a table – if you set the font on 
the table itself, you would normally want that font to be applied to texts in all cells of that table, unless explicitly 
overridden at a lower level – for example, for a specific cell). This is markedly different for non-ambient properties. 
For instance, if you wanted to add white space before and after that table, you would set the Spacing property on 
that table – but you would not want that spacing to propagate to all cells. In C1PrintDocument, this division of 
style properties into ambient and non-ambient groups is built in. Basically, this means that usually just setting the 
property on the style of an object (without thinking too much about ambience) will do what you expect. 
The complete list of all style properties, indicating which of those properties are ambient and which are not, is 
shown in a separate section below (see Style Properties and Their Default Values). But the following general rule 
applies: 
Ambient style properties control the display of the object's content (such as text font). By default, ambient 
properties propagate down the objects' containment hierarchy – i.e. an ambient property set on the style of a 
container object is applied to all objects within that container. 
Non-ambient style properties control the object's decorations (such as borders). By default, non-ambient properties 
do not propagate via objects' containment, but can propagate across styles via the Style.Parent property. 
Style Inheritance, Parent and AmbientParent 
All style properties affecting the appearance of the object to which the style is applied (such as Font, BackColor, 
and so on) may be in one of two states: set or not set. Initially, all properties of a newly created style are not set. 
Their values can be queried, but are obtained from another style or object via inheritance (see below). If a property 
is set though, the set value is stored in the style itself, and is no longer affected by other styles via inheritance. 
A style has two special properties to support style inheritance: Parent and AmbientParent. The Parent property 
gets or sets the style that provides values for non-ambient properties that are not set on the current style. The 
AmbientParent property gets or sets the style that provides values for ambient properties that are not set on the 
current style. By default, both parents of a newly created inline style are empty (null values in C#, Nothing in VB), 
whereas for styles created on the Children collection of a style, the Parent is set to the style containing that 
collection, while the AmbientParent is empty. 
If the Parent of a style is not specified, the values of non-ambient properties are taken from static defaults (see the 
table below). If the AmbientParent of a style is not specified, the values of ambient properties are taken from the 
object which contains the object the current style applies to. 
For example, if a RenderText rt is contained in a RenderArea ra, then the following rules will be used to retrieve 
the font (that is, an ambient style property) used to render the text: 
If rt.Style.Font is set, it will be used. 
Otherwise, if rt.Style.AmbientParent is not null, rt.Style.AmbientParent.Font will be used, because 
Font is an ambient property. 
Otherwise (if rt.Style.AmbientParent is null, which is the default), the font of the containing object will 
be used, that is ra.Style.Font. 
In the same example, the following rules will be used to retrieve the BackgroundImage (a non-ambient style 
property) for the RenderText object: 
If rt.Style.BackgroundImage is set, it will be used. 
304  
Otherwise, if rt.Style.Parent is not null, rt.Style.Parent.BackgroundImage will be used.  
Otherwise the default value for background image (that is, no image) will be used. 
Please note that although by default styles in the Children collection of a style have their Parent set to the style 
which is the owner of that Children collection, this can be changed. For example, the parent of one style in the 
Children collection may be set to another style in the same collection. The Children collection is just a convenient 
place to group/store related styles, but does not really impose any limitations on the styles hierarchy. 
Style Properties and Their Default Values 
The following table lists all style properties affecting the display of objects, indicates which of those are ambient, 
and specifies the default values: 
Property name 
Ambient 
Default value 
ActiveHyperlinkAttrs 
Yes 
BackColor 
Empty 
BackgroundImage 
None 
BackgroundImageAlign 
Align left/top, stretch horizontally/vertically, keep 
aspect ratio 
BackgroundImageName 
None 
Borders 
All empty 
Brush 
None 
CharSpacing 
Yes 
CharWidth 
Yes 
100 
ClientAreaOnly 
False 
FlowAlign 
Default flow alignment 
FlowAlignChildren 
Near alignment 
Font 
Yes 
Arial, 10pt 
FontBold 
Yes 
False 
FontItalic 
Yes 
False 
FontName 
Yes 
Arial 
FontSize 
Yes 
10 
FontStrikeout 
Yes 
False 
FontUnderline 
Yes 
False 
GridLines 
None 
HoverHyperlinkAttrs 
Yes 
HyperlinkAttrs 
Yes 
Blue 
ImageAlign 
Yes 
Align left/top, stretch horizontally/vertically, keep 
aspect ratio 
JustifyEndOfLines 
Yes 
True 
JustifyLastLine 
Yes 
False 
LineSpacing 
Yes 
100% 
MeasureTrailingSpaces 
Yes 
False 
MinOrphanLines 
Documents you may be interested
Documents you may be interested