表格
的表格类帮助您轻松创建表格式数据内容。您所需要做的就是定义表内容并将table实例传递给FixedContentEditor或者一个RadFixedDocumentEditor.从那时起,这些编辑器负责定位、测量、绘制和将表格分割到页面上。
本文旨在介绍与表相关的APIRadPdfProcessing.它包括以下各节:
定义表内容
每个表包含一系列TableRow实例中的每个实例都包含一系列的TableCell实例。为了定义一个简单的表,您需要生成表单元格并向其添加一些内容。
示例1演示如何生成一个包含两行三列的简单表,每个表单元格中都有一些示例文本。
例1:创建简单表
Table = new Table();TableRow firstRow = table.Rows.AddTableRow();.InsertText .Blocks.AddBlock firstRow.Cells.AddTableCell()()(“cell11”);.InsertText .Blocks.AddBlock firstRow.Cells.AddTableCell()()(“cell12”);.InsertText .Blocks.AddBlock firstRow.Cells.AddTableCell()()(“cell13”);TableRow secondRow = table.Rows.AddTableRow();.InsertText .Blocks.AddBlock secondRow.Cells.AddTableCell()()(“cell21”);.InsertText .Blocks.AddBlock secondRow.Cells.AddTableCell()()(“cell22”);.InsertText .Blocks.AddBlock secondRow.Cells.AddTableCell()()(“cell23”);
结果表如图1.
图1:表格
使用DefaultCellProperties
如果想对表中的所有单元格应用默认样式,可以使用table的样式DefaultCellProperties财产。这允许轻松地修改默认单元格表示。
- 填充:指定单元格内边框轮廓与单元格内容之间的距离。
- 边界:类型属性TableCellBorders,它指定单个单元格的边界。可用的边界有左、右、上、下、对角线上和对角线下。
- 背景:指定单元格的背景。
Е以2演示如何使用DefaultCellProperties一张桌子
示例2:使用表的DefaultCellProperties
Table = new Table();Border redBorder = new Border(2, new RgbColor(255,0,0));table.DefaultCellProperties.Borders = new TableCellBorders(redBorder);table.DefaultCellProperties.Padding =新厚度(20,10,20,10);table.DefaultCellProperties.Background = new RgbColor(0,255,0);TableRow firstRow = table.Rows.AddTableRow();firstRow.Cells.AddTableCell ();firstRow.Cells.AddTableCell ();firstRow.Cells.AddTableCell ();TableRow secondRow = table.Rows.AddTableRow(); secondRow.Cells.AddTableCell(); secondRow.Cells.AddTableCell(); secondRow.Cells.AddTableCell();
代码片段的结果示例2演示于图2.
图2:DefaultCellProperties修改的结果
修改表
有几个因素会影响表测量计算。下面列出了其中一些并加以解释:
保证金:指定表边框、大纲和文档其余内容之间的距离。
填充:通过TableCell的Padding属性设置,它指定了单元格边框、内轮廓和单元格内容之间的距离。
LayoutType:指定布局表内容的算法应使用。有两种选择TableLayoutType枚举:
- 最适合的-表格宽度适合内容,除非所需宽度大于可用的测量宽度。
- FixedWidth-表宽总是符合可用的测量宽度。
HorizontalAlignment:指定表在页面中的对齐方式。
BorderSpacing:表中所有边框之间的距离。这个距离的测量方法不同BorderCollapse选择。
BorderCollapse:指定边界间距计算的方式。有两种选择:
- 崩溃:边界之间的距离是从边界的中线开始测量的
- 单独的:边界之间的距离从边界外轮廓线开始测量。
示例3演示如何使用不同的BorderCollapse选择。本例中的代码创建一个空表,并设置默认的单元格填充和厚度为10的红色表边框。
示例3:创建带有红色边框的表
Table = new Table();table.DefaultCellProperties.Padding =新厚度(10,6,10,6);Border redBorder = new Border(10, new RgbColor(255, 0,0));表格border = new TableBorders(redBorder);
示例4向表中添加包含两个单元格的单行示例3.第一个单元格的边界为绿色,厚度为5,而第二个单元格的边界为蓝色,厚度为3。
示例4:添加绿色和蓝色单元格
TableRow = table.Rows.AddTableRow();TableCell firstCell = tableRow.Cells.AddTableCell();Border greenBorder = new Border(5, new RgbColor(0,255,0));firstCell。边界= new TableCellBorders(greenBorder, greenBorder, greenBorder, greenBorder); firstCell.Blocks.AddBlock().InsertText("green bordered cell"); TableCell secondCell = tableRow.Cells.AddTableCell(); Border blueBorder = new Border(3, new RgbColor(0, 0, 255)); secondCell.Borders = new TableCellBorders(blueBorder, blueBorder, blueBorder, blueBorder); secondCell.Blocks.AddBlock().InsertText("blue bordered cell");
图3显示了示例3和示例4中的表格,其中BorderCollapse属性设置为Collapse -所有的边界都被绘制成中线重合的状态。
示例5:折叠边框
表格BorderCollapse = BorderCollapse. collapse;
图3:折叠边界
图4显示了相同的表格,BorderCollapse属性设置为分离-所有的边界都被绘制,以便它们的外部轮廓重合。
示例6:分隔边界
表格BorderCollapse = BorderCollapse. separate;
图4:分隔的边界
RadFixedDocumentEditor绘图表
方法将表插入到PDF文档中RadFixedDocumentEditor的InsertTable ()方法。通过这种方式,表格被插入到文档中,并在必要时分割到页面上。
例7生成一个包含两个单元格的简单表。
例7:创建表
Table = new Table();Border Border = new Border();表格border = new TableBorders(border);table.DefaultCellProperties.Borders = new TableCellBorders(border, border, border, border);表格BorderSpacing = 5;表格BorderCollapse = BorderCollapse. separate;TableRow row = table.Rows.AddTableRow(); row.Cells.AddTableCell().Blocks.AddBlock().InsertText("First cell"); row.Cells.AddTableCell().Blocks.AddBlock().InsertText("Second cell");
示例8从中插入表例7在RadFixedDocumentEditor中指定表布局类型为AutoFit。
例8:插入AutoFit表
RadFixedDocumentEditor编辑器= new RadFixedDocumentEditor(文档);表格LayoutType = tableelayouttype . autofit;editor.InsertTable(表);
结果是,表的宽度与拟合中可见的单元格内容所需的宽度完全一致图5.
图5:AutoFit表
指定FixedWidth布局选项会产生不同的结果。
例9:插入FixedWidth表
表格LayoutType = tabelayouttype . fixedwidth;editor.InsertTable(表);
图6:FixedWidth表
带有FixedContentEditor的绘图表
当需要更多定制选项时,可以使用DrawTable ()的方法FixedContentEditor而不是RadFixedDocumentEditor.
示例10展示了如何在FixedContentEditor的帮助下绘制一个旋转的表格。
例10:绘制旋转的桌子
表表= GenerateSampleTable();RadFixedDocument文档= new RadFixedDocument();RadFixedPage page = document.Pages.AddPage();FixedContentEditor编辑器= new FixedContentEditor(page, new SimplePosition());editor.Position。翻译(100);editor.Position.Rotate (-45);editor.DrawTable(表);
结果,上图7您可以看到一个45度旋转的桌子,类似于图5。