!MISSING PHRASE 'Show All'!
!MISSING PHRASE 'Hide All'!
下面的内容描述了如何创建一个由三部分构成的页眉,并且给页眉添加背景色
创建由创建由3部分组成的页眉部分组成的页眉
本文展示了如何创建一个分为三列的页眉。本文的关键点如下:
在C1PrintDocument中创建一个一行三列的表格设置页眉中每个区域的的文本对齐方式
Style 类的TextAlignHorz 属性可以用来指定文本的水平对齐方式。你可以给TextAlignHorz 属性指定一个
AlignHorzEnum 类型的枚举值(左对齐(left),右对齐(right) 两端对齐(justify)或居中对齐
(center))。
下面的详细步骤展示了如何创建一个由三部分构成的页眉。
- 创建一个新的windows窗体应用程序。
- 在窗体上添加一个C1PrintPreview 控件。
- 在窗体上添加一个C1PrintDocument 组件--它会显示在窗体下方的组件托盘中。预览控件的默认名为
C1PrintPreview1,文档则是C1PrintDocument1。
- 将C1PrintPreview1 控件的Document 属性设置为C1PrintDocument1,随后程序运行时预览控件就会显示文档的内容。
- 双击窗体创建一个Form_Load 事件的处理程序--下面所有的代码都是写在这里面。这里我们会设置我们的文档对象。为页眉创建一个RenderTable 对象
Visual Basic
Visual Basic
Me.C1PrintDocument1.StartDoc()
Dim theader As New C1.C1Preview.RenderTable(Me.C1PrintDocument1)C#
C#
this.c1PrintDocument1.StartDoc(); C1.C1Preview.RenderTable theader = new
C1.C1Preview.RenderTable(this.c1PrintDocument1);- 向表格主体上添加一行,然后添加三个列,分为为页眉的左中右三个部分。我们用TextAlignHorz 属性来给页眉每一列上的文本指定对齐方式。我们会给页眉上的文本赋上新的字体样式。注意,在这个例子中,字体设为
Arial,字号为14pt。
Visual Basic
Visual Basic |
' Set up alignment for the parts of the header. theader.Cells(0, 0).Style.TextAlignHorz = C1.C1Preview.AlignHorzEnum.Left theader.Cells(0, 1).Style.TextAlignHorz = C1.C1Preview.AlignHorzEnum.Center theader.Cells(0, 2).Style.TextAlignHorz = C1.C1Preview.AlignHorzEnum.Right theader.CellStyle.Font = New Font("Arial", 14) |
C#
C# | |
// Set up alignment for the columns of the header. | ]]></ac:plain-text-body></ac:structured-macro> |
- 我们要给页眉的各个列添加文本。将文档页眉对象上的RenderObject 属性设为theader。最后调用EndDoc 方法结束
Visual Basic
Visual Basic |
theader.Cells(0, 0).Text = "Left part" theader.Cells(0, 1).Text = "Center part" theader.Cells(0, 2).Text = "Right part" Me.C1PrintDocument1.RenderBlock(theader) |
C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="fa16948d-d925-444e-b841-d612f5bbadd7"><ac:plain-text-body><![CDATA[ | theader.Cells[0, 0].Text = "Left part"; | ]]></ac:plain-text-body></ac:structured-macro> |
theader.Cells[0, 1].Text = "Center part"; theader.Cells[0, 2].Text = "Right part"; this.c1PrintDocument1.RenderBlock(theader); this.c1PrintDocument1.EndDoc();
运行程序看一下:
程序运行时,你新建的由三部分构成的页眉会看起来跟下面图中的相似
当设置了背景颜色(Gold)后,页眉会看起来跟下面图中的相似
绘制水平线
!MISSING PHRASE 'Show All'!
!MISSING PHRASE 'Hide All'!
本文展示了如何在C1PrintDocument中绘制一条水平线。完整的步骤如下:
- 创建一个新的Windows窗体应用程序
- 在窗体上添加C1PrintPreviewControl 控件
- 在窗体上添加一个C1PrintDocument 组件--他会显示在窗体下方的组件托盘中。预览控件的默认名为
C1PrintPreview1,文档则是C1PrintDocument1
- 将C1PrintPreview1 控件的Document 属性设置为C1PrintDocument1,随后程序运行时预览控件就会显示文档的内容
- 双击窗体创建一个Form_Load 事件的处理程序--下面所有的代码都是写在这里面。
- 使用RenderLine 渲染对象可以在C1PrintDocument 中绘制一条线。它的两个主要属性就是两个点--线的开始和结束位置。因为我们要将线渲染到块状流布局中,而且还是水平的,我们要保持Y坐标下的这两个点的值为默认的0. 在X 坐标轴下,开始位置的值也为0。结束位置的值设为页面的宽度值。这样就创建了一个RenderLine 对象,它会在当前块在所对应的Y坐标轴位置上绘制一条横跨整个页面的水平线:
Visual Basic
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) |
C#
C# |
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(); |
运行程序看一下:
你的文档看起来应该跟下图中的相似
创建页脚
!MISSING PHRASE 'Show All'!
!MISSING PHRASE 'Hide All'!
本文展示了如何创建一个带有两列内容的页脚。本文的关键点如下:
在C1PrintDocument中给一个带有多行多列的表格添加页脚 为每一页的底部设置页脚。
TableVectorCollection 类的Count 属性是用来给每一页的表格底部插入页脚的。 设置页脚每个部分中的行和列的合并跨度。
TableCell类的 SpanRows 和SpanCols属性用来指定行和列的合并跨度值。
为页脚的每个部分设置文本对齐方式。Style 类的TextAlignHorz 和TextAlignVert属性是用来指定文本的水平和垂直对齐方式的。你可以给TextAlignHorz 属性赋一个AlignHorzEnum 类型的枚举值(左对齐(left),右对齐(right)两端对齐(justify)或居中对齐(center)),或者给TextAlignVert 属性赋一个AlignVertEnum 类型的枚举值(居下对齐(bottom),居中对齐( center),上下对齐( justify), 或居上对齐( top))。
注意:注意:文章中的范例代码片段都是假设已经在代码文件中使用了"using C1.C1Preview;"(这是C#语法,其他语言也有等效的写法)指令,因此我们可以只使用类名(例如RenderText)而不必使用完全限定类型名 |
完成如下步骤来创建一个由两部分构成的页脚
- 创建一个新的Windows窗体应用程序
- 从工具栏中添加一个C1PrintPreview 控件到你的窗体上。在窗体上添加一个C1PrintDocument 组件--他会显示在窗体下方的组件托盘中。预览控件的默认名为C1PrintPreview1,文档则是C1PrintDocument1。
- 将C1PrintPreview1 控件的Document 属性设置为C1PrintDocument1,随后程序运行时预览控件就会显示文档的内容
- 双击窗体创建一个Form_Load 事件的处理程序。在这里,我们会建立我们的文档对象。
- 将下面的代码添加到Form_Load事件处理程序中,创建一个用于页脚的RenderTable 对象,然后添加一个4列100行的表格,示例如下:
Visual Basic
Visual Basic |
Dim rt1 As New C1.C1Preview.RenderTable(Me.C1PrintDocument1) |
C#
C# |
C1.C1Preview.RenderTable rt1 = new |
- 添加如下代码,将字体设为Arial,字号10pt,然后将背景色设为 柠檬透明色:
Visual Basic
Visual Basic |
' Set up the table footer. |
C#
C# | |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="0ca90600-0467-4533-a57b-962185eb59a6"><ac:plain-text-body><![CDATA[ | // 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, |
这里我们利用Count 属性将页面的最后两行保留下来作为页脚使用,同时利用RowGroups 属性将这两行合并到了一起。随后,我们给页脚上的文本赋上了新的字体样式,给页脚上的单元格赋上新的背景色。
- 接下来,我们会利用TextAlignHorz 和TextAlignVert属性来设置页脚上每一列文本的对齐方式。我们会利用
SpanRows 和 SpanCols 属性将最后两行合并,将列合并为两列。最后调用Generate 方法来创建文档。
Visual Basic
Visual Basic |
' Add table footer text. rt1.Cells(rt1.Rows.Count - 2, 0).SpanCols = rt1.Cols.Count - 1 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." <span style="color: #008000">' Add page numbers.</span> 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 <span style="color: #008000">' Tags (such as page no/page count) can be inserted anywhere in the document.</span> 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; |
运行程序看一下:
你新建的由两部分构成的页脚看起来应该跟下图相似