繁体   English   中英

MigraDoc - 表格边框但没有单元格/行/列边框

[英]MigraDoc - Table Border but no Cell/Row/Column Borders

我正在努力实施似乎应该是直截了当的事情,但运气不佳。 我需要一个 MigraDoc 表格来渲染表格边框,不包括中间的所有单元格:

在此处输入图片说明

我已经关注了这篇文章的评论:

如何在 MigraDoc 中为表格添加边框?

有用的信息,但我还没有能够从中实施完整的修复? 在将表添加到该部分之前,我运行了以下代码:

        table.Borders.Visible = true;
        for (int i = 0; i < table.Rows.Count - 2; i++)
        {
            table.Rows[i].Borders.Bottom.Visible = false;
        }

起初似乎它完成了这项工作......直到我遇到一个跟随下一页的表格......底行边框显然只为最底行呈现并且不考虑PageBreaks中间表。

当然必须有更好的方法来做到这一点?

编辑:我很欣赏这是一个老问题,但以防万一有人最终在这里寻找答案......

尝试使用SetEdge选项。 有两种方法可以做到这一点,这取决于您是否知道将有多少表格行或列(静态内容),或者您还不知道(动态内容)。

选项 1:静态表格内容

首先设置你的表格,这样所有的列、单元格和行都存在,然后用

table.SetEdge(a, b, x, y, Edge.Box, BorderStyle.Single, 1, Colors.Black);

前四个数字a, b, x, y表示您要为其添加边框的表格单元格,前两个数字是左上角的列然后是行(在您的情况下为整个表格边框,这应该是0, 0 ) 和第二个数字是右下角的列然后是行(根据您的示例,这是3, 4 ,假设标题是标题行)。

Edge.Box之后,选项是border style, border width, border color

然后,您可以像往常一样为每个单元格或行添加任何额外的单独边框,以便按照您的示例在标题行的底部添加边框...

headerRow.Borders.Bottom.Width = 0.2;
headerRow.Borders.Bottom.Color = Colors.Black;

选项 2:动态表格内容

如果您不知道表格中有多少行或列,因为内容是动态的,可以使用this.table.Columns.Countthis.table.Rows.Count设置this.table.Columns.Count的前四个数字 - 例如:

table.SetEdge(0, 0, this.table.Columns.Count, this.table.Rows.Count, Edge.Box, BorderStyle.Single, 1, Colors.Black);

参考文献

有关更多信息,请参阅此帖子: https : //forum.pdfsharp.net/viewtopic.php?f=2&t=3598

它也在 MigraDoc 示例中(搜索 SetEdge): http ://pdfsharp.net/wiki/HelloMigraDoc-sample.ashx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM